4
90 3. Relációs adatbázisok tervezésének elmélete 3.3. Relációs adatbázissémák tervezése Egy relációs adatbázisséma nem kelloen gondos megtervezése redundanciához és anomáliákhoz vezet. Vizsgáljuk meg például a 3.2. ábrán látható relációt, amelyet most a 3.6. ábraként idemásolunk. Megjegyezzük, hogya Csillagok há- borúja és a Wayne világa filmek hóssz és mufaj attribútumai minden egyes színész sorában megismétlodnek. Az információ ilyen megismétlése redundan- ciához vezet. Ahogy látni fogjuk, ez további hibalehetoségekhez vezet. Ebben a fejezetben a jó relációsémák tervezésének a problémáit a következo lépésekben tárgyaljuk: 1. Eloször részletesebben feltárjuk, milyen problémák merülhetnek fel hibás séma esetén. 2. Ezután bevezetjük a ,,felbontás" (dekompozíció) ötletét, mellyel a reláció- sémát (attribútumok halmazát) széttördeljük kisebb sémákra. 3. A következo lépésben bevezetjük a ,,Boyce-Codd normálformát" vagy ,,BCNF"-et, amely a relációsémára jelent olyan feltételt, amellyel kikü- szöböljük ezeket a problémákat. 4. Ezután összekapcsoljuk a két témakört, és megnézzük, hogyan biztosít- hatjuk a BCNF feltételét a relációsémák felbontásával. 3.6. ábra. A Filmekl reláció az anomáliák bemutatására 3.3.1. Anomáliák Azokat a problémákat, amelyek a redundanciához hasonlóan akkor fordulnak elo, amikor túl sok információt prób~unk egyetlenegy relációba belegyömö- szölni, anomáliáknak nevezzük. A számí'tasba jövo anomáliák alapveto fajtái a következok: 1. Redundancia. Az információk feleslegesen ismétlodhetnek több sorban. A 3.6. ábrán a filmek hossza és a mufaj erre példa. r 3.3. Relációs adatbázissémák tervezése 91 ~ 2. Módosítási anomáliák. Lehet, hogy megváltoztatjuk az egyik sorban tárolt információt, miközben ugyanaz az információ változatlanul marad egy másik sorban. Például, ha kiderül, hogy a Csillagok háborúja valójában 125 perces, - ha nem vagyunk elég gondosak - a 3.6. ábra elso sorában változtatjuk meg a hosszt és a második vagy harmadik sorokban pedig nem. Persze mondat juk, hogy nem szabadna ilyen figyelmetIennek lenni, de majd látni fogjuk, hogy a Filmek! relációt át lehet úgy tervezni, hogy az ilyen hibák veszélye egyáltalán ne merülhessen fel. 3. Törlési anomáliák. Ha az értékek halmaza üres halmazzá válik, akkor ennek mellékhatásaként más információt is elveszít hetünk. Például ha tö- rölnünk kell az Elfújta a szél-ben szereplo színészek közül Vivien Leigh-t, akkor az adatbázisban ehhez a filmhez nem maradna több színész, így a Filmek! relációban az Elfújta a szél CÍmufilmre vonatkozó sor eltunne azzal az információval együtt, hogy a film egy 231 perces dráma. 3.3.2. Relációk felbontása Az anomáliák megszüntetésének az elfogadott útja a relációk felbontása (de- kompozíciója). R felbontása azt jelenti, hogy R attribútumait szétoszt juk úgy, hogy két új reláció sémáját alakítjuk ki belolük. A felbontási eljárás megadása után megmutatjuk, hogyan válasszunk ki egy olyan felbontást, amellyel meg- szüntetjük az anomáliákat. Legyen adott az R reláció az {Al,A2"" ,An} sémával. R-t felbonthatjuk S(Bl, B2,..., Bm) és T(C!, C2,..., Ck) relációkra úgy, hogy ti 1. {A!,A2,...,An}= {Bl,B2,...,Bm} U {Cl,C2,...,Ck}. 2. S = 7r B B B ( R ) . 1, 2,..., m 3. T = 7rC1,C2,...,Ck (R). 3.14. példa. Bontsuk fel a 3.6. ábrán látható Filmek! relációt. A választott felbontás, amelynek az elonyeit a 3.3.3. alfejezetben fogjuk látni, az alábbi: 1. A Filmek2 séma tartalmazza az összes attribútumot, kivéve a színészNév nevut. 2. A Filmek3 séma pedig tartalmazza a filmcím, év és színészNév attri- bútumokat. A Filmek! reláció vetítése erre a két sémára a 3.7. ábrán látható. O ........ Figyeljük meg, hogyan szünteti meg ez a felbontás a 3.3.1. alfejezetben em- lített anomáliákat..A redundanciát kizártuk, például minden film hossza csak egyszer fordul elo a Filmek2 relációban. A módosítási anomália kockázata meg- SZunt.Például, mivel csak a Filmek2 egy sorában kell megváltoztatnunk a Csil- lagok háborúja film hosszát, ezért nem fordulhat elo, hogy ennek a filmnek két jítmcím év hossz mufaj stúdióNév színészNév Csillagok háborúja 1977 124 sci-fi Fox Carrie Fisher Csillagok háborúja 1977 124 sci-fi Fox Mark Hamill Csillagok háborúja 1977 124 sci-fi Fox Harrison Ford Elfújta a szél 1939 231 dráma MGM Vivien Leigh Wayne világa 1992 95 vígjáték Paramount Dana Carvey Wayne világa 1992 95 vígjáték Paramount Mike Meyers

90 91 3.3. Relációs adatbázissémák tervezéserölnünk kell az Elfújta a szél-ben szereplo színészek közül Vivien Leigh-t, akkor az adatbázisban ehhez a filmhez nem maradna

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 90 91 3.3. Relációs adatbázissémák tervezéserölnünk kell az Elfújta a szél-ben szereplo színészek közül Vivien Leigh-t, akkor az adatbázisban ehhez a filmhez nem maradna

903. Relációs adatbázisok tervezésének elmélete

3.3. Relációs adatbázissémák tervezése

Egy relációs adatbázisséma nem kelloen gondos megtervezése redundanciáhozés anomáliákhoz vezet. Vizsgáljuk meg például a 3.2. ábrán látható relációt,amelyet most a 3.6. ábraként idemásolunk. Megjegyezzük, hogya Csillagok há-borúja és a Wayne világa filmek hóssz és mufaj attribútumai minden egyesszínész sorában megismétlodnek. Az információ ilyen megismétlése redundan-ciához vezet. Ahogy látni fogjuk, ez további hibalehetoségekhez vezet.

Ebben a fejezetben a jó relációsémák tervezésének a problémáit a következolépésekben tárgyaljuk:

1. Eloször részletesebben feltárjuk, milyen problémák merülhetnek fel hibásséma esetén.

2. Ezután bevezetjük a ,,felbontás" (dekompozíció) ötletét, mellyel a reláció-sémát (attribútumok halmazát) széttördeljük kisebb sémákra.

3. A következo lépésben bevezetjük a ,,Boyce-Codd normálformát" vagy,,BCNF"-et, amely a relációsémára jelent olyan feltételt, amellyel kikü-szöböljük ezeket a problémákat.

4. Ezután összekapcsoljuk a két témakört, és megnézzük, hogyan biztosít-hatjuk a BCNF feltételét a relációsémák felbontásával.

3.6. ábra. A Filmekl reláció az anomáliák bemutatására

3.3.1. Anomáliák

Azokat a problémákat, amelyek a redundanciához hasonlóan akkor fordulnakelo, amikor túl sok információt prób~unk egyetlenegy relációba belegyömö-szölni, anomáliáknak nevezzük. A számí'tasba jövo anomáliák alapveto fajtái akövetkezok:

1. Redundancia. Az információk feleslegesen ismétlodhetnek több sorban.A 3.6. ábrán a filmek hossza és a mufaj erre példa.

r3.3. Relációs adatbázissémák tervezése 91

~

2. Módosítási anomáliák. Lehet, hogy megváltoztatjuk az egyik sorban tároltinformációt, miközben ugyanaz az információ változatlanul marad egymásik sorban. Például, ha kiderül, hogy a Csillagok háborúja valójában125 perces, - ha nem vagyunk elég gondosak - a 3.6. ábra elso sorábanváltoztatjuk meg a hosszt és a második vagy harmadik sorokban pedignem. Persze mondat juk, hogy nem szabadna ilyen figyelmetIennek lenni,de majd látni fogjuk, hogy a Filmek! relációt át lehet úgy tervezni, hogyaz ilyen hibák veszélye egyáltalán ne merülhessen fel.

3. Törlési anomáliák. Ha az értékek halmaza üres halmazzá válik, akkorennek mellékhatásaként más információt is elveszíthetünk. Például ha tö-rölnünk kell az Elfújta a szél-ben szereplo színészek közül Vivien Leigh-t,akkor az adatbázisban ehhez a filmhez nem maradna több színész, így aFilmek!relációban az Elfújta a szél CÍmufilmre vonatkozó sor eltunneazzal az információval együtt, hogy a film egy 231 perces dráma.

3.3.2. Relációk felbontása

Az anomáliák megszüntetésének az elfogadott útja a relációk felbontása (de-kompozíciója). R felbontása azt jelenti, hogy R attribútumait szétoszt juk úgy,hogy két új reláció sémáját alakítjuk ki belolük. A felbontási eljárás megadásaután megmutatjuk, hogyan válasszunk ki egy olyan felbontást, amellyel meg-szüntetjük az anomáliákat.

Legyen adott az R reláció az {Al,A2"" ,An} sémával. R-t felbonthatjukS(Bl, B2,..., Bm) és T(C!, C2,..., Ck) relációkra úgy, hogy

ti

1. {A!,A2,...,An}= {Bl,B2,...,Bm} U {Cl,C2,...,Ck}.

2. S = 7rB B B (R) .1, 2,..., m

3. T = 7rC1,C2,...,Ck(R).

3.14. példa. Bontsuk fel a 3.6. ábrán látható Filmek! relációt. A választottfelbontás, amelynek az elonyeit a 3.3.3. alfejezetben fogjuk látni, az alábbi:

1. A Filmek2 séma tartalmazza az összes attribútumot, kivéve a színészNévnevut.

2. A Filmek3 séma pedig tartalmazza a filmcím, év és színészNév attri-bútumokat.

A Filmek! reláció vetítése erre a két sémára a 3.7. ábrán látható. O

........

Figyeljük meg, hogyan szünteti meg ez a felbontás a 3.3.1. alfejezetben em-lített anomáliákat..A redundanciát kizártuk, például minden film hossza csakegyszer fordul elo a Filmek2 relációban. A módosítási anomália kockázata meg-SZunt.Például, mivel csak a Filmek2 egy sorában kell megváltoztatnunk a Csil-lagok háborúja film hosszát, ezért nem fordulhat elo, hogy ennek a filmnek két

jítmcím év hossz mufaj stúdióNév színészNévCsillagok háborúja 1977 124 sci-fi Fox Carrie FisherCsillagok háborúja 1977 124 sci-fi Fox Mark HamillCsillagok háborúja 1977 124 sci-fi Fox Harrison FordElfújta a szél 1939 231 dráma MGM Vivien LeighWayne világa 1992 95 vígjáték Paramount Dana CarveyWayne világa 1992 95 vígjáték Paramount Mike Meyers

Page 2: 90 91 3.3. Relációs adatbázissémák tervezéserölnünk kell az Elfújta a szél-ben szereplo színészek közül Vivien Leigh-t, akkor az adatbázisban ehhez a filmhez nem maradna

92 3. Relációs adatbázisok tervezésének elmélete

(a) A Filmek2 reláció

filmcím I év I színészNévCsillagokháborúja 1977 CarrieFisherCsillagokháborúja 1977 Mark HamillCsillagokháborúja 1977 HarrisonFordElfújtaa szél 1939 VivienLeighWaynevilága 1992 Dana CarveyWaynevilága 1992 Mike Meyers

(b)A Filmek3 reláció

3.7. ábra. A Filmeki reláció vetületei

különbözo hosszát tároljuk véletlenül. Végül a törlési anomália kockázata ismegszunt. Ha töröljük az Elfújta a szél CÍmu filmben szereplo összes színészt,akkor ez a film kiesik a Filmek3 relációból, de az összes többi információ errola filmrol még megtalálható lesz a Filmek2-ben.

Még mindig elofordulhat redundancia a Filmek3-ban, mivel egy film cí-me és éve többször is szerepelhet. Jóllehet ez a két attribútum a filmeknekegy kulcsát alkotja, mégsem tudjuk másképpen szabatosan reprezentálni a fil-met. Továbbá a Filmek3-ban mégsem merül fel a módosítási anomália leheto-sége. Ha megváltoztatjuk a Csillagok háborúja évét 2008-ra Carrie Fisher sorá-ban, de a másik két sorban nem, akkor lehetne módosítási anomália. Jóllehetegyik feltételezett funkcionális függoség sem akadályozza meg, hogy ne készüljönCsillagok háborúja címu másik film 2008-ban, és Carrie Fisher szerepelhet ab-ban is. Tehát nem kívánjuk megakadályozni, hogy a Csillagok háborúja egyiksorában az évet megváltoztassuk, sot még csak azt sem akarjuk állítani, hogyegy ilyen változás biztosan hibás eredményre vezetne.

\3.3.3. Boyce-Codd normálforma

A felbontás célja, hogy egy relációt többellh,elyettesítsünk úgy, hogy ezzel meg-szüntessük az anomáliákat. Kiderült, hogy van egy egyszeru feltétel, ami bizto-sítja, hogy a korábban -tfu.d'alt anomáliák ne fordulhassanak elo. Ezt a feltételtBoyce-Codd normálfo~ak vagy BCNF-nek nevezzük.

3.3. Relációs adatbázissémák tervezése 93

. Az R reláció BCNF-ben van akkor és csak akkor, ha minden olyan esetben,ha R-ben érvényes egy AlA2 . . . An -+ BlB2 . . . Bm nem triviális függoség,akkor az {Al' A2,..., An} halmaz R szuperkulcsa.

Azaz minden nem triviális funkcionális függoség bal oldalának szuper kulcsnakkell lennie. Emlékeztetünk arra, hogy a szuperkulcsnak nem kell minimálisnaklennie. Emiatt a BCNF feltétel egy ekvivalens megfogalmazása az, hogy mindennem triviális funkcionális függoség bal oldalának tartalmaznia kell egy kulcsot.

3.15. példa. A 3.6. ábrán látható Filmekl reláció nincs BCNF-ben. Ah-hoz, hogy belássuk, miért nem, eloször meg kell határoznunk, mely att-ribútumhalmazok alkotják a kulcsokat. A 3.2. példában láttuk, hogy a{filmcím, év, színészNév}miért alkot kulcsot. Tehát bármely olyan att-ribútumhalmaz, amely tartalmazza ezt a hármat, szuperkulcs. A 3.2. példamegfontolásaihoz hasonlóan beláthatjuk azt is, hogy nem lehet szuperkulcs azolyan attribútumhalmaz, amely nem tartalmazza mindhármat a filmcím, évésszínészNévközül. Tehát azt kaptuk, hogya {filmcím, év, színészNév}azegyetlen kulcs a Filmekl relációhoz.

Tekintsük a következo funkcionális függoséget:

filmcím év-+ hossz mufaj stúdióNév

amelyrol a 3.2. példából tudjuk, hogy fennáll a Filmekl relációban.Sajnos a fenti függoség baloldala nem szuperkulcs, hiszen tudjuk, hogy

a filmcímés év funkcionálisannem határozza meg a hatodik attribútumot,a színészNév attribútumot. Azaz ennek a függoségnek a létezése megsérti aBCNF feltételt, és emiatt a Filmekl nincs BCNF-ben. O

3.16. példa. Másrészt a 3.7. ábrán látható Filmek2 reláció BCNF-ben van.Mivel

filmcím év -+ hossz mufaj stúdióNév

a fennáll ebben a relációban, és korábban láttuk, hogy sem a filmcím sem az évÖnmagában nem határozza meg funkcionálisan a többi attribútum egyikét sem,ezért aFilmek2reláció egyetlen kulcsa a {f ilmcím, év}. Továbbá a nem triviálisfunkcionális függoségek legalább a filmcím és év attribútumokat tartalmazzáka bal oldalon.Emiatt a bal oldalak szuperkulcsok,tehát a Filmek2BCNF-benVan. O

3.17. példa. Azt állítjuk, hogy bármely két attribútumból álló reláció BCNF-ben van. Azokat a lehetséges nem triviális függoségeket kell megvizsgálnunk,amelyeknek jobb oldala egyetlen attribútumból áll. Nincs túl sok eset, amitfigyelembe kell vennünk, ezért nézzük meg ezeket sorban. Tegyük fel, hogy azattribútumok A és B.

1. Nincs nem trivÍális függoség.Ekkor a BCNF feltétel mindenképpen ér-vényes, hiszen csak a nem triviális függoségek sérthetik meg a feltételt.Megjegyezzük egyébként, hogy {A, B} az egyetlen kulcs ebben az esetben.

111

filmcím év hossz mufaj stúdióNév

Csillagok háborúja 1977 124 sci-fi Fox

Elfújta a szél 1939 231 dráma MGM

Wayne világa 1992 95 vígjáték Paramount

Page 3: 90 91 3.3. Relációs adatbázissémák tervezéserölnünk kell az Elfújta a szél-ben szereplo színészek közül Vivien Leigh-t, akkor az adatbázisban ehhez a filmhez nem maradna

94 3. Relációs adatbázisok tervezésének elmélete

2. A -* B fennáll, de B -* A nem áll fenn. Ebben az esetben A az egyedülikulcs, és minden nem triviális függoség tartalmazza A-t a baloldalon(valójában a baloldal csak A lehet). Tehát nem sérül a BCNF feltétel.

3. B -+ A fennáll, de A -* B nem áll fenn. Ez az eset szimmetrikus az elozo,2. esettel.

4. Mindkét A -* B és B -* A fennáll. Ekkor mindkét attribútum, A és Bis kulcs. Bármelyik függoségetnézzük, a két attribútum közül az egyikabaloldalon áll, emiatt nem sértheti meg a BCNF feltételt.

Érdemes megjegyeznünk a 4. eset kapcsán, hogy egy relációnak több kulcsalehet. Továbbá a BCNF feltétel csak azt követeli meg, hogy bármely nem triviá-lis függoség baloldala tartalmazzon valamilyen kulcsot, de nem kell minden kul-csot tartalmaznia a baloldalnak. Azt is megjegyezzük, hogy a kétattribútumúrelációnál az az eset, amikor bármelyik attribútum funkcionális an meghatározzaa másikat, nem teljesen valószínutlen. Például egy vállalat a dolgozóinak egy-értelmu alkalmazott azonosítót adhat meg, és a személyi számukat is bejegyzik.Abban a relációban, amelyiknek a alkalmazottAzonosító és a személyiSzámaz attribútumai, bármelyik attribútum funkcionálisan meghatározza a másikat.Másképpen kifejezve, mindkét attribútum külön-külön kulcs, mivel várhatóannem találunk két olyan sort, ahol az egyes attribútumértékek megegyeznének.D

3.3.4. Boyce-Coddnormálformájú felbontás

Alkalmas felbontások ismétlodo választásával bármely relációsémát fel tudunkbontani az attribútumaiból álló részhalmazok összességére, amelyre az alábbifontos tulajdonságok teljesülnek:

1. Ezek a részhalmazok BCNF-ben levo relációsémák.

2. Az eredeti relációban tárolt adatokat pontosan reprezentálják a felbon-tás eredményeként nyert relációk adatai. A 3.4.1. alfejezetben pontosít-juk, hogyan értjük ezt. Durván megfogalmazva arra van szükségünk, hogya felbontással kapott relációk elofordulásaiból képesek legyünk pontosanvisszaállítani az eredeti reláció elofordulását.

A 3.17. példa azt SUgalr hogy talán csak annyit kell tennünk, hogy a relá-ciósémát kétattribútumos rész azokra bontjuk fel, és ennek az eredményefeltétlenül BCNF-ben van. Azonban zek a felbontások nem mindig teljesítik a2. feltételt, ahogyan késobb a 3.4.1. ejezetben látni fogjuk. Valójában óvato-sabban kell haladnunk, és a BCNF-et meg'Szegofunkcionális függoségeket hasZ-náljuk majd a felbontás vezérfonalaként.

Azt a felbontási stratégiát követjük, hogy kiválasztunk egy A1A.2 . . . An ->B1B2... Bm nem triviális funkcionális függoséget, amely megsérti a BCNF-et,azaz {Al, A2'.'" An} nem szuperkulcs. A jobb oldalhoz hozzáadjuk az összeS

r3.3. Relációs adatbázissémák tervezése

95

Al, A2,. .. , An} által funkcionálisan meghatározott attribútumot. Ez a lépés{eJIlkötelezo, de többnyire csökkenti a végrehajtás összköltségét, ezért be fogjuk~píteni az algoritmusunkba. A 3.8. ábrán látható, hogyan bonthatók az attri-bútuJIlok két, egymást részben fedo relációsémára. Az egyik az összes olyanattribútum, amely a feltételt megsérto függoségben elofordul, a másik pedig afüggoségbaloldala és azok az attribútumok, amelyek nem szerepelnek a füg-goségben, például az összes attribútum, kivéve azokat a B-ket, amelyek nemA-k.

3.8. ábra. BCNF megsértésén alapuló relációsémafelbontása

3.18. példa. Vizsgáljuk meg a futó példánkat, a Filmekl-et a 3.6. ábrán.A 3.15. példában láttuk, hogy a

filmcím év -+ hossz müfaj stúdióNév

a

függoségmegsérti a BCNF feltételt. Ebben az esetben a jobb oldal már tartal-mazza azokat az attribútumokat, amelyeket a filmcím és az év funkcionálisanmeghatároz, tehát a BCNF megsértése miatt a Filmekl relációt kétfelé bontjuk:

1. A {filmcím, év, hossz, müfaj, stúdióNév} reláció tartalmazza az összesattribútumot a függoség mindkét oldaláról.

2. A {filmcím, év, színészNév} séma pedig tartalmazza a függoségek baloldalát és a Filmek! azon attribútumait, amelyek nem fordulnak elo afüggoségben (ebben az esetben csak a színészNév).

Megjegyezzük, hogy ezek a sémák a 3.14. példában szereplo Filmek2 ésFilmek3 sémák. A 3.16. példában láttuk, hogya Filmek2 BCNF-ben van. AFilmek3 szintén BCNF-ben van, nincs egyetlen nem triviális függosége sem. D

A 3.18. példáb:an elég volt a dekompozíciós szabályt józan ésszel egy-s_zeralkalmazni ahhoz, hogy BCNF-ben lévo relációk egy csoportját kapjuk.Altalában nem ez a helyzet, ahogy a következo példa is mutatja.

Page 4: 90 91 3.3. Relációs adatbázissémák tervezéserölnünk kell az Elfújta a szél-ben szereplo színészek közül Vivien Leigh-t, akkor az adatbázisban ehhez a filmhez nem maradna

3. ReIádós adatbázj,ok tervezésének elméI,,,~ Rcl""iós adatbázi.ssémák tervezés'

{filmcím, év, stúdióNév}

{stúdióNév, elnök}

{elnök, elnökCím}

96

3.19. példa. Vizsgáljuk meg a

{filmcím, év, stúdióNév, elnök, elnökCím}

sémát. Azaz minden sorban tároljunk egy filmet, a stúdiót, ahol készült, a stúdióvezetojét és az o lakcímét. Feltételezzük az alábbi függoségek teljesülését:

filmcím év -t stúdióNév

stúdióNév -t elnök

elnök -t elnökCím

Az öt attribútumból álló halmaz lezárásával azt tapasztalhatjuk, hogy ennek arelációnak az egyetlen kulcsa a {f ilmcím, év}. Így a fent említett függoségekközül az utolsó ketto megsérti a BCNF feltételt. Tegyük fel, hogy a sZétvágMt CIa

stúdióNév -t elnök

függoséggel kezdjük. Eloször hozzáadjuk ennek a függoségnek a jobb oldaláhozaz összes attribútumot, ami a stúdióNév lezártjában szerepel. A lezárt tar-talmazza az elnökCím attribútumot, tehát a szétvágáshoz választott függoségvégül:

stúdióNév -t elnök elnökCím

A dekompozíció, amelyet e szerint a függoség szerint hajthatunk végre, az alábbikét relációsémához vezet:

{filmcím, év, stúdióNév}

{stúdióNév, elnök, elnökCím}

Ha a 3.12. algoritmust használjuk a függoség vetületének elkészítéséhez, ak-kor megállapíthatjuk, hogy az elso reláción a függoségek bázisa

filmcím év -t stúdióNév

míg a másodikon

stúdióNév -t elnök

elnök -t elnökCím

Az egyetlen kulcs az elso relációban a {f ilmcím, év}, és ennek következtébenBCNF-ben van. Ugyanakkor a másodiknak a {stúdióNév} az egyetlen kulcsa,

de érvényes benne az ~ ~

függoség, ami a BCNF feltétel megsértése. Azaz ismét dekompozíciót kell vég-I

rehajtanunk, ezúttal az elobbi függoséggel. A kapott három relációséma mind-egyike BCNF-ben van:

97

o

Általában addig kell alkalmazni a dekompozíciós szabályt, amíg minden ka-

pott séma a BCNF feltételnek megfelelo nem lesz. Biztosak lehetünk abban,hogy az eljárás véget ér, ugyanis minden alkalommal a dekompozíciós szabálytalkalmazva R-re a kapott relációk kevesebb attribútumot fognak tartalmazni,mint R-ben volt. Ahogy láttuk a 3.17. példában, amint elérünk a két attribútu-mig, már biztosan BCNF -sémához jutunk; gyakran a nagyobb attribútumhal-mazú relációk is BCNF-ben vannak. A módszer az alábbiakban látható:

3.20. algoritmus. BCNF-dekompozícó algoritmusa

BEMENET: Az Ro reláció az 80 függoséghalmazzal.

KIMENET: Az Ro dekompozíciója relációk csoportjára, melyek mindegyikeBCNF-ben van.

ELJÁRÁS: A következo lépések bármely R relációra és 8 függoséghalmazraalkalmazhatók rekurzívan. Kezdetben legyen R = Ro és S = So.

1. Ellenorizzük, R BCNF-ben van-e. Ha igen, akkor készen vagyunk, és{R}a válasz.

III

2. Ha vannak BCNF -et megsérto függoségek, akkor X -tY legyen egy ilyen.

Használjuk a 3.7. algoritmust X+ kiszámításához. Legyen Ri = X+ azegyik relációséma, továbbá R2-ben legyenek benne X attribútumai és azokaz R-beli attribútumok, amelyek nincsenek X+ -ban.

3. Használjuk a 3.12. algoritmust az Ri és R2 függoségeinek meghatározá-sához, a kapottak legyenek rendre 81 és 82'

4. Rekurzívan bontsuk fel Ri-et és R2-t ennek az algoritmusnak a használa-tával. A végeredmény a dekompozíciók eredményeinek uniója lesz.

D

3.3.5. Feladatok

3.3.1. feladat. A következo relációsémákra és funkcionális függoségi halma-zokra:

aj R(A,B,e,D) sémára és AB -t e, e -t D, D -t A funkcionálisfüggosé-gekre;

bJ R(A, B, e, D) sémára és B -t e, B -t D funkcionális függoségekrej