Adatbázisok elmélete 16. el ˝ oadás
Csima Judit
Budapesti M ˝uszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz.
I. B. 136/b
csima@cs.bme.hu
2003. Április 8.
ADATBÁZISOK ELMÉLETE16.EL ˝OADÁS
H ˝ uséges felbontás két részre
Hogyan biztosíthatjaF, hogy a felbontás h ˝uséges legyen?
Tétel. Az RF
sémaρ R1R2
felbontása h ˝uséges vagy (a) F
R1
R2
R1 R2, vagy (b) F
R1 R2 R2 R1.
Példa: R(TNÉV, TERMEL ˝O, ÁR, CÍM) F
TERMEL ˝O CÍM;TNÉV, TERMEL ˝O ÁR ρ TERMEL ˝O, CÍM ;TNÉV, TERMEL ˝O, ÁR
R1 R2
TERMEL ˝O
R1 R2
CÍM
R2 R1
TNÉV, ÁR
TERMEL ˝O
F
TERMEL ˝O, CÍM R1 R2
h ˝uséges
ρ TNÉV, TERMEL ˝O;TNÉV, CÍM, ÁR
R1 R2
TNÉV
R1 R2
TERMEL ˝O
R2 R1
CÍM, ÁR
TNÉV
F
nem tartalmazza egyiket sem nem h ˝uséges
1
ADATBÁZISOK ELMÉLETE16.EL ˝OADÁS
Bizonyítás: Tegyük fel, hogyF
R1
R2
R1 R2, belátjuk, hogy a felbontás h ˝uséges.
(Ha a másik igaz, ugyanígy.)
Legyen regy tetsz ˝oleges reláció,s mρr
. Elég belátni, hogys r, hiszenr s mindig igaz. Azaz, lássuk be, hogy hatsoras-nek, akkorr-nek is.
Hatsoras-nek, akkor u1u2sorair-nek, hogyt
R1
u1
R1
ést
R2
u2
R2
.
u1
R1
R2
t
R1
R2
u2
R1
R2
de ha két sor megegyezik a metszeten, akkor a feltétel miattR1 R2-n is egyeznek az egészR1-en u2éstegyeznekR1-en.
t u2, hiszenR1-en a fenti miatt,R2-n a feltevés miatt egyeznek.
Másik irány: Belátjuk, hogy haR1 R2
R1 R2
F
ésR2 R1
R1 R2
F
, akkor ρnem h ˝uséges.
2
ADATBÁZISOK ELMÉLETE16.EL ˝OADÁS
Legyenra következ ˝o reláció:
r R1
R2
R1
R2
F
R1
R2
t1 0 0 0 1 1 1 . . . 1 1 1 1 1 1 t2 1 1 1 1 1 1 . . . 1 1 1 0 0 0 A feltétel miatt a két széls ˝o rész nem üres, ott nem egyezik meg a két sor.
r-ben igazakFfügg ˝oségei (mint a teljességi tételnél).
Viszontmρ r
r, hiszenmρ r
-ben a csupa1sor is benne van.
3
ADATBÁZISOK ELMÉLETE16.EL ˝OADÁS
H ˝ uségesség ellen ˝ orzése általában
Adott RF
ésρ R1 Rk
, aholR A1 An.
Hogyan tudjuk eldönteni, hogy h ˝uséges-e a felbontás?
Készítünk egyk n-es táblázatot:
A1 Aj Aj An
R1 ...
Ri aj bi j ...
Rk
Kezdetben az ij
helyreaj-t írunk, haAj
Riésbi j-t, haAj
Ri.
4
ADATBÁZISOK ELMÉLETE16.EL ˝OADÁS
Veszünk egy tetsz ˝olegesX Y Ffüggést.
Ha két sor megegyezikX-en, akkor egyenl ˝ové tesszükY-on is az alábbi módon:
– Ha valaholajésbi jvan, akkor abi j-taj-ra cseréljük.
– Habk jésbl jvan, akkor az egyiket átírjuk a másikra.
Ezt minden függésre megcsináljuk tetsz ˝oleges sorrendben, szükség esetén többször is.
Tétel.ρpontosan akkor h ˝uséges ha a végén lesz csupaasor.
Nem bizonyítjuk.
5
ADATBÁZISOK ELMÉLETE16.EL ˝OADÁS
Példa a táblázatos tesztre
R ABCD
F
A C; C B; B D
ρ ABBCACD
A B C D
R1 a1 a2 b13 a3
b14
R2 b21 a2 a3 b24
R3 a1 b32
a2
a3 a4
A Cmiatt
C Bmiatt
Lett csupaasor h ˝uséges felbontás
6
ADATBÁZISOK ELMÉLETE16.EL ˝OADÁS
H ˝ uséges felbontás
Tétel. Adott RF
,ρ R1 Rk
az R h ˝uséges felbontása ésσ S1 Sm
az R1 h ˝uséges felbontása (azazR1-et tovább bontjuk). Ekkorτ S1 SmR2 Rk
h ˝uséges felbontásaR-nek.
Bizonyítás: Legyenregy R-re illeszked ˝o reláció és ennekR1-re es ˝o vetülete legyen r1. Tovább bontvar1-etσszerint kapjuk azs1s2 smvetületeket. Mivelσh ˝uséges, ezérts1 s2 sm mσr1
r1. Mivel ρ is h ˝uséges, ezért r mρr
r1 r2 rk Ebbe beírva r1 helyére a σ h ˝uségességéb ˝ol kapott egyenl ˝oséget, kapjuk, hogyr s1 s2 sm r2 rk mτr
, azazτis h ˝uséges. Itt persze használtuk asszociativitását.
Tétel. Haρh ˝uséges ésσ ρ(σ-ban több komponens van), akkorσis h ˝uséges.
Bizonyítás: r mσr
mρr
r
A középs ˝o tartalmazás azért igaz, mert a keresztszorzatból szigorúbb feltételek szerint válogatunk.
r mσ r
7
ADATBÁZISOK ELMÉLETE16.EL ˝OADÁS
Normálformák
Definíció. EgyX Yfüggés triviális, haY X. (Mert ezek a függések nem hordoznak sok infót, mindg igazak.)
Definíció(Boyce–Codd normálforma). Az RF
relációs séma BCNF-ben van, ha tetsz ˝oleges nemtriviálisX A F
függés eseténXszuperkulcs.
Azaz csak olyan függések vannak, hogy a szuperkulcs mindent meghatároz.
Tétel. Az RF
BCNF-ben van pontosan akkor ha tetsz ˝oleges A R-re és X R kulcsra igaz, hogy nincs olyanY R, amire X Y F
; Y X ; Y A F
és A
Y. (Nincs tranzitív függés kulcstól.)
Bizonyítás: Ha nincs BCNF-ben a séma, akkor van egyY Afüggés, aholY nem szuperkulcs ésA
Y. Ekkor, tetsz ˝olegesXkulccsal:X YY
XY A, deA
Y,
ami épp egy kulcstól való tramzitív függés.
Másrészt, ha van tranzitív függés kulcstól, azazX olyan kulcs, amivelX YY
8
ADATBÁZISOK ELMÉLETE16.EL ˝OADÁS
XY A, deA
Y, akkorY Aegy olyan függés, ami sérti a BCNF tulajdonságot, mertYnem lehet szuperkulcs, haY X.
Miért jó a BCNF séma?
HaC B; B Ateljesülne, deB Cnem, akkor ugyanaz aBérték többC érték mellett is el ˝ofordulhatna, de minden példánynál ugyanazt azA értéket is tároljuk
redundancia.
Állítás. 2attribútumos reláció mindig BCNF.
Bizonyítás: HaA B Akulcs. HaB A Bkulcs.
MivelF
-ra követeljük meg a feltételt, nehéz ellen ˝orizni.
DE:
Tétel. Ha RF
nem BCNF, akkor van olyanX Y F, amely jobboldalának valamely AattribútumáraX Anemtriviális ésXnem szuperkulcs. (Az ilyenX A F
.) Bizonyítás: Ha RF
nem BCNF, akkor vanU B F
, hogyUnem szuperkulcs és B
U. B U
F
U U
F
9
ADATBÁZISOK ELMÉLETE16.EL ˝OADÁS
Az algoritmus, amiU
F
-et számolja, el tud indulni V W F, melyreV U W
U V Wjó leszX Y-nak.
UgyanisVnem szuperkulcs, hiszenV UésUnem szuperkulcs.
W
U A W U W V, ígyV Wnem triviális.
Ez jelent ˝osen könnyíti az ellen ˝orzést, csakFfügg ˝oségeit kell végignézni, nemF
-ét.
10