Adatbázisok elmélete 12. el ˝ oadás
Katona Gyula Y.
Budapesti M ˝uszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz.
I. B. 137/b
kiskat@cs.bme.hu
http://www.cs.bme.hu/˜kiskat
2004
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 1/15
Emlékeztet ˝ o
Definíció.Adott(R,F). AzX→Yfüggéslogikai következménye(szemantikai következménye)F-nek, ha azX→Yminden olyanrrelációban teljesül, aholFfüggései mind teljesülnek.
Jelölése:F|=X→Y
Definíció.EgyX→Yfügg ˝oség akkor vezethet ˝o le egy adottFfügg ˝oséghalmazból, ha az axiómák ismételt alkalmazásávalF-b ˝ol megkapjukX→Y-t.Jele:F`X→Y.
|=⇒ `: Teljességi tétel,ami igaz az levezethet ˝o.(Ma lesz.)
` ⇒ |=: Igazság tétel,csak igaz dolgok vezethet ˝ok le.
√ Armstrong-axiómák
1. Reflexivitás:HaX,Y⊆RésY⊆X, akkorX→Y.
2. Kiegészítési tulajdonság:HaX,Y⊆RésX→Y, akkorXW→YWigaz tetsz ˝oleges W⊆R-re.
3. Tranzitivitás:HaX,Y,Z⊆R,X→YésY→Z, akkorX→Z.
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 2/15
Levezethet ˝ o szabályok
Néhány további szabály, ami levezethet ˝o az axiómákból (és az igazságtétel miatt igazak is).
Állítás(Unió szabály).{X→Y, X→Z} `X→Y Z Bizonyítás:
i) X→Y: ezF-beli
ii) XZ→Y Z: kiegészítveZ-val iii) X→Z: ezF-beli
iv) X→XZ: kiegészítveX-vel v) X→Y Z: iv) és ii) + tranzitivitás
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 3/15
Levezethet ˝ o szabályok
Állítás(Áltranzitiv szabály).{X→Y, YW →Z} `XW→Z Bizonyítás:
i) X→Y: ezF-beli
ii) XW→YW: kiegészítveW-val iii) YW→Z: ezF-beli
iv) XW→Z: ii) és iii) + tranzitivitás
Állítás(Felbontási szabály).Tegyük fel, hogyZ⊆Y, ekkor{X→Y} `X→Z Bizonyítás:
i) X→Y: ezF-beli ii) Y→Z: reflexivitás
iii) X→Z: i) és ii) + tranzitivitás
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 4/15
Lezárás
Definíció.HaFegy függéshalamaz, akkor alezártjaF+azF-b ˝ol levezethet ˝o összes függés:
F+={X→Y|F`X→Y}
Jó:mert ha majd belátjuk|=⇐⇒ `-t, akkor kiderül, hogy ez éppen azF-b ˝ol szükségszer ˝uen következ ˝o összes függést adja meg.
Gond:nagyon nagy lehet
Pl.R( A1, . . . ,An,B1, . . .Bn)ésF={Ai→Bj|1≤i,j≤n}, akkor ezn2db függés F+-ban benne van mindenAi1. . .Aik→Bj1. . .Bjl, azaz(2n−1) (2n−1)≈22neleme van.
Ezért ehelyett valami mást nézünk, amit könnyebb lesz meghatározni és jól közelítiF+-t:
Definíció.HaXegy attribútum halmaz(R,F)-ben, akkorlezártja X+(F)={A∈R|F`X→ A}, azaz azon attribútumok, amik függnekX-t ˝ol.
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 5/15
Attribútumhalmaz lezárása
Állítás.X⊆X+(F)⊆R
Lemma.(Fontos!!!)F`X→Y⇐⇒Y⊆X+(F)
Bizonyítás: =⇒: Tegyük fel, hogyF`X→Yés legyenA∈Y.
F`X→A, hiszen vegyükX→Ylevezetését és alkalmazzuk a felbontási szabályt a végén.
Definíció szerint ekkorA∈X+(F). Ez mindenA∈Y-ra igaz.
√
⇐=: LegyenY=A1. . .Ak⊆X+(F).
Így definíció szerint∀Ai∈Y-raF`X→ Ai.
EkkorX→Ylevezetése: vesszük azAi-k levezetését és a végén alkalmazzuk az uniós szabálytk−1-szer.
√
Következménye:Ha minden X-re ismerjük/ki tudjuk számítaniX+(F)-et, akkor tetsz ˝oleges X→Yfüggésr ˝ol eldönthet ˝o, hogyF+-beli-e vagy sem,mertX→Y∈F+pontosan akkor teljesül (definíció szerint), haF`X→Y, de ez meg az el ˝obbi lemma szerint pontosan akkor van, haY⊆X+(F)
Megjegyzés:Majd látjuk, hogyX+(F)kiszámolására lesz gyors algoritmus.
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 6/15
Teljességi tétel
Tétel(Teljességi tétel).HaF|=X→Y, akkorF`X→Y.
Bizonyítás: Tegyük fel indirekt, hogy van olyanX→Yfüggés ésFfüggéshalmaz, hogy X→Ynem vezethet ˝o leF-b ˝ol (F0X→Y), noha logikai következménye neki (F|=X→Y).
Ez utóbbi azt jelenti, hogy minden olyan relációban, amibenFfügg ˝oségei teljesülnek, ha X-en megegyezik két sor, akkor azok megegyeznekY-on is.
Úgy jutunk ellentmondásra, hogy konstruálunk egy olyanrrelációt, aholFfügg ˝oségei teljesülnek, deX6→Y, ami ellentmondF|=X→Y-nak.
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 7/15
Bizonyítás (folyt.)
r X+(F)
z }| { X
A1 . . . .
z }| {
. . . An
t1 1 1 1 1 1 1 1. . . .1 1 1 1 1 1 1 t2 0 0 0 1 1 1 1. . . .1 1 1 1 0 0 0
Tehátrkét soros reláció,X+(F)-en megegyezik a két sor, a többin különbözik.
Állítás.r-ben teljesülnekFfüggései.
Bizonyítás: LegyenU→V∈F.
HaU*X+(F) =⇒U→Vigaz, hiszen nincs olyan két sor, amiU-n megegyezik.
HaU⊆X+(F), akkor lemma miattF`X→U.
Tranzitivitás miattF`X→V. Lemma =⇒V⊆X+(F),V-n megegyezik a két sor.
√
Állítás.r-ben nem igazX→Y.
Bizonyítás: MivelF0X→Y, ezért a fontos lemma miattY*X+(F), azazYkilógX+(F)-b ˝ol, abból a részb ˝ol, ahol a két sor egyenl ˝o.
Vagyis a két sor egyenl ˝oX-en, de nem egyenl ˝oY-on, ígyX→Ynem igazr-ben.
Tehátrtényleg olyan, hogy benneFminden függése fennáll, deX→Ynem, ami bizonyítja, hogyF6|=X→Y.
Következmény.`és|=felcserélhet ˝o.
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 8/15
Kulcs
Definíció.X⊆Rszuperkulcsaaz(R,F)sémának, haF`X→R. Másképpen, ha R=X+(F).
X⊆Rkulcsaaz(R,F)sémának, ha szuperkulcs és nincs olyan valódi részhalmaza, ami szuperkulcs.
Példa:
F={TERMEL ˝O, TERMÉKNÉV→ÁR;TERMEL ˝O→CÍM} X=TERMEL ˝O, TERMÉKNÉV
=⇒ X+(F)=TERMEL ˝O, TERMÉKNÉV, ÁR, CÍM TERMEL ˝O+(F)=TERMEL ˝O, CÍM
TERMÉKNÉV+(F)=TERMÉKNÉV
=⇒ Xkulcs
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 9/15
X
+(F) kiszámítása
Algoritmus:
X0=X, ... Xi=. . . ,
Xi+1=Xi∪ {A∈R|van olyanU→V∈F, hogyU⊆Xiés A∈V}, ...
X+(F)=Xutolsó,(amikor már nem n ˝o)
Állítás.Xutolsó⊆X+(F)( azaz, a fontos lemma miattF`X→Xutolsó)
Bizonyítás: Indukcióvali-re belátjuk, hogyF`X→Xi, innen már következik az állítás.
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 10/15
Bizonyítás (folyt.)
i=0:F`X→X0=X, reflexivitás.
i i+1
1. U→V∈F, U⊆Xi, A∈V 2. Xi→U, reflexivitás
3. X→U, tranzitivitás + indukciós felt.F`X→Xi+ (2. sor) 4. X→V, tranzitivitás (1. és3. sor)
5. V→ A, reflexivitás, (1. sor) 6. X→ A, tranzitivitás, (4. és5. sor) 7. F`X→ A, mindenA∈Xi+1
8. F`X→Xi+1
=⇒F`X→Xutolsó =⇒(Lemma)Xutolsó⊆X+(F).
√
Példa:
R( A,B,C,D), F={A→B, B→C, BC→ D}, A+(F)=? X0={A}, X1={A,B}, X2={A,B,C}, X3={A,B,C,D}=Xutolsó
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 11/15
Bizonyítás másik iránya
Állítás.X+(F)⊆Xutolsó
Bizonyítás: Tekintsük az alábbi kétsorosrrelációt: a két sorXutolsó-n egyenl ˝o, azon kívül eltérnek.
r Xutolsó
z }| { A1 . . . .
X z }| {
. . . An t1 1 1 1 1 1 1 1. . . .1 1 1 1 1 1 1 t2 0 0 0 1 1 1 1. . . .1 1 1 1 0 0 0
r-ben egyrészt mindenF-beli függés teljesül.(Bizonyítás, hasonlóan, mint a teljességi tételnél csak most az kell, hogy ha egyW→Sfüggés eseténW⊆Xutolsó, akkorS⊆Xutolsóis igaz, az algoritmus m ˝uködése miatt.)
rsegítségével azt látjuk be, hogy haA<Xutolsó, akkorA<X+(F), ami éppen a kívánt állítás.
HaA<Xutolsó =⇒rolyan reláció, amibenX9 A ezértF2X→A, hiszenr-benFminden függése teljesül.
=⇒(az igazság tétel miatt)F0X→ A =⇒(fontos lemma)A<X+(F)
√
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 12/15
Következmények
Következmény.X+(F)=Xutolsó, azaz tényleg jó az algoritmus.
Következmény.AdottX-r ˝ol el lehet dönteni, hogy (szuper)kulcs-e.
Megnézzük, hogyX+(F)=Rigaz-e. Ha igen, akkor szuperkulcs. Ha mindenX−A-ra már nem szuperkulcsot kapunk, akkorXkulcs.
Gyorsan implementálható.
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 13/15
Felbontások
Cél:Adott(R,F)sémából anomáliát nem tartalmazó olyan felbontás el ˝oállítása, amib ˝ol ugyanaz az információ nyerhet ˝o, mint az eredetib ˝ol.
Definíció.ρ=(R1, . . . ,Rk)az(R,F)séma felbontása, haRi⊆Rés∪ki=1Ri=R.
Haregy(R,F)sémára illeszked ˝o reláció, akkor legyenri=πRi(r)és mρ(r) :=r1Zr2Z· · ·Zrk (Megj.:Zasszociatív, így nem kell a zárójelezéssel vesz ˝odni)
Kérdés:mikor nyerhet ˝o vissza az infó a felbontásból? Mi általábanrésmρ(r)viszonya?
Tétel.
(i) r⊆mρ(r) (ii) ri=πRi(mρ(r)) (iii) mρ
mρ(r)
=mρ(r)
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 14/15
Bizonyítás
Bizonyítás: Hategy sor, akkorπRi(t)helyettt[Ri]-t írunk.
(i) r⊆mρ(r):
Hategy sorr-ben, akkortminden vetülete benne van a megfelel ˝ot[Ri]-ben, ezek össze is illenek, ígymρ(r)-ben is szerepelni fogt.
(ii) ri=πRi(mρ(r)):
r⊆mρ(r) =⇒ri=πRi(r)⊆πRi mρ(r)
.
Hat∈mρ(r), akkor ez természetes illesztéssel jött létre,ri-beli sorokból, így levetítve Ri-re éppriegy sorát kapjuk.
(iii) mρ
mρ(r)
=mρ(r):
mρ(r)=Zk
i=1 ri=Zk
i=1πRi(r) mρ
mρ(r)
=Zk
i=1πRi
mρ(r)(ii)
=Zk
i=1ri=mρ(r)
Megjegyzés:(i) szerint a szétszedés és összerakás után vagy pontr-t kapom meg, vagy többet kapok, kevesebb sor nem lehet. Har,mρ(r), akkor ez nem egy túl hasznos felbontás.
De ennél több is igaz:ebben az esetben teljesen reménytelen a felbontásból visszaszerezni r-t:mivel (ii) szerintrésmρ(r)(függ ˝oleges) vetületei ugyanazok, ezért har,mρ(r), akkorvan két olyan reláció (résmρ(r)), aminek a vetületei ugyanazok =⇒a vetületekb ˝ol nem lehet visszaállítanir-et (nem lehet eldönteni, hogyrvagymρ(r)volt).
Következmény:har,mρ(r), akkor sehogyan se lehet visszahoznir-t a vetületekb ˝ol.
ADATBÁZISOK ELMÉLETE12.EL ˝OADÁS 15/15
H ˝ uséges felbontás
Tehát az a kérdés, hogy mik azok a felbontásai egy(R,F)sémának, amik esetén tetsz ˝oleges (R,F)-re illeszked ˝orrelációrar=mρ(r)
Definíció.Adott(R,F). Ennekρfelbontásah ˝uséges (veszteségmentes, lossless), ha minden(R,F)-re illeszked ˝orrelációrar=mρ(r).
Példa:Legyen(R,F)a következ ˝o: R( A,B,C),F={C→ A}és legyenraz alábbi reláció.
r A B C a c e a d f b c g b d h
s A B
a c a d b c b d
t B C
c e d f c g d h
sZt A B C a c e a c g a d f a d h b c e b c g b d f b d h
Ez a példa mutatja, hogyr,s( A,B)Zt(B,C), azaz ez a felbontás nem h ˝uséges.
Der=s0( A,C)Zt0(B,C), majd látjuk.