ROZMYTE BAZY DANYCH.

Slides:



Advertisements
Podobne prezentacje
Opracowała: Iwona Bieniek
Advertisements

Wartość bezwzględna liczby rzeczywistej opracowała: monika kulczak, kl
Modelowanie logiczne (dla relacyjnych SZBD)
System lingwistyczny - wnioskowanie
Równanie różniczkowe zupełne i równania do niego sprowadzalne
CIĄGI.
mgr inż. Ryszard Chybicki Zespół Szkół Ponadgimnazjalnych
Metody Analizy Programów Wykład 02
S – student, P – przedmiot, W – wykładowca
Inteligencja Obliczeniowa Zbiory rozmyte, modelowanie wiedzy.
Relacyjny model danych
Badania operacyjne. Wykład 2
KNW- Wykład 8 Wnioskowanie rozmyte.
ZŁOŻONOŚĆ OBLICZENIOWA
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Język SQL – zapytania zagnieżdżone (podzapytania)
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 3: Język bazy danych - SQL Funkcje grupowe.
Wpływ warunków na niewiadome na wyniki wyrównania.
Algorytm Rochio’a.
Model lingwistyczny – wnioskowanie Mamdani’ego
SQL-owskie szlaki górskie
Macierz incydencji Macierzą incydencji grafu skierowanego D = (V, A), gdzie V = {1, ..., n} oraz A = {a1, ..., am}, nazywamy macierz I(D) = [aij]i=1,...,n,
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Bazy danych Algebra relacji.
Relacyjny model danych
Projektowanie struktury logicznej (schematu) relacyjnych baz danych
Teoria relacyjnych baz danych
Matematyka.
OPERACJA DZIELENIA W SQL
Zależności funkcyjne.
O relacjach i algorytmach
Elementy Rachunku Prawdopodobieństwa i Statystyki
Wykład 25 Regulatory dyskretne
Podstawy analizy matematycznej II
I. Informacje podstawowe
Trójkąty.
MECHANIKA 2 Wykład Nr 11 Praca, moc, energia.
Podstawy analizy matematycznej I
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Działania na zbiorach ©M.
Liczby rzeczywiste ©M.
Model relacyjny.
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
Projektowanie relacyjnych baz danych – postacie normalne
Łódź 2008 Banki danych WYKŁAD 2 dr Łukasz Murowaniecki T-109.
Model obiektowy bazy danych
Obwody elektryczne - podstawowe prawa
Zbiory Co to jest zbiór? Nie martw się, jeśli nie potrafisz odpowiedzieć. Nie ma odpowiedzi na to pytanie.
Zagadnienia AI wykład 2.
Zagadnienia AI wykład 6.
Zagadnienia AI wykład 5.
Rodzaje Liczb JESZCZE SA TAKIE
Rodzaje liczb.
Metody sztucznej inteligencji – technologie rozmyte i neuronoweSystemy rozmyte – podstawy i struktury  Kazimierz Duzinkiewicz, dr hab. inż.Katedra Inżynierii.
Modelowanie model związków encji
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania Modelowanie i podstawy identyfikacji 2015/2016 Modelowanie rozmyte – podstawy,
Pojęcia podstawowe c.d. Rachunek podziałów Elementy teorii grafów
Metody sztucznej inteligencji - Technologie rozmyte i neuronowe 2015/2016 Systemy rozmyte – wnioskowanie Mamdani’ego I © Kazimierz Duzinkiewicz, dr hab.
Metody sztucznej inteligencji - Technologie rozmyte i neuronowe 2015/2016 Systemy rozmyte – wnioskowanie Mamdani’ego II © Kazimierz Duzinkiewicz, dr hab.
Metody sztucznej inteligencji - Technologie rozmyte i neuronowe 2015/2016 Systemy rozmyte – wnioskowanie formalne © Kazimierz Duzinkiewicz, dr hab. inż.
Rozwiązywanie układów równań Radosław Hołówko Konsultant: Agnieszka Pożyczka.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
Nierówności liniowe.
Podstawowe rodzaje modeli rozmytych
Pojęcia podstawowe Algebra Boole’a … Tadeusz Łuba ZCB 1.
Matematyka przed egzaminem czyli samouczek dla każdego
Zbiory – podstawowe wiadomości
Jednorównaniowy model regresji liniowej
WARSAW DATA SCIENCE MEETUP
Podstawy teorii spinu ½
Zapis prezentacji:

ROZMYTE BAZY DANYCH

DEFINICJE

ZBIORY ROZMYTE Definicja. Niech X oznacza obszar odniesienia (uniwersum). Zbiorem rozmytym A elementów obszaru X o funkcji przynależności A(x) nazywamy zbiór uporządkowanych par: A = {<x, A(x)>, xX, A(x):X [0,1]}

ZBIORY ROZMYTE Elementy należące do A w stopniu niezerowym tworzą nośnik zbioru : supp (A) = {x: A(x) > 0} Elementy należące w pełni do A tworzą rdzeń zbioru : Ker (A) = {x: A(x) = 1} Elementy należące do A w stopniu większym lub równym pewnej wartości   [0,1] tworzą  - przekrój zbioru: A= {x: A(x) > }

ZBIORY ROZMYTE Jeśli xX A(x) = 0, to A jest zbiorem pustym. Maksymalną wartość funkcji przynależności nazywamy wysokością zbioru: hgt (A) = sup xX A(x) Jeśli hgt (A) = 1, to zbiór nazywamy normalnym. Sumę wartości funkcji przynależności nazywamy licznością zbioru: card(A) =  xX A(x)

OPERACJE MNOGOŚCIOWE Suma: AB(x) = max(A(x), B(x)) Iloczyn: AB(x) = min(A(x), B(x)) Dopełnienie: -A(x) = 1 – A(x) Różnica: A – B(x) = min(A(x), 1 – B(x)) Operacje max i min są często oznaczane przez  i .

ZBIORY ROZMYTE Zbiory rozmyte A i B są równe, jeśli xX A(x) = B(x) Zbiór A zawiera się w B, jeśli xX A(x)  B(x)

ZBIORY ROZMYTE Równość zbiorów rozmytych A i B można ocenić za pomocą miary bliskości  (A, B). Jedną z miar bliskości jest wysokość iloczynu, czyli:  (A, B) = supx min (A (x), B (x)).

Liczba rozmyta (7.8, 8.2, 0.2, 0.2) μ 1 7.6 7.8 8.2 8.4 x

Liczby rozmyte (7.7, 7.7, 0.2, 0.2) i (7.9, 7.9, 0.2, 0.2) μ 1 0.5 7.5 7.7 7.9 8.1 x

IMPLIKATORY W logice dwuwartościowej operator implikacji I (implikator) jest odwzorowaniem: {0, 1}  {0, 1}  {0, 1}. Parze liczb (a, b) należących do {0, 1} odpowiada wartość I (a, b), taka że: I (a, b) = 1, dla a = 0 oraz I (a, b) = 0, dla a =1 i b = 0. Zaproponowano różne wersje rozszerzenia implikacji do postaci [0, 1]  [0, 1]  [0, 1]. Jednym z nich jest implikator Gödela.

IMPLIKATORY Jego definicję można przedstawić formalnie w sposób podobny do zapisu definicji implikacji klasycznej, z tą różnicą, że obie liczby a i b mogą przyjmować dowolne wartości z przedziału [0, 1]: IG (a, b) = 1 dla a  b, IG (a, b) = b dla a > b Implikator Gödela spełnia warunki wynikające z implikacji klasycznej, czyli: IG (0, 0) = 1, IG (0, 1) = 1, IG (1, 1) = 1 oraz IG (1, 0) = 0.

IMPLIKATORY Ponadto IG ma następujące własności: a  c  IG (a, b)  IG (c, b) – implikator IG (a, b) jest funkcją nierosnącą a, b  c  IG (a, b)  IG (a, d) – implikator IG (a, b) jest funkcją niemalejącą b, IG (1, b) = b, IG (0, b) = 1, IG (a, 1) = 1, IG (a, IG (b, c)) = IG (b, IG (a, c)), IG (a, b)  min (a, b)

Implikatory Inne implikatory: Łukasiewicz I = min(1, 1-a+b) Kleene-Dienes I=max(1-a, b) Mamdani I=min(a,b) Zadeha I = max(1-a, min(a,b))

 (A, B) = infx I (A (x), B (x)) Implikatory Rozmyty implikator można wykorzystać przy określaniu stopnia zawierania się zbiorów rozmytych,  (A, B), czyli określeniu w jakim stopniu jest prawdziwe twierdzenie: jeśli x  A, to x  B:  (A, B) = infx I (A (x), B (x)) Zbiory A i B są równe, jeśli A  B i B  A. Mamy więc: (A, B) = min (infx I (A (x), B (x)), infx I (B (x), A (x))) Przy zastosowaniu implikatora Łukasiewicza otrzymujemy:  (A, B) = infx (1 – A(x) – B (x) ).

MODEL ZWIĄZKÓW ENCJI

MODEL ZWIĄZKÓW ENCJI M = {E, R, A} E – zbiór typów encji E R – zbiór typów związków R A = {AE, AR} – zbiór atrybutów encji AE i związków AR

POZIOMY ROZMYTOŚCI Model związków encji składa się z trzech poziomów. Na każdym z nich może występować konieczność zastosowania zbiorów rozmytych. I – Zbiory E, R, A II – Zbiory wystąpień encji i związków III – Atrybuty

POZIOM I i II E = {E(E)/E} R = {R(R)/R} AE = {AE(A)/A} AR = {AR(A)/A} Przyklad E = {1/Pracownik, 1/Projekt, 0.9/Klient} E = {E(e)/e}, R = {R(r)/r} , e – encja, r - związek

ZWIĄKI ISA Jeżeli e E2  e E1 , to E2 jest podzbiorem E1, czyli E2  E1  E2 (e)  E1 (e) Jeżeli E1 , E2 , ... , En są podzbiorami E, to E1  E2  ...  En  E  max(E1 (e) , E2 (e) , ... , En (e) )  E(e)

ZWIĄZKI ISA Jeśli podzbiory E1 , E2 , ... , En są rozłączne, to supp(E1)  supp(E2)  ...  supp(En) = Ø Przynależność częściowa e E(e) > max(E1(e) , E2(e) , ... , En(e) ) = 0 Przynależność całkowita e E(e) > max(E1(e) , E2(e) , ... , En(e) ) > 0

ZWIĄZKI ISA Niech A=X będzie warunkiem przynależności do zbioru niższego rzędu. Wtedy E1(e) = E(e)  Truth(A=X), gdzie Truth(A=X) – stopień spełnienia warunku A=X Ponadto E1(e) = E(e)  AE(A)  Truth(A=X)

ZWIĄZKI ISA Dziedziczenie wielokrotne F  E1  E2  ...  En F(e)  min(E1(e) , E2(e) , ... , En(e) )

DZIEDZICZENIE Zbiór atrybutów zbioru encji Ei składa się ze zbioru atrybutów AE dziedziczonych od zbioru nadrzędnego E i zbioru atrybutów własnych AOi: AEi= AE  AOi  AE(A)  AEi(A)

DZIEDZICZENIE ZWIĄZKÓW R: EF[0,1] <ei, fj, R(i,j)> ei dziedziczy związek między ei oraz fj Stopień przynależności R(i,j)  Truth(p)

DZIEDZICZENIE ZWIĄZKÓW STUDENT, STUD_MAG, STUD_INZ STUDENT – PRZEDMIOT <s1, p7, 0,9>, Truth(TYP=MAG) = 0,8 <s1, p7, min (0,9, 0,8)>

ZWIĄZKI Definicja związku rozmytego: R={(u, v, ) u  E, v  F,   <0,1>} Uczestnictwo całkowite: e  E e  {u(u, v, )  R,  > 0} Uczestnictwo częściowe e  E e  {u(u, v, )  R,  > 0}

R f1 f2 ... fm e1 r11 r12 r1m e2 r21 r22 r2m en rn1 rn2 rnm

REF {f1} {f2} ... {fm} {f1, f2} {f1, ..., fm} e1 r11 r12 r1m r1,m+1 r1k e2 r21 r22 r2m r2, m+1 r2k en rn1 rn2 rnm rn,m+1 rn,k

PODEJŚCIE PODSTAWOWE

TRZY PODEJŚCIA Podejście podstawowe: wartości atrybutów są precyzyjne, przynależność krotki do relacji jest liczbą z przedziału [0,1] Podejście oparte na teorii możliwości: wartości atrybutów są podane za pomocą rozkładów możliwości Podejście oparte na podobieństwie: dla dziedzin atrybutów definiuje się macierz podobieństwa, wartości atrybutów są podzbiorami swoich dziedzin

RELACJE ROZMYTE Definicja. Niech X i Y oznaczają obszary odniesienia (uniwersum). Relacją rozmytą R nazywamy zbiór rozmyty na iloczynie kartezjańskim X  Y : R = {<x, y, A(x,y) >, xX, yY, A(x,y): X  Y [0,1]}

RELACJE ROZMYTE Klasyczna relacja jest podzbiorem iloczynu kartezjańskiego dziedzin jej atrybutów D1  D2 …  Dn . Przynależność krotek jest liczbą należącą do zbioru {0,1}. Relacja rozmyta jest zbiorem rozmytym na D1  D2 …  Dn . Każdej krotce r = (d1 , d2 , ... , dn), gdzie di  Di , przyporządkowano liczbę z przedziału [0, 1] określającą, w jakim stopniu należy ona do relacji lub, inaczej mówiąc, w jakim stopniu są przez nią spełnione warunki integralności. Zbiór {0,1} został zastąpiony przedziałem [0,1].

RELACJE ROZMYTE DUŻE_PROJEKTY Numer Nazwisko Buddżet Miasto µ 1 Kredyt 110 000 Łódź 2 Finn 50 000 Warszawa 0,8 3 Polisa 40 000 Paryż 0,4 4 Makler 30 000 Rzym 0,3 5 Visa 200 000 6 Agent 20 000 0,2

RELACJE ROZMYTE Wartości funkcji przynależności mogą być zadane z góry lub wynikać z przeprowadzonych operacji. Relacja DUŻE_PROJEKTY mogła powstać w wyniku selekcji wykonanej na relacji PROJEKTY warunkiem rozmytym BUDŻET = ‘DUŻY’.

ALGEBRA RELACJI ROZMYTYCH

ALGEBRA RELACJI ROZMYTYCH Definicje operacji algebraicznych na rozmytych relacjach są rozszerzeniem operacji klasycznych o sposób obliczania funkcji przynależności.

OPERACJE MNOGOŚCIOWE R, S – relacje, r, s, t - krotki Suma: RS(t) = max(R(t), S(t)) Iloczyn: RS(t) = min(R(t), S(t)) Różnica: R-S(t) = min(R(t), 1 – S(t)) Iloczyn kartezjański: RS(r, s) = min(R(r), S(s))

OPERACJE RELACYJNE Selekcja: F(R)(r) = min(R(r), F(r)), gdzie F(r) oznacza stopień spełnienia warunku selekcji F Projekcja: X (t) = sup r(X) = t(X) R (r). Złaczenie: R*S (t) = min(R (r), S (s))

OPERACJE RELACYJNE PRZYKŁAD PRACOWNICY Numer Nazwisko Zarobki Wiek Miasto µ 1 Arski 8 000 30 Łódź 2 Barski 20 000 45 Warszawa 3 Carski 1 000 21 Paryż 4 Darski 1 500 43 Rzym 5 Farski 4 000 40 Praga

OPERACJE RELACYJNE PRZYKŁAD Precyzyjny warunek selekcji R (pracownicy mieszkający w Polsce) Numer Nazwisko Zarobki Wiek Miasto µ 1 Arski 8 000 30 Łódź 2 Barski 20 000 45 Warszawa

OPERACJE RELACYJNE PRZYKŁAD Rozmyty warunek selekcji: WIEK = ‘Młody’ Młody 1 24 34 WIEK

OPERACJE RELACYJNE PRZYKŁAD 1 Rozmyty warunek selekcji: WIEK = ‘Młody’ S ( młodzi pracownicy) 1 Arski 8 000 30 Łódź 0.4 3 Carski 1 000 21 Paryż

RS 1 Arski 8 000 30 Łódź 1(1 0.4) 2 Barski 20 000 45 Warszawa 1(1 0) 3 Carski 1 000 21 Paryż 1(0 1) RS 0.4(1 0.4) 0(1  0) 0(0  1) R - S 0.6(1 (1-0.4)) 1(1 (1-0)) 0(0(1-1))

OPERACJE RELACYJNE PRZYKŁAD 2 - PROJEKCJA DUŻE_PROJEKTY Numer Nazwisko Buddżet Miasto µ 1 Kredyt 110 000 Łódź 2 Finn 50 000 Warszawa 0,8 3 Polisa 40 000 Paryż 0.4 4 Makler 30 000 Rzym 0.3 5 Visa 200 000 6 Agent 20 000 0.2

OPERACJE RELACYJNE PRZYKŁAD 2 - PROJEKCJA Miasto(DUŻE_PROJEKTY) Miasto µ Łódź 1 Warszawa 0,8 Paryż 0,4 Rzym

Numer Nazwisko Zarobki Wiek Miasto µ 1 Arski 8 000 30 Łódź 2 Barski 20 000 45 Warszawa 3 Carski 4 000 21 0,05 4 Darski 23 Poznań 0,1 5 Farski 40 Łodź 0,6 6 Jarski 35 Kraków 0,5

Zarobki µ 8 000 1 20 000 4 000 0,05 0,1 0,6 0,5 Zarobki(R) Zarobki µ 8 000 1 20 000 4 000 0,6

OPERACJE RELACYJNE PRZYKŁAD 3 - ZŁĄCZENIE S Nazwisko Projekt µ Budżet Arski 1 100 Barski 2 200 0.8 Carski 3 0,05 300 0.6 Darski 0,1 Farski 0,6 Jarski 0,5

OPERACJE RELACYJNE PRZYKŁAD 3 - ZŁĄCZENIE R*S Nazwisko Projekt Budzet  Arski 1 100 Barski 2 200 0.8 Carski 3 300 0.05 Darski 0,1 Farski 0,6 Jarski 0,5

OPERACJE RELACYJNE PRZYKŁAD 4 Podać pary miast pracownika i projektu, w którym bierze on udział R S Name Pr Rtown µ Stown Arski 1 Łódź W-wa Barski 2 0.8 Carski 3 0,05 K-ów 0.6 Darski P-nań 0,1 Farski 0,6 Jarski 0,5

Rtown Stown µ Łódź W-wa 1 0.8 K-ów 0.05 0.6 P-nań 0.1 0.5

Dzielenie Iloraz R  S relacji rozmytych R i S określa, w jakim stopniu wymagania zawarte w S są uwzględnione przez R . Do jego wyznaczenia należy wziąć pod uwagę krotki relacji R postaci (a, b), gdzie a ma ustaloną wartość oraz b obejmuje wszystkie wartości występujące w S (S (b) > 0). Stopień przynależności a do ilorazu jest równy najmniejszej wartości stopnia spełnienia wymagań przez krotki (a, b).

Dzielenie Jeżeli dla każdej wartości b występującej w S istnieje w R krotka (a, b), dla której S (b)  R (a, b), to wymagania są całkowicie spełnione i a w pełni należy do R, czyli  R  S (a) = 1. Jeżeli przyjmiemy, że dla sytuacji przeciwnej, czyli gdy istnieją krotki (a, b), takie, że S (b) > R (a, b), wartość R  S (a) jest równa najmniejszej wartości R(a, b), to funkcja przynależności wyraża się wzorem:

Dzielenie RS (a) = minb I(S(b), R (a, b)), gdzie I jest implikatorem Gödela.

DZIELENIE – PRZYKŁAD R A B µ S a1 b1 1 0.7 b2 0,6 0,9 b3 0,8 0,5 a2 0,7 a3 0,4

DZIELENIE – PRZYKŁAD A B µ a1 b1 1 0.7 0,6 b2 0,9 a2 b3 0,8 0,5 0,7 a3 0,4

ALGEBRA RELACJI ROZMYTYCH - PRZYKŁADY Podane przykłady dotyczą następującej bazy danych: PROJ(P#, NAZWA, BUDŻET, MIASTO) PRAC(E#, NAZWISKO, ZAWÓD, WIEK) KONTR(P#, E#, KWOTA)

PRZYKŁAD 1 Numery pracowników mających kontrakty o wysokości około 5000 za udział w realizacji projektu P1

PRZYKŁAD 1 Numery pracowników mających kontrakty o wysokości około 5000 za udział w realizacji projektu P1 Wykonujemy selekcję na relacji KONTR z warunkiem F = (P# = ‘P1’  KWOTA = ‘Około 5000’): R1 =  F( KONTR) Stopień przynależności wartości krotki r do relacji R1 wynosi: R1(r) =  KONTR(r)   Około 5000(r(‘P1’,KWOTA))

PRZYKŁAD 1 2. Następnie rzutujemy R1 na E#: R2 =  E#( R1) Stopień przynależności krotki t do relacji R2 wynosi: R2(t) = sup t(E#) = r(E#)R1(r)

PRZYKŁAD 1 Ostatecznie otrzymujemy: R =  E#( F (KONTR)) Stopień przynależności krotki t do relacji R wynosi: R(t) = sup t(E#) = r(E#)(KONTR(r)  Około_5000(r(‘P1’,KWOTA)))

PRZYKŁAD 2 Nazwiska młodych pracowników mających kontrakty o wysokości około 5000 za udział w realizacji projektu P1

PRZYKŁAD 2 Nazwiska młodych pracowników mających kontrakty o wysokości około 5000 za udział w realizacji projektu P1 Selekcja na PRAC z warunkiem WIEK = ‘Młody’: R1 = WIEK=‘Młody’ (PRAC) . Przynależność krotki r1 do R1 wynosi:  R1(r1) =  PRAC(r1)   Młody(r1(WIEK))

PRZYKŁAD 2 2. Selekcja na KONTR z warunkiem F (poprzedni przykład) R2 = F (KONTR) , Przynależność krotki r2 do R2 wynosi:  R2(r2) =  KONTR(r2)   Około_5000(r2(‘P1’,KWOTA)) 3. Złączenie R1 i R2 R3 = R1* R2 Przynależność krotki r3 do R3 wynosi:  R3(r3) = R1(r1)  eq(r1(E#), r2(E#))  R2(r2) eq (a,b) = 1 jeżeli a = b oraz eq (a,b) = 0, jeżeli a  b

 R4(r4) = sup r4(NAZWISKO) = r3(NAZWISKO) R3(r3) PRZYKŁAD 2 4. Projekcja na NAZWISKO R4 =  NAZWISKO( R3 ) Przynależność krotki r4 do R4 wynosi:  R4(r4) = sup r4(NAZWISKO) = r3(NAZWISKO) R3(r3)

R =  NAZWISKO(WIEK=‘Młody’ (PRAC) * F (KONTR) ) PRZYKŁAD 2 Ostatecznie otrzymujemy R =  NAZWISKO(WIEK=‘Młody’ (PRAC) * F (KONTR) ) Przynależność krotki t do R wynosi:  R(t) = sup t(NAZWISKO) = r(NAZWISKO) ( PRAC(r)   Młody(r(WIEK))  eq(r(E#),s(E#))   KONTR(s)  Około_5000(s(‘P1’,KWOTA)))

PRZYKŁAD 3 Zawody młodych pracowników mających kontrakty o wysokości około 5000 za udział w realizacji projektu P1

PRZYKŁAD 3 Zawody młodych pracowników mających kontrakty o wysokości około 5000 za udział w realizacji projektu P1 Wykorzystamy wynik z poprzedniego przykładu R1 = WIEK=‘Młody’ (PRAC) * F (KONTR) Przynależność krotki r1 do R1 wynosi:  R(r1) =  PRAC(r)   Młody(r(WIEK))  eq (r(E#),s(E#))  KONTR(s)   Około_5000(s(‘P1’,KWOTA))

 R2(t) = sup t[ZAWÓD] = r[ZAWÓD]  R3(r) PRZYKŁAD 3 2. Wykonujemy projekcję R2 =  ZAWÓD( R1) Przynależność krotki r2 do R2 wynosi:  R2(t) = sup t[ZAWÓD] = r[ZAWÓD]  R3(r)

PRZYKŁAD 3 Ostatecznie otrzymujemy: R =  ZAWÓD (WIEK=‘Młody’ (PRAC) * F (KONTR) ) Przynależność krotki t do R wynosi: R (t) = sup t[ZAWÓD] = r[ZAWÓD] (PRAC(r)   Młody(r(WIEK))  eq(r(E#),s(E#))   KONTR(s)  Około_5000(s(‘P1’,KWOTA)))

PRZYKŁAD 4 Numery młodych pracowników, którzy nie mają żadnego kontraktu wyższego niż około 5000

PRZYKŁAD 4 Numery młodych pracowników, którzy nie mają żadnego kontraktu wyższego niż około 5000 1. Wyznaczamy numery młodych pracowników R1 =  E#( WIEK = ‘Młody’ (PRAC)) Przynależność krotki r1 do R1 wynosi:  R1(r1) = supr1(E#)=r(E#) (PRAC(r)   Młody(r(WIEK)))

 R3(r3) =  R1(r3)  (1 -  R2(r3)) PRZYKŁAD 4 2. Wyznaczamy numery pracowników którzy mają przynajmniej jeden kontrakt wyższy niż około 5000 R2 =  E#( KWOTA> ‘Około_5000’ (KONTR)) Przynależność krotki r2 do R2 wynosi:  R1(r2) = supr2(E#)=r(E#) (KONTR(s)   wyższy niż około_5000(s(KWOTA))) 3. Wyznaczamy odpowiedź R3 = R1 – R2 Przynależność krotki r3 do R3 wynosi:  R3(r3) =  R1(r3)  (1 -  R2(r3))

PRZYKŁAD 4 Ostatecznie otrzymujemy: R =  E#( WIEK = ‘Młody’ (PRAC)) –  E#( KWOTA> ‘Około_5000’ (KONTR)) Przynależność krotki t do R wynosi:  R(t) = supt(E#)=r(E#) (PRAC(r)   Młody(r(WIEK)))  (1 – supt(E#)=s(E#) (KONTR(s)   wyższy niż około_5000(s(KWOTA)))

PRZYKŁAD 5 Numery pracowników, którzy uczestniczą w realizacji wszystkich projektów o wysokich budżetach i każdy ich kontrakt dotyczący takiego projektu jest większych niż około 5000 PLN.

PRZYKŁAD 5 1. Wyznaczenie kluczy kontraktów większych niż około 5000 dotyczących projektów o wysokich budżetach R1 =  P#, E#(  KWOTA > ‘Około 5000’ (KONTR) * BUDŻET = ‘Wysoki’ (PROJ)) Przynależność krotki r1 do R1 wynosi:  R1(r1) = supr1(P#,E#)=s(P#,E#) (PROJ (r)  wysoki(r(BUDŻET)   eq(r(P#),s(P#))  KONTR (s)   Większy niż około_5000(s(KWOTA)))

R2 =  P#( BUDŻET = ‘Wysoki’ (PROJ)) PRZYKŁAD 5 2. Wyznaczenie numerów projektów o wysokich budżetach R2 =  P#( BUDŻET = ‘Wysoki’ (PROJ)) Przynależność krotki r2 do R2 wynosi:  R2(r2) = supr2(P#)=r(P#) (PROJ (r)  wysoki(r(BUDŻET))) 3. Wyznaczanie odpowiedzi R3 = R1  R2 Przynależność krotki r3 do R3 wynosi:  R3(r3(e#)) = minp# IG ( R2 (r2(p#)),  R1 (r1(e#, p#))

Ostatecznie otrzymujemy: R =  P#, E#(  KWOTA > ‘Około 5000’ (KONTR) * BUDŻET = ‘Wysoki’ (PROJ))   P#( BUDŻET = ‘Wysoki’ (PROJ))  R(e#) = minp#IG ( R2 (p#),  R1 (e#, p#)) gdzie  R2(p#) = supp#=r(P#) (PROJ (r)  wysoki(r(BUDŻET))) oraz  R1(e#,p#) = sup(p#,e#)=s(P#,E#) (PROJ (r)  wysoki(r(BUDŻET)   eq(r(P#),s(P#))  KONTR (s)   Większy niż około_5000(s(KWOTA)))

ZAPYTANIA NIEPRECYZYJNE W SQL Język SQLf

ZAPYTANIA NIEPRECYZYJNE W SQL Podobnie jak w SQLu główną konstrukcją języka SQLf jest blok o następującej strukturze: SELECT DISTINCT A1, A2, …, An FROM R1, R2, …, Rm WHERE Wf; gdzie Wf oznacza rozmyty (fuzzy) warunek.

F (f(A1, A2, …, An)) = W wyniku realizacji bloku otrzymujemy rozmytą relację Rf. Operacja SELECT DISTINCT jest złożeniem algebraicznych operacji selekcji i projekcji. Przynależność krotki f do Rf jest więc równa: F (f(A1, A2, …, An)) = sup r(Ai) = f(Ai) , i = 1, 2, …n (R (r)  Wf (r)) Dla pojedynczego atrybutu otrzymujemy: SELECT DISTINCT A FROM R WHERE Wf (a) = maxr.A=a (fc(r)  R(r)) (a) = maxrR  r.A=a (fc(r)) (przy R(r) = 1)

Kwerenda z wykorzystaniem dwóch relacji: R(A, B), S(C, D) SELECT DISTINCT A, C FROM R, S WHERE Wf1 AND WF2 AND B  D; Wf1 – warunek rozmyty dotyczący R, Wf2 – warunek rozmyty dotyczący S, B  D –rozmyty warunek złączenia Rf(a, c) = maxr.A= a  s.C=c (fc1(r)  fc2(s)  R(r), S(s)  (r.B, s.D))

 IN (a) = sup r.b=a (R (r)  Wf (r)) OPERATOR IN A IN SELECT B FROM R WHERE Wf  IN (a) = sup r.b=a (R (r)  Wf (r)) PREDYKAT EXISTS EXISTS (SELECT * FROM R WHERE Wf)  EXISTS (Z) = sup r Z (r), gdzie Z (r) = R (r)  Wf (r), czyli  EXISTS (Z) = supr(R (r)  Wf (r))

PRZYKŁAD 1 Numery pracowników mających kontrakty o wysokości około 5000 za udział w realizacji projektu P1

PRZYKŁAD 1 (e#) = max r.E#=e#  r.P#=‘P1’ (fc(r)  KONTR(r) ) Numery pracowników mających kontrakty o wysokości około 5000 za udział w realizacji projektu P1 SELECT DISTINCT E# FROM KONTR WHERE P# = ‘P1’ AND KWOTA = ‘Około 5000’; (e#) = max r.E#=e#  r.P#=‘P1’ (fc(r)  KONTR(r) )

PRZYKŁAD 2 Nazwiska młodych pracowników mających kontrakty o wysokości około 5000 za udział w realizacji projektu P1

PRZYKŁAD 2 Nazwiska młodych pracowników mających kontrakty o wysokości około 5000 za udział w realizacji projektu P1 SELECT NAZWISKO FROM PRAC WHERE WIEK = ‘Młody’ AND E# IN (SELECT E# FROM KONTR WHERE P# = ‘P1’ AND KWOTA = ‘OKOŁO 5000’) (nazwisko) =maxnazwisko=r.NAZWISKO min ( PRAC(r),  Młody(r.WIEK), sup r.E#=s.E# min ( KONTR(s),  Około 5000(s.KWOTA))

PRZYKŁAD 3 Numery młodych pracowników, którzy nie mają żadnego kontraktu wyższego niż około 5000

PRZYKŁAD 3 Numery młodych pracowników, którzy nie mają żadnego kontraktu wyższego niż około 5000 SELECT E# FROM PRAC WHERE WIEK = ‘Młody’ AND NOT EXISTS (SELECT * FROM KONTR WHERE E# = PRAC.E# AND KWOTA > ‘OKOŁO 5000’) (e#) = maxe#=r.E#( PRAC(r)   Młody(r.WIEK), 1 – sup r.E#=E# min ( KONTR(r),  Większy niż około 5000(r.KWOTA))

PRZYKŁAD 4 Numery pracowników, którzy uczestniczą w realizacji wszystkich projektów o wysokich budżetach i każdy ich kontrakt dotyczący takiego projektu jest wyższy niż około 5000 PLN.

PRZYKŁAD 4 Numery pracowników, którzy uczestniczą w realizacji wszystkich projektów o wysokich budżetach i każdy ich kontrakt dotyczący takiego projektu jest wyższy niż około 5000 PLN. SELECT DISTINCT E# FROM KONTRAKTY K WHERE KWOTA > ‘OKOŁO 5000’ AND NOT EXISTS (SELECT P# FROM PROJEKTY WHERE BUDZET = ‘WYSOKI’ AND P# NOT IN (SELECT P# FROM KONTRAKTY WHERE K.E# = E# AND KWOTA > ‘OKOŁO 5000’))

SELECT DISTINCT E# FROM KONTRAKTY K WHERE KWOTA > ‘OKOŁO 5000’ AND NOT EXISTS (SELECT * FROM PROJEKTY WHERE BUDZET = ‘WYSOKI’ AND P# NOT IN (SELECT P# FROM KONTRAKTY WHERE K.E# = E# AND KWOTA > ‘OKOŁO 5000)) (e#) = supe#=s[E#] min ( KONTR(s),  Większy niż 5000(s), 1 – supr min ( PROJ(r),  Wysoki(r.BUDZET), 1 – sups’[E#] = e# r’[P#] = s[P#] min ( KONTR(r’),  Większy niż 5000(r’)))