1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Adatbázisok gyakorlat 6. gyakorlat Gyakorlás, kötelezőprogram
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor2Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor2 Boyce-Codd normálforma (BCNF) Szuperkulcsnak nevezünk egy attribútumhalmazt, ha egyértelműen azonosítja a tábla sorait. Pontosabban: egy R(A 1,...,A n ) relációséma esetén az A = {A 1,...,A n } attribútumhalmaz egy K részhalmaza szuperkulcs, ha bármely R feletti T tábla bármely két sora K-n különbözik. –Azaz. ha a táblán a K-n kívüli oszlopokat letakarjuk, akkor is minden sor különböző marad. BCN def.: Egy relációséma BCNF-ben van, ha bármely nemtriviális L→B függés esetén L szuperkulcs. A séma nincs BCNF-ben, ha van benne olyan nemtriviális függés, amelynek bal oldalán nem szuperkulcs áll. BCNF-re hozás: a sémát felbontjuk Heath tétele szerint, a normálformát sértő függőség mentén.
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor3Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor3 4. Normálforma Többértékű függés: Legyen K, L ⊆ A, és legyen M = A - (K U L). Azt mondjuk, hogy K-tól többértékűen függ L, jelölésben K→→L, ha bármely R feletti T táblában ha két sor megegyezik K-n, akkor a két sor kombinációja is szerepel T-ben. Ez pontosabban azt jelenti, hogy ha a t i, t j sorokra t i (K) = t j (K), akkor van olyan t sor, amelyre az alábbiak teljesülnek: –t(K) = t i (K) = t j (K) –t(L) = t i (L) –t(M) = t j (M) 4NF def.: Egy relációséma 4NF-ben van, ha minden nemtriviális K→→L függés esetén K szuperkulcs. 4NF-re hozás: a sémát felbontjuk Fagin tétele szerint, a normálformát sértő függőség mentén.
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor4Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor4 Normálformák összefoglalása Az 1NF-re hozás a relációs modellnél kötelező. A további normálformák egyre szigorúbb feltételeket írnak elő (2NF <= 3NF <= BCNF <= 4NF), amelyek kiküszöbölik a redundanciát és az aktualizálási anomáliákat. Az ezek szerinti normalizálás célszerű, de nem kötelező. 1NF: Ha az attribútumok értéktartománya csak egyszerű (atomi) adatokból áll (nem tartalmaz például listát vagy struktúrát). 2NF: Egy relációséma 2NF-ben van, ha minden másodlagos attribútum teljesen függ bármely kulcstól 3NF: Egy relációséma 3NF-ben van, ha minden másodlagos attribútuma közvetlenül függ bármely kulcstól.
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor5Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor5 Adatbázis tervezés összefoglalása Az adatbázis tervezés folyamata három fő lépésből áll: –1. Egyed-kapcsolat modell felírása. –2. Relációs adatbázis séma felírása. (+1NF) –3. Relációsémák normalizálása. –(4. Szükség esetén az egyed-kapcsolat modell módosítása a normalizálás szerint.)
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor6Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor6 Kötelező program beadása Beadási határidő: Október :55 Beadás módja: –CooSpace → Adatbázisok gyakorlat* –Kötelező program dokumentáció → Feladatbeadás –Csak PDF formátum! (Bullzip PDF Printer) –A beadási határidő után nincs lehetőség pótolni!
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor7Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor7 1.Feladat Adjuk meg az EK-diagramot egy olyan adatbázishoz, amiben sportolókat, klubokat, és versenyeket tartunk nyilván. Az alábbi dolgokat szeretnénk tárolni: sportolóknál: adószám, név, lakcím, ki az edzője, melyik klubnak a tagja és mióta, kluboknál: név, cím, ki a vezetője, versenyeknél: helyszín, időpont, résztvevő sportolók és helyezéseik. Az alábbi megkötések érvényesek: –Feltehető, hogy nincs két ugyanolyan nevű klub. –Minden klubnak legfeljebb egy vezetője van és egy sportoló csak egy klubnak lehet a vezetője. –Minden sportoló legfeljebb egy klubnak a tagja. –Az edzők is sportolók, és több sportoló edzői is lehetnek. –Egy versenyt a helyszíne és időpontja azonosít egyértelműen. –Adjuk meg a kulcsokat is minden egyed esetén.
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor8Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor8
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor9Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor9 Sportoló (adószám, név, cím, klub_neve, mióta_tag) Klubok (név, cím, vezető_adószáma) Versenyek (helyszín, időpont) Részvétel (helyezés, sportoló_adószám, helyszín, időpont) Edző (edző_adószáma, sportoló_adószáma)
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor10Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor10 2. Feladat - Kávéklub A klubba tagok ülhetnek be, mindenkinek van tagszáma, ami egyértelműen azonosítja, neve, lakcíme. A tagok kikérhetik a kávélapot, aminek van sorszáma, valamint nyomtatási dátuma, minden tag egy kávélapot kérhet. A kávélap tartalmazza a Kávéitalokat, és azt, hogy melyik oldalon melyik kávéitalokat találhatjuk meg. A tagok rendelhetnek is a kávéitalokból, a rendeléseket asztalszám alapján különböztetjük meg A kávéitalok összetétele egy specialitás, amiben található likőr, tömény, tejszínhab, és természetesen van nevük, ami alapján megkülönböztethetőek. Minden kávéitalban csak egy specialitás lehet. Valamint a kávéitalokról feljegyezzük, hogy koffeinmentesek-e
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor11Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor11 2. Feladat
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor12Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor12 Kávélap (sorszám, dátum) Tag (tagszám, név, lakcím, kávélap_sorszáma) Specialitás (név, likőr, tömény, tejszínhab) Kávé_ital (név, koffinmentes_e) Tartalmaz (kávélap_sorszáma, név, koffinmentes_e, oldalszám) Rendelés (tagszám, név, koffinmentes_e, asztalszám)
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor13Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor13 3. Feladat Egy történelmi lexikonhoz a csatákat egy adatbázisban tárolják. Nyilván kell tartani, hogy hol milyen nemzetek csaptak össze, ki győzött, és mettől meddig tartott a csata. A katonák számát egységenként kell érteni. Hozza 1NF, 2NF, 3NF normálformára a CSATÁK relációsémát! Jelölje a függéseket és a kulcsokat! CSATÁK (csata_kód, csata_név, nemzet_kód, nemzet_név, évszám, csata_kezd, csata_vége, helyszín, fegyver_kód, fegyver_név, katonai_egység, katonák_száma, győzött)
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor14Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor14 RÉSZVÉTEL (csata_kód, nemzet_kód, fegyver_kód, katonai_egység, győzött) CSATA (csata_kód, csata_név, évszám, kezd, vég, helyszín) NEMZET(nemzet_kód, nemzet_név) FEGYVER (fegyver_kód, fegyver_név) EGYSÉG (katonai_egység, katonák_szám)
Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor15Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal GáborSzegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor15 Megjegyzések Feladatgyűjtemény: –pub/Adatbazisok/feladatok_v1.1.pdf Adatbázisok. Előadás jegyzet, – –pub/Adatbázisok/ Cser Lajos diái alapján