2. gyakorlat
Az adatbázis-alapú rendszerek tervezésének
alapvető része az adatok modellezése. Ez legtöbbször két fázisban zajlik: • Egyed-kapcsolat diagram – szemléletes ábrázolás • Relációs adatbázis séma – implementáció-közeli A kötelező feladatok tervezésének lépései a
következők: szolgáltatások rögzítése, EKdiagram elkészítése, átírás relációs adatbázis sémára, a séma normalizálása.
A valós világ jelenségeit egyedekkel,
tulajdonságokkal és kapcsolatokkal leíró modell Az ezt ábrázoló diagram az egyed-kapcsolat diagram Ennek részei: • Egyed – valami, amiről adatokat tárolunk (pl. könyv) • Kapcsolat – két egyed közötti viszony (pl. könyv – szerző) • Attribútum – az egyedek vagy a kapcsolatok adatai (pl.
könyv címe)
Kulcs: egy egyed attribútumainak minimális
elemszámú halmaza, amelyek egyértelműen azonosítják az egyedet Összetett attribútum: egy struktúra, maga is attribútumokkal rendelkezik Többértékű attribútum: halmaz vagy lista
Bináris (két egyed között)
• 1:1 (autó-rendszám) • 1:N (anya-gyermek) • N:M (pizza-ügyfél)
Sokágú kapcsolat (kettőnél több egyed
között)
Helyettesíthető több kétágú kapcsolattal is,
de így sokkal kifejezőbb.
Előfordulhat, hogy egy egyed önmagával áll
kapcsolatban (pl. munkahelyi hierarchia modellezése) • beosztott (dolgozó) – főnöke (a főnök is dolgozik) • szervezeti egység – főegysége (mindkettő egység)
• sportoló – edzője (az edző szintén sportoló) Ez a modell nem zárja ki a körkörös
hivatkozásokat A kapcsolat típusa lehet 1:1, 1:N és N:M is
Az attribútumai nem határozzák meg
egyértelműen. A kapcsolataival együtt viszont már egyértelműen meghatározott lesz. A meghatározó kapcsolat az, ami azonosítja. Autókiállítás – tulajdonosok és benevezések:
Ha valamilyen általános egyed altípusait
szeretnénk modellezni • Alakzat – kör, négyzet, háromszög stb. • Jármű – vízi, légi, szárazföldi • Helyiség – tanterem, gépterem, iroda stb. Jelölés: háromszög, melynek csúcsa a főtípus
felé mutat Az altípusok öröklik a főtípus attribútumait, de lehetnek saját attribútumaik is
Állapítsuk meg a kapcsolat típusát!
• Egy olvasónál egyszerre csak egy könyv lehet, és nem
tartjuk nyilván a korábbi kölcsönzéseket. • Egy olvasónál egyszerre csak egy könyv lehet, és a korábbi kölcsönzéseket is nyilvántartjuk. • Egy olvasónál egyszerre több könyv is lehet, és nem tartjuk nyilván a korábbi kölcsönzéseket. • Egy olvasónál egyszerre több könyv is lehet, és a korábbi kölcsönzéseket is nyilvántartjuk.
Olyan relációs adatbázist szeretnénk létrehozni, amely egy nemzetközi táncversenyen résztvevő csoportok adatait tartalmazza. Tároljuk a csoport nevét, nemzetiségét, a csoport átlagéletkorát és a verseny folyamán elért pontszámot. Ez mellett tároljuk a bemutatott tánc nevét, valamint a zenére vonatkozó adatokat, azaz a zene műfaját, a szám címét és előadóját. Feltételezzük, hogy: • egyféle táncot több csoport is táncolhat, • egy csoport több táncot is előadhat, • a versenyen nincs kikötés a táncra vonatkozóan, így bármilyen táncot be lehet
mutatni, • a zenét egyértelműen azonosítja a címe, azaz nincs két azonos című szám, • egy csoportban csak azonos nemzetiségűek táncolnak
Mivel a tánc műfaja, valamint a csoportok nemzetisége csak meghatározott értékeket vehet fel, ezért ezeket az adatokat kódolt formában is tároljuk. A csoportok nevét szintén célszerű kódolva is felvenni.
Készítsük el az eddig látott E-K diagramokat a
Dia programban! • Linux: http://www.gnome.org/projects/dia/ • Windows: http://dia-installer.sourceforge.net/ Ha nem jelennek meg az E-K diagram elemei
a panelen, akkor ki kell választani a legördülő listából az EK menüpontot.
Háziorvosi betegnyilvántartás
• Készítsünk relációs adatmodellt egy háziorvosi
betegnyilvántartó rendszerhez! Az orvosok elvárásainak megfelelően az adatbázisnak tartalmaznia kell a betegek személyi adatait, gyógyszerérzékenységüket, az egyes vizsgálatok időpontjait és a felírt gyógyszereket. • Feltételezzük, hogy:
egy vizsgálaton több betegség is diagnosztizálható, egy betegségre több gyógyszer is felírható, egy-egy páciens több gyógyszerre is lehet érzékeny, egy vizsgálatot a dátum és a vizsgálat kódja határoz meg egyértelműen.
Recept-katalógus • Ez az adatbázis háziasszonyoknak készül. Megtalálhatók benne
tetszőleges ételek, azok elkészítési ideje, és egy főre jutó elkészítési költsége. Ezenkívül az egy-egy meghatározott alkalomra (pl. ebéd, desszert, uzsonna, elegáns vacsora) ajánlott ételekből is lehet válogatni. Az adatbázis tartalmazza még, hogy melyik szakácskönyvben, hányadik oldalon található meg a recept. • Feltételezzük, hogy:
egy recept több könyvben is megtalálható, egy könyvnek több szerzője is lehet, az elkészítési időt a receptek közti különbségek nem befolyásolják, egy ételt több alkalomra is lehet ajánlani.
• Az elkészítési időt, a könyv és az alkalom megnevezését kódolt
formában is tároljuk.