Plan - Poznan University of Technologyetacar.put.poznan.pl/tadeusz.pankowski/03-zal-funkc.pdf ·...
Transcript of Plan - Poznan University of Technologyetacar.put.poznan.pl/tadeusz.pankowski/03-zal-funkc.pdf ·...
(c) T. Pankowski, Zależności funkcyjne 1
Tadeusz Pankowskiwww.put.poznan.pl/~tadeusz.pankowski
ZaleZależżnonośści funkcyjne ci funkcyjne
(c) T. Pankowski, Zależności funkcyjne 2
PlanPlan1. Zależności funkcyjne jako klasa ograniczeń
semantycznych odwzorowywanego świata rzeczywistego.
2. Wyprowadzanie zależności funkcyjnych (reguły wnioskowania, ujęcie aksjomatyczne).
3. Schematy relacyjne = typ relacji + zależności funkcyjne.
4. Rozkładalność schematów relacyjnych i rozkładalność relacji.
(c) T. Pankowski, Zależności funkcyjne 3
PojPojęęcie zalecie zależżnonośści funkcyjnejci funkcyjnejDefinicja
Niech U będzie skończonym zbiorem atrybutów. Zależnością funkcyjnąnazywamy każdy napis o postaci
X → Y,gdzie X, Y ⊆ U. Mówimy wówczas, że Y zależy funkcyjnie od X lub, że X determinuje funkcyjnie Y.
Przykłady:NrPESEL → DataUrodzeniaNrPESEL → NazwiskoIdStud → Kierunek, Dziekan, WydziałIdStud, NrPrzedmiotu, Data → Ocena
(c) T. Pankowski, Zależności funkcyjne 4
SpeSpełłnianie zalenianie zależżnonośści funkcyjnejci funkcyjnej
Definicja
Niech dana będzie tabela R tupu U i niech X,Y ⊆ U. Mówimy, że w R spełniona jest zależność funkcyjna X → Y, co zapisujemy
R £ X → Y,jeśli dla każdych dwóch krotek r1, r2 ∈ R, zachodzi
πX(r1) = πX(r2) ⇒ πY(r1) = πY(r2),
tzn. z równości krotek na atrybutach ze zbioru X wynika równość tych krotek na atrybutach ze zbioru Y.
Uwaga: Zamiast πX(r) stosujemy często zapis: r[X] – projekcja krotki r na zbiór atrybutów X.
(c) T. Pankowski, Zależności funkcyjne 5
SpeSpełłnianie zalenianie zależżnonośści funkcyjnej ci funkcyjnej --przykprzykłładad
3matPawlak12
3matNowak11
4fizKubiak10
3matKubiak10
OcenaIdPrzedNazwiskoIdStud
Egzamin
Egzamin £ IdStud → Nazwisko
Egzamin £ IdStud, IdPrzed → Ocena
? Egzamin £ IdPrzed → Ocena – nie, nie jest to niezmiennicza właściwość tabeli Egzamin
(c) T. Pankowski, Zależności funkcyjne 6
Wyprowadzanie zaleWyprowadzanie zależżnonośści funkcyjnych ci funkcyjnych --motywacjamotywacja
1. Przy projektowaniu bazy danych powinniśmy wiedzieć, jakie zależności funkcyjne powinny być spełnione w relacjach o projektowanym schemacie.
2. Mając zadany zbiór ZF: F = {X1 → A1, X2 → A2,…, Xn → An },
chcemy wiedzieć, czy zależnośćX → A
spełniona jest w każdej takiej taeli, w której spełnione są wszystkie zależności ze zbioru F.Przykład: Jeśli zbiór zależności F = {A → B , B → C} spełniony jest w R, to łatwo dowieść (z definicji), że w R spełniona jest również zależnośćA → C. (Pokaż to !)
(c) T. Pankowski, Zależności funkcyjne 7
Wyprowadzanie zaleWyprowadzanie zależżnonośści funkcyjnychci funkcyjnych
1. Problem: zadany jest zbiór zależności funkcyjnych F (być może pusty) na zbiorem atrybutów U. Należy wyznaczyć zbiór wszystkich zależności funkcyjnych będących konsekwencjami zbioru F. Taki zbiór oznaczaćbędziemy przez F+ (domknięcie F).
2. Dwa podejścia:• z definicji: sprawdzamy „wszystkie możliwe kombinacje”
podzbiorów U• przez wnioskowanie: stosujemy pewne reguły wnioskowania.
8
Wyprowadzanie zaleWyprowadzanie zależżnonośści ci funkcyjnych z definicjifunkcyjnych z definicji
Przykład:Niech U = {A, B, C}, F = {A → B , B → C}, n = card(U) = 3Zbiór wszystkich podzbiorów U: 2n – 1 = 7: A, B, C, AB, AC, BC, ABCZbiór wszystkich „kombinacji” podzbiorów: (2n – 1) * (2n – 1) = 49.Sprawdź, które z następujących zależności są konsekwencjami F:AB → A, AB → B, AB → C, AB → AB, AB → AC, AB → BC, AB → ABC,... ... ...AB → A (?)r1[AB] = r2[AB] ⇒ r1[A] = r2[A] – tak, zawsze niezależnie od F.AB →C (?)r1[AB] = r2[AB] ⇒ r1[C] = r2[C]r1[A] = r2[A] ⇒ r1[B] = r2[B], r1[B] = r2[B] ⇒ r1[C] = r2[C]r1[AB] = r2[AB] ⇒ r1[A] = r2[A] ⇒ r1[B] = r2[B] ⇒ r1[C] = r2[C] – tak.Problem:Złożoność ekspotencjalna O(2n).
(c) T. Pankowski, Zależności funkcyjne 9
Wyprowadzanie zaleWyprowadzanie zależżnonośści funkcyjnych ci funkcyjnych przez wnioskowanieprzez wnioskowanie
• Reguły wyprowadzania dla zależności funkcyjnych zostały zaproponowane przez Armstronga i nazywane sąaksjomatami Armstronga
(c) T. Pankowski, Zależności funkcyjne 10
Aksjomaty ArmstrongaAksjomaty Armstronga
(c) T. Pankowski, Zależności funkcyjne 11
ZaleZależżnonośści funkcyjne ci funkcyjne –– przykprzykłład ad wnioskowaniawnioskowania
(c) T. Pankowski, Zależności funkcyjne 12
NiesprzecznoNiesprzecznośćść aksjomataksjomatóów Armstrongaw Armstronga
(c) T. Pankowski, Zależności funkcyjne 13
PePełłnonośćść aksjomataksjomatóów Armstrongaw Armstronga
(c) T. Pankowski, Zależności funkcyjne 14
DomkniDomknięęcie zbioru zalecie zbioru zależżnonośści ci funkcyjnychfunkcyjnych
(c) T. Pankowski, Zależności funkcyjne 15
Wyznaczanie domkniWyznaczanie domknięęcia X+cia X+
Problem: Dany jest zbiór zależności funkcyjnych F oraz zbiór
atrybutów X. Dla X wyznaczyć zbiór X+ złożony z atrybutów zależnych funkcyjnie od X.
Metoda: • Rozpoczynamy przyjmując: X+ = X.• Indukcja: Poszukujemy wszystkie te ZF, których lewe
strony są podzbiorami bieżącego zbioru X+ i do X +
dołączamy wszystkie atrybuty należące do prawych stron tych ZF.
• Jeśli np. Y ⊆ X+ oraz Y → B, to: X+ = X+ ∪ {B}.
(c) T. Pankowski, Zależności funkcyjne 16
Wyznaczanie domkniWyznaczanie domknięęcia X+cia X+
nowe X +
Y B
X +
(c) T. Pankowski, Zależności funkcyjne 17
Wyprowadzanie zaleWyprowadzanie zależżnonośści funkcyjnychci funkcyjnych
18
Wyprowadzanie zaleWyprowadzanie zależżnonośści ci funkcyjnych funkcyjnych -- przykprzykłładad
(c) T. Pankowski, Zależności funkcyjne 19
Schematy relacyjneSchematy relacyjne
(c) T. Pankowski, Zależności funkcyjne 20
Przypadki schematPrzypadki schematóów relacyjnychw relacyjnych
(c) T. Pankowski, Zależności funkcyjne 21
Przypadki schematPrzypadki schematóów relacyjnych w relacyjnych ––przykprzykłładad
(c) T. Pankowski, Zależności funkcyjne 22
RozkRozkłładalnoadalnośćść schematschematóów w relacyjnychrelacyjnych
(c) T. Pankowski, Zależności funkcyjne 23
RozkRozkłładalnoadalnośćść bez straty danychbez straty danych
(c) T. Pankowski, Zależności funkcyjne 24
Twierdzenie o rozkTwierdzenie o rozkłładalnoadalnośścici
25
Zastosowanie twierdzenia o Zastosowanie twierdzenia o rozkrozkłładalnoadalnośćść
3yb
2ya
2xa
1xa
DataIdTowIdKli
3yb
2ya
1ya
2xa
1xa
DataIdTowIdKli
yb
ya
xa
IdTowIdKli
W Sprz nie jest spełniona ani zależność funkcyjna IdKli → IdTow, ani IdKli → Data. Nie jest więc spełnione założenia twierdzenia o rozkładalności.
Sprz
3b
2a
1a
DataIdKli
πIdKli,IdTow(Sprz) πIdKli,Data(Sprz)
πIdKli,IdTow(Sprz) ´ πIdKli,Data(Sprz)
?
´
Zastosowanie twierdzenie o Zastosowanie twierdzenie o rozkrozkłładalnoadalnośćść –– przykprzykłładad
27
Zastosowanie twierdzenie o Zastosowanie twierdzenie o rozkrozkłładalnoadalnośćść –– przykprzykłład (c.d.)ad (c.d.)
(c) T. Pankowski, Zależności funkcyjne 28
Zastosowanie twierdzenie o Zastosowanie twierdzenie o rozkrozkłładalnoadalnośćść -- przykprzykłład (c.d.)ad (c.d.)
(c) T. Pankowski, Zależności funkcyjne 29
Zastosowanie twierdzenie o Zastosowanie twierdzenie o rozkrozkłładalnoadalnośćść –– przykprzykłład (c.d.)ad (c.d.)
(c) T. Pankowski, Zależności funkcyjne 30
Zastosowanie twierdzenie o rozkZastosowanie twierdzenie o rozkłładalnoadalnośćść–– przykprzykłład podsumowaniead podsumowanie