Tervezés: Funkcionális függıségek



Hasonló dokumentumok
Relációs adatbázisok tervezése ---1

Relációs adatbázisok tervezése 2.rész (dekompozíció)

Relációs adatbázisok tervezése 2.rész (dekompozíció)

Relációs adatbázisok tervezése ---2

Relációs adatbázisok tervezése 2.rész (dekompozíció)

Relációs adatbázisok tervezése ---1

Csima Judit október 24.

Adatbázisok elmélete 12. előadás

6. Gyakorlat. Relációs adatbázis normalizálása

ADATBÁZISOK. 4. gyakorlat: Redundanciák, funkcionális függőségek

8. Előadás tartalma. Funkcionális függőségek

8. előadás. normálformák. Többértékű függés, kapcsolásfüggés, 4NF, 5NF. Adatbázisrendszerek előadás november 10.

Csima Judit november 15.

Adatbázis rendszerek Ea: A rendes állapot. Normalizálás

0. Ha valahol még nem szerepelt a relációs algebrai osztás, akkor azt kell először venni:

Adatbázisrendszerek. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF, 4NF, 5NF március 13.

Példa Többértékű függőségek, 4NF, 5NF

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF, 4NF, 5NF. Adatbázisrendszerek előadás november 7.

Csima Judit BME, VIK, november 9. és 16.

A relációs adatbázis-tervezés alapjai

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

NORMALIZÁLÁS. Funkcionális függés Redundancia 1NF, 2NF, 3NF

Adatbázisok gyakorlat

Adatbázis rendszerek 1. 7.Gy: Rakjunk rendet. Normalizálás

Adatbáziskezelés. Indexek, normalizálás NZS 1

Relációs algebra 1.rész alapok

11. Gyakorlat Adatbázis-tervezés, normalizálás. Redundancia: egyes adatelemek feleslegesen többször is le vannak tárolva

T Adatbázisok-adatmodellezés

Függőségek felismerése és attribútum halmazok lezártja

Normalizálási feladatok megoldása

7. előadás. Karbantartási anomáliák, 1NF, 2NF, 3NF, BCNF. Adatbázisrendszerek előadás november 3.

Magas szintű adatmodellek Egyed/kapcsolat modell I.

13. Relációs adatmodell tervezése

Adatbázis-kezelés. alapfogalmak

Lekérdezések az SQL-ben 2.rész

Adatbázis rendszerek Ea: A rendes állapot. Normalizálás

SQL DDL-2 (aktív elemek) triggerek

Adatbázisok elmélete 11. előadás

Ellenőrző kérdések. 36. Ha t szintű indexet használunk, mennyi a keresési költség blokkműveletek számában mérve? (1 pont) log 2 (B(I (t) )) + t

1. előadás: Halmazelmélet, számfogalom, teljes

Bevezetés: az SQL-be

ADATBÁZIS-KEZELÉS. Relációs modell

SQL DDL-1: táblák és megszorítások

Bevezetés: Relációs adatmodell

Halmaz: alapfogalom, bizonyos elemek (matematikai objektumok) Egy halmaz akkor adott, ha minden objektumról eldönthető, hogy

Relációs algebra 2.rész példák

Lekérdezések az SQL-ben 1.rész

Tankönyv példák kidolgozása

Adatbázis tervezés normál formák segítségével

Adatbázis tartalmának módosítása

Adatbázis rendszerek. 4. előadás Redundancia, normalizálás


Adatbázisok-1 előadás

INFORMATIKA ÁGAZATI ALKALMAZÁSAI. Az Agrármérnöki MSc szak tananyagfejlesztése TÁMOP /1/A

ABR ( Adatbázisrendszerek) 1. Előadás : Műveletek a relációs medellben

A valós számok halmaza

Sapientia - Erdélyi Magyar Tudományegyetem (EMTE) Csíkszereda

Bevezetés: Relációs adatmodell

Adatbázis rendszerek 2. előadás. Relációs algebra

Chomsky-féle hierarchia

ADATBÁZIS RENDSZEREK. Attributum típusok, normalizálsá, relációs algebra. Krausz Nikol, Medve András, Molnár Bence

A relációs adatmodell

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

Megoldások, megoldás ötletek (Jensen-egyenlőtlenség)

Az adatbázisrendszerek világa

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Lekérdezések az SQL-ben 1.rész

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

9. RELÁCIÓS ADATBÁZISOK LOGIKAI TERVEZÉSE TERVEZÉS E-R DIAGRAMBÓL TERVEZÉS SÉMADEKOMPOZÍCIÓVAL Anomáliák...

Nagy Gábor compalg.inf.elte.hu/ nagy ősz

ADATBÁZIS-KEZELÉS. Relációalgebra, 5NF

Az egyed-kapcsolat modell (E/K)

Két vagy több egyedtípus közötti jól meghatározott viszony. K onc epc ioná lis a datmodell (s éma )

1. Részcsoportok (1) C + R + Q + Z +. (2) C R Q. (3) Q nem részcsoportja C + -nak, mert más a művelet!

Adatbázisok 1. Az egyed-kapcsolat modell (E/K)

Adatbázis rendszerek 2. előadás. Relációs algebra

KOVÁCS BÉLA, MATEMATIKA I.

út hosszát. Ha a két várost nem köti össze út, akkor legyen c ij = W, ahol W már az előzőekben is alkalmazott megfelelően nagy szám.

KOVÁCS BÉLA, MATEMATIKA I.

Relációs algebra 1.rész

Formális nyelvek - 5.

RELÁCIÓS ADATBÁZISSÉMÁK. Egyed-kapcsolat modellről átírás

Logikai függvények osztályai. A függvényosztály a függvények egy halmaza.

Informatika szigorlat 9-es tétel: Az adatbázis-kezelő rendszerek fogalmai

AB1 ZH mintafeladatok. 6. Minősítse az állításokat! I-igaz, H-hamis

Az R halmazt a valós számok halmazának nevezzük, ha teljesíti az alábbi 3 axiómacsoport axiómáit.

Feladatok A mai előadáson: Tankönyv -- Termékek feladatai:

Diszkrét matematika I.

Magas szintő adatbázismodellek

Adatbázis-kezelés alapjai 1. Ea: Infó Mátrix. Lehet, nem lehet

Elemi algebrai eszközökkel megoldható versenyfeladatok Ábrahám Gábor, Szeged

Adatbázisok gyakorlat

Chomsky-féle hierarchia

Házi feladatok megoldása. Nyelvtani transzformációk. Házi feladatok megoldása. Házi feladatok megoldása. Formális nyelvek, 6. gyakorlat.

2. Logika gyakorlat Függvények és a teljes indukció

ADATBÁZIS-KEZELÉS Demetrovics Katalin

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben

Arany Dániel Matematikai Tanulóverseny 2015/2016-os tanév 1. forduló Haladók III. kategória

ADATBÁZISOK, 2018 ősz

Átírás:

Tervezés: Funkcionális függıségek Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 3.1. Funkcionális függőségek, relációk (szuper)kulcsai 3.2. Funkcionális függőségekre vonatkozó szabályok, lezárási algoritmusok, funkcionális függőségek vetítése 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

Relációs adatbázisok tervezése A tervezésre a BSc-sgyakorlatokon nem jut idő, csak az előadáson, vizsgán és záróvizsgán van, ezért itt célszerű a tankönyvben is átnézni a tananyagot és a példákat! Tankönyv 3.fejezet. Függőségek:funkcionális, többértékű, ezeket a tervezésnél használják (az adatbázisrendszerek nem támogatják, ott megszorítások vannak). Normalizálás:jó sémákra való felbontás, funkcionális függőségek -> (1,2,)3NF, BCNF többértékű függőségek -> 4NF 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 2

Bevezetı példa Több tábla -> vegyük a táblák összekapcsolását Melyik séma jobb? Sörivó(név, cím, kedveltsörök, gyártó, kedvencsör) név cím kedveltsörök gyártó kedvencs Janeway Voyager Bud A.B. WickedAle Janeway??? WickedAle Pete s??? Spock Enterprise Bud??? Bud Redundáns adat, a???helyén mi szerepel, ha név -> cím, kedvencsörés kedveltsörök-> gyártó funkcionális függőségek (def.később) érvényesek 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 3

Hibás tervezés problémái A rosszul tervezettség anomáliákat is eredményez Sörivó(név, cím, kedveltsörök, gyártó, kedvencsör) név cím kedveltsörök gyártó kedvencs Janeway Voyager Bud A.B. WickedAle Janeway??? WickedAle Pete s??? Spock Enterprise Bud??? Bud Módosítási anomália: ha Janeway-tJane-re módosítjuk, megtesszük-e ezt minden sornál? Törlési anomália: Ha senki sem szereti abudsört, azzal töröljük azt az infót is, hogy ki gyártotta. Beszúrási anomália: és felvinni ilyen gyártót? 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 4

Dekomponálás (felbontás) A fenti problémáktól dekomponálással (felbontással) tudunk megszabadulni! Definíció: d={r 1,...,R k }az (R,F) dekompozíciója, ha nem marad ki attribútum, azaz R 1... R k =R. (Az adattábla felbontását projekcióval végezzük). Elvárások: (1) Anomáliák kiküszöbölése. A vetületek legyenek egyszerűek, jó tulajdonságúak (normálformák: BCNF, 3NF) (2) Információ-visszaállíthatóság, vagyis ne legyen információvesztés, veszteségmentes felbontások (3) Függőségek megőrzése a vetületekben 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 5

Funkcionális függıségek (bevezetés) X->Y az Rrelációra vonatkozó megszorítás, miszerint ha két sor megegyezik Xösszes attribútumán, Yattribútumain is meg kell, hogy egyezzenek. Jelölés: X, Y, Z, attribútum halmazokat;a, B, C, attribútumokat jelöl. Jelölés: {A,B,C }attribútum halmaz helyett ABC-t írunk. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 6

Funkcionális függıségek (definíció) Definíció.Legyen R(U) egy relációséma, továbbá X és Y az U attribútumhalmazrészhalmazai. X-től funkcionálisan függy (jelölésben X Y), ha bármely R feletti T tábla esetén valahányszor két sor megegyezik X-en, akkor megegyezik Y-on is t1,t2 T esetén (t1[x]=t2[x] t1[y]=t2[y]). Ez lényegében azt jelenti, hogy az X-beli attribútumok értéke egyértelműen meghatározza az Y-beli attribútumok értékét. Jelölés: R = X Y vagyis R kielégíti X Y függőséget 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 7

Jobboldalak szétvágása (FF) X->A 1 A 2 A n akkor és csak akkor teljesül R relációra, hax->a 1, X->A 2,, X->A n is teljesül R-en. Példa: A->BC ekvivalens A->B és A->C függőségek kettősével. Baloldalak szétvágására nincs szabály!!! Ezért elég nézni, ha a FF-k jobboldalán egyetlen attribútum szerepel 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 8

Példa: FF Sörivók(név, cím, kedveltsörök, gyártó, kedvencsör) Adott FF-k, amelyek valószínűleg teljesülnek: 1. név-> cím kedvencsör Ez az FF ugyanaz, mint név-> címésnév-> kedvencsör 2. kedveltsörök-> gyártó 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 9

Példa: egy lehetséges elıfordulásra név cím kedveltsörök gyártó kedvencsör Janeway Voyager Bud A.B. WickedAle Janeway Voyager WickedAle Pete s WickedAle Spock Enterprise Bud A.B. Bud Mert név-> cím Mert név-> kedvencsör Mert kedveltsörök-> gyártó 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 10

Relációk kulcsai KszuperkulcsR relációra, hak funkcionálisan meghatározza R attribútumait. K kulcs R-en, hakszuperkulcs, de egyetlen valódi részhalmaza sem szuperkulcs. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 11

Kulcs, szuperkulcs Funkcionális függőség X Y speciális esetben, ha Y = U, ez a kulcsfüggőség. R(U) relációséma esetén az U attribútumhalmaz egy K részhalmaza akkor és csak akkor szuperkulcs, ha a K UFF teljesül. A kulcsot tehát a függőség fogalma alapján is lehet definiálni: olyan K attribútumhalmazt nevezünk kulcsnak, amelytől az összes többi attribútum függ, de K-ból bármely attribútumot elhagyva ez már nem teljesül (vagyis minimális szuperkulcs) 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 12

Példa: szuperkulcs, kulcs Sörivók(név, cím, kedveltsörök, gyártó, kedvencsör) {név, kedveltsörök}szuperkulcs, ez a két attr. meghatározza funkcionálisan a maradék attr-kat. név-> címkedvencsör kedveltsörök-> gyártó {név, kedveltsörök}kulcs,hiszen sem{név}, sem{kedveltsörök} nem szuperkulcs. név-> gyártól; kedveltsörök-> címnem telj. Az előbbinkívül nincs több kulcs, de számos szuperkulcs megadható még (ami ezt tartalm.) 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 13

Hogyan kaphatjuk meg a kulcsokat? 1. Szimplán megadunk egy K kulcsot. Az FF-kK-> Aalakúak, ahol A végigmegy az összes attribútumon 2. Vagy: megadjuk az FF-ket, és ezekből következtetjük ki a kulcsokat. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 14

Függıségek implikációja LegyenekX 1 -> A 1, X 2 -> A 2,, X n -> A n adott FF-k, szeretnénk tudni, hogyy-> B teljesül-e olyan relációkra, amire az előbbi FF-k teljesülnek. Példa: A-> B ésb-> C teljesülése esetén A-> C biztosan teljesül. Ez az adatbázis sémájának megtervezésekor lesz majd fontos. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 15

Implikáció eldöntése --- 1 Hogyan tudjuk ellenőrizni, hogy egy előfordulás nem teljesíti Y-> A Y-> Bteljesülésének ellenőrzésekor vegyünk két sort, amelyek megegyeznek az összes Y-beli attribútumon. Y 0000000... 0 00000??...? 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 16

Implikáció eldöntése --- 2 Használjuk a megadott FF-ket annak igazolására, hogy az előbbi két sor más attribútumokon is meg kell, hogy egyezzen. HaB egy ilyen attribútum, akkory-> B teljesül. Egyébként az előbbi két sor olyan előfordulást ad majd, ami az összes előírt egyenlőséget teljesíti, viszont Y-> B mégsem teljesül, azaz Y-> B nem következménye a megadott FF-eknek. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 17

Armstrong-axiómák Legyen X,Y R, és XY jelentse az X és Y attribútumhalmazok egyesítését. F legyen funkcionális függőségek tetsz. halmaza. Armstrong axiómák: FD1 (reflexivitás): Y X esetén X Y. FD2 (bővíthetőség): X Y és tetszőleges Z esetén XZ YZ. FD3 (tranzitivitás): X Y és Y Z esetén X Z. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 18

Levezetés fogalma F implikálja X Y-t,ha minden olyan táblában, amelyben F összes függősége teljesül, X Y is teljesül. Jelölés: F = X Y, ha F implikálja X Y et. X Ylevezethető F-ből, ha van olyan X 1 Y 1,..., X k Y k,..., X Yvéges levezetés, hogy k-ra X k Y k F vagy X k Y k az FD1,FD2,FD3 axiómák alapján kapható a levezetésben előtte szereplő függőségekből Jelölés: F X Y, ha X Y levezethető F-ből 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 19

További levezethetı szabályok: 4. (Összevonhatósági szabály): F X Y és F X Z esetén F X YZ. 5. (Pszeudotranzitivitás): F X Y és F WY Z esetén F XW Z. 6. (Szétvághatósági szabály): F X Y és Z Y esetén F X Z. Bizonyítás (1): Bővítési axióma miatt F XX YX és F YX YZ, és XX=X, valamint a tranzitivitási axióma miatt F X YZ. Bizonyítás (2): Bővítési axióma miatt F XW YW, és YW=WY, valamint a tranzitivitási axióma miatt F XW Z. Bizonyítás (3): Reflexivitási axióma miatt F Y Z, és tranzitivitási axióma miatt F X Z. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 20

Armstrong-axiómák Következmény: F X Y A i Y esetén F X A i A következmény miatt feltehető, hogy a függőségek jobb oldalai 1 attribútumból állnak. Tétel: Az Armstrong-axiómarendszer helyes és teljes, azaz minden levezethető függőség implikálódik is, illetve azok a függőségek, amelyeket F implikál le is vezethetők F-ből. F X Y F = X Y 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 21

Mi is az a lezárt? Adott Rséma és Ffunkcionális függőségek halmaza mellett, X + az összes olyan A attribútum halmaza, amire X->A következik F- ből. (R,F) séma esetén legyen X R. Definíció: X +(F) :={A F X A}az X attribútumhalmaz lezárása F-re nézve. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 22

Attribútumhalmaz lezártja LEMMA:F X Y Y X +. Bizonyítás: ( ) A Yesetén a reflexivitás és tranzitivitás miatt F X A, azaz Y X +. ( ) A Y X + esetén F X A, és az egyesítési szabály miatt F X Y. Lemma következménye: az implikációs probléma megoldásához elég az X + -thatékonyan kiszámolni. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 23

Algoritmus X + attr.halmaz lezártja Input: X attribútumhz., F funk.függőségek hz. Output: X + (zárás, típusa: attribútumhalmaz) Algoritmus X + kiszámítására: /* Iteráció, amíg X(n) változik */ X(0):=X X(n+1):= X(n) {A W Z F, A Z, W X(n)} Ha X(v+1)=X(v), akkor Output: X(v)=X +. Miért működik az X + lezárási algoritmus? (Tankönyv 3.2.5. szakasz, 81-83.oldal) 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 24

Implikáció eldöntése --- Lezárással LegyenekX 1 -> A 1, X 2 -> A 2,, X n -> A n adott FF-k, szeretnénk tudni, hogyy-> B teljesül-e olyan relációkra, amire az előbbi FF-k teljesülnek. Hogyan tudjuk ellenőrizni, hogy egy előfordulás nem teljesíti Y-> A Van egyszerűbb út, ha kiszámítjuk Y lezártját, jelölésbeny +. Kiindulás: Y + = Y Indukció: (köv.lapon) 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 25

Kiindulás: Y + = Y Lezárás (teszt) Indukció: OlyanFF-ket keresünk, melyeknek a baloldala már benne van Y + -ban. HaX-> A ilyen,a-thozzáadjuky + -hoz. X A Y + new Y + 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 26

A lezárást kiszámító algoritmus helyes ---1 Az algoritmus tényleg X + -t számítja ki. Vagyis: 1. Ha az A attribútum valamely j-re belekerül X j - be, akkor A valóban eleme X + -nak. 2. Másfelől, ha A X +, akkor létezik olyan j, amire A belekerül X j -be. Az első állítás: Miért csak az igaz funkcionális függőségeket fogadja el a lezárási algoritmus? Könnyen bizonyítható indukcióval[tk.3.2.5.] 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 27

A lezárást kiszámító algoritmus helyes ---2 A második állítás: Miért talál meg minden igaz függőséget a lezárási algoritmus? [Tk.3.2.5.] Konstrukciós bizonyítás: Tegyük fel, hogy A X +, és nem olyan j, amire A belekerül X j -be. X + elemei más attribútumok t 111 111 000 000 s 111 111 111 111 Ekkor I-re minden F + -beli függőség teljesül I-re viszont nem teljesül X A 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 28

Példa: Attribútumhalmaz lezárása R=ABCDEFG, {AB C, B G, CD EG, BG E} X=ABF, X + =? X(0):=ABF X(1):=ABF {C,G}=ABCFG X(2):=ABCFG {C,G,E}=ABCEFG X(3):=ABCEFG X + = ABCEFG 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 29

Tankönyv 3.5.2. feladata (111.o.) Órarend adatbázis: Kurzus(K), Oktató(O), Időpont(I), Terem(T), Diák(D), Jegy(J) Feltételek: Egy kurzust csak egy oktató tarthat: K O. Egy helyen egy időben egy kurzus lehet: IT K. Egy időben egy tanár csak egy helyen lehet: IO T. Egy időben egy diák csak egy helyen lehet: ID T. Egy diák egy kurzust egy végső jeggyel zár: KD J. R=KOITDJ F= {K O, IT K, IO T, ID T, KD J} Feladat: Határozzuk meg a (R, F) kulcsait az X + kiszámítási algoritmusa segítségével. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 30

FF-i halmazok lezárása Adott S függőségi halmazzal ekvivalens függőségi halmaz S minimális bázisa B, ha az alábbi három feltétel teljesül. 1. B összes függőségének jobb oldalán egy attribútum van. 2. Ha bármelyik B-beli függőséget elhagyjuk, a fennmaradó halmaz már nem bázis 3. Ha bármelyik B-beli funkcionális függőség bal oldaláról elhagyunk egy vagy több attr-t, akkor az eredmény nem marad bázis. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 31

Minimális bázis kiszámolása 1. Jobboldalak szétvágása. 2. Próbáljuk törölni az FF-eket egymás után. Ha a megmaradó FF-halmaz nem ekvivalens az eredetivel, akkor nem törölhető az épp aktuális FF. 3. Egymás után próbáljuk csökkenteni a baloldalakat, és megnézzük, hogy az eredetivel ekvivalens FF-halmazt kapunk-e. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 32

FF-ek vetítése Motiváció: normalizálás, melynek során egy reláció sémát több sémára bonthatunk szét. Példa: ABCD F={AB ->C, C ->D, D ->A} Bontsuk felabcésad-re. Milyen FF-k teljesülnek ABC n? Nem csakab ->C, dec ->Ais! 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 33

Miért igaz a fenti példa? ABCD a 1 b 1 cd 1 a 2 b 2 cd 2 ebből ABC a 1 b 1 c a 2 b 2 c d 1 =d 2 mert C ->D a 1 =a 2 mert D ->A Emiatt, ha két vetített sor C-n megegyezik A-n is, azaz: C ->A. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 34

FF-i halmaz vetületének kiszámítása 1. Induljunk ki a megadott FF-ekből és keressük meg az összesnem triviális FF-t, ami a megadott FF-ekből következik. Nem triviális= a jobboldalt nem tartalmazza a bal. 2. Csak azokkal azff-kel foglalkozzunk, amelyekben a projektált séma attribútumai szerepelnek. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 35

Algoritmus (FF-i halmaz vetülete) 1. Legyen T az előálló FF-ekhalmaza. Kezdetben T üres 2. MindenXattribútum halmazraszámítsükkix + -t. 3. Adjuk hozzá a függőségeinkhez X->A-t minden A-raX + -X-ből. 4. Dobjuk kixy->a-t, hax->ais teljesül. MertXY->AX->A-ból minden esetben következik. 5. Végül csak azokat azff-kethasználjuk, amelyekben csak a projektáltattribútumok szerepelnek. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 36

Példa: FF-k projekciója ABC,A->B ésb->cff-kel. Projektáljunk AC-re. A + =ABC; ebbőla->b, A->C. Nem kell kiszámítaniab + ésac + lezárásokat. B + =BC; ebbőlb->c. C + =C ; semmit nem ad. BC + =BC ; semmit nem ad. A kapott FF-ek: A->B, A->CésB->C. AC-reprojekció: A->C. 11A_RelTerv1FF // Adatbázisok-1 elıadás // Ullman (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 37