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