Bazy danych wykład kursowy Adam Kolany Państwowa Wyższa Szkoła Zawodowa dr.a.kolany@wp.pl 2007/2008
Wielozbiory Definicja Wielozbiory Definicja Niech A będzie dowolnym zbiorem. Wielozbiór elementów A, to dowolna funkcja Nośnik wielozbioru W: W : A N supp(w) df == { x : W(x) 0 }, W df == supp(w) Wielozbiór W jest skończony wtw, gdy supp(w) jest skończony.
Wielozbiory Działania na wielozbiorach Działania na wielozbiorach Definicja Niech W i V będą wielozbiorami elementów zbioru A. (W V) (x) = W(x) + V(x) (W V) (x) = min { W(x), V(x) } (W \ V) (x) = max { W(x) V(x), 0 }
Wielozbiory Działania na wielozbiorach Działania na wielozbiorach, cd. Definicja Niech W będzie wielozbiorem elementów zbioru A i niech V będzie wielozbiorem elementów zbioru B. (W V) ( x, y ) = W(x) V(y)
Wielozbiory Reprezentacja wielozbiorów Reprezentacja wielozbiorów Definicja Niech A będzie zbiorem i niech a A. Definiujemy wielozbiór δ a następująco: { 1, x = a δ a (x) = 0, x a, x A
Wielozbiory Reprezentacja wielozbiorów Definicja [ a 1,..., a n ] = δ a1... δ an
Wielozbiory Reprezentacja wielozbiorów Reprezentacja wielozbiorów, cd. Twierdzenie Niech W będzie skończonym wielozbiorem elementów A. Wówczas istnieją takie a 1,..., a n, że W = [ a 1,..., a n ] Dowód. indukcja względem #supp(w)
Wielozbiory Reprezentacja wielozbiorów Uwaga Niech π będzie permutacją { 1,..., n }. Wówczas [ a 1,..., a n ] = [ a π(1),..., a π(n) ] Dowód. Lączność i przemienność
Atrybuty, dziedziny, tabele Dziedziny Dziedzina Definicja Dziedziną nazywamy układ A, { f A j : j J }, { ρ A i : i I }, gdzie A jest niepustym zbiorem, f A j, j J, są działaniami w A oraz ρa i, i I, są relacjami w A. Zakładamy przy tym, że jedna z relacji jest identycznością.
Atrybuty, dziedziny, tabele Dziedziny Umowa Ustalamy zbiór dopuszczalnych nazw N, nazw atrybutów A oraz indeksowaną rodzinę dziedzin { D a : a A }. D a nazywać będziemy dziedziną atrybutu a A. Zakładamy przy tym, że dziedziny są nieskończone i ponumerowane: D a = { d a n : n = 0, 1, 2, 3,... }
Atrybuty, dziedziny, tabele Krotki Krotki Definicja Niech A będzie zbiorem atrybutów. Krotką o nagłówku A nazywamy dowolną funkcję k : A a A D a, o ile k(a) D a, a A.
Atrybuty, dziedziny, tabele Tabele Tabele Definicja Niech A będzie zbiorem atrybutów. Tabelą/relacją o nagłówku A nazywamy dowolny wielozbiór krotek o nagłówku równym A Tabelą/relacją częściową o nagłówku A nazywamy dowolny wielozbiór krotek o nagłówku zawartym w A
Atrybuty, dziedziny, tabele Tabele Oznaczenia Częściowa tabela maksymalna o nagłówku w A T c (A) rodzina wszystkich krotek o nagłówku w A T c (A) rodzina wszystkich tabel częściowych o nagłówku w A Tabela maksymalna o nagłówku w A T(A) rodzina wszystkich krotek o nagłówku A T(A) rodzina wszystkich tabel o nagłówku A
Atrybuty, dziedziny, tabele Operacje na tabelach Rzutowanie Definicja Niech R T(A) relacją i niech B A. Rzutem R na B jest tabela R B o nagłówku B R B (k) = { R(l) : l B = k }
Atrybuty, dziedziny, tabele Operacje na tabelach Zawężenie Definicja Niech R T(A) i niech B A oraz l T(B). Zawęrzeniem (Restrykcją) { R do l jest tabela R[l], dana wzorem R(k), k B = l R[l](k) = 0, w poz. przyp., k R 2
Atrybuty, dziedziny, tabele Operacje na tabelach Uwaga Niech B A, R T(A) k R B l R (k = l B ) Dowód. k R B 0 (R B )(k) = { R(l) : l B = k } l (R(l) 0 & k = l B ) l R (k = l B )
Atrybuty, dziedziny, tabele Operacje na tabelach Uwaga Niech B 1, B 2 A, R T(A) k R B1 R B2 l1,l 2 R(k B1 = l 1 B1, k B2 = l 2 B2 ) Dowód. k (R B1 ) (R B2 ) 0 ( (R B1 ) (R B2 ) ) (k)(r B1 )(k B1 ) (R B2 )(k B2 ) (R B1 )(k B1 ) 0 & (R B2 )(k B2 ) 0 k B1 R B1 & k B2 R B2 l1,l 2 R(k B1 = l 1 B1, k B2 = l 2 B2 )
Atrybuty, dziedziny, tabele Operacje na tabelach Uwaga Niech R T(A), B C A. Dowód R C R B R C k R B R C l,n R (k C = l C, k B = l B ) l R (k C = l C ) l (k = l C ) k R C
Elementy logiki Systemy formalne Reguły wnioskowania Definicja Regułą wnioskowania w zbiorze E nazywamy relację ρ (E) E dla której dm(ρ)
Elementy logiki Systemy formalne Definicja Reguła r jest finitarna: Π, e r Π skończone
Elementy logiki Systemy formalne Definicja System formalny to układ S = E, R, A, gdzie E jest niepustym zbiorem, A E oraz R jest zbiorem reguł w E
Elementy logiki Systemy formalne Definicja Dowód w systemie S ze zbiorem założeń X E: e 1,..., e n lub 1. e j A X 2. r R Π { e1,...,e j 1 } Π, e j r, j = 1,..., n.
Elementy logiki Systemy formalne Definicja Prv S (X) = = {e E : e1,...,e n e 1,..., e n, e - dowód w S ze zbiorem założeń X}
Elementy logiki Systemy formalne Uwaga S = E, R, A, X, Y E Y Prv S (X), Y, e r R = e Prv S (X) Twierdzenie S = E, R, A, X, Y E X, A Prv S (X) X Y = Prv S (X) Prv S (Y ) Prv S (Prv S (X)) Prv S (X)
Elementy logiki Systemy formalne Definicja S = E, R, A. Reguła r jest wyprowadzalna w S, jeżeli Π, e r e Prv S (Π) Twierdzenie Załóżmy, że r jest wyprowadzalna w S = E, R, A i niech S = E, R { r }, A. Wówczas Prv S = Prv S.
Elementy logiki Przykłady systemów formalnych Przykłady systemów formalnych Klasyczny Rachunek Zdań
Elementy logiki Przykłady systemów formalnych Klasyczny Rachunek Zdań Formuły Fml(P) : P Fml(P) α Fml(P) ( α) Fml(P) α, β Fml(P) (α β) Fml(P), {,,, }
Elementy logiki Przykłady systemów formalnych Klasyczny Rachunek Zdań Aksjomaty KRZ Ax 1. p (q p) Ax 2. [p (q r)] [(p q) (p r)] Ax 3. (p q) [(p r) (p q r)] Ax 4. p q p, Ax 5. p q q Ax 6. (p q) [(r q) (p r q)] Ax 7. p p q, Ax 8. q p q Ax 9. (p q) [(q p) (p q)] Ax 10. (p q) (p q), Ax 11. (p q) (q p) Ax 12. p ( p q), Ax 13. (p p) p Ax 14. p p
Elementy logiki Przykłady systemów formalnych Reguły r o : r : α, α β β α h(α), h : P Fml(P) α, β Fml(P)
Elementy logiki Przykłady systemów formalnych Przykład p p jest tezą KRZ 1. (p (q s)) ((p q) (p s)) Ax 2 2. (p ((p p) p)) ((p (p p)) (p p)) 1, q / p p, s / p, 3. p (q p) Ax 1 4. p ((p p) p) 3, q / p p 5. (p (p p)) (p p) r o (2, 4) 6. p (p p) 3, q / p 7. p p r o (5, 6)
Elementy logiki Przykłady systemów formalnych Klasyczny Rachunek Kwantyfikatorów
Elementy logiki Przykłady systemów formalnych Języki I-rzędu Definicja L = V, C, F, P, ς, ς : P F { 1, 2, 3,... } V = { x 0, x 1, x 2,... }
Elementy logiki Przykłady systemów formalnych Termy Trm(L) : V, C Trm(L) τ 1,..., τ n Trm(L) fτ 1... τ n Trm(L), ς(f) = n
Elementy logiki Przykłady systemów formalnych Formuły Frm(L) : τ 1,..., τ n Trm(L) Pτ 1... τ n Trm(L), ς(p) = n τ, σ Trm(L) τ = σ Frm(L), α Frm(L) ( α), ( xk α), ( xk α) Frm(L) α, β Frm(L) (α β) Frm(L), {,,, }
Elementy logiki Przykłady systemów formalnych Aksjomaty identyczności Eq 1 (a) s = s Eq 1 (b) s = t s = r t = r, Eq 2 (a) s 1 = t 1... s n = t n ( ) p (n) s 1... s n p (n) t 1... t n Eq 2 (b) s 1 = t 1... s n = t n ( ) f (n) s 1... s n = f (n) t 1... t n,.
Elementy logiki Przykłady systemów formalnych Aksjomaty logiczne gdzie Ax 1 (a) xm δ δ[ xm / τ ] Ax 1 (b) δ[ xm / τ ] xm δ Ax 2 (a) xn (α β) ( xn α β) Ax 2 (b) xn (β α) (β xn α) x m Ff(τ, δ), x n Vf(α) Ax 3 : podstawienia tautologii zdaniowych
Elementy logiki Przykłady systemów formalnych Klasyczny Rachunek Kwantyfikatorów Reguły r o : r : α, α β β α ( xk α), α, β Frm(L)
Elementy logiki Przykłady systemów formalnych Klasyczny Rachunek Kwantyfikatorów Przykładowy dowód α x n α, x n α α, xn ( xn α α ), x n α xn α, xn α α, α xn α, xn ( α xn α ), xn α xn α, xn α xn α, x n α xn α.
Zależności, schematy relacyjne Język zależności Język zależności Niech A będzie ustalonym nagłówkiem Definiujemy język L dep (A) = V, (A),, {,, 1, 2,... }, ς gdzie ς( ) = ς( ) = 2, ς( n ) = n
Zależności, schematy relacyjne Język zależności Umowa Zakładamy odtąd, że wszelkie rozważane relacje są płaskie.
Zależności, schematy relacyjne Język zależności Zależności Definicja Zależność funkcyjna w L dep (A), to formuła postaci: X Y, X, Y (A) Zależność wielowartościowa w L dep (A), to formuła postaci: X Y, X, Y (A)
Zależności, schematy relacyjne Język zależności Definicja Zależność złączeniowa w L dep (A), to formuła postaci: n X 1 X 2... X n, X 1,..., X n (A)
Zależności, schematy relacyjne Język zależności Schemat relacyjny Definicja Schematem relacyjnym, jest para A, D, gdzie D jest zbiorem zależności w L dep (A)
Zależności funkcyjne Spełnianie Spełnianie Definicja Relacja R T(A) spełnia zależność X Y, jeśli dla dowolnych k, l R zachodzi k X = l X = k Y = l Y Ozn. R = X Y Relacja R T(A) spełnia zbiór zależności D jeśli spełnia każdą z zależności tego zbioru. Ozn. R = D.
Zależności funkcyjne Spełnianie Wynikanie logiczne Definicja Relacja R jest relacją schematu Σ = A, D, jeżeli jej nagłówkiem jest A i spełnia ona zależności z D Ozn. R Rel(Σ) Zależność δ wynika logicznie ze schematu Σ, jeśli jest ona prawdziwa w każdej relacji schematu Σ. Ozn. Σ = δ, D = A δ.
Zależności funkcyjne Zależności trywialne Zależności trywialne Uwaga Zależność X Y jest prawdziwa w schemacie A, wtw, gdy Y X. ( ) k X = l X (k X ) Y = (l X ) Y k Y = k X Y = (k X ) Y = (l X ) Y = l X Y = l Y
Zależności funkcyjne Zależności trywialne ( ) Niech Y X i niech d x 0, k(x) = d x 0, x A oraz l(x) = d x 1, x X x A \ X Niech dalej Wówczas R = [ k, l ]. R = X Y.
Zależności funkcyjne Zależności trywialne Tryw(A) df == { X Y : Y X A }
Zależności funkcyjne System Armstronga System Armstronga Definicja S Arm (A) = Func(A), { r A ext, r A } trans, Tryw(A) r ext : Oznaczenie: X Y X Z Y Z, r trans : X Y, Y Z X Z X, Y, Z A. A, F f, F A f f Prv SArm (A)(F)
Zależności funkcyjne System Armstronga Sumowanie, pseudoprzechodniość, rozkładanie Następujące reguły są wyprowadzalne w S Arm (A) (Sumowanie) X Y, X Z X Y Z (Pseudoprzechodniość) X Y, W Y Z X W Z (Rozkładanie) X Y X Z, Z Y
Zależności funkcyjne System Armstronga Sumowanie, pseudoprzechodniość, rozkładanie Dowód Sumowanie 1. X Y zał 2. X X Y r ext (1) 3. X Z zał 4. X Y Y Z r ext (3) 5. X Y Z r trans (2, 4) Pseudoprzechodniość 1. X Y zał 2. X W Y W r ext (1) 3. W Y Z zał 4. X W Z r trans (2, 3) Rozkładanie 1. X Y zał 2. Y Z aks 3. X Z r trans (1, 2)
Zależności funkcyjne System Armstronga Sumowanie, pseudoprzechodniość, rozkładanie Wniosek Σ X Y (Σ X y) y Y dowód ( ) Aksjomat + przechodniość ( ) Indukcja na wielkość Y i sumowanie.
Zależności funkcyjne Zgodność systemu Armstronga Adekwatność Definicja Reguła r w L dep (A) jest adekwatna, jeśli Π = A δ dla Π, δ r
Zależności funkcyjne Zgodność systemu Armstronga Twierdzenie Formuły r ext i r trans są adekwatne. Dowód. r ext R = A X Y R = A XZ YZ? k XZ = l XZ k X = l X k Z = l Z k Y = l Y k Z = l Z k YZ = k Y k Z = l Y l Z = l YZ k YZ = l YZ R = A XZ YZ
Zależności funkcyjne Zgodność systemu Armstronga Dowód. r trans R = A X Y, Y Z R = A X Z? k X = l X k Y = l Y k Z = l Z R = A X Z
Zależności funkcyjne Zgodność systemu Armstronga Twierdzenie o zgodności Twierdzenie (Zgodność) S f S = f Dowód. [indukcja względem długości dowodu]
Zależności funkcyjne Pełność systemu Armstronga Twierdzenie o pełności Twierdzenie (pełność) S = f S f
Zależności funkcyjne Pełność systemu Armstronga Domknięcie zbioru atrybutów Definicja [X] + S = { x A : S X { x } }
Zależności funkcyjne Pełność systemu Armstronga Twierdzenie S X Y Y [X] + S Dowód. zwrotność i sumowanie
Zależności funkcyjne Pełność systemu Armstronga Dowód twierdzenia o pełności Dowód twierdzenia o pełności Niech S = A, F i załóżmy, że S X Y. Wówczas Y [X] + S. Niech d x 0, x [X] + k(x) = d x S 0, x A oraz l(x) = d x 1, x A \ [X] + S i niech dalej Wówczas R = F, ale R = [ k, l ]. R = X Y.
Zależności funkcyjne Reprezentacja boolowska Reprezentacja boolowska zależności funkcyjnych Definicja P A = { p x : x A } (X Y) df == { px : x X } { py : y Y } F df == { f : f F }
Zależności funkcyjne Reprezentacja boolowska Wynikanie logiczne formuł zdaniowych Przypomnienie Niech Φ będzie zbiorem formuł zdaniowych, a ϕ formułą zdaniową. Φ = ϕ h:p { 0,1 } (h Φ { 1 } h(ϕ) = 1)
Zależności funkcyjne Reprezentacja boolowska Definicja Niech h : P A { 0, 1 }. Definiujemy R h = [ k h, l h ], gdzie k h (x) = d x 0, x A oraz l h (x) = d x 1 h(p x), x A
Zależności funkcyjne Reprezentacja boolowska Lemat Niech W A. ( Mamy: ) h { pw : w W } = 1 k h W = l h W Dowód. h ( { pw : w W }) = 1 w W (h(p w )) = 1) w W (k h (w) = d w 0 = d w 1 h(p = w) lh (w) k h W = l h W
Zależności funkcyjne Reprezentacja boolowska Lemat Niech W, V A. ( Wówczas: h (U V) ) = 1 R h = U V Dowód. ) h ((U V) = 1 ( k h U = l h U k h V = l h V ) ( h( p u ) = 1 h( ) p v ) = 1 u v R h = U V
Zależności funkcyjne Reprezentacja boolowska Twierdzenie o reprezentacji Twierdzenie F A f F = f
Zależności funkcyjne Reprezentacja boolowska dowód. Niech f = X Y. ( ) Załóżmy, że F A f i niech h F { 1 } ) Niech dalej U V F. Wówczas h ((U V) = 1, skąd R h = U V. Czyli R h = F, a co za tym idzie, R h = X Y. ) Wobec tego h ((X Y) = 1, czyli F = f.
Zależności funkcyjne Reprezentacja boolowska ( ) Załóżmy, że F = f i niech h : P A { 0, 1 } dane będzie wzorem: h(p x ) = 1 x [X] + A,F, x A Niech teraz U V F i niech h( p u ) = 1. Wówczas U [X] + A,F, u skąd także V [X] + A,F. Czyli h( p v ) = 1. v ) Tym samym wykazaliśmy, że h ((U V) = 1, dla zależności z F. Czyli, że h F { 1 }. Wobec ( tego h (X Y) ) = 1. Ponieważ X [X] + A,F, h( p x ) = 1, skąd h( p y ) = 1. Czyli Y [X] + A,F, a stąd F A X Y. x y
Zależności funkcyjne Reprezentacja boolowska Zastosowanie - nietwórczość atrybutów Uwaga Niech Atr(F) B A. Wówczas Jeśli X, Y B, to F A X Y F B X Y. Jeśli (XY) Atr(F) =, to F A X Y Y X
Zależności funkcyjne Wyznaczanie domknięć, kluczy i pokryć Wyznaczanie domknięcia Przykład N nauczyciel T termin S sala K klasa L lekcja P 1 df == { N, T, S, K, L }, { NT K, T S N, T K S, N L } P 2 df == { N, T, S, K, L }, { N L, T K N, T S N }
Zależności funkcyjne Wyznaczanie domknięć, kluczy i pokryć Uwaga X = (α β) X, α, β Cons
Zależności funkcyjne Wyznaczanie domknięć, kluczy i pokryć Zadanie Wyznacz domknięcie NT w P 1 Mamy F1 : 1. n + t + k 2. t + s + n 3. t + k + s 4. n + l Szukamy takiego maksymalnego zbioru { A 1,..., A n } { N, T, S, K, L }, że F 1 { n, t } { a 1 + + a n } jest sprzeczny.
Zależności funkcyjne Wyznaczanie domknięć, kluczy i pokryć Rozwiązanie Mamy: 1. n + t + k 2. t + s + n 3. t + k + s 4. n + l 5. n 6. t 7. k z 1,5,6 8. l z 4,5 9. s z 3,6,7 Widzimy, że dołożenie n + t + k + l + s usprzecznia zadanie. Czyli [NT ] + P 1 = NT KLS
Zależności funkcyjne Wyznaczanie domknięć, kluczy i pokryć Klucze Definicja Nadkluczem schematu S = A, D jest takie K A, że [K] + S = A. Klucz, to minimalny nadklucz.
Zależności funkcyjne Wyznaczanie domknięć, kluczy i pokryć Wyznaczanie kluczy Zadanie Znajdź klucze schematu P 2. Mamy: 1. n + l 2. t + k + n 3. t + s + l 4. n + t + k + l + s 5. n + t + k + s z 1,4 6. t + k + s z 2,5 Widzimy, że kluczem tutaj jest T KS.
Zależności funkcyjne Wyznaczanie domknięć, kluczy i pokryć Wyznaczanie (nad)kluczy Zadanie Znajdź klucze schematu P 1. Mamy: 1. n, t, k 2. t, s, n 3. t, k, s 4. n, l 5. n, t, k, l, s 6. n, t, l, s z 1,5 7. t, l, s z 2,5 8. t, k, l z 3,7 9. t, k, n z 4,8 Widzimy, że kluczemi tutaj są T LS, T KL i T KN.
Zależności funkcyjne Wyznaczanie domknięć, kluczy i pokryć Uwaga K jest nadkluczem wtw, gdy rezolwenta F, { p x : x A } zawiera { p x : x K }
Zależności funkcyjne Wyznaczanie domknięć, kluczy i pokryć Równoważność schematów Definicja Schematy S 1 = A, D 1 i S 2 = A, D 2 są równoważne, jeśli (Ozn. S 1 S 1 ) Rel(S 1 ) = Rel(S 2 )
Zależności funkcyjne Wyznaczanie domknięć, kluczy i pokryć Uwaga Schematy S 1 = A, D 1 i S 2 = A, D 2 są równoważne wtw, gdy D 1 = A D 2 oraz D 2 = A D 1 Dowód ( ) Niech { i, j } = { 0, 1 } R = D i R Rel(S i ) = Rel(S j ) R = D j Więc D i = A D j. ( ) To jest oczywiste.
Zależności funkcyjne Wyznaczanie domknięć, kluczy i pokryć Przykład P 1 P 2 bo P 2 NT K
Zależności funkcyjne Wyznaczanie domknięć, kluczy i pokryć Pokrycia nieredundantne Definicja Zależność X Y schematu S = A, D jest pełna, jeśli Y jest jednoelementowy oraz S Z Y dla Z X Zbiór zależności pełnych G jest pokryciem nieredundantnym schematu S, jeśli A, G S, ale A, G 1 S, dla G 1 G.
Zależności funkcyjne Wyznaczanie domknięć, kluczy i pokryć Wyznaczanie pokrycia Zadanie Wyznacz pokrycie ABCDEG, F, gdzie F = { AB C, C A, BC D, ACD B, D EG, BE C, CG BD, CE AG }
Zależności funkcyjne Anomalie Anomalie Skutki redundancji anomalie aktualizacji anomalie usuwania anomalie dopisywania
Zależności funkcyjne Anomalie R Nazwa (N) Adres (A) Towar (T) Cena (C) Ajax Akacjowa 15 Rower 1200 Bendix Źródlana 3 Skuter 800 Ajax Akacjowa 15 Lódka 3000 Bendix Źródlana 3 Rower 1100 Rymer Akacjowa 15 Maluch 500 Centor Polna 6 Lódka 2600 Leszcz Źródlana 16 Klucz: NT. N A, NT C
Zależności funkcyjne Anomalie R NA Nazwa Adres Ajax Akacjowa 15 Bendix Źródlana 3 Rymer Akacjowa 15 Centor Polna 6 Leszcz Źródlana 16 R NTC Nazwa Towar Cena Ajax Rower 1200 Bendix Skuter 800 Ajax Lódka 3000 Bendix Rower 1100 Rymer Maluch 500 Centor Lódka 2600 R (R NA ) (R NTC )
Zależności funkcyjne Anomalie Uwaga R NT A = N A
Zależności funkcyjne Anomalie Uwaga R = X Y R XY = X Y Dowód ( ) k, l R XY, k X = l X k1,l 1 R(k 1 XY = k, l 1 XY = l) k 1 X = l 1 X k Y = k 1 Y = l 1 Y = l Y ( ) k, l( R, ) k X = l X k XY, l XY R XY, k XY X = ( ) l XY X ( ) k XY Y = ( ) l XY Y k Y = k Y
Zależności funkcyjne Rozkładalność Rozkładalność Twierdzenie (Heath) Jeśli Σ X Y, to R (R XY ) (R XZ ), dla R Rel(Σ), gdzie Z = A \ XY.
Zależności funkcyjne Rozkładalność Dowód. ( ) Zachodzi zawsze. ( ) Niech k (R XY ) (R XZ ). Wówczas istnieją m, n R, że m XY = k XY i n XZ = k XZ Stąd, w szczególności, m X = k X = n X. Ponieważ R = X Y, m Y = n Y, Skąd k = k X k Y k Z = n X m Y n Z = n X n Y n Z = n R
Zależności funkcyjne Rozkładalność Twierdzenie Jeśli R (R XY ) (R XZ ), dla R Rel(Σ), gdzie Z = A \ XY, to Σ X Y lub Σ X Z
Zależności funkcyjne Rozkładalność Dowód. Niech R = [ k, l ], gdzie k(x) = d x 0, x A, zaś l(x) = d x 0, gdy x [X] + Σ oraz l(x) = d x 1, gdy x A \ [X] + Σ. Jak pamiętamy, R jest relacją schematu Σ, więc (R XY ) (R XZ ) R Ale l XY k XZ (R XY ) (R XZ ), więc l XY k XZ = k lub l XY k XZ = l. df Niech Y 0 == Y \ X. W pierszym wypadku l XY k XZ = k (l XY k XZ ) Y0 = k Y0 l Y0 = k Y0 skąd Y 0 [X] + Σ, a co za tym idzie, Σ X Y 0. Czyli także Σ X Y.
Zależności funkcyjne Rozkładalność W drugim przypadku, mamy: l XY k XZ = l (l XY k XZ ) Z = l Z k Z = l Z skąd Z [X] + Σ, a co za tym idzie, Σ X Z.
Zależności funkcyjne Rozkładalność Definicja Rozkładem odwracalnym schematu Σ jest zbiór A 1,..., A n A, dla którego R (R A1 )... (R An )
Zależności funkcyjne Rozkładalność Rozstrzyganie odwracalności Twierdzenie Istnieje algorytm rozstrzygający, czy A 1,..., A n A jest rozkładem odwracalnym schematu Σ.
Zależności funkcyjne Rozkładalność Przykład Zadanie Zbadać odwracalność rozkładu AB, AD, BE, CDE, AE schematu Σ = ABCDE, F, gdzie F == df { A C, B C, C D, CE A, DE C }
Zależności funkcyjne Rozkładalność Rozwiązanie k (R AB ) (R AD ) (R BE ) (R CDE ) (R AE ) k1,...,k 5 R k AB = k 1 AB k AD = k 2 AD k BE = k 3 BE k CDE = k 4 CDE k AE = k 5 AE
Zależności funkcyjne Rozkładalność A B C D E k 1 a b k 2 a d k 3 b e k 4 c d k 5 a e
Zależności funkcyjne Rozkładalność A B C D E a b 1 2 3 a 4 5 d 6 7 b 8 9 e 10 11 c d e a 12 13 14 e F : A C, B C, C D, CE A, DE C
Zależności funkcyjne Rozkładalność Rozwiązanie, cd. A B C D E a b 1 2 3 a 4 1 d 6 7 b 8 9 e 10 11 c d e a 12 1 14 e F : A C, B C, C D, CE A, DE C
Zależności funkcyjne Rozkładalność Rozwiązanie, cd. A B C D E a b 1 2 3 a 4 1 d 6 7 b 1 9 e 10 11 c d e a 12 1 14 e F : A C, B C, C D, CE A, DE C
Zależności funkcyjne Rozkładalność Rozwiązanie, cd. A B C D E a b 1 d 3 a 4 1 d 6 7 b 1 d e 10 11 c d e a 12 1 d e F : A C, B C, C D, CE A, DE C
Zależności funkcyjne Rozkładalność Rozwiązanie, cd. A B C D E a b c d 3 a 4 c d 6 7 b c d e 10 11 c d e a 12 c d e F : A C, B C, C D, CE A, DE C
Zależności funkcyjne Rozkładalność Rozwiązanie, cd. A B C D E a b c d 3 a 4 c d 6 a b c d e a 11 c d e a 12 c d e k = k 3 Rozkład jest odwracalny.
Zależności funkcyjne Zachowywanie zależności Rzut zbioru zależności Definicja Niech Σ = A, D będzie schematem. Rzutem schematu Σ na B A jest zbiór π B (Σ) df == { δ dep(b) : Σ = δ } Rozkład odwracalny A 1,..., A n zachowuje zależności D, jeśli π A1 (Σ)... π An (Σ) = D
Zależności funkcyjne Zachowywanie zależności Uwaga Niech B A, R Rel(Σ).Wówczas R B = π B (Σ)
Zależności funkcyjne Zachowywanie zależności Uwaga Jeśli C Atr(F) =, to π C (Σ) = Tryw(C) π Atr(F) (Σ) = Prv ΣArm (Atr(F))(F) Dowód Z reprezentacji boolowskiej i interpolacji Craiga. Z twierdzenia o nietwórczości.
Zależności funkcyjne Zachowywanie zależności Zachowywanie zależności Algorytm Dane: Σ { = A, F, A 1,..., A n, X Wynik: x A : } j π A j (Σ) = A X x = [X] + Program; begin repeat Z :=Z; until Z=Z ; return(x) end. Z:= n j=1 ( Aj [X A j ] + Σ) ;X:=X Z; j π A j (Σ)
Zależności funkcyjne Zachowywanie zależności Przykład Czy rozkład AB, BC, CD zachowuje zależności: F == df { A B, B C, C D, D A } Mamy: A B π AB (F), B C π BC (F), C D π CD (F)
Zależności funkcyjne Zachowywanie zależności Przykład Wyznaczamy [D] + π AB (F) π BC (F) π CD (F) D D (AB [AB D] + ) (BC [BC D] + ) (CD [CD D] + ) = D (CD [D] + ) = D (CD ABCD) = CD CD CD (AB [AB CD] + ) (BC [BC CD] + ) (CD [CD CD] + ) = CD (BC [C] + ) (CD [D] + ) = CD (BC ABCD) (CD ABCD) = BCD BCD BCD (AB [AB BCD] + ) (BC [BC BCD] + ) (CD [CD BCD] + BCD (AB [B] + ) (BC [BC] + ) (CD [CD] + ) = BCD (AB ABCD) (BC ABCD) (CD ABCD) = ABCD
Zależności funkcyjne Postacie normalne Atrybuty kluczowe Definicja Atrybut kluczowy (główny), to element pewnego klucza.
Zależności funkcyjne Postacie normalne Druga postać normalna Definicja Schemat jest w drugiej postaci normalnej, jeśli każdy atrybut niekluczowy jest w pełni zależny od każdego z kluczy. Ozn. Σ 2NF
Zależności funkcyjne Postacie normalne W tabeli a b c a 1 b 1 c 1 a 2 b 1 c 1 a 3 b 2 c 2 a 3 b 1 c 1 ab jest kluczem, c jest niekluczowy, a ab c nie jest pełna, bo R = b c.
Zależności funkcyjne Postacie normalne Zależności przechodnie Definicja Zależność X Y schematu Σ jest przechodnia, jeśli istnieje Z takie, że X Z, Z Y są nietrywialnymi zależnościami w Σ oraz, że Z X nie jest zależnością Σ. Zależność bezpośrednia, to zależność nie będąca przechodnią.
Zależności funkcyjne Postacie normalne R = a b c, R = b a k, l : k(b) = l(b) i k(a) l(a) k(c) = l(c) a b c a 1 b 1 c 1 a 2 b 1 c 1
Zależności funkcyjne Postacie normalne Trzecia postać normalna Definicja Schemat jest w trzeciej postaci normalnej, jeśli każdy atrybut niekluczowy jest w pełni bezpośrednio zależny od każdego z kluczy. Ozn. Σ 3NF
Zależności funkcyjne Postacie normalne Uwaga Schemat jest w trzeciej postaci normalnej, jeśli każda nietrywialna zależność atrybutu niekluczowego jest zależnością od nadklucza
Zależności funkcyjne Postacie normalne Dowód ( ) Niech Σ = X x będzie nietrywialną zależnością dla atrybutu niekluczowego x i niech K X będzie kluczem. Wówczas K X x jest ciągiem zależności nietrywialnych. Ponieważ Σ 3NF, mamy Σ = X K. Czyli X jest nadkluczem.
Zależności funkcyjne Postacie normalne ( ) Załóżmy, że każda zależność nietrywialna atrybutu niekluczowego jest zależnością od nadklucza i niech Σ = X Y, Y x będą nietrywialne, gdzie x jest niekluczowy. Wówczas jednak Y jest nadkluczem, skąd Σ = Y X. Tym sposobem, Σ 3NF.
Zależności funkcyjne Postacie normalne Postać normalna Boyce a-codda-kenta Definicja Schemat jest w postaci normalnej Boyce a-codda-kenta, jeśli każda jego nietrywialna zależność jest zależnością od nadklucza. Ozn. Σ BCNF
Zależności funkcyjne Postacie normalne Przykład a b c 0 0 0 1 0 0 0 1 1 2 2 0 b c, ac b, c a, a c Klucze: ab, ac.
Zależności funkcyjne Synteza i rozkład Synteza i rozkład Pankowski, Podstawy Baz Danych, PWN 1992
Zależności wielowartościowe Definicje i własności Zależności wielowartościowe Przykład podręcznik przedmiot uczeń profesor Gleichgewicht algebra Paweł Mądrala Gleichgewicht algebra Wojtek Mądrala R Gleichgewicht algebra Józek Pogodny Gleichgewicht algebra Piotr Pogodny Mostowski algebra Paweł Mądrala Mostowski algebra Wojtek Mądrala Mostowski algebra Józek Pogodny Mostowski algebra Piotr Pogodny Gleichgewicht algebra Stefan Mądrala Mostowski algebra Stefan Mądrala Fichtenholz analiza Piotr Mądrala Fichtenholz analiza Wojtek Mądrala Fichtenholz analiza Paweł Pogodny Fichtenholz analiza Józek Pogodny [{ prz algebra, prof Mądrala, uczen Piotr }] podr = R[{ prz algebra, prof Mądrala }] podr = = R[{ prz algebra, prof Pogodny }] podr = = R[{ prz algebra }] podr = = { Gleichgewicht, Mostowski } R[{ uczen Paweł }] podr = = { Gleichgewicht, Mostowski, Fichtenholz } R[{ uczen Paweł, prz algebra }] podr = { Gleichgewicht, Mostowski } =
Zależności wielowartościowe Definicje i własności Zależności wielowartościowe Definicja Relacja R T(A) spełnia zależność X Y, jeśli R[r XZ ] Y R[r X ] Y, dla dowolnej r R, gdzie Z df == A \ XY. Ozn. R = X Y
Zależności wielowartościowe Definicje i własności Uwaga R = X Y R[r X ] Y R[r XY ] Y dowód XZ = X (X Y) = X (X Y ) = X Y
Zależności wielowartościowe Definicje i własności Uwaga R = X Y R[r X ] Y R[r XC ] Y, C Y
Zależności wielowartościowe Definicje i własności Dowód ( ) k R[r X ] Y k = l Y, l R[r X ] R[r XY ] l XY = r XY l XC = r XC l R[r XC ] k R[r XC ] Y ( ) k R[r XC ] Y k = l Y, l R[r XC ] l XC = r XC l X = r X l R[r X ] k R[r X ] Y
Zależności wielowartościowe Definicje i własności Uwaga R = X Y wtw., gdy dla dowolnych krotek k, l R spełniających k X = l X, istnieje krotka m R, dla której k XY = m XY i l XZ = m XZ, gdzie Z = A \ (XY).
Zależności wielowartościowe Definicje i własności Dowód. ( ) Niech k, l R, k X = l X Mamy k R[l X ] k Y R[l X ] Y R[l XZ ] Y Istnieje zatem ( ) m R[l XZ ] takie, że m Y = k Y. Z ( ) jednak mamy m XZ = l XZ, skąd m XY = k XY, m XZ = l XZ.
Zależności wielowartościowe Definicje i własności ( ) ( ) Niech k R[r XZ ]. Wówczas k XZ = r XZ. Niech m R, spełnia m XY = k XY, m XZ = r XZ. W szczególności m R[r X ] oraz k Y R[r X ] Y. ( ) Niech k R[r X ]. Wówczas k R oraz k X = r X. Wobec tego istnieje m R, dla którego m XY = k XY, m XZ = r XZ. Wówczas m R[r XZ ] oraz k Y R[r XZ ] Y.
Zależności wielowartościowe Definicje i własności Rozkładalność Twierdzenie R = X Y R (R XY ) (R XZ )
Zależności wielowartościowe Definicje i własności Dowód. ( ) Niech n (R XY ) (R XZ ). Istnieją takie k, l R, że n XY = k XY oraz n XZ = l XZ. Istnieje m R, dla którego m XY = k XY i m XZ = l XZ Wtedy n = n XY n Z = k XY l Z = m XY m Z = m R
Zależności wielowartościowe Definicje i własności ( ) Niech k, l R i niech k X = l X. Wówczas k XY l XZ (R XY ) (R XZ ) R. Czyli m == df k XY l XZ jest szukaną krotką.
Zależności wielowartościowe Definicje i własności Wniosek gdzie Z = A \ (XY). R = X Y R = X Z,
Zależności wielowartościowe Definicje i własności Dowód. Mamy R = X Z R (R XZ ) (R X(XZ) ) = (R XZ ) (R XY ) = (R XY ) (R XZ ) R = X Y
Zależności wielowartościowe Definicje i własności Uwaga Zależność X Y jest trywialna wtw, gdy X Y = A lub Y X
Zależności wielowartościowe Definicje i własności Dowód. ( ) Niech Z df == A \ XY. Jeśli X Y = A, to Z =. Wtedy (R XY ) (R XZ ) = R (R X ) R Jeśli Y X, to X Z = A.Wtedy (R XY ) (R XZ ) = (R X ) R R
Zależności wielowartościowe Definicje i własności Dowód. ( ) Załóżmy, że X Y jest trywialna. Niech Z == df A \ XY i niech k(x) = d x 0, x A oraz niech l(x) = d x 0, x X, i l(x) = d x 1, x A \ X. Wówczas n == df k XY l XZ (R XY ) (R XZ ) R == df [ k, l ]. Jeśli n = k, to k Z = n Z = (k XY l XZ ) Z = l Z, skąd Z =, a co za tym idzie X Y = A. Jeśli zaś n = l, to l Y\X = n Y\X = (k XY l XZ ) Y\X = k Y\X, skąd Y \ X =, a co za tym idzie Y X.
Zależności wielowartościowe Definicje i własności Definicja D, δ zależności funkcyjne i wielowartościowe: D = A δ R (R = D R = δ)
Aksjomatyka dla zależności wielowartościowych Reguły systemu S MVD (A) Twierdzenie Następujące reguły są niezawodne: (Dopełnianie) r A compl : (Rozszerzanie MVD) r A mvext : (Przechodniość MVD) X Y X Z r A mvtrans :, Z = A \ XY X Y, W V XW YV X Y, Y Z X Z \ Y
Aksjomatyka dla zależności wielowartościowych Reguły systemu S MVD (A) Twierdzenie, cd. Następujące reguły są niezawodne: r mvfunc,1 : X Y X Y r mvfunc,2 : X Y, W Z X Z, Z Y, W Y =
Aksjomatyka dla zależności wielowartościowych Reguły systemu S MVD (A) dowód dopełnianie Mamy R = X Y R (R XY ) (R XZ ) R (R XZ ) (R XY ) R = X Z
Aksjomatyka dla zależności wielowartościowych Reguły systemu S MVD (A) dowód rozszerzanie Załóżmy, że R = X Y, U V. Niech dalej k, l R spełniają k XU = l XU. Stąd w szczególności k V = l V. Ponieważ także k X = l X, istnieje m R, spełniający m XY = k XY i m XY = l XY Mamy m XUYV = m XY m (UV) (XY) = k XY m (UV) X Y = = k XY l (UV) X Y = k XY k (UV) X Y = = k XUYV.
Aksjomatyka dla zależności wielowartościowych Reguły systemu S MVD (A) dowód rozszerzanie, cd. Dalej m XU(YV) = m (XU)Y V = m Y V m (XU) (Y V ) = = l Y V m (XU) (YV) = = l Y V m X (YV) m U X (YV) = = l Y V l X (YV) m U X Y m U X V Y = = l Y V l X (YV) k U X Y l U X V Y = = l Y V l X (YV) l U X Y l U X V Y = = l XU(YV). Czyli R = XU YV.
Aksjomatyka dla zależności wielowartościowych Reguły systemu S MVD (A) dowód przechodniość Niech R = X Y, Y Z i niech k, l R spełniają k X = l X. Istnieją zatem m, n R, że m XY = l XY i m XY = k XY oraz n YZ = m YZ i n YZ = l YZ Mamy n X(Z\Y) = n X n Z Y = k Z Y n X Z n X Z = = k Z Y n X Z l X Z = k Z Y n X Z k X Z = = k (Z Y )(X Z ) n X Z = k (Z Y )(X Z ) m X Z = = k (Z Y )(X Z ) k X Z = k X(Z\Y)
Aksjomatyka dla zależności wielowartościowych Reguły systemu S MVD (A) dowód przechodniość (m XY = l XY, m XY = k XY, n YZ = m YZ, n YZ = l YZ ) Mamy n X(Z\Y) = n XZ Y = n X Z n YZ = n X Z l YZ = = m X Z l YZ = l X Z l YZ = l X(Z\Y)
Aksjomatyka dla zależności wielowartościowych Reguły systemu S MVD (A) dowód r mvfunc,1 Było: R = X Y R (R XY ) (R XZ ) R = X Y
Aksjomatyka dla zależności wielowartościowych Reguły systemu S MVD (A) dowód r mvfunc,2 Niech Z Y i niech W Y =. Niech także R = X Y, W Z oraz niech k, l R spełniają k X = l X. Istnieje m R, dla którego m XY = k XY i m XY = l XY Ponieważ W Y, także m W = l W, skąd m Z = l Z. Skoro Z Y, mamy k Z = m Z = l Z
Aksjomatyka dla zależności wielowartościowych System formalny S MVD (A) System formalny S MVD (A) Definicja S MVD (A) df == MVD(A) Func(A), { r A ext, r A trans, r A compl, r A mvext, r A mvtrans, r A mvfunc,1, ra mvfunc,2, }, Tryw MVD (A) Niech Σ = A, D, D MVD(A) Func(A) Σ d, D A d d Prv SMVD (A)(D)
Aksjomatyka dla zależności wielowartościowych Twierdzenie o zgodności dla S MVD (A) Twierdzenie o zgodności dla S MVD (A) Twierdzenie Σ δ Σ = δ Dowód. indukcja na długość wywodu
Aksjomatyka dla zależności wielowartościowych Baza zależności Twierdzenie Następujące reguły są wyprowadzalne w S MVD (A): 1 X Y X Y 2 X Y, X Z X YZ 3 X Y, X Z X (Y Z)
Aksjomatyka dla zależności wielowartościowych Baza zależności Dowód. Ad. (1) 1. X Y założenie 2. Y A aksjomat 3. X A \ Y r mvtrans
Aksjomatyka dla zależności wielowartościowych Baza zależności Dowód. Ad. (2) 1. X Y założenie 2. X XY r mvext (1) 3. X Z założenie 4. X Z p. (1), 3 5. XY YZ r mvext (4) 6. X (YZ ) \ (XY) r mvtrans (2, 5) 7. X X Y Z (YZ ) \ (XY) = X Y Z 8. X X Y Z aksjomat 9. X Y Z r mvext (7, 8) 10. X YZ p. (1), 9
Aksjomatyka dla zależności wielowartościowych Baza zależności Uwaga Niech Σ = A, D i niech X, Y A. Σ X Y Σ X Y \ X Dowód. ( ) ( ) X Y, X X X Y \ X X Y \ X, X Y X X Y
Aksjomatyka dla zależności wielowartościowych Baza zależności Wniosek Niech Σ = A, D i niech X A. Zbiór B Σ (X) df == { Y A : Σ X Y } jest podalgebrą Boole a algebry (X).
Aksjomatyka dla zależności wielowartościowych Pełność systemu S MVD (A) Pełność systemu S MVD (A) Twierdzenie Niech Σ = A, D. Σ = δ Σ δ
Aksjomatyka dla zależności wielowartościowych Pełność systemu S MVD (A) Silne twierdzenie o pełności Uwaga Niech Σ = A, D. Istnieje relacja R, dla której R = δ Σ δ dla dowolnej zależności δ Func(A) MVD(A).
Aksjomatyka dla zależności wielowartościowych Reprezentacja boolowska Reprezentacja boolowska Definicja Niech X, Y A i niech (X Y) df == p x p y + x X y Y z Y p z
Aksjomatyka dla zależności wielowartościowych Reprezentacja boolowska Twierdzenie o reprezentacji boolowskiej Twierdzenie Niech Σ = A, D. D = A δ D = δ
Aksjomatyka dla zależności wielowartościowych Czwarta postać normalna Czwarta postać normalna Definicja Schemat S = A, D jest w czwartej postaci normalnej, jeśli każda nietrywialna zależność wielowartościowa jest zależnością od nadklucza.
Zależności złączeniowe Definicja Zależności złączeniowe Definicja Niech X 1... X n A. W R T(A) spełniona jest zależność X 1... X n jeśli (R X1 )... (R Xn ) (R X1...X n ) Ozn. R = X 1... X n
Zależności złączeniowe Definicja Eliminacja zależności wielowartościowych Twierdzenie R = X Y R = XY XY
Zależności złączeniowe Definicja Uwaga wtw, gdy ( k 1,...,k n R R = X 1... X n k i Xi X j = k j Xi X j (k X1 = k 1 X1,..., k Xn = k n Xn ) i,j n k R )
Zależności złączeniowe Definicja Dowód ( ) Niech k i Xi X j = k j Xi X j, i, j = 1,..., n. Wówczas k 1 X1... k n Xn (R X1 )... (R Xn ) R X1...X n skąd istnieje takie k R, że k 1 X1... k n Xn = k X1...X n, czyli też k X1 = k 1 X1,..., k Xn = k n Xn.
Zależności złączeniowe Definicja ( ) Niech m (R X1 )... (R Xn ). Istnieją k 1,..., k n R, że m X1 = k 1 X1,..., m Xn = k n Xn Oczywiście k i Xi X j = k j Xi X j, i, j = 1,..., n. Istnieje zatem k R, dla którego k X1 = k 1 X1,..., k Xn = k n Xn. Wtedy jednak, m X1...X n = k X1...X n, skąd m R X1...X n.
Zależności złączeniowe Definicja Uwaga Zależność X 1... X n jest trywialna wtw, gdy X j = n i=1 X i dla pewnego j = 1,..., n.
Zależności złączeniowe Definicja Dowód ( ) Niech k (R X1 )... (R Xn ). Istnieją l 1,..., l n R, dla których k X1 = l 1 X1,..., k Xn = l n Xn Ponieważ X 1,..., X n X j, l i Xi = l j Xi, dla i = 1,..., n. Mamy k X1...X n = i (k Xi ) = i (l i Xi ) = i (l j Xi ) = l j X1...X n R X1...X n
Zależności złączeniowe Definicja ( ) Niech k j (x) df == { d x 0, x X j d x 1, x A \ X j Oczywiście k i Xi X j = k j Xi X j, i, j = 1, 2,..., n. Ponieważ X 1... X n jest spełniona w [ k 1,..., k n ], istnieje takie j = 1,..., n, że k j X1 = k 1 X1,..., k j Xn = k n Xn Ustalmy i = 1, 2,..., n. Skoro k j Xi = k i Xi, mamy też k j Xi\X j = k i Xi\X j, co oznacza, że X i \ X j jest puste, skąd X i X j, dla wszystkich i = 1, 2,..., n
KONIEC