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.