3. fejezet - Adatmodellezés az ER modell segítségével

A koncepcionális modellezés nagyon fontos fázisa egy sikeres adatbázis alkalmazás tervezésének. Az adatbázis alkalmazás kifejezés általánosságban egy konkrét adatbázisra és a hozzá kapcsolódó programokra utal, amelyek az adatbázis-lekérdezéseket és -módosításokat valósítják meg. Egy BANK adatbázis alkalmazás például, amely az ügyfelek számláit tartja nyilván, olyan programokat tartalmazhat, amely az ügyfelek pénzmozgásainak megfelelő adatbázis-módosításokat implementálja. Ezek a programok felhasználóbarát grafikus felhasználói felületekkel (GUI-kkal) rendelkeznek, amelyek űrlapokat és menüket biztosítanak az alkalmazás végfelhasználói (jelen esetben a banki ügyintézők) számára. Ezért az adatbázis alkalmazás részét képezi ezen alkalmazói programok tervezése, implementációja és tesztelése is. Az alkalmazói programok tervezését és tesztelését hagyományosan inkább a szoftvertervezés területéhez tartozónak tekintik, mintsem az adatbázis-tervezéshez kapcsolódónak. Mivel azonban az adatbázis-tervezési módszertanok egyre több, az adatbázis-objektumokon végzendő műveletekre vonatkozó eszközt tartalmaznak, a szoftvertervezési módszertanok pedig egyre részletesebben meghatározzák a programok által használt és elért adatbázis szerkezetét, nyilvánvaló, hogy ezek a tevékenységek szorosan összetartoznak.

Ebben a fejezetben a hagyományos megközelítést követjük, azaz az adatbázis-tervezés során az adatbázis szerkezetére és megszorításaira koncentrálunk. Ismertetjük az egyed-kapcsolat (ER) modell fogalmait, amely egy népszerű magas szintű koncepcionális adatmodell. Ezt a modellt és különböző változatait gyakran használják az adatbázis alkalmazások koncepcionális tervezésénél, és sok adatbázis-tervező eszköz használja a fogalmait. Bemutatjuk az ER modell alapvető adatszerkezeti fogalmait és megszorításait, és leírjuk ezek használatát az adatbázis alkalmazások koncepcionális sémáinak tervezése során. Ismertetjük az ER modellhez kötődő grafikus jelölésrendszert is, amelyet ER diagramnak nevezünk.

Ez a fejezet a következőképpen épül föl: A 3.1. alfejezet a magas szintű koncepcionális adatmodelleknek az adatbázis-tervezésben játszott szerepét tárgyalja. A 3.2. alfejezetben egy példa adatbázis alkalmazás követelményeit adjuk meg, hogy illusztráljuk az ER modell fogalmainak a használatát. Ezt a példa adatbázist használjuk a következő fejezetekben is. A 3.3. alfejezetben definiáljuk az egyed és az attribútum fogalmát, és fokozatosan bevezetjük az ER séma grafikus megjelenítésének technikáját. A 3.4. alfejezetben a bináris kapcsolatokról, azok szerepéről és a strukturális megszorításokról ejtünk szót. A 3.5. alfejezet a gyenge egyedtípusokról szól. A 3.6. alfejezet megmutatja, hogyan lehet egy sématervet úgy finomítani, hogy kapcsolatokat is tartalmazzon. A 3.7. alfejezet az ER diagramok jelöléseit ismerteti, összefoglalja a sématervezés során felmerülő kérdéseket, és leírja, hogy hogyan kell az adatbázissémában található konstrukciók neveit megválasztani. A 3.8. alfejezet a kapcsolatok összetettebb típusait tárgyalja. A 3.9. alfejezet összefoglalja a fejezetet.

A 3.8. alfejezet anyaga elhagyható egy bevezető kurzusból. Ha az olvasó az adatmodellezési fogalmakban és a koncepcionális adatbázis-tervezésben alaposabb jártasságot szeretne szerezni, akkor a 3.7. alfejezet után a 4. fejezettel folytathatja, amelyben az ER modell olyan kiterjesztéseit ismertetjük, melyek a kibővített ER (EER) modellhez vezetnek. Az EER modell olyan fogalmakat tartalmaz, mint a specializáció, a generalizáció, az öröklődés és az unió típusok (kategóriák).

3.1. Magas szintű koncepcionális adatmodellek használata az adatbázis-tervezésben

A 3.1. ábra az adatbázis-tervezési folyamat egy leegyszerűsített leírását mutatja. Az első lépés a követelményrendszer felállítása és analízise. Ebben a lépésben az adatbázis-tervezők elbeszélgetnek az adatbázis leendő felhasználóival, hogy megértsék és dokumentálják az adatkövetelményeiket. Ennek a lépésnek az eredménye a felhasználók követelményeinek írásban rögzített, lényegretörő listája. Ezeket a követelményeket olyan részletes és teljes formában kell specifikálni, amennyire csak lehetséges. Az adatkövetelmények megadásával párhuzamosan hasznos, ha az alkalmazás ismert funkcionális követelményeit is megadjuk. Ezek azokból a felhasználó által definiált műveletekből (vagy tranzakciókból) állnak, amelyeket az adatbázisra fogunk alkalmazni, beleértve a lekérdezéseket és a módosításokat is. A szoftvertervezésben leggyakrabban adatfolyam-diagramokat, szekvenciadiagramokat, forgatókönyveket és más technikákat alkalmazunk a funkcionális követelmények leírására. Egyik felsorolt technikát sem tárgyaljuk itt; ezeket részletesen a szoftvertervezésről szóló szakirodalmak írják le.

3.1. ábra - Egy egyszerűsített ábra az adatbázis-tervezés főbb fázisainak illusztrálására.

Egy egyszerűsített ábra az adatbázis-tervezés főbb fázisainak illusztrálására.

Amint az összes követelményt összegyűjtöttük és elemeztük, a következő lépés az adatbázis koncepcionális sémájának létrehozása egy magas szintű koncepcionális adatmodell felhasználásával. Ezt a lépést koncepcionális tervezésnek nevezzük. A koncepcionális séma a felhasználók adatkövetelményeinek egy tömör leírása, és az egyedtípusok, a kapcsolatok és a megszorítások részletes leírását tartalmazza; ezeket a magas szintű adatmodell eszközeivel fejezzük ki. Mivel ezek az eszközök nem tartalmaznak megvalósítási részleteket, a laikus felhasználók számára rendszerint könnyebben érthetők, így a velük folytatott kommunikáció során jól használhatók. A magas szintű koncepcionális séma hivatkozásként is használható annak érdekében, hogy az összes felhasználó adatkövetelményei egységesen jelenjenek meg, és hogy ezek a követelmények ne mondjanak ellent egymásnak. Ez a megközelítés lehetővé teszi az adatbázis-tervezők számára, hogy az adatok tulajdonságait a tárolás részleteinek figyelembevétele nélkül specifikálják. Ennek következtében könnyebben tudnak jó koncepcionális adatbázistervet készíteni.

A koncepcionális séma tervezése közben vagy után az adatmodell alapvető műveleteit használhatjuk azoknak a magas szintű felhasználói műveleteknek a megadására, amelyeket a funkcionális elemzés során azonosítottunk. Ez azt a célt is szolgálja, hogy meggyőződjünk arról, hogy a koncepcionális séma minden funkcionális követelménynek megfelel. Amennyiben bizonyos funkcionális követelményeket nem tudunk leírni a kezdeti séma segítségével, akkor módosíthatjuk a koncepcionális sémát.

Az adatbázis-tervezés következő lépése az adatbázis tényleges megvalósítása egy kereskedelmi DBMS felhasználásával. A legújabb kereskedelmi DBMS-ek egy implementációs adatmodellt — mint amilyen a relációs vagy az objektum-relációs adatmodell — használnak, a koncepcionális sémát tehát a magas szintű adatmodellről az implementációs adatmodellre alakítjuk át. Ezt a lépést logikai tervezésnek vagy az adatmodell leképezésének nevezzük; ennek eredménye egy, a DBMS implementációs adatmodelljében leírt adatbázisséma.

Az utolsó lépés a fizikai tervezés fázisa, amelynek során megadjuk az adatbázis állományainak belső tárolási szerkezetét, indexeit, elérési útjait és állományszervezési módjait. Ezekkel a tevékenységekkel párhuzamosan tervezzük meg és implementáljuk az alkalmazói programokat mint adatbázis tranzakciókat a magas szintű tranzakcióspecifikációnak megfelelően.

Ebben a fejezetben csak a koncepcionális sématervezéshez legszükségesebb ER modellbeli fogalmakat ismertetjük. További modellezési fogalmakat vezetünk be a 4. fejezetben, ahol az EER modellről tárgyalunk.