kategória | ||||||||||
|
||||||||||
|
||
Az egyed-kapcsolat modell
1. Az adatmodellezésről általában
Az adatmodellezés a DB logikai vázának megalkotását jelenti. Ez fogalmi szintű művelet, mely az alábbi ábrával írható le:
A folyamat tehát felfogható úgy, hogy egy "a valóság egy darabjáról" - pl. egy cég nyilvá 636j91g ntartásáról szeretnénk adatmodellt és arról későnn egy DB sémát, azaz konkrét adatbázist készíteni. A DB séma már egy tényleges. értelmezhető kód.
A fázisok közötti átmenetek a következők:
a.) adatmodellező eszközöket használva (pl. ODL, E/K) készítkjük el az adatmodell leírását
b.) DDL segítségével alakítható ki a DB séma.
A folyamat legfontosabb része az a.)-ban zajló tevékenység; b.) ebből már nagyrészt automatikusan adódik.
Az adatmodellező eszköz többé-kevésbé formális jelölésrendszert biztosít adatok, kapcsolataik és a rajtuk végzett műveletek kifejezésére.
Az adatmodellezés egyes eszközeinek kapcsolata és eredménye:
2. Az Egyed/Kapcsolat (E/K) modell
Nevezik még Tárgy/Kapcsolat, vagy Entitás-relációs modellnek is.
Az E/K modell nem teljeskörű, mert nem tartalmaz műveleteket. Előnye viszont az, hogy látható formába önti a DB modelljét, vagyis jobban átlátható, mint az ODL formális leírásmódja. Elsődleges leírást ad, ami könnyen - jórészt gépiesen - finomítható igazi DB sémáig.
Az E/K modell alapfogalmai
Egyedhalmazok (tárgy-, entitáshalmazok)
Közelítőleg az egyedek az objektumoknak, az egyedhalmazok pedig az osztályoknak felelnek meg. (A különbség, mint tudjuk, az, hogy az objektumoknak mindig van azonosítójuk.)
Egyedhalmaz lehet bármi, aminek egyedei azonosíthatók.
Az E egyedhalmaz jelölése: Például:
Attribútumok
Ezek az egyedek jellemzésére szolgáló egyszerű - azaz egyszerű típusú - tulajdonságok. (Egyes nézetek szerint attribútum nem lehet rekordtípus - aminek az ODL-ben nem volt akadálya.) Ha az E egyedhalmaz attribútumai rendre az A1,...,Ak attribútumok, akkor a formális jelöléssel: E(A1, ... , Ak).
Rajzban:
Példa: az ODL-nél megismert Film az E/K modellben
Kapcsolatok
Az egyedhalmazok közötti viszonyok kifejezésére szolgálnak. Jelentös eltérés az ODL-hez képest az, hogy az E/K modell megenged sokágú kapcsolatokat - nem úgy, mint az ODL, ami csak kétszereplős kapcsolatokat ábrázol.
Az E1,...,Em egyedhalmazok közti R nevű kapcsolat jelölése: R(E1,...,Em). (Az egyedhalmazok sorrendjének nincs lényegi szerepe.)
Rajzban a kapcsolat nevét rombuszba foglaljuk:
Példák
a Film-Színész kapcsolat:
Megj.: az ODL-ben a lakcím rekordként volt definiálva. Itt ez nem megy!
Nemzetközi munkamegosztás
Egy cég termékeit több országban is termelheti / értékesítheti. Ez egy m=3 komponensű kapcsolat.
a filmes példa továbbfejlesztése
A filmet egy adott stúdió forgatja; erre a produkcióra szerződik a színész. Ha a "gázsi" attribútumot szerepeltetni akarjuk az ábrán, akkor az csak a Szerződés nevű kapcsolathoz köthető, mert:
egy filmhez több színész és így gázsi tartozik;
egy stúdió több filmet forgat;
egy színész több filmben játszik.
Tapasztalat: kapcsolatnak is lehet attribútuma. (Bár ez új egyedhalmaz felvételével kiváltható.)
Kapcsolatok típusa az E-K modellben
A kapcsolatok típusa megegyezik az ODL-ben ismertetett típusokkal, csak a jelöléstechnika más - a függvény-jellegre nyíl utal.
1:1 kapcsolat
N:1 kapcsolat
N:N kapcsolat
Az N:1 (több-egy) kapcsolat értelmes lehet kettőnél több komponensű kapcsolatnál is. (Lásd: filmes példa - nyíl a Stúdió felé.)
Általánosan: az R(E1,...,Ek) több-egy kapcsolatban a nyíl Ej felé mutat, ha tetszőlegesen választott e E (i¹j) egyedkollekcióhoz legfeljebb egy olyan ej van, amivel (e1,...,ej,...,en) R.
Azaz a maradék - nyíl által nem mutatott - komponenseket (egyedeket) egyféleképp egészíthetjük ki úgy, hogy egy relációt kapjunk.
Sokágú kapcsolat átalakítása kétágú (több-egy) kapcsolattá
Menete:
R' - melyet kapcsoló halmaznak szokás nevezni - elképzelhető úgy, mint egy k mutatót tartalmazó egyedhalmazt. R'-nek gyakran nincs attribútuma (ekkor gyenge egyedhalmazról beszélünk).
Példa: a Szerződés kapcsolat átalakítása N:1 típusúvá (számunkra ez jobb)
Öröklődés, alosztályok az E/K modellben
Tfh. az E1 egyedhalmaz szűkítése az E2-nek.
Ezt jelölhetjük ezekkel:
Az alárendelt egyedhalmaz örökli felmenői attribútumait. Egy "objektum" nem feltétlen egy "osztályyhoz" tartozik.
Példa: Film, Rajzilm, Krimifilm
Itt nincs szükség külön Krimirajzfilm egyedhalmazra. Pl. ha a "Macskafogó" a krimirajzfilm, akkor lesz egy neki megfelelő Rajzfilm és egy Krimifilm egyed is, melyek ugyanoda, ugyanarra a filmre fognak mutatni, azaz közös apjuk lesz.
Megszorítások az E/K modellben
Kulcsok
a rajzból indulunk ki, ezért fontos, hogy az egyszerű legyen - ami a séma egyszerűségét is mutatja.
a rajzon csak egyetlen kulcsot jelölünk: ez az ún. elsődleges kulcs (primary key)
a nem elsődleges (azaz másodlagos) kulcsokat a modell külön leírásban tünteti fel.
Pl. a Filmet a címe és a gyártási éve azonosítja, tehát itt a (cím,év) pár az elsődleges kulcs (amit aláhúzással jelölünk).
Egyértékűség
ajánlás: használjunk egyértékű attribútumokat!
a NULL érték alapértelmezésben megengedett, kulcsokban azonban nem (aminek nem is lenne sok értelme, ha jól belegondolunk)
a NULL érték tiltását külön leírás tartalmazza
az N:1 jelleget nyilak fejezik ki.
Hivatkozási épség
A "pontosan egy" kapcsolatot lekerekített nyílhegy jelöli.
Példák
Egy filmnek kötelezően van egy (pontosan egy) gyártó stúdiója
Minden stúdiónak pontosan egy elnöke van, azaz nem létezhet stúdió elnök nélkül. Egy elnök legfeljebb egy stúdióhoz tartozhat.
A kapcsolat fokának korlátozása
Pl
(mindkét nyílfajta értelmes)
Azt szabályozza, hogy egy egyedhez legfeljebb hány másik kapcsolódhat. A példában: egy flottához legfeljebb 3 hajóraj tartozhat.
Gyenge egyedhalmazok
Gyenge egyedhalmazról beszélünk, ha egy egyedhalmaz egyedei önmagukban nem, csak kapcsolataikon keresztül azonosíthatók.
Egy több komponensű kapcsolat átalakításakor a kapcsoló rekordot így jelöljük:
Ennek az azonosításban résztvevő kapcsolatait pedig így:
Követelmények
ha az F egyedhalmaz hozzájárul az E gyenge egyedhalmaz kulcsához, akkor azt az megfelelő R (N:1) kapcsolattal együtt így kell ábrázolni (F is lehet gyenge egyedhalmaz):
az E azonosítására szolgáló F-beli attribútumok elemei F kulcsának is.
Példa: szervezeti egységek részegységekből - csoportokból - épülnek fel. A csoportokat számukkal írjuk le (ez egyetlen attribútumuk):
A Csoport gyenge egyedhalmazt jelöl: ennyi attribútummal (szám) önmagában nem azonosítható, csak a "Része" kapcsolatot követve a Stúdió alapján.
Ha a Csoportba bekerülne a stúdiónév (azonosító!) is, akkor további redundancia-probléma is felmerülhetne (inkonzisztens nevek: a névváltozást nem minden előfordulásában követjük).
3. Adatmodellezési alapelvek
Valósághű modellezés
a fontos adatelemek és
a fontos kapcsolatok is legyenek benne a modellben!
A redundancia elkerülése
Ugyanazt a dolgot két vagy több helyen ne jelenítsük meg az ábrázolt modellben. Ez azért fontos a következők miatt:
helygazdálkodás: nem ez a legfontosabb szempont, de mérlegelni kell;
konzisztencia: a két vagy több helyen lévő azonos adatnak minden előfordulási helyén mindig ugyanolyan tartalmúnak kell lennie. Ha ez nem teljesül, akkor anomáliák lépnek fel;
egyszerűség: a redundancia bonyolítja a modellt.
Megfelelő típusú elemek kiválasztása
Alapkérdések
mit reprezentálunk attribútumként?
mit reprezentálunk kapcsolatként?
A megfelelő típusú elemek kiválasztásának szempontjai:
az attribútum: egyszerűbb, mint a kapcsolat (hiszen ez direkt köthető alaptulajdonság)
az egyedhalmaz, osztály (azaz a kapcsolat): bonyolultabb, de kifejezőbb.
Találat: 2970