• Nem Talált Eredményt

3. Lecke: Koncepcionális modellezés, ER-modell

3.2 Az ER-modell

3.2.3 Kapcsolatok

A kapcsolatok az adatbázis egyedei közötti viszonyt fejezik ki. Talán ez az az adatbázis elem, amelynek modellezésében a legszínesebb lehetőségek állnak rendelkezésünkre. Míg például a relációs adatmodellben csak a számosságuk alapján (1:1,1:n, n:m) teszünk különbséget, addig az ER modellben a kötelező-ség, a kapcsolat fokszáma, az összekapcsolt egyedek fajtája (erő-erős, erős-gyenge), sőt az egyed esetleges önmagával való kapcsolata is jelölhető. Ezeken kívül a modellezést megkönnyítő jellemző, hogy a kapcsolatoknak az egyedek-hez hasonlóan attribútumai lehetnek.

Az ER-modellben a kapcsolatot általában a viszony jellegét leíró igével ne-vezzük meg. A nevet a kapcsolódó egyedek közé húzott vonalra rajzolt rom-buszba írjuk.

13. ábra Kapcsolat Chen-féle jelölése

Itt kell megjegyeznünk, hogy a kapcsolatok jelölésére számos különböző technikát használnak. A rombusszal ábrázolt kapcsolat az eredeti, Chen-féle jelölésnek felel meg. Akkor célszerű használni, ha a kapcsolatnak vannak attri-bútumai. Ilyenkor azokat úgy kötjük a rombuszhoz, mint az egyedek esetében a téglalaphoz. Más ábrázolásokban nem használnak rombuszt, hanem egyszerűen vonallal kötik össze az egyedeket és arra írják a kapcsolat nevét.

Kapcsolat számossága

A kapcsolatokat eddig csak az alapján tipizáltuk, hogy a kapcsolódó egye-dek előfordulásai hány egyedhez kötődhetnek a másik egyedben. Az 1:1, 1:n és n:m kapcsolattípusok a kapcsolatban való részvétel maximumát határozzák meg, de semmilyen kitételt nem fogalmaznak meg a minimális részvétellel kap-csolatban. Az ER-modellben erre is lehetőség nyílik.

Ha például azt mondjuk, hogy a Dolgozó-Autó kapcsolat 1:n, az azt jelenti, hogy bármelyik dolgozónak lehet több autója is, de egy bizonyos autó maximum egy dolgozó tulajdona lehet. Az 1:n kap-csolat nem árulja el, hogy minden dolgozónak van-e autója, és hogy minden autónak van-e tulajdonosa a dolgozók között.

Kötelező, és opcionális részvétel

Míg a számosság a kapcsolatban való részvétel maximumára, addig a köte-lezőség a minimális részvételi számra vonatkozó kritériumot fogalmaz meg. ’A’

és ’B’ egyed kapcsolatában a ’B’ oldalán jelezzük, hogy az egyes ’A’ egyed-előfordulásokhoz minimum és maximum mennyi ’B’ egyed-előfordulás kapcso-lódik.

Az ’A’ oldal mellett az jelezzük, hogy a ’B’ egyed-előfordulásokhoz hány ’A’

egyed-előfordulás kapcsolódhat.

Egy kapcsolatban akkor nevezzük kötelezőnek az ’A’ egyed részvé-telét, ha nem lehet olyan egyed-előfordulása, amelyikhez nem kap-csolódik a ’B’ egyed egyetlen egyed-előfordulása sem.

’A’ részvétele opcionális, amennyiben lehet olyan egyed-előfordu-lása, amely nem vesz rész a kapcsolatban.

Ez a jelölés

Dolgozó (1,1)-(0,n) Autó

például azt jelenti, hogy egy autóhoz 1 és csakis 1 (1,1) dolgozó, egy dolgozóhoz pedig 0 vagy több (0,n) autó kapcsolódhat.

A kötelezőségről mindig a túloldal minimális részvétele árulkodik.

Ha rendre megvizsgáljuk mindkét egyed előfordulásainak lehetsé-ges kapcsolatait, akkor azt látjuk, hogy minden autóhoz pontosan egy dolgozó kapcsolódik, azaz nincs olyan autó, amelyiknek ne len-ne tulajdonosa. Az ellenkező oldalon azonban leszlen-nek olyan dolgo-zók, akikhez több autóhoz is kapcsolódik (több kocsi tulajdonosai), de lesznek olyanok is, akiknek egy járművük sincs.

A példában az autók részvétele kötelező, a dolgozóké opcionális.

Kötelező részvételt totálisnak, az opcionális részvételt parciálisnak is nevezzük.

Kötelező vagy totális részvételről beszélünk akkor, amikor egy egyed min-den előfordulása részt vesz a kapcsolatban. Ilyenkor a kapcsolat másik oldalán nem lehet 0 a minimális részvétel.

Opcionális, vagy parciális egy egyednek a részvétele akkor, ha van olyan előfordulása, amelyik a másik egyed egyetlen előfordulásához sem kapcsolódik.

Ezt a másik oldal 0 minimális részvétele jelzi.

Számosság és kötelezőség ábrázolása

Mint említettük, a kapcsolatok ábrázolására több jelölés is létezik. A legel-terjedtebbek az eredeti Chen-féle, a Backman-, a Crow’s Foot (varjúláb), és a Martin-féle jelölések. Ezek az alábbi táblázatban látható jelekkel ábrázolják a minimális és maximális részvételt.

14. ábra Számosság és kötelezőség jelölése

A legegyszerűbb, de a kötelezőség jelölésre alkalmatlan a Chen-féle 1,n je-leket használó módszer. Akkor használjuk, ha a minimális részvételnek nincs jelentősége a kapcsolatban. A Backman-módszer már biztosítja a számosság jelölését, de a varjúláb jelöléssel ellentétben nem túl szemléletes. A Crow’s foot jelölésben a kapcsolatot ábrázoló vonal végeire helyezzük el a megfelelő szim-bólumokat. A vonal közepe felé a minimális, széle felé a maximális részvételt jelöljük mindkét oldalon. A Martin-jelölésben a megfelelő helyre írt 0,1,n vagy 0,1,* szimbólumok jelölik a nulla, az egy, illetve több értékeket.

15. ábra Chen-, Crow’s foot és Martin-féle

jelölé-sek

Rekurzív kapcsolat

Az egyedek közötti kapcsolat érdekes formája a rekurzív kapcsolat. Egy vi-szonyt akkor nevezünk rekurzívnak, ha az egyed előfordulásai ugyanannak az egyednek más előfordulásaihoz kapcsolódhatnak. Ilyenkor egyed valójában önmagához kapcsolódik.

16. ábra Rekurzív kapcsolatok

A fenti ábra két ilyen kapcsolatot mutat be. Az első esetben azt jelezzük, hogy melyik személynek ki a házastársa. Mivel egy személy egyetlen másik sze-méllyel lehet házastársi kapcsolatban, a viszony rekurzív. A kapcsolat mindkét oldalon (0,1) jelöléssel jelzi, hogy egy embernek 0 vagy 1 házastársa van egy időben.

A másik példa az anya-gyermek kapcsolatot demonstrálja. Egy személynek nulla vagy több gyermeke lehet, de egy gyermeknek csak egy édesanyja van.

Kapcsolat attribútumai

Az ER-modell nagyszerűsége, hogy megengedi, hogy egy kapcsolat az egyedekhez hasonló tulajdonságokkal rendelkezzen. A példa bemutatja, hogy bizonyos esetekben nagyon is szükség van erre.

Tegyük fel, hogy cégünk dolgozói különböző projekteken dolgoz-nak. Adatbázisunkban egy-egy egyedtípusban tároljuk a dolgozók és a projektek adatait. Meg kell oldanunk a munkatársak egyes projektekben ellátott feladatának rögzítését is.

17. ábra Dolgozó-Projekt kapcsolat

A megoldást a fenti ábra mutatja. A dolgozók és projektek n:m kapcsolat-ban állnak, hiszen egy dolgozó több projektben is részt vehet, és projektenként is több munkatárs tevékenykedhet. A dolgozók részvétele parciális (nem min-denki vesz részt a projektmunkákban), a projektek részvétele viszont totális, hiszen minden projekten legalább egy munkatárs dolgozik.

A feladat attribútumot egy egyedhez sem tudjuk rendelni, hiszen az kifeje-zetten a kapcsolatot, egy dolgozó egy bizonyos projektben kifejtett tevékenysé-gét jellemzi.

Az ábrán együtt használtuk a Chen-féle kapcsolat és a Crow’s foot számos-ság jelölést. Ez egyáltalán nem szokatlan az ER-diagramokon. Ha a megrendelő vagy a munkahelyi vezetőnk máshogyan nem rendelkezik, saját terveinkben is nyugodtan használjuk azt a jelöléskombinációt, amelyet a legcélravezetőbbnek, legszemléletesebbnek tartunk. Igyekezzünk azonban következetesek maradni.

Erős-gyenge egyed kapcsolata

A gyenge egyedek előfordulásai csak egy másik, erős egyed előfordulásai-val együtt azonosíthatók. Ez azt jelenti, hogy a gyenge egyed mindig kapcsoló-dik egy erős egyedhez. Az ilyen kapcsolatot mindig dupla vonalas rombusszal jelöljük.

18. ábra Erős és gyenge egyed kapcsolata

Kapcsolat fokszáma

Az egyedek kapcsolatának jellemzésére szoktuk említeni a kapcsolat fok-számát. A fokszám azt határozza meg, hogy hány egyed vesz rész a kapcsolat-ban. A legtöbb kapcsolat bináris, azaz két egyedet, míg a terner kapcsolat hár-mat köt össze. Az unáris kapcsolatot nevezzük más néven rekurzív kapcsolatnak. Ebben csak egy egyed vesz részt.