3.5. Gyenge egyedtípusok

Azokat az egyedtípusokat, amelyek nem rendelkeznek saját kulcs attribútumokkal, gyenge egyedtípusoknak nevezzük. Ezzel ellentétben azokat a hagyományos egyedtípusokat, amelyeknek van kulcs attribútumuk — és amelyek közé az összes eddig tárgyalt példa is tartozik — erős egyedtípusoknak nevezzük. A gyenge egyedtípushoz tartozó egyedek azonosítása egyrészt egy másik egyedtípus bizonyos egyedeinek, másrészt saját attribútumértékeik közül egynek a felhasználásával történik. Ezt a másik egyedtípust azonosító vagy tulajdonos egyedtípusnak [8] nevezzük, a gyenge egyedtípust a tulajdonosával összekötő kapcsolattípust pedig a gyenge egyedtípus[9] azonosító kapcsolatának hívjuk. A gyenge egyedtípus mindig totális résztvevője az azonosító kapcsolatának (létezésfüggőség), mert egy gyenge egyedet nem lehet azonosítani tulajdonos egyed nélkül. Nem minden létezésfüggőség eredményez azonban gyenge egyedtípust. Például egy JOGOSÍTVÁNY egyed nem létezhet egy kapcsolódó SZEMÉLY egyed nélkül, bár neki is van saját kulcsa (a Vezetői_engedély_száma), és ezért nem gyenge egyed.

Vegyük például a HOZZÁTARTOZÓ egyedtípust, amely a DOLGOZÓ egyedtípushoz kapcsolódik, és amelyet az egyes dolgozók hozzátartozóinak a tárolására használunk egy 1:N kapcsolattípuson keresztül (3.2. ábra). A HOZZÁTARTOZÓ attribútumai a Név (a hozzátartozó keresztneve), a Szdátum, a Nem és a Kapcsolat (a dolgozóval). Két különböző dolgozó két hozzátartozójának véletlenül lehet ugyanaz a Neve, Szdátuma, Neme és Kapcsolata, annak ellenére, hogy különböző egyedekről van szó. Ezért csak azután azonosíthatók különböző egyedekként, ha már meghatároztuk azokat a konkrét alkalmazott egyedeket, amelyekhez az egyes hozzátartozók kapcsolódnak. Azt mondjuk, hogy az egyes DOLGOZÓ egyedek tulajdonosai a hozzájuk kapcsolódó HOZZÁTARTOZÓ egyedeknek.

A gyenge egyedtípusoknak részleges kulcsuk van, amely azon attribútumok halmaza, amelyek egyértelműen azonosítják azokat a gyenge egyedeket, amelyek ugyanazon tulajdonos egyed(ek)hez kapcsolódnak.[10] A példánkban, ha feltételezzük, hogy ugyanazon alkalmazott két hozzátartozójának nem lehet azonos a keresztneve, akkor a HOZZÁTARTOZÓ Név attribútuma a részleges kulcs. Legrosszabb esetben a gyenge egyedtípus összes attribútumából képzett összetett attribútum lesz a részleges kulcs.

Az ER diagramokban a gyenge egyedtípust dupla szegélyű téglalappal, az azonosító kapcsolatát dupla szegélyű rombusszal jelöljük (lásd a 3.2. ábrát). A részleges kulcs attribútumot szaggatott vagy pontozott vonallal húzzuk alá.

A gyenge egyedtípusokat néha komplex (összetett, többértékű) attribútumokként is reprezentálhatjuk. Az előző példában megadhatnánk a DOLGOZÓ egyedtípushoz egy többértékű Hozzátartozók attribútumot, amely összetett attribútum lenne Név, Születési idő, Nem és Kapcsolat attribútumokkal. Hogy melyik reprezentációt használjuk, azt az adatbázis tervezője dönti el. A gyenge egyedtípus reprezentációt célszerű használni akkor, ha sok attribútumunk van. Ha a gyenge egyedtípus az azonosító kapcsolattípusán kívül más kapcsolattípusokban is részt vesz, akkor nem célszerű komplex attribútumként modellezni.

Általánosságban gyenge egyedtípusok tetszőleges számú szintjét definiálhatjuk; a tulajdonos egyedtípus maga is lehet gyenge egyedtípus. Egy gyenge egyedtípus ráadásul egynél több azonosító egyedtípussal is rendelkezhet, így az azonosító kapcsolattípusa kettőnél magasabb fokú is lehet, ahogy azt a 3.8. alfejezetben majd látni fogjuk.



[8] Az azonosító egyedtípust néha szülő egyedtípusnak vagy domináns egyedtípusnak is nevezik.

[9] A gyenge egyedtípust néha gyermek egyedtípusnak vagy alárendelt egyedtípusnak is nevezik.

[10] A részleges kulcsot néha diszkriminátornak is nevezik.