• Nem Talált Eredményt

Adatbáziskezelés H˝uséges felbontás, normálformák Katona Gyula Y.

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Adatbáziskezelés H˝uséges felbontás, normálformák Katona Gyula Y."

Copied!
48
0
0

Teljes szövegt

(1)

Adatbáziskezelés

H ˝uséges felbontás, normálformák

Katona Gyula Y.

Számítástudományi és Információelméleti Tanszék Budapesti M ˝uszaki és Gazdaságtudományi Egyetem

(2)

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, ha Ri⊆R és∪ki=1Ri=R.

Ha r egy(R,F)sémára illeszked ˝o reláció, akkor legyen riRi(r)és mρ(r) :=r1onr2on· · ·onrk

(Megj.:onasszociatí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) riR(mρ(r))

(3)

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) riRi(mρ(r)):

r ⊆mρ(r) =⇒riRi(r)⊆πRi(mρ(r)).

Hat∈mρ(r), akkor ez természetes illesztéssel jött létre,ri-beli sorokból, így levetítveRi-re éppriegy sorát kapjuk.

(iii) mρ(mρ(r)) =mρ(r):

mρ(r) =onki=1ri=onki=1πRi(r)

mρ(mρ(r)) =onki=1πRi(mρ(r))(ii)=onki=1ri =mρ(r)

(4)

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 6=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

visszaszereznir-t:mivel (ii) szerintr ésmρ(r)(függ ˝oleges) vetületei ugyanazok, ezért har6=mρ(r), akkorvan két olyan reláció (r és mρ(r)), aminek a vetületei ugyanazok

=⇒a vetületekb ˝ol nem lehet visszaállítani r -et (nem lehet eldönteni, hogy r vagy mρ(r)volt).

Következmény:har 6=mρ(r), akkor sehogyan se lehet visszahoznir-t a vetületekb ˝ol.

(5)

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 ˝or relációrar =mρ(r)

Definíció

Adott(R,F). Ennekρfelbontásah ˝uséges (veszteségmentes, lossless), ha minden (R,F)-re illeszked ˝o r relációra r=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

sont A B C a c e a c g a d f a d h b c e b c g b d f

(6)

H ˝uséges felbontás két részre

Hogyan biztosíthatjaF, hogy a felbontás h ˝uséges legyen?

Tétel

Az(R,F)sémaρ= (R1,R2)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

(7)

Bizonyítás

Bizonyítás.

⇐=

Tegyük fel, hogy F|=R1∩R2→R1\R2, belátjuk, hogy a felbontás h ˝uséges.(Ha a másik igaz, ugyanígy.)

Legyen r egy tetsz ˝oleges reláció, s=mρ(r). Elég belátni, hogy s⊆r , hiszen r ⊆s mindig igaz. Azaz, lássuk be, hogy ha t sora s-nek, akkor r -nek is.

Ha t sora s-nek, akkor∃u1,u2sorai r -nek, hogy t[R1] =u1[R1]és t[R2] =u2[R2].

=⇒u1[R1∩R2] =t[R1∩R2] =u2[R1∩R2]

de ha két sor megegyezik a metszeten, akkor a feltétel miatt R1\R2-n is

=⇒egyeznek az egész R1-en =⇒u2és t egyeznek R1-en.

=⇒t=u2, hiszen R1-en a fenti miatt, R2-n a feltevés miatt egyeznek. √

=⇒Indirekt bizonyítunk. Tegyük fel, hogy sem (a), sem (b) nem igaz, azaz R1\R2*(R1∩R2)+(F)és R2\R1*(R1∩R2)+(F). Belátjuk, hogy ekkorρnem h ˝uséges.

(8)

Bizonyítás.

Adunk egy olyan(R,F)sémát, ahol sem (a), sem (b) nem áll fenn, és megmutatjuk, hogy ezen a felbontás nem h ˝uséges.

Legyenr a következ ˝o reláció:

r R1

z }| {

R2

z }| {

(R1∩R2)+(F)

z }| {

R1∩R2

z }| {

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észnem üres, ott nem egyezik meg a két sor.

r-ben igazakF függ ˝oségei(mint a teljességi tételnél).

Viszontmρ(r))r, hiszenmρ(r)-ben a csupa 1 sor is benne van. Tehát a felbontás nem h ˝uséges.

(9)

H ˝uségesség ellen ˝orzése általában

Adott(R,F)é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 . . . Aj0 . . . An

R1

...

Ri aj bij0

... Rk

Kezdetben az(i,j)helyreaj-t írunk, haAj ∈Ri ésbij-t, haAj∈/Ri. 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:

I Ha valaholajésbijvan, akkor abij-taj-ra cseréljük.

(10)

Jó a módszer?

Tétel

ρpontosan akkor h ˝uséges ha a végén lesz csupa a sor.

Nem bizonyítjuk.

(11)

Példa a táblázatos tesztre

R(ABCD) F ={A→C;C→B; B→D}

R1=AB,R2=BC,R3=ACD ρ= (R1,R2,R3)

A B C D

R

1

a

1

a

2

b

13

→ a

3

b

14

R

2

b

21

a

2

a

3

b

24

R

3

a

1

b

32

→ a

∗∗2

a

3

a

4

* A → C miatt

** C → B miatt

Lett csupaasor =⇒h ˝uséges felbontás

(12)

H ˝uséges felbontás

Tétel

Adott(R,F),ρ= (R1, . . . ,Rk)az R h ˝uséges felbontása ésσ= (S1, . . . ,Sm)az R1

h ˝uséges felbontása(azaz R1-et tovább bontjuk). Ekkorτ = (S1, . . . ,Sm,R2, . . . ,Rk) h ˝uséges felbontása R-nek.

Bizonyítás.

Legyenr egyR-re illeszked ˝o reláció és ennekR1-re es ˝o vetülete legyenr1.Tovább bontvar1-etσszerint kapjuk azs1,s2, . . . ,smvetületeket.Mivelσh ˝uséges, ezért s1ons2no· · ·sm=mσ(r1) =r1.

Mivelρis h ˝uséges, ezértr =mρ(r) =r1nor2on· · ·rk. Ebbe beírvar1helyére aσ h ˝uségességéb ˝ol kapott egyenl ˝oséget, kapjuk, hogy

r =s1nos2on· · ·smnor2on· · ·rk =mτ(r), azazτis h ˝uséges.Itt persze használtukon asszociativitását.

(13)

H ˝uséges felbontás

Definíció

Ha egyσfelbontást aρfelbontásból, úgy kapjuk, hogy néhány relációját felbontjuk, akkor ezt a következ ˝oképp jelöljük:σ⊇ρ.

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) √

(14)

Adatbáziskezelés

Normálformák, BCNF

Katona Gyula Y.

Számítástudományi és Információelméleti Tanszék Budapesti M ˝uszaki és Gazdaságtudományi Egyetem

(15)

Normálformák

Definíció

Egy X→Y függés triviális, ha Y⊆X .(Mert ezek a függések nem hordoznak sok infót, mindig igazak.)

Definíció (Boyce–Codd normálforma)

Az(R,F)relációs séma BCNF-ben van, ha tetsz ˝oleges nemtriviális X →A∈F+ függés esetén X szuperkulcs.

Azaz csak olyan függések vannak, hogy a szuperkulcs mindent meghatároz.

(16)

Normálformák

Tétel

Az(R,F)BCNF-ben van pontosan akkor ha tetsz ˝oleges A∈R-re és X ⊆R kulcsra igaz, hogy nincs olyan Y⊆R, amire X →Y ∈F+; Y 9X;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, aholYnem szuperkulcs és A6∈Y. Ekkor, tetsz ˝olegesXkulccsal:X →Y,Y 6→X,Y →A, deA6∈Y, ami épp egy kulcstól való tranzitív függés.

Másrészt, ha van tranzitív függés kulcstól, azazXolyan kulcs, amivel

X→Y,Y 6→X,Y →A, deA6∈Y, akkorY →Aegy olyan függés, ami sérti a BCNF tulajdonságot, mertY nem lehet szuperkulcs, haY 6→X. √

(17)

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.

Hogyan döntsük el, hogy egy(R,F)séma BCNF-e?

F+összes függését végig kellene nézni.

DE:

(18)

Miért jó a BCNF séma?

Tétel

Ha(R,F)nem BCNF, akkor van olyan X→Y ∈F, amely jobboldalának valamely A attribútumára X→A nemtriviális és X nem szuperkulcs.(Az ilyen X →A∈F+.)

Bizonyítás.

Ha(R,F)nem BCNF, akkor vanU→B∈F+, hogyUnem szuperkulcs ésB∈/U.

=⇒B∈U+(F) =⇒U(U+(F)

Az algoritmus, amiU+(F)-et számolja, el tud indulni =⇒ ∃V →W ∈F, melyre V⊆U, W*U =⇒V →W jó 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, csak F függ ˝oségeit kell végignézni, nem F+-ét.

(19)

Normalizálás

Tétel

Tetsz ˝oleges(R,F)sémának van h ˝uséges felbontása BCNF relációkra.

Bizonyítás.

Elve:

Ha(R,F)BCNF √

Ha nem, akkor két valódi (kisebb) részre bontjuk h ˝uségesen =⇒(R1,R2) Ezt ismételjük(R1,R2)-re.

Ez véget fog érni, mert ha már csak2attribútum marad valamelyikben, azt nem kell tovább bontani.

H ˝uséges lesz, mert láttuk, hogy ha egy h ˝uséges felbontás egyik részét tovább bontjuk, akkor h ˝uséges marad.

(20)

Bizonyítás

Bizonyítás.

Hogyan bontjuk fel 2 valódi részre, h ˝uségesen?

Keresünk a felbontandó sémában egy olyanX→A∈F+-t, ami sérti a BCNF tulajdonságot =⇒A és X része a sémának,A∈/XésX nem szuperkulcs

R1:=XA, R2:=R\ {A}

Ezek kisebbek:R2nyilván,R1pedig azért, mert haR1=Rvolna, akkorX →XA=R miattXszuperkulcs lett volna.

H ˝uséges a felbontás: kétrészes teszttelR1∩R2=X →A=R1\R2

Miért lesz jobb ez a felbontás?

AzX →Afüggéssel nem lesz több probléma:R2-ben nincsA, így nem lehet baj.

R-ben viszontX szuperkulcs lesz.

(21)

Példa

R(Tanár,Tárgy,Terem,Diák,Jegy,Id ˝o)

F ={Tá→T; IT→Te; ID→Te; ID→Tá; TáD→J} =⇒kulcs csak ID

R

k: I D T´a D J T T´a Te D I

T´a D→J

k: T´a D

T´a T k: T´a T´a→T

T´a Te D I k: I D

T´a D I k: I D T´a I Te

T´a I→Te∈F+

(22)

Megjegyzések

Minden felbontás után meg kell nézni, hogy a kapott relációk BCNF-ben vannak-e.

Ehhez meg kell konstruálniFS+-et, haSa vizsgált reláció: ez azFR+azon függéseib ˝ol áll, amiknek mindkét oldalaS-ben van. Ezeket a függéseket úgy kapjuk, hogyminden X⊆Srészhalmazra kiszámoljukX+(F)-et ésX →Y pontosan akkor lesz benne FS+-ben, haY ⊆X+(F)∩S.

Általában nem igaz, hogy elégF-b ˝ol kiválogatni azokat, amiknek mindkét oldalaS-ben van.

Pl.:F ={Tá→T;IT→Te; ID→Te; ID→Tá; TáD→J}

HaS=Tá Te D I, akkor (csak a nemtrivi függéseket felírva):

FS+={Tá I→Te; D I→Te Tá; D I Tá→Te; D I Te→Tá}

=⇒Az el ˝oz ˝o algoritmus lehet exponenciális =⇒Van polinomiális algoritmus is.

3 attribútum esetén a BCNF tulajdonság csak úgy sérülhet, haX→Y, aholX,Y egy-egy attribútum ésXnem kulcs.

Azt is mindig ellen ˝orizni kell, hogy a kapott relációkban mik a (szuper)kulcsok,hogy egy függésr ˝ol el tudjuk dönteni, hogy sérti-e a BCNF-et vagy nem.A példában ez viszonylag könny ˝u lesz, hiszen I és D egyikF-beli függ ˝oségben sem szerepel a jobb oldalon, így minden kulcs (amikor I és D szerepel a relációban) tartalmazza I D-t.

(23)

Függ ˝oség meg ˝orzése

BCNF egy fogyatékossága:nehéz lehet ellen ˝orizni, hogy teljesülnek-eFfüggései(pl.

beszúráskor). Ilyenkor a költségesonkell, és ez sokszor el ˝ofordulhat.

Kéne egy olyan felbontás, amin könnyen lehet ellen ˝orizni a függéseket.

Definíció

Adott(R,F)séma és ennek egyρ= (R1, . . . ,Rk)felbontása.

πρ(F) :={X →Y ∈F+| ∃i(1≤i≤k)X,Y ⊆Ri}+

azFfüggéseinek vetítése aρfelbontásra. ρfügg ˝oség ˝orz ˝o, haπρ(F) =F+. Megjegyzés:πρ(F)⊆F+persze mindig igaz.

Ha a felbontás függ ˝oség ˝orz ˝o, akkor elég a darabokon ellen ˝orizni valamit, ami garantálja, hogyF minden függése fennmarad az egészen.

(24)

Példa

R(Város,Utca,Irányítószám) F={VU→I; I→V}

Ez nem BCNFI→Vmiatt.

Mire jó a függ ˝oség ˝orzés?:

Ha felbontjuk =⇒S(V,I), Q(I,U) Beszúrunk 2-2 sort:

S V I

Nagykanizsa 8800 Nagykanizsa 8831

Q U I

Kossuth 8800 Kossuth 8831

NohaS-ben ésQ-ban oké minden,SonQ-ban nem teljesül aVU→Ifüggés.

Ez nem lett volna, ha függ ˝oség ˝orz ˝o lenne a felbontás.

Szomorú példa ez:semelyik felbontása sem ˝orzi megVU→I-t, mert csak ez olyan függés, aminek jobb oldalán vanI, azaz ha egy felbontás függ ˝oség ˝orz ˝o lenne, akkor

(25)

Következmény

Állítás

Felbontás BCNF-be nem feltétlenül függ ˝oség ˝orz ˝o.

Kellene egy gyengébb normálforma. Ebben lehet valamennyi redundancia, de legyen függ ˝oség ˝orz ˝o.

(26)

Adatbáziskezelés

3NF

Katona Gyula Y.

Számítástudományi és Információelméleti Tanszék Budapesti M ˝uszaki és Gazdaságtudományi Egyetem

(27)

3NF

Definíció

Az(R,F)séma A attribútumaprím(els ˝odleges), ha szerepel valamelyik kulcsban.

Szuperkulcsban minden szerepel, kulcs helyett szuperkulccsal nem lenne sok értelme az el ˝obbi definíciónak.

Definíció

Az(R,F)séma3NF(harmadik normálformájú), ha tetsz ˝oleges nemtriviális X→A∈F+függés esetén vagy X szuperkulcs vagy A prímattribútum.

Következmény

Minden BCNF séma egyben 3NF is.

(28)

3NF

3NF lehet redundáns, de nem nagyon.

BCNF 3NF

Irányítószámos példa

Tétel

Ha(R,F)egy 3NF séma, akkor minden nem prím A attribútumra és X⊆R kulcsra igaz, hogy nincs olyan Y , hogy X→Y, Y9X, Y →A és A∈/Y . (Nem-els ˝odleges attribútum nem függ tranzitíven kulcstól.)

(29)

3NF tulajdonság ellen ˝orzése

Hogyan tudjuk ellen ˝orizni, hogy egy séma 3NF-ben van-e?

Állítás

≤2attribútumos reláció mindig 3NF.

Bizonyítás.

Már láttuk, hogy BCNF =⇒3NF

Most isF+összes függ ˝oségét végig kellene nézni.

DE:

(30)

3NF tulajdonság ellen ˝orzése

Tétel

Ha(R,F)nem 3NF, akkor van olyan X→Y∈F, amely jobboldalának valamely A attribútumára X→A nemtriviális, X nem szuperkulcs és A nem prím.(Az ilyen X→A∈F+.)

Nem bizonyítjuk.

Azt tudjuk ellen ˝orizni egy adottX →Afüggésre, hogyXszuperkulcs-e:kiszámítjuk X+(F)-et.

De hogyan ellen ˝orizzük, hogyAprím-e? =⇒kell azösszeskulcs

Tétel

Annak eldöntése, hogy egy attribútum prím-e, NP-teljes probléma.

Következmény

(31)

3NF tulajdonság ellen ˝orzése

Persze olyan algoritmus van, ami legrosszabb esetben exponenciális:

Meghatározzuk az összes kulcsot.

Meghatározzuk az összes prímattribútumot.

MindenF-beliX →Y függésre nézzük meg:

I Igaz-e, hogyYX. Ha igen, a függés triviális.

I Igaz-e, hogyXkulcs-e. Ha igen, nem sérti a feltételt.

I Igaz-e, hogyY-ben csak prímattribútumok vannak. Ha igen, nem sérti a feltételt. √ Ha egyik sem, akkor van olyan függés, ami sérti a feltételt =⇒nem 3NF

(32)

3NF felbontás

Tétel

Tetsz ˝oleges(R,F)sémának van h ˝uséges és függ ˝oség ˝orz ˝o felbontása 3NF sémákra.

Definíció

A G függéshalmaz az F függéshalmazfedéseha G+=F+.(Persze ilyenkor F is fedése G-nek.)

Definíció

A G függéshalmaz az F függéshalmazminimális fedése, ha egyrészt fedése, másrészt

(1) a G-beli függések X →A alakúak, ahol A∈/X

(2) G-b ˝ol nem hagyható el függés:(G\ {X →A})+(G+

(3) G-beli függések baloldalai minimálisak: Y(X

+ +

(33)

3NF felbontás

Állítás

Tetsz ˝oleges F -nek van minimális fedése.

Bizonyítás.

Algoritmust adunk, külön gondoskodunk minden pont teljesítésér ˝ol.

(1)X→Y ∈G,Y =A1. . .Ak =⇒mindenX→Ai-t beveszünk, haAi6∈X. (2)MindenX→A∈Gfüggésre kiszámoljukY:=X+(G\ {X→A})-t. HaA∈Y, akkorX →Aelhagyható, különben nem.

(3)Ellen ˝orizni kell, hogyX →Abaloldala minimális-e.XmindenBelemére kiszámoljukY := (X\ {B})+(G)-t. HaA∈Y, akkorX→Ahelyett vegyük be X− {B} →A-t. Ha egyikB-re se lesz ilyen, akkorX minimális.

Megjegyzés:És persze a fenti három lépés során a függéshalmaz lezártja nem változik.

(34)

Példa

R= (A,B,C,D) F ={AB→CD; AC→BD; C→A; C→B}

(1)F0={AB→C; AB→D; AC→B; AC→D; C→A; C→B}

(2)C→BmiattAC→Belhagyható ésAB→CésAC→DmiattAB→D elhagyható, de más nem, ezt végig lehet nézni.

F0={AB→C; AC→D; C→A; C→B}

(3)C→AmiattAC→DbaloldalárólAelhagyható.

F00={AB→C; C→D; C→A; C→B}

Ez már minimális fedés.

A minimális fedés nem feltétlenül egyértelm ˝u!

Példa:R(A,B,C) F ={AB→C; A→B; B→A}esetén jó minimális fedés lesz G1={B→C; A→B; B→A}és

G2={A→C; A→B; B→A}is.

(35)

Bizonyítás

Tétel

Tetsz ˝oleges(R,F)sémának van h ˝uséges és függ ˝oség ˝orz ˝o felbontása 3NF sémákra.

Bizonyítás.

VegyükF egy minimális fedését:G={X1→A1, . . . ,Xk →Ak}

LegyenX egy kulcs ésρ= (X,X1A1, . . . ,XkAk)egy felbontás. =⇒R0,R1, . . . ,Rk

Állítás:ez függ ˝oség ˝orz ˝o lesz, a tagok 3NF-ek és a felbontás h ˝uséges.

ρfügg ˝oség ˝orz ˝o:F+=G+és mindenG-beliX →Ai függés benne leszRi-ben (ott ellen ˝orizhet ˝o).

R03NF:R0-ban nincs nemtriviális függés, mert különbenX nem lenne kulcs, csak szuperkulcs =⇒R0BCNF =⇒3NF

TöbbiRiis 3NF:tegyük fel, hogy nem az =⇒ ∃U→Bnemtriviális függés, hogyU nem szuperkulcsRi-ben ésBnem prímattribútumRi-ben.

HaB=Ai, akkorU⊆Xi, deU6=Xi, hiszen akkorUszuperkulcs lenneRi-ben.

=⇒U⊂Xi =⇒Xi→Aibaloldala csökkenthet ˝oG-benU-ra. Ellentmondás, mert akkorGnem volt minimális fedés.

HaB6=Ai =⇒B∈XiésBnem prímRi-ben =⇒Xinem kulcsRi-ben (de

(36)

Megjegyzés:El ˝ofordulhat, hogy valamelyikXiAi már tartalmaz kulcsot. Ilyenkor a ρ={X1A1, . . . ,XkAk}is jó felbontás már.

Megjegyzés:2NF már nem érdekes, 1NF kicsit érdekes, de nem foglalkozunk vele.

(37)

Példa: 3NF-re bontás

R= (A,B,C,D,E) F ={AE→BC; AC→D; CD→BE; D→E}

Ez nem 3NF, mert a kulcsok:

semelyik egyelem ˝u halmaz nem kulcs(csak D lehetne, de az ˝o lezártja csak DE), viszont kételem ˝uek közül szuperkulcs lesz AC, AD, AE(A-nak benne kell lennie minden kulcsban, mert A nincs jobboldalon), AB viszont nem szuperkulcs.

Ezek kulcsok is lesznek, mert egyik egyelem ˝u se volt kulcs.

Más kulcs nincs is, mert ha lenne legalább háromelem ˝u halmaz, aminek a lezártja az egész, akkor abban A biztos benne van és legalább C vagy D vagy E is benne van, de akkor az már csak szuperkulcs lehet, mert tartalmaz kulcsot.

Innen látszik, hogy a prímattribútumok:A, C, D, E,vagyisB nem az.

(38)

Példa: 3NF-re bontás (folyt.)

R= (A,B,C,D,E) F ={AE→BC; AC→D; CD→BE; D→E}

Tehát aCD→Bfüggés rossz a 3NF szempontjából, mertCDnem szuperkulcs ésB nem prím.

Csináljunk hát egy 3NF-ekre való függ ˝oség ˝orz ˝o, h ˝uséges felbontást.

(1)F0={AE→B;AE→C; AC→D; CD→B; CD→E; D→E}

(2)AE→C,AC→D,CD→BmiattAE→Belhagyható ésD→EmiattCD→Eis elhagyható, de más nem, ezt végig lehet nézni(mert például AE-nek a maradék függésekre vett lezártjában nincsen benne C).

F00={AE→C;AC→D; CD→B; D→E}

(3)Semelyik baloldal nem csökkenthet ˝o, mert például A lezártjában nincsen benne C, és a többi is ugyanígy látszik.VagyisF00már minimális fedés.

A minimális fedés alapján a jó felbontás:

(AEC,ACD,CDB,DE)mivel kulcsot nem is kellett hozzávennünk, mert az már benne van az egyik tagban (pl. AE az els ˝oben).

(39)

Többérték ˝u függés

A legfontosabb a funkcionális függés, de vannak másféle függések is.

Motiváló példa:R(Név, Tantárgy, Gyereknév)

Név Tantárgy Gyereknév

Katona Algel Dani

Katona Adatbázis Lilla Katona Algel Lilla Katona Adatbázis Dani

Ez BCNF, de mégis redundáns, mert ha valamelyik tárgynál szerepel egy gyereknév, akkor az összes többinél is szerepelnie kell. (Pl. beszúrni nehéz, mert amikor egy sort beszúrok, figyelni kell arra, hogy egy másikat is beszúrjak.)

Jobb lenne tárolni (Név, Tantárgy) és (Név, Gyereknév) felbontásban.

Ok:a Tantárgy és a Gyereknév független (minden kombinációban el ˝ofordulnak)

=⇒ha látjuk az els ˝o két sort, tudjuk, hogy a másik kett ˝o is ott van.

(40)

Adatbáziskezelés

Többérték ˝u függés, 4NF

Katona Gyula Y.

Számítástudományi és Információelméleti Tanszék Budapesti M ˝uszaki és Gazdaságtudományi Egyetem

(41)

Többérték ˝u függés

Definíció

Az X attribútumhalmaztóltöbbérték ˝uen függaz Y attribútumhalmaz az r relációban (jele: XY ), ha tetsz ˝oleges t1,t2∈r sorokra, melyekre t1[X] =t2[X], létezik t3,t4∈r , melyekre

t3[XY] =t1[XY] t3[R\XY] =t2[R\XY]

t4[XY] =t2[XY] t4[R\XY] =t1[R\XY]

X

z }| {

. . . .

Y

z }| {

. . . .

R\XY

z }| {

. . . .

t1 AAAAAAA BBBBBBB CCCCCCC

t2 AAAAAAA DDDDDDD EEEEEEE

... ... ...

t3 AAAAAAA BBBBBBB EEEEEEE

t4 AAAAAAA DDDDDDD CCCCCCC

Katona Gyula Y. (BME SZIT) Adatbáziskezelés 41 / 48

(42)

Többérték ˝u függések levezetése

Definíció

Triviális többérték ˝u függések(amik mindig igazak):

Y ⊆X =⇒XY ,mert t3=t2és t4=t1jó lesz.

XY =R =⇒XY ,mert t3=t1és t4=t2jó lesz.

Ezentúl a többérték ˝u függések is a séma részei lesznek és definiálhatjuk a levezethet ˝oséget(`)és a logikai következményt(|=)úgy, hogy funkcionális függ ˝oségek és többérték ˝u függ ˝oségek is vannakF-ben.

Logikai következmény:egyF (funkcionális és többérték ˝u függéseket is tartalmazó) függéshalmaznak logikai következménye egy(funkcionális vagy többérték ˝u)függés, ha minden olyan relációban, amibenFminden függése fennáll, fenn kell hogy álljon a mondott függés is.

Levezetés:Armstrong-axiómák (a funkcionális függésekre) és 5 új axióma, amiben→ ésis van. Amilyen függés ezekkel el ˝oállF-b ˝ol, arra mondjuk, hogy levezethet ˝o.

Hasonló elmélet, mint→-nél=⇒belátható, hogy`∼|=itt is igaz lesz.

(43)

Többérték ˝u levezetési szabályok

Két fontos új szabály

X →Y`XY,mertt3=t2ést4=t1jó lesz.

X Y `X R\XY,mertt30=t4ést40=t3jó lesz.

De pl.X AB0X A, nem szétvágható.(Sok minden máshogy van a többérték ˝u függéseknél.)

Tétel

Legyenρ= (R1,R2)az(R,F)séma felbontása, ahol F most funkcionális és többérték ˝u függéseket is tartalmaz.ρakkor és csak akkor h ˝uséges felbontás, ha R1∩R2R2\R1.

Megjegyzés:Nem kell a „vagyR1∩R2R1\R2” a fenti 2. szabály miatt, mert ha R1∩R2R1\R2igaz, akkorR1∩R2R\(R1\R2)is igaz, ebb ˝ol meg már következikR1∩R2R2\R1.

a tétel bizonyítása hasonló, mint a funkcionális függésnél, de nem bizonyítjuk.

(44)

4NF

Cél:olyan normálforma, amiben többérték ˝u függés miatt sincs redundancia.

BCNF mintájára:

Definíció

Az(R,F)séma4NF(negyedik normálformájú), ha tetsz ˝oleges nemtriviális XY∈F+esetén X szuperkulcs(a szuperkulcsot a régi értelemben, csak funkcionális függ ˝oségekkel definiálva).

(45)

4NF

Következmény

Ha egy séma 4NF, akkor BCNF is.

Bizonyítás.

Indirekt tegyük fel, hogy létezik olyanX→A∈F+nemtriviális függés, aholX nem szuperkulcs. =⇒Ekkor , amiatt, hogyX →A-ból következik, hogyX A.

Megjegyzések:

HaF-ben csak funkcionális függ ˝oségek vannak, akkor 4NF=BCNF

2 attribútumos reláció mindig 4NF, hiszen nincs nemtriviális többérték ˝u függés, azt meg már láttuk, hogy ha csak funkcionális függések vannak, akkor a BCNF-ség rendben van kétattribútumos relációnál.

Van olyan reláció, ami BCNF, de nem 4NF (a korábbi gyerekes példa, mert ott a

(46)

4NF

Tétel

Legyen(R,F)egy séma, ahol F funkcionális és többérték ˝u függések halmaza. Ekkor (R,F)felbontható h ˝uségesen 4NF relációkra.

Algoritmus:Hasonlóan BCNF-hez, mindig két valódi részre bontjuk h ˝uségesen, addig, amíg mindegyik rész 4NF nem lesz.

Keresünk egyX Y függést, ami megsérti a 4NF feltételt.

(Ha van→, ami megsérti, akkor vanis.)

Nem tanuljuk, hogy ezt hogy kell általában, mert bonyolult, de ha nem kell keresni, mert ott van, akkor meg tudjuk csinálni.

R1=XY R2=R\(Y\X) (=X∪(R\Y))

Y

R \ (X ∪ Y )

X ∩ Y X R 1

X ∩ Y

R 2 R \ (X ∪ Y )

X ∩ Y

Ez valódi felbontás:Katona Gyula Y. (BME SZIT) Adatbáziskezelés 46 / 48

(47)

Példa

R(Színész, Város, Utca, Filmcím, Filmév) F ={SzínészVáros, Utca}

Ez megsérti a 4NF tulajdonságot, ha Színész nem szuperkulcs.

4NF felbontás:R1=(Színész, Város, Utca) R2=(Színész, Filmcím, Filmév)

(48)

Normálformák összefoglalása

BCNF 3NF 4NF

Jellemz ˝ok 3NF BCNF 4NF

Megszünteti a funkcionális

függ ˝oségekb ˝ol ered ˝o redundanciát Gyakran Igen Igen Megszünteti a többérték ˝u

függ ˝oségekb ˝ol ered ˝o redundanciát Nem Nem Igen Az ilyen felbontás

meg ˝orzi a funkcionális függ ˝oségeket Igen Lehet Lehet Az ilyen felbontás

Lehet Lehet Lehet

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

Ez optimális, nincs olyan keres ˝o algoritmus, ami minden esetben kevesebb mint dlog 2 (n + 1)e kérdést

Ha P = NP teljesülne, akkor minden olyan problémára, amelyre van hatékony tanúsítvány (azaz NP-beli), lenne polinomiális algoritmus is. Fogunk mutatni olyan problámákat,

Ha ismert, hogy mikor és mit akarnak írni és olvasni a tranzakciók és még az is ismert, hogy pontosan mit számolnak, akkor minden esetben el tudjuk dönteni, hogy egy

kész adatbázisba adatok beillesztése, módosítása magas szinten (az adatbázis fogalmi keretének feltöltése) pl.: új diák felvétele, tárgyfelvétel, jegybeírás, ehhez adott

Azok, amik csak véletlenül, csak egy pillanatban állnak fenn = ⇒ eseti függés (ezek nem érdekelnek, például lehetséges hogy egy adott pillanatban minden ár csak egyszer

Bizonyítás Be kell látni, hogy minden reláció, ami relációs algebrával megadható, megadható sorkalkulussal is?. Ehhez azt elég

Itt minden s ˝ur ˝u index rendezett a megfelel ˝o kulcs szerint és persze ha változik a f ˝oállomány, akkor mindegyik s ˝ur ˝ut is változtatni

Ha ismert, hogy mikor és mit akarnak írni és olvasni a tranzakciók és még az is ismert, hogy pontosan mit számolnak, akkor minden esetben el tudjuk dönteni, hogy egy