Könyvtári adatbázis tervezése
Feladatleírás:
Az előző fejezetben elkészítettük a könyvtári adatbázis egyed-kapcsolat diagramját, ezzel az adatbázis logikai modelljét. Képezzük le most relációs adatbázissémákká!
A leképezés menete:
- Egyedek és attribútumaik leképezése:
- Az OLVASÓ egyedet egyszerűen le tudjuk képezni, felvesszünk egy OLVASÓ relációsémát és felsoroljuk az atttribútumait.
- A KÖNYV egyednek is felveszünk egy relációs adatbázissémát, és az egyszerű attribútumait felsoroljuk.
- A SZERZŐK többértékű attribútum, ráadásul összetett is, ezért felveszünk neki egy új relációs adatbázissémát amiben feltüntetjük a részattribútumait valamint a KÖNYV séma kulcsát, a könyvszámot. Meg kell állapítanunk, hogy az attribútumok mely részhalmaza lesz kulcs.
- a könyvszám önmagában nem, mert egy könyvnek több szerzője lehet
- a szerzőnév önmagában nem, mert több könyvpéldánynak is lehet ugyanaz a személy szerzője
- a sorszám önmagában nem, mert ugyanaz a sorszám (pl. 1 minden könyv esetében előfordul)
- a {könyvszám, szerzőnév} kulcs, mert egy adott könyvpéldány esetén egy szerző csak egyszer szerepel a szerzőlistában
- a {könyvszám, sorszám} kulcs, mert egy könyv esetében egy sorszámmal biztonsan csak egy szerző lesz
- a {szerzőnév, sorszám} nem, mert több könyvpéldán esetében előfordulhat ugyanaz az adatpáros.
- a {könyvszám, sorszám, szerzőnév} szuperkulcs, de nem kulcs, mert van szűkebb kulcs részhalmaza
- Kapcsolatok leképezése:
- Egyetlen kapcsolat a kölcsönzés, felveszünk neki egy relációs adatbázissémát, amelyben feltüntetjük a saját kapcsolati attribútumait, valamint a kapcsolódó egyedek kulcsait. Meg kell állapítanunk a séma kulcsait:
- a kölcsönzés időpontja önmagában nem kulcs, mert több kölcsönzés lehet egyidejűleg
- a visszahozta (visszahozás időpontja) önmagában nem kulcs, mert ugyanabban az időpontban több könyvet vissza lehet hozni
- az olvasószám önmagában nem kulcs, mert egy olvasó több könyvet is kikölcsönözhet
- a könyvszám önmagában nem kulcs, mert ugyanazt a könyvet többször is kikölcsönözhetik
- a {könyvszám, olvasószám} nem kulcs, mert ugyanaz az olvasó többször kiveheti ugyanazt a könyvet
- a {könyvszám, kölcsönzés időpontja} kulcs, mert egy könyvet egy adott időpontban csak egy olvasó vehet ki
- a {könyvszám, visszahozta} kulcs, mert ez a két adat is egyértelműen azonosítja a rekordot
- az {olvasószám, kölcsönzés időpontja} nem kulcs, mert egy olvasó több könyvet is kivehet egyidejűleg
- az {olvasószám, visszahozta} nem kulcs, mert egy olvasó visszahozhatja egyszerre az egyszerre kölcsönzött könyveit
- ... hasonlóan vizsgáljuk meg a három- és négy attribútumot tartalmazó halmazokat.
- Egyetlen kapcsolat a kölcsönzés, felveszünk neki egy relációs adatbázissémát, amelyben feltüntetjük a saját kapcsolati attribútumait, valamint a kapcsolódó egyedek kulcsait. Meg kell állapítanunk a séma kulcsait:
- Konszolidálás:
- Ha van két olyan relációs adatbázissémánk, amelyek kulcsai megegyeznek, akkor azokat összevonjuk.