Definicja
Transkrypt
Definicja
Bazy danych wykład kursowy Adam Kolany Państwowa Wyższa Szkoła Zawodowa [email protected] 2007/2008 Wielozbiory Definicja Niech A będzie dowolnym zbiorem. Wielozbiór elementów A, to dowolna funkcja W:A→N Nośnik wielozbioru W: df supp(W) == { x : W(x) 6= 0 } , df W ◦ == supp(W) Wielozbiór W jest skończony wtw, gdy supp(W) jest skończony. Działania na wielozbiorach Definicja Niech W i V będą wielozbiorami (W t V) (x) = (W u V) (x) = (W \ V) (x) = elementów zbioru A. W(x) + V(x) min { W(x), V(x) } max { W(x) − V(x), 0 } 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) (hx, yi) = W(x) · V(y) 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 6= a , x∈A Definicja [ a1 , . . . , an ] = δa1 t . . . t δan Reprezentacja wielozbiorów, cd. Twierdzenie Niech W będzie skończonym wielozbiorem elementów A. Wówczas istnieją takie a1 , . . . , an , że W = [ a1 , . . . , an ] Dowód. indukcja względem #supp(W) Uwaga Niech π będzie permutacją { 1, . . . , n }. Wówczas [ a1 , . . . , an ] = aπ(1) , . . . , aπ(n) Dowód. Lączność i przemienność t Dziedzina Definicja , gdzie Dziedziną nazywamy układ A, fjA : j ∈ J , ρA i : i∈I A jest niepustym zbiorem, fjA , 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ą. Umowa Ustalamy zbiór dopuszczalnych nazw T, nazw atrybutów A oraz indeksowaną rodzinę dziedzin { Da : a ∈ A }. Da nazywać będziemy dziedziną atrybutu a ∈ A. Zakładamy przy tym, że dziedziny są nieskończone i ponumerowane: |Da | = { dan : n = 0, 1, 2, 3, . . . } Krotki Definicja Krotką o nagłówku A Niech A będzie zbiorem atrybutów. S nazywamy dowolną funkcję k : A → a∈A Da , o ile k(a) ∈ Da , a ∈ A. 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 Oznaczenia Częściowa tabela maksymalna o nagłówku w A Tc (A) – rodzina krotek o nagłówku w A Tabela maksymalna o nagłówku w A T(A) – rodzina krotek o nagłówku A Rzutowanie Definicja Niech R ∈ T(A) relacją i niech B ⊆ A. Rzutem R na B jest tabela R|B o nagłówku B X R|B (k) = { R(l) : l|B = k } 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], dla której R(k), k|B = l R[l](k) = 0 else Złączenie Definicja Niech R1 ⊆ T(A) i niech R2 ⊆ T(B). Złączeniem R1 i R2 jest tabela R1 ?R2 , dla której (R1 ?R2 )(k) = R1 (k|A ) · R2 (k|B ) , k ∈ T(A ∪ B) Własności złączenia Uwaga Niech Rj ⊆ T(Aj ), j = 1, 2, 3. (R1 ?R2 ) = (R2 ?R1 ) (R1 ?R2 )?R3 = R1 ?(R2 ?R3 ) Własności złączenia, cd. Uwaga Niech R ⊆ T(A), B1 , B2 ⊆ A. R|B1 ∪B2 ¬ R|B1 ?R|B2 Dowód. (R|B1 ∪B2 ) (k) = ¬ ¬ = = P P { R(l) : l|B1 ∪B2 = k } ¬ P { R(l) · R(l) : l|B1 = k|B1 , l|B2 = k|B2 } ¬ = B1 , n|B2 = k|B2 } P { R(m) · R(n) : m|B1 = k|P { R(m) : m|B1 = k|B1 } · { R(n) : n|B2 = k|B2 } (R|B1 ?R|B2 )(k) = Definicja Niech R, R1 , R2 ⊆ T(A), df ⇐⇒ k∈R R1 ≡ R2 df ⇐⇒ R(k) 6= 0 ∀k (k ∈ R1 = k ∈ R2 ) Uwaga Niech B ⊆ A, R ⊆ T(A) k ∈ R|B ⇔ ∃l∈R (k = l|B ) Dowód. k ∈ R|B P ⇔ 0 6= (R|B )(k) = { R(l) : l|B = k } ⇔ ⇔ ∃l (R(l) 6= 0 & k = l|B ) ⇔ ∃l∈R (k = l|B ) Uwaga Niech B1 , B2 ⊆ A, R ⊆ T(A) k ∈ R|B1 ?R|B2 ⇔ ∃l1 ,l2 ∈R (k|B1 = l1 |B1 , k|B2 = l2 |B2 ) Dowód. k ∈ (R|B1 )?(R|B2 ) ⇔ ⇔ 0 6= (R|B1 )?(R|B2 ) (k)(R|B1 )(k|B1 ) · (R|B2 )(k|B2 ) ⇔ ⇔ (R|B1 )(k|B1 ) 6= 0 & (R|B2 )(k|B2 ) 6= 0 ⇔ ⇔ k|B1 ∈ R|B1 & k|B2 ∈ R|B2 ⇔ ⇔ ∃l1 ,l2 ∈R (k|B1 = l1 |B1 , k|B2 = l2 |B2 ) Uwaga Niech R ⊆ T(A), B ⊆ C ⊆ A. R|C ≡ R|B ?R|C Dowód k ∈ R|B ?R|C ⇒ ∃l∈R (k|C = l|C ) ⇒ ∃l (k = l|C ∈ R|C ) Reguły wnioskowania Definicja Regułą wnioskowania w zbiorze S nazywamy relację ρ ⊆ ℘(S) × S dla której ∅ 6∈ dm(ρ) Definicja Reguła r jest finitarna: hΠ, si ∈ r ⇒ Π − skończone Definicja System formalny to układ S = hS, R, Ai, gdzie S jest niepustym zbiorem, A ⊆ S oraz R jest zbiorem reguł w S Definicja Dowód w systemie S ze zbiorem założeń X ⊆ S: s1 , . . . , sn 1. sj ∈ A ∪ X 2. ∃r∈R ∃Π⊆{ s1 ,...,sj−1 } hΠ, sj i ∈ r , lub j = 1, . . . , n. Definicja PrvS (X) = = {s ∈ S : ∃s1 ,...,sn hs1 , . . . , sn , si - dowód w S ze zbiorem założeń X} Przykłady systemów formalnych Klasyczny Rachunek Zdań Klasyczny Rachunek Zdań Formuły Fml(P) : P ⊆ Fml(P) α ∈ Fml(P) α, β ∈ Fml(P) ⇒ (¬α) ∈ Fml(P) ⇒ (α ◦ β) ∈ Fml(P) , ◦ ∈ { ∨, ∧, →, ↔ } Klasyczny Rachunek Zdań Aksjomaty KRZ Ax 1. Ax 2. Ax 3. Ax 4. Ax 6. Ax 7. Ax 9. Ax10. Ax12. Ax14. p → (q → p) [p → (q → r)] → [(p → q) → (p → r)] (p → q) → [(p → r) → (p → q ∧ r)] p∧q→p , Ax 5. p ∧ q → q (p → q) → [(r → q) → (p ∨ r → q)] p→p∨q , Ax 8. q → p ∨ q (p → q) → [(q → p) → (p ↔ q)] (p ↔ q) → (p → q) , Ax11. (p ↔ q) → (q → p) p → (¬p → q) , Ax13. (p → ¬p) → p ¬¬p → p Reguły ro : r? : α , α h(α) α→β β , h : P → Fml(P) α, β ∈ Fml(P) Przykład p → p jest tezą KRZ 1. 2. 3. 4. 5. (p → ((p → p) → p)) → ((p → (p → p)) → (p → p)) p → ((p → p) → p) p → (p → p) → (p → p) p → (p → p) p→p Ax2 Ax1 ro (1, 2) Ax1 ro (3, 4) Klasyczny Rachunek Kwantyfikatorów Języki I-rzędu Definicja L = hV, C, F, P, ςi , ς : P ∪ F → { 1, 2, 3, . . . } V = { x0 , x1 , x2 , . . . } Termy Trm(L) : V, C ⊆ Trm(L) τ1 , . . . , τn ∈ Trm(L) ⇒ fτ1 . . . τn ∈ Trm(L) , ς(f) = n Formuły Frm(L) : τ1 , . . . , τn ∈ Trm(L) τ, ß ∈ Trm(L) α ∈ Frm(L) α, β ∈ Frm(L) ⇒ ⇒ ⇒ ⇒ Pτ1 . . . τn ∈ Trm(L) , ς(P) = n τ = ß ∈ Frm(L) , (¬α), (∀xk α), (∃xk α) ∈ Frm(L) (α ◦ β) ∈ Frm(L) , ◦ ∈ { ∨, ∧, →, ↔ } Aksjomaty identyczności Eq1 (a) Eq1 (b) Eq2 (a) Eq2 (b) s=s s=t ∧ s=r → t=r , s1 = t1 ∧ . . . ∧ sn = tn → p(n) s1 . . . sn ↔ p(n) t1 . . . tn , s1 = t1 ∧ . . . ∧ sn = tn → f(n) s1 . . . sn = f(n) t1 . . . tn . Aksjomaty logiczne Ax1 (a) ∀xm δ → δ[xm/τ ] Ax1 (b) δ[xm/τ ] → ∃xm δ Ax2 (a) ∀xn (α → β) → (∃xn α → β) Ax2 (b) ∀xn (β → α) → (β → ∀xn α) gdzie xm ∈ Ff (τ, δ) , Ax3 : xn 6∈ Vf (α) podstawienia tautologii zdaniowych Klasyczny Rachunek Kwantyfikatorów Reguły ro : r∀ : α , α→β β α , (∀xk α) α, β ∈ Frm(L) Klasyczny Rachunek Kwantyfikatorów Przykładowy dowód α → ∃xn α, ¬∃xn α → ¬α, ∀xn ¬α → ¬α, α → ¬∀xn ¬α, ∀xn ¬∃xn α → ¬α , ¬∃xn α → ∀xn ¬α, ∀xn α → ¬∀xn ¬α , ∃xn α → ¬∀xn ¬α, ∀xn ¬α → ¬∃xn α, ¬∃xn α ↔ ∀xn ¬α. Język zależności Niech A będzie ustalonym nagłówkiem Definiujemy język Ldep (A) = hV, ℘(A), ∅, { →, → →, ?1 , ?2 , . . . } , ςi gdzie ς(→) = ς(→ →) = 2 , ς(?n ) = n Umowa Zakładamy odtąd, że wszelkie rozważane relacje są płaskie. Zależności Definicja Zależność funkcyjna w Ldep (A), to formuła postaci: X→Y , X, Y ∈ ℘(A) Zależność wielowartościowa w Ldep (A), to formuła postaci: X→ →Y , X, Y ∈ ℘(A) Definicja Zależność złączeniowa w Ldep (A), to formuła postaci: ?n X1 X2 . . . Xn , X1 , . . . , Xn ∈ ℘(A) Schemat relacyjny Definicja Schematem relacyjnym, jest para hA, Di, gdzie D jest zbiorem zależności w Ldep (A) 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. Wynikanie logiczne Definicja Relacja R jest relacją schematu Σ = hA, Di, 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 trywialne Uwaga Zależność X → Y jest relacją schematu hA, ∅i 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 (⇒) Niech Y 6⊆ X i niech k(x) = dx0 , x ∈ A oraz l(x) = dx0 , Niech dalej R = [ k, l ] . Wówczas R 6|= X → Y. dx1 , x∈X x∈A\X df Tryw(A) == { X → Y : Y ⊆ X ⊆ A } System Armstronga Definicja A SArm (A) = Func(A), rA ext , rtrans , Tryw(A) rext : X→Y X∪Z→Y∪Z , rtrans : X → Y, Y → Z X→Z X, Y, Z ⊆ A. Oznaczenie: hA, Fi ` f , F `A f ⇔ f ∈ PrvSArm (A) (F) Sumowanie, pseudoprzechodniość, rozkładanie Następujące reguły są wyprowadzalne w SArm (A) (Sumowanie) X → Y, X → Y X→Y∪Z (Pseudoprzechodniość) X → Y, W ∪ Y → Z X∪W→Z (Rozkładanie) X→Y X→Z , Z⊆Y Sumowanie, pseudoprzechodniość, rozkładanie Dowód Sumowanie 1. X → Y 2. X → X ∪ Y 3. X → Z 4. X ∪ Y → Y ∪ Z 5. X → Y ∪ Z zał rext (1) zał rext (3) rtrans (2, 4) Rozkładanie 1. X → Y 2. Y → Z 3. X → Z Pseudoprzechodniość 1. X → Y 2. X ∪ W → Y ∪ W 3. W ∪ Y → Z 4. X ∪ W → Z zał aks rtrans (1, 2) zał rext (1) zał rtrans (2, 3) Sumowanie, pseudoprzechodniość, rozkładanie Wniosek Σ`X→Y ⇔ ^ (Σ ` X → y) y∈Y dowód (⇒) Aksjomat + przechodniość (⇐) Indukcja na wielkość Y i sumowanie. Adekwatność Definicja Reguła r w Ldep (A) jest adekwatna, jeśli Π |=A δ dla hΠ, δi ∈ r Twierdzenie Formuły rext i rtrans są adekwatne. Dowód. rext R |=A X → Y ⇒ R |=A XZ → YZ ? k|XZ = l|XZ ⇒ k|X = l|X ∧ k|Y = l|Y ⇒ ⇒ k|YZ = k|Y ∪ k|Z = l|Y ∪ l|Z = l|YZ ⇒ R |=A XZ → YZ k|YZ = l|YZ Dowód. rtrans R |=A X → Y , Y → Z k|X = l|X ⇒ R |=A X → Z ⇒ k|Y = l|Y R |=A X → Z ? ⇒ k|Z = l|Z Twierdzenie o zgodności Twierdzenie (Zgodność) S`f ⇒ S |= f Dowód. [indukcja względem długości dowodu] Twierdzenie o pełności Twierdzenie (pełność) S |= f ⇒ S`f Domknięcie zbioru atrybutów Definicja [X]+ S = {x ∈ A : S ` X → {x}} Twierdzenie S`X→Y ⇔ Y ⊆ [X]+ S Dowód. zwrotność i sumowanie Dowód twierdzenia o pełności Dowód twierdzenia o pełności Niech S = hA, Fi i załóżmy, że S 6` X → Y. Wówczas Y 6⊆ [X]+ S. Niech dx0 , x ∈ [X]+ S x k(x) = d0 , x ∈ A oraz l(x) = x d1 , x ∈ A \ [X]+ S i niech dalej R = [ k, l ] . Wówczas R |= F, ale R 6|= X → Y. Reprezentacja boolowska zależności funkcyjnych Definicja PA = { px : x ∈ A } V V V df V (X → Y)? == { px : x ∈ X } ⇒ { py : y ∈ Y } df F ? == { f ? : f ∈ F } Wynikanie logiczne formuł zdaniowych Przypomnienie Niech Φ będzie zbiorem formuł zdaniowych, a ϕ formułą zdaniową. Φ |= ϕ ⇔ ^ h:P→{ 0,1 } (h”Φ ⊆ { 1 } ⇒ h(ϕ) = 1) Definicja Niech h : PA → { 0, 1 }. Definiujemy Rh = kh , lh , gdzie kh (x) = dx0 , x∈A oraz lh (x) = dx1−h(px ) , x∈A Lemat Mamy: Niech W ⊆ A. ^ ^ h { pw : w ∈ W } = 1 ⇔ kh |W = lh |W Dowód. h( V V ⇔ { pw : w ∈ W }) = 1 ⇔ ∀w∈W (h(pw )= 1) ⇔ w h ∀w∈W kh (w) = dw ⇔ kh |W = lh |W 0 = d1−h(pw ) = l (w) Lemat Niech W, V ⊆ A.Wówczas: h (U → V)? = 1 ⇔ Rh |= U → V Dowód. h (U → V)? = 1 ⇔ kh |U = lh |U VV VV h( pu ) = 1 ⇒ h( pv ) = 1 u v h h h ⇒ k |V = l |V ⇔ R |= U → V ⇔ ⇔ Twierdzenie o reprezentacji Twierdzenie F `A f ⇔ F ? |= f ? 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 Rh |= U → V. Czyli Rh |= F, a co za tym idzie, Rh |= X → Y. Wobec tego h (X → Y)? = 1, czyli F ? |= f ? . (⇐) Załóżmy, że F ? |= f ? i niech h : PA → { 0, 1 } dane będzie wzorem: x ∈ [X]+ x∈A hA,F i , V V Niech teraz U → V ∈ F i niech h( pu ) = 1. Wówczas W ⊆ [X]+ hA,F i , u V V + skąd także V ⊆ [X]hA,F i . Czyli h( pv ) = 1. v Tym samym wykazaliśmy, że h (U → V)? = 1, dla zależności z F. h(px ) = 1 ⇔ Czyli, że h”F ? ⊆ { 1 } . Wobec tego h (X → Y)? = 1. V V V V Ponieważ X ⊆ [X]+ px ) = 1, skąd h( py ) = 1. hA,F i , h( x Czyli Y ⊆ [X]+ hA,F i , a stąd F `A X → Y. y 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 Wyznaczanie domknięcia Przykład N K – – df h { N, T, S, K, L } , { N T → K , T S → N , T K → S , N → L } i df h { N, T, S, K, L } , { N → L , T K → N , T S → N } i P1 == P2 == nauczyciel klasa T L – – termin lekcja S – sala Zadanie Wyznacz domknięcie N T w P1 Mamy F1? : 1. 2. 3. 4. n0 + t0 + k t0 + s0 + n t0 + k 0 + s n0 + l Szukamy takiego maksymalnego zbioru { A1 , . . . , An } ⊆ { N, T, S, K, L }, że F1? ∪ { n, t } ∪ { a01 + · · · + a0n } jest sprzeczny. Rozwiązanie Mamy: 1. 2. 3. 4. 5. 6. Widzimy, że Czyli n0 + t0 + k 7. k z 1,5,6 8. l z 4,5 t0 + s0 + n 9. s z 3,6,7 t0 + k 0 + s n0 + l n t dołożenie n0 + t0 + k 0 + l0 + s0 usprzecznia zadanie. [N T ]+ P1 = N T KLS Klucze Definicja Nadkluczem schematu S = hA, Di jest takie K ⊆ A, że [K]+ S = A. Klucz, to minimalny nadklucz. Wyznaczanie kluczy Zadanie Znajdź klucze schematu P2 . Mamy: 1. n0 + l 2. t0 + k 0 + n 3. t0 + s0 + l 4. n0 + t0 + k 0 + l0 + s0 5. n0 + t0 + k 0 + s0 6. t0 + k 0 + s0 Widzimy, że kluczem tutaj jest T KS. z 1,4 z 2,5 Wyznaczanie kluczy Zadanie Znajdź klucze schematu P1 . Mamy: 1. n0 , t0 , k 2. t0 , s0 , n 3. t0 , k 0 , s 4. n0 , l 5. n0 , t0 , k 0 , l0 , s0 6. n0 , t0 , l0 , s0 7. t0 , l0 , s0 8. t0 , k 0 , l0 9. t0 , k 0 , n0 Widzimy, że kluczemi tutaj są T LS, T KL i T KN . z z z z 1,5 2,5 3,7 4,8 Równoważność schematów Definicja Schematy S1 = hA, D1 i i S2 = hA, D2 i są równoważne, jeśli Rel(S1 ) = Rel(S2 ) (Ozn. S1 ≡ S1 ) Uwaga Schematy S1 = hA, D1 i i S2 = hA, D2 i są równoważne wtw, gdy D1 |=A D2 oraz D2 |=A D1 Dowód (⇒) Niech { i, j } = { 0, 1 } R |= Di ⇒ R ∈ Rel(Si ) = Rel(Sj ) Więc Di |=A Dj . (⇐) To jest oczywiste. ⇒ R |= Dj Przykład P1 6≡ P2 bo P2 6` N T → K Pokrycia nieredundantne Definicja Zależność X → Y schematu S = hA, Di jest pełna, jeśli Y jest jednoelementowy oraz S 6` Z → Y dla Z ( X Zbiór zależności pełnych G jest pokryciem nieredundantnym schematu S, jeśli hA, Gi ≡ S, ale hA, G1 i 6≡ S, dla G1 ( G. Wyznaczanie pokrycia Zadanie Wyznacz pokrycie hABCDEG, Fi, gdzie F= AB → C , C → A , BC → D , ACD → B , D → EG , BE → C , CG → BD , CE → AG Anomalie Skutki redundancji anomalie aktualizacji anomalie dopisywania anomalie usuwania R Nazwa (N) Ajax Bendix Ajax Bendix Rymer Centor Leszcz Adres (A) Akacjowa 15 Źródlana 3 Akacjowa 15 Źródlana 3 Akacjowa 15 Polna 6 Źródlana 16 N →A Klucz: NT. , Towar (T) Rower Skuter Lódka Rower Maluch Lódka — NT → C Cena (C) 1200 800 3000 1100 500 2600 – R|NTC ◦ R|NA ◦ Nazwa Ajax Bendix Rymer Centor Leszcz Adres Akacjowa 15 Źródlana 3 Akacjowa 15 Polna 6 Źródlana 16 Nazwa Ajax Bendix Ajax Bendix Rymer Centor R ≡ (R|NA )?(R|NTC ) Towar Rower Skuter Lódka Rower Maluch Lódka Cena 1200 800 3000 1100 500 2600 Uwaga R|N T A |= N → A Uwaga R |= X → Y ⇒ R|XY |= X → Y Dowód k, l ∈ R|XY , k|X = l|X ⇒ ⇒ ∃k1 ,l1 ∈R (k1 |XY = k, l1 |XY = l) ⇒ k1 |X = l1 |X ⇒ k|Y = k1 |Y = l1 |Y = l|Y Rozkładalność Twierdzenie (Heath) Jeśli Σ ` X → Y, to R ≡ (R|XY ) ? (R|XZ ), dla R ∈ Rel(Σ), gdzie Z = A \ XY. 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 Twierdzenie Jeśli R ≡ (R|XY ) ? (R|XZ ), dla R ∈ Rel(Σ), gdzie Z = A \ XY, to Σ`X→Y lub Σ ` X → Z Dowód. Niech R = [ k, l ], gdzie k(x) = dx0 , x ∈ A, zaś l(x) = dx0 , gdy x ∈ [X]+ Σ oraz l(x) = dx1 , 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 Y0 == Y \ X. W pierszym wypadku l|XY ∪ k|XZ = k ⇒ (l|XY ∪ k|XZ ) |Y0 = k|Y0 ⇒ l|Y0 = k|Y0 skąd Y0 ⊆ [X]+ Σ , a co za tym idzie, Σ ` X → Y0 . Czyli także Σ ` X → Y. W drugim przypadku, mamy: l|XY ∪ k|XZ = l ⇒ (l|XY ∪ k|XZ ) |Z = l|Z skąd Z ⊆ [X]+ Σ , a co za tym idzie, Σ ` X → Z. ⇒ k|Z = l|Z Definicja Rozkładem odwracalnym schematu Σ jest zbiór A1 , . . . , An ⊆ A, dla którego R = (R|A1 )? . . . ?(R|An ) Rozstrzyganie odwracalności Twierdzenie Istnieje algorytm rozstrzygający, czy A1 , . . . , An ⊆ A jest rozkładem odwracalnym schematu Σ. Przykład Zadanie Zbadać odwracalność rozkładu AB, AD, BE, CDE, AE schematu Σ = hABCDE, Fi, gdzie df F == { A → C, B → C, C → D, CE → A , DE → C } Rozwiązanie k ∈ (R|AB )?(R|AD )?(R|BE )?(R|CDE )?(R|AE ) ⇒ ∃k1 ,...,k5 ∈R k|AB = k1 |AB k|AD = k1 |AD k|BE = k1 |BE k|CDE = k1 |CDE k|AE = k1 |AE ⇒ k1 k2 k3 k4 k5 A a a B b C D d b e c a E d e A a a 7 10 a F: B b 4 b 11 12 C 1 5 8 c 13 D 2 d 9 d 14 E 3 6 e e e A → C, B → C, C → D, CE → A , DE → C Rozwiązanie, cd. A a a 7 10 a F: B b 4 b 11 12 C 1 1 8 c 1 D 2 d 9 d 14 E 3 6 e e e A → C, B → C, C → D, CE → A , DE → C Rozwiązanie, cd. A a a 7 10 a F: B b 4 b 11 12 C 1 1 1 c 1 D 2 d 9 d 14 E 3 6 e e e A → C, B → C, C → D, CE → A , DE → C Rozwiązanie, cd. A a a 7 10 a F: B b 4 b 11 12 C 1 1 1 c 1 D d d d d d E 3 6 e e e A → C, B → C, C → D, CE → A , DE → C Rozwiązanie, cd. A a a 7 10 a F: B b 4 b 11 12 C c c c c c D d d d d d E 3 6 e e e A → C, B → C, C → D, CE → A , DE → C Rozwiązanie, cd. A a a a a a B b 4 b 11 12 C c c c c c D d d d d d k = k3 Rozkład jest odwracalny. E 3 6 e e e Rzut zbioru zależności Definicja Niech Σ = hA, Di będzie schematem. Rzutem schematu Σ na B ⊆ A jest zbiór df πB (Σ) == { δ ∈ dep(B) : Σ |= δ } Rozkład odwracalny A1 , . . . , An zachowuje zależności D, jeśli πA1 (Σ) ∪ . . . ∪ πAn (Σ) |= D Uwaga Niech B ⊆ A, R ∈ Rel(Σ) .Wówczas R|B |= πB (Σ) 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. Zachowywanie zależności Algorytm Dane: Σn= hA, Fi, A1 , . . . , An , X o S S Wynik: x ∈ A : j πAj (Σ) |=A X → x = [X]+ j Program; begin repeat Sn Z’:=Z; Z:= j=1 Aj ∩ [X ∩ Aj ]+ Σ ;X:=X∪Z; until Z=Z’; return(X) end. πAj (Σ) Przykład Czy rozkład AB, BC, CD zachowuje zależności: df F == { A → B, B → C, C → D, D → A } Mamy: A → B ∈ πAB (F), B → C ∈ πBC (F), C → D ∈ πCD (F) Wyznaczamy [D]+ πAB (F )∪πBC (F )∪πCD (F ) D 7→ D ∪ (AB ∩ [AB ∩ D]+ ) ∪ (BC ∩ [BC ∩ D]+ ) ∪ (CD ∩ [CD ∩ D]+ ) = D ∪ ∅ ∪ ∅ ∪ (CD ∩ [D]+ ) = D ∪ (CD ∩ ABCD) = CD CD 7→ CD ∪ (AB ∩ [AB ∩ CD]+ ) ∪ (BC ∩ [BC ∩ CD]+ ) ∪ (CD ∩ [CD ∩ CD]+ ) = CD ∪ ∅ ∪ (BC ∩ [C]+ ) ∪ (CD ∩ [CD]+ ) = CD ∪ BC ∪ CD = BCD BCD 7→ BCD ∪ (AB ∩ [AB ∩ BCD]+ ) ∪ (BC ∩ [BC ∩ BCD]+ ) ∪ (CD ∩ [CD ∩ BCD]+ ) = BCD ∪ (AB ∩ [B]+ ) ∪ (BC ∩ [BC]+ ) ∪ (CD ∩ ABCD) = BCD ∪ AB ∪ CD = ABCD Atrybuty kluczowe Definicja Atrybut kluczowy (główny), to element pewnego klucza. 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 W tabeli a a1 a2 a3 a3 b b1 b1 b2 b1 c c1 c1 c2 c1 ab jest kluczem, c jest niekluczowy, a ab → c nie jest pełna, bo R |= b → c. 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ą. R |= a → b → c , R 6|= b → a k, l : k(b) = l(b) i k(a) 6= l(a) a a1 a2 b b1 b1 c c1 c1 ⇒ k(c) = l(c) 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 Uwaga Schemat jest w trzeciej postaci normalnej, jeśli każda nietrywialna zależność atrybutu niekluczowegojest zależnością od nadklucza Dowód (⇒) Niech Σ |= X → x będzie nietrywialną zależnością dla atrybutu niekluczowego x i niech K będzie kluczem. Wówczas K → X → x jest ciągiem zależności nietrywialnych. Ponieważ Σ ∈ 3NF, mamy Σ |= X → K. Czyli X jest nadkluczem. (⇐) 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. 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 Synteza i rozkład Pankowski, Podstawy Baz Danych, PWN 1992 1 algorytm sprowadzania relacji do 2NF. 2 algorytm sprowadzania relacji do 3NF. 3 algorytm sprowadzania relacji do 4NF. 4 algorytm dekompozycji Codda-Fagina. 5 algorytm B1 Bernsteina. 6 algorytm B2 Bernsteina. 7 algorytm Niekludowej-Calenki. 8 algorytm Rissanena. Zależności wielowartościowe Definicja → Y, jeśli Relacja R ⊆ T(A) spełnia zależność X → R[r|XZ ]|Y ≡ R[r|X ]|Y , df dla dowolnej r ∈ R, gdzie Z == A \ XY. Ozn. R |= X → →Y Uwaga R |= X → →Y ⇔ R[r|X ]|Y ≡ R[r|XC ]|Y , C ⊆ Y0 Dowód (⊆) k ∈ R[r|X ]|Y (⊇) k ∈ R[r|XC ]|Y ⇒ ⇒ k = l|Y , l ∈ R[r|X ] ≡ R[r|XY0 ] ⇒ l|XY0 = r|XY0 l|XC = r|XC ⇒ l ∈ R[r|XC ] ⇒ 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 ⇒ ⇒ 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 gdzie Z = A \ (XY). i l|XZ = m|XZ , 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 . (⇐) (⊆) 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 . Rozkładalność Twierdzenie R |= X → →Y ⇔ R ≡ (R|XY )?(R|XZ ) 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 (⇐) Niech k, l ∈ R i niech k|X = l|X . Wówczas df k|XY ∪ l|XZ ∈ (R|XY )?(R|XZ ) ≡ R. Czyli m == k|XY ∪ l|XZ jest szukaną krotką. Wniosek R |= X → →Y gdzie Z = A \ (XY). ⇔ R |= X → → Z, Dowód. Mamy R |= X → →Z ⇔ ⇔ R ≡ (R|XZ )?(R|X(XZ)0 ) = (R|XZ )?(R|XY ) = (R|XY )?(R|XZ ) ⇔ R |= X → →Y ⇔ Uwaga Zależność X → → Y jest trywialna wtw, gdy X ∪ Y = A lub Y ⊆ X Dowód. (⇐) df Niech Z == 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 Dowód. (⇒) df Załóżmy, że X → → Y jest trywialna. Niech Z == A \ XY i niech k(x) = dx0 , x ∈ A oraz niech l(x) = dx0 , x ∈ X, i l(x) = dx1 , x ∈ A \ X. Wówczas df df n == k|XY ∪ l|XZ ∈ (R|XY )?(R|XZ ) ≡ R == [ 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. Definicja D, δ — zależności funkcyjne i wielowartościowe: D |=A δ ⇔ ∀R (R |= D ⇒ R |= δ) Twierdzenie Następujące reguły są niezawodne: (Dopełnianie) rA compl : X→ →Y X→ →Z , Z = A \ XY (Rozszerzanie MVD) rA mvext : X→ →Y, W→V XW → → YV (Przechodniość MVD) rA mvtrans : X→ →Y, Y→ →Z X→ →Z\Y Twierdzenie, cd. Następujące reguły są niezawodne: rmvfunc,1 : rmvfunc,2 : X→ →Y, W→Z X→Z X→Y X→ →Y , Z⊆Y, W∩Y=∅ dowód – dopełnianie Mamy R |= X → →Y ⇔ ⇔ R ≡ (R|XY )?(R|XZ ) ⇔ R ≡ (R|XZ )?(R|XY ) ⇔ R |= X → →Z 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|XY0 = l|XY0 Mamy m|XUYV = m|XY ∪ m|(UV)∩(XY)0 = k|XY ∪ l|(UV)∩X0 ∩Y0 = k|XY ∪ m|(UV)∩X0 ∩Y0 = k|XY ∪ k|(UV)∩X0 ∩Y0 = k|XUYV . = = dowód – rozszerzanie, cd. Dalej m|XU(YV)0 = = = = = = = m|(XU)Y0 ∩V0 = m|Y0 ∩V0 ∪ m|(XU)∩(Y0 ∩V0 )0 = l|Y0 ∩V0 ∪ m|(XU)∩(YV) = l|Y0 ∩V0 ∪ m|X∩(YV) ∪ m|U∩X0 ∩(YV) = l|Y0 ∩V0 ∪ l|X∩(YV) ∪ m|U∩X0 ∩Y ∪ m|U∩X0 ∩V∩Y0 = l|Y0 ∩V0 ∪ l|X∩(YV) ∪ k|U∩X0 ∩Y ∪ l|U∩X0 ∩V∩Y0 = l|Y0 ∩V0 ∪ l|X∩(YV) ∪ l|U∩X0 ∩Y ∪ l|U∩X0 ∩V∩Y0 = l|XU(YV)0 . Czyli R |= XU → → YV. 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|XY0 = k|XY0 oraz n|YZ = m|YZ Mamy n|X(Z\Y) = i n|YZ0 = l|YZ0 n|X ∪ n|Z∩Y0 = k|Z∩Y0 ∪ n|X∩Z ∪ n|X∩Z0 = = k|Z∩Y0 ∪ n|X∩Z ∪ l|X∩Z0 = k|Z∩Y0 ∪ n|X∩Z ∪ k|X∩Z0 = = k|(Z∩Y0 )(X∩Z0 ) ∪ n|X∩Z = k|(Z∩Y0 )(X∩Z0 ) ∪ m|X∩Z = = k|(Z∩Y0 )(X∩Z0 ) ∪ k|X∩Z = k|X(Z\Y) dowód – przechodniość (m|XY = l|XY Mamy n|X(Z\Y)0 , m|XY0 = k|XY0 = n|XZ0 Y , n|YZ = m|YZ = n|X∩Z ∪ n|YZ0 = m|X∩Z ∪ l|YZ0 = = , n|YZ0 = l|YZ0 ) n|X∩Z ∪ l|YZ0 l|X∩Z ∪ l|YZ0 = = l|X(Z\Y)0 dowód – rmvfunc,1 Było: R |= X → Y ⇒ R ≡ (R|XY )?(R|XZ ) ⇔ R |= X → →Y dowód – rmvfunc,2 → Y, W → Z Niech Z ⊆ Y i niech W ∩ Y = ∅. Niech także R |= X → oraz niech k, l ∈ R spełniają k|X = l|X . Istnieje m ∈ R, dla którego m|XY = k|XY i m|XY0 = l|XY0 Ponieważ W ⊆ Y0 , także m|W = l|W , skąd m|Z = l|Z . Skoro Z ⊆ Y, mamy k|Z = m|Z = l|Z System formalny SMVD (A) Definicja df SMVD (A) == MVD(A) ∪ Func(A), { A A rA ext , rtrans , rcompl , A A A rA mvext , rmvtrans ,rmvfunc,1 , rmvfunc,2 , }, TrywMVD (A) Niech Σ = hA, Di, D ⊆ MVD(A) ∪ Func(A) Σ ` d , D `A d ⇔ d ∈ PrvSMVD (A) (D) Twierdzenie o zgodności dla SMVD (A) Twierdzenie Σ`δ ⇒ Σ |= δ Dowód. indukcja na długość wywodu Twierdzenie Następujące reguły są wyprowadzalne: 1 X→ →Y X→ → Y0 2 X→ →Y , X→ →Z X→ → YZ Dowód. Ad. (1) 1. X → →Y 2. Y → →A 3. X → →A\Y założenie aksjomat rmvtrans Dowód. Ad. (2) 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. X→ →Y założenie X→ → XY rmvext (1) X→ →Z założenie X→ → Z0 p. (1), 3 XY → → YZ0 rmvext (4) X→ → (YZ0 ) \ (XY) rmvtrans (2, 5) X→ → X0 ∩ Y0 ∩ Z0 (YZ0 ) \ (XY) = X0 ∩ Y0 ∩ Z0 0 0 X→X∩Y ∩Z aksjomat X→ → Y0 ∩ Z0 rmvext (7, 8) X→ → YZ p. (1), 9 Uwaga Niech Σ = hA, Di 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 Wniosek Niech Σ = hA, Di i niech X ⊆ A. Zbiór df → Y} BΣ (X) == { Y ⊆ A : Σ ` X → jest algebrą Boole’a względem ∩, ∪ i 0 . Uwaga Niech Σ = hA, Di i niech X ⊆ A. Mamy U→ →Y`X→ → Y, U ⊆ X. X→ → Y, V → →Y∩W`X→ → Y∩W, X → → Y \ W, Y ∩ V = ∅ Dowód. ćwiczenie Baza zależności Definicja Niech Σ = hA, Di i niech X ⊆ A. Bazą zależności X względem Σ jest rodzina atomów algebry BΣ (X) rozłącznych z [X]+ Σ. Ozn. BaseΣ (X) Wyznaczanie bazy zależności Algorytm Dane: zbiór M zależności wielowartościowych oraz X ⊆ A Wynik: BasehA,Mi (X) Program: 1. Zamień każdą zależność X → Y, na { X → → y : y ∈ Y} df 0 2. Niech T == { Y \ X, (XY) : W ⊆ X, W → → Y ∈ M} 3. Dopóki się da bierz nierozłączne Z1 , Z2 z T i zastępuj je zbiorami Z1 \ Z2 , Z2 \ Z1 i Z1 ∩ Z2 , 4. Dopóki się da bierz w T takie Y i taką zależność V→ → W w M, że Y ∩ W 6= ∅ i Y ∩ V = ∅ i zastępuj Y zbiorami Y ∩ W i Y \ W. Pełność systemu SMVD (A) Twierdzenie Niech Σ = hA, Di. Σ |= δ ⇒ Σ`δ Dowód (szkic) Niech δ ∈ { X → Y , X → → Y }. Niech dla J ⊆ BaseΣ (X), df kJ (x) == i niech dx1 , x ∈ [X]+ Σ ∪ x d0 , w poz. przyp. S df J RΣ (X) == [ kJ : J ⊆ BaseΣ (X) ] Wówczas RΣ (X) |= D i RΣ (X) 6|= δ Silne twierdzenie o pełności Uwaga Niech Σ = hA, Di. Istnieje relacja R, dla której R |= δ ⇔ Σ`δ dla dowolnej zależności δ ∈ Func(A) ∪ MVD(A). Dowód (szkic) Niech { δ : Σ 6` δ } = { δn : n = 1, 2, . . . } Niech dalej, dla J ⊆ BaseΣ (Xn ), S x ∈ [Xn ]+ J dx2n+1 , Σ ∪ df kJ ,n == x d2n , w pozostałych przypadkach Wówczas df R == [ kJ ,n : J ⊆ BaseΣ (Xn ), n = 1, 2, . . . ] jest szukaną relacją. Reprezentacja boolowska Definicja Niech X, Y ⊆ A i niech df (X → → Y)? == ^ ^ x∈X ^ ^ ^ ^ px → py + pz y∈Y z∈Y0 Twierdzenie o reprezentacji boolowskiej Twierdzenie Niech Σ = hA, Di. D |=A δ ⇔ D? |= δ ? Czwarta postać normalna Definicja Schemat S = hA, Di jest w czwartej postaci normalnej, jeśli każda nietrywialna zależność wielowartościowa jest zależnością od nadklucza. Algorytm rozkładu odwracalnego do 4NF Algorytm Dane: schemat S = hA, Mi. Wynik: Rozkład A1 , . . . , An taki, że hA1 , πA1 (M)i , . . . , hAn , πAn (M)i Program: ∈ 4NF Znajdź w M zależność X → → Y naruszającą 4NF Zastąp S = hA, Mi parą schematów df S1 = hXY, πXY (M)i , S2 = hXZ, πXZ (M)i , gdzie Z == A\Y rekurencyjnie wykonaj ten algorytm dla S1 i S2 . Usuń nadmiarowe elementy rozkładu Zależności złączeniowe Definicja Niech X1 . . . Xn ⊆ A. W R ⊆ T(A) spełniona jest zależność ./ X1 . . . Xn jeśli (R|X1 )? . . . ?(R|Xn ) ≡ (R|X1 ...Xn ) Ozn. R |= ./ X1 . . . Xn Eliminacja zależności wielowartościowych Twierdzenie R |= X → →Y ⇔ R |= ./ XY XY0 Uwaga Relacja R a a1 a1 a2 a1 b b1 b2 b1 b1 c c2 c1 c1 c1 spełnia zależność ./ a b c nie spełniając żadnej zależności wielowartościowej! Uwaga R |= ./ X1 . . . Xn wtw, gdy ∀ k1 ,...,kn ∈R ∀ ki |Xi ∩Xj = kj |Xi ∩Xj ⇒ i,j¬n ∃ (k|X1 = k1 |X1 , . . . , k|Xn k∈R = kn |Xn ) Dowód (⇒) Niech ki |Xi ∩Xj = kj |Xi ∩Xj , i, j = 1, . . . , n. Wówczas k1 |X1 ∪ . . . ∪ kn |Xn ∈ (R|X1 )? . . . ?(R|Xn ) ≡ R|X1 ...Xn skąd istnieje takie k ∈ R, że k1 |X1 ∪ . . . ∪ kn |Xn = k|X1 ...Xn , czyli też k|X1 = k1 |X1 , ... , k|Xn = kn |Xn . (⇐) Niech m ∈ (R|X1 )? . . . ?(R|Xn ). Istnieją k1 , . . . , kn ∈ R, że m|X1 = k1 |X1 , ... , m|Xn = kn |Xn Oczywiście ki |Xi ∩Xj = kj |Xi ∩Xj , i, j = 1, . . . , n. Istnieje zatem k ∈ R, dla którego k|X1 = k1 |X1 , . . . , k|Xn = kn |Xn . Wtedy jednak, m|X1 ...Xn = k|X1 ...Xn , skąd m ∈ R|X1 ...Xn . Uwaga Zależność ./ X1 . . . Xn jest trywialna wtw, gdy Xj = pewnego j = 1, . . . , n. Sn i=1 Xi dla Dowód (⇒) Niech k ∈ (R|X1 )? . . . ?(R|Xn ). Istnieją l1 , . . . , ln ∈ R, dla których k|X1 = l1 |X1 , ... , k|Xn = ln |Xn Ponieważ X1[ , . . . , Xn ⊆ X |Xi , dla i = 1, . . . , n. Mamy j , li |Xi = lj[ [ k|X1 ...Xn = (k|Xi ) = (li |Xi ) = (lj |Xi ) = lj |X1 ...Xn ∈ R|X1 ...Xn i i i (⇐) Niech ( df kj (x) == dx0 dx1 , x ∈ Xj , x ∈ A \ Xj Oczywiście ki |Xi ∩Xj = kj |Xi ∩Xj , i, j = 1, 2, . . . , n. Ponieważ ./ X1 . . . Xn jest spełniona w [ k1 , . . . , kn ], istnieje takie j = 1, . . . , n, że kj |X1 = k1 |X1 , . . . , kj |Xn = kn |Xn Ustalmy i = 1, 2, . . . , n. Skoro kj |Xi = ki |Xi , mamy też kj |Xi \Xj = ki |Xi \Xj , co oznacza, że Xi \ Xj jest puste, skąd Xi ⊆ Xj , dla wszystkich i = 1, 2, . . . , n Piąta postać normalna Definicja Schemat S = hA, Di jest w piątej postaci normalnej, jeśli każda nietrywialna zależność złączeniowa wynika z zależności kluczowych. Ozn. R ∈ 5NF , R ∈ DJ/NF