Adatbázisrendszerek Az Enhanced Entity-Relationship Szuperosztályok, ok, öröklődés, specializáció,, leképezés re 2018. március 27.
2 EER k Egy osztály egyedek egy halmaza vagy kollekciója; magában foglal minden olyan az beli szerkezetet, amely egyedeket csoportosít, például egyedtípusokat, okat, szuperosztályokat és kategóriákat. Egy S egy olyan osztály, amely egyedeinek mindig egy másik osztály, a szuperosztály/ (vagy IS-A) kapcsolat C szuperosztályához tartozó egyedek egy részhalmazát kell alkotniuk. Megjegyzés Egy ilyen kapcsolatot C/S-sel jelölünk. Egy szuperosztály/ kapcsolatra mindig igaz, hogy S C.
3 EER k Egy Z = {S 1, S 2,..., S n } specializáció olyan oknak egy halmaza, amelyeknek ugyanaz a G a szuperosztálya, azaz i = 1, 2,..., n esetén G/S i egy szuperosztály/ kapcsolat. G-t generalizált egyedtípusnak (vagy a specializáció szuperosztályának, olykor pedig az {S 1, S 2,..., S n } ok jának) nevezzük.
Példa ra 4 EER (a) Szállítható_személyek_száma Tengelyek_száma k (b) Max_sebesség Alvázszám AUTÓ Rendszám Szállítható_személyek_száma Max_sebesség Generalizáció: AUTÓ Ár Ár TEHERGÉPKOCSI Alvázszám Ár Rendszám JÁRMŰ d Rendszám Tengelyek_száma TEHERGÉPKOCSI Teherbírás Alvázszám Teherbírás (a) Két önálló egyedtípus: az AUTÓ és a TEHERGÉPKOCSI. (b) A generalizált JÁRMŰ szuperosztály az AUTÓ és a TEHERGÉPKOCSI okkal.
Példa specializációkra 5 EER Vnév Knév Név Szsz Születési_dátum Lakcím k Gépelési_sebesség TITKÁR/NŐ d Fokozat TECHNIKUS MÉRNÖK Mérn_típus DOLGOZÓ VEZETŐ IRÁNYÍTJA PROJEKT Fizetés FIX_FIZETÉSŰ_DOLGOZÓ d Tarifa ÓRABÉRES_DOLGOZÓ TAGJA SZAKSZERVEZET A DOLGOZÓ háromféle specializációja: { TITKÁR/NŐ, TECHNIKUS, MÉRNÖK } { VEZETŐ } { ÓRABÉRES DOLGOZÓ, FIX FIZETÉSŰ DOLGOZÓ }
Totális és részleges, valamint diszjunkt és átfedő specializáció 6 EER k Z-t totálisnak nevezzük, ha mindig (bármely időpillanatban) teljesül, hogy n S i = G. i=1 Egyébként Z-t részlegesnek (parciálisnak) mondjuk. Z-t diszjunktnak nevezzük, ha minden i j esetén teljesül, hogy S i S j = (üres halmaz). Ellenkező esetben Z-t átfedőnek mondjuk.
Predikátumdefiniált és felhasználó által definiált specializáció 7 EER k C-nek egy S át predikátumdefiniáltnak nevezzük, ha egy p predikátumot írunk elő a C attribútumaira, amellyel megadjuk, hogy mely C-beli egyedek elemei S-nek; azaz S = C[p], ahol C[p] azon C-beli egyedek halmaza, amelyek eleget tesznek a p feltételnek. Egy t, amit nem predikátummal definiálunk, felhasználó által definiáltnak nevezünk.
Attribútumdefiniált specializáció 8 EER k Egy Z specializációt (vagy egy G t) attribútumdefiniáltnak nevezünk, ha egy (A = c i ) predikátumot használhatunk minden egyes Z-beli S i tagságának a megadására, ahol A G-nek egy attribútuma, c i pedig egy konstans érték A tartományából. Megjegyzés Ha i j esetén c i c j, és A egy egyértékű attribútum, akkor a specializáció diszjunkt lesz.
Példa diszjunkt, attribútumdefiniált specializációra9 EER Vnév Knév k Név Szsz Születési_dátum Lakcím Munka_típus DOLGOZÓ Munka_típus d Titkár Mérnök Gépelési_sebesség Fokozat Mérn_típus Technikus TITKÁR/NŐ TECHNIKUS MÉRNÖK EER diagram a Munka típusra vonatkozó attribútumdefiniált specializáció esetén.
Példa átfedő specializációra 10 EER k Gyártás_dátuma Termékszám Rajzszám GYÁRTOTT_ALKATRÉSZ Alkatrész_szám Leírás ALKATRÉSZ o Szállító_neve Listaár VÁSÁROLT_ALKATRÉSZ EER diagram egy átfedő (nem diszjunkt) specializáció esetén.
Kategória 11 EER k Egy T kategória egy osztály, amely n definiáló szuperosztály (D 1, D 2,..., D n, n > 1) uniójának egy részhalmaza. Formálisan: T (D 1 D 2... D n ). Egy D i attribútumaira előírt p i predikátumot használunk az egyes D i -k azon elemeinek a megadására, amelyek elemei T -nek. Ha minden D i -re megadunk egy p i predikátumot, akkor T = (D 1 [p 1 ] D 2 [p 2 ]... D n [p n ]).
Kapcsolattípusok kiterjesztése osztályokra 12 EER k Ezek után kiterjeszthetjük a kapcsolattípus definícióját, megengedve, hogy bármilyen osztály ne csak az egyedtípusok részt vehessen egy kapcsolattípusban. Csak ki kell cserélnünk az egyedtípus szavakat az osztály szóra a definícióban. grafikus jelölései konzisztensek az ER-rel, mert az osztályokat is téglalapokkal reprezentáljuk.
Példa kategorizálásra 13 EER B_név B_cím k Forgalmi_engedély_száma Szsz Név SZEMÉLY A_gyártó Lakcím Alvázszám BANK M BIRTOKOLJA N U TULAJDONOS REGISZTRÁLT_JÁRMŰ U V_név Finanszírozott Rendszám Alvázszám V_cím VÁLLALAT Vásárlás_dátuma Teherbírás A_típus AUTÓ TEHERGÉPKOCSI T_típus A_ A_év T_év T_
14 EER k 1 Erős egyedtípusok 2 Gyenge egyedtípusok 3 Bináris 1 : 1 számosságú kapcsolattípusok (a) külső kulcs használata (b) összevonás (c) kereszthivatkozás v. kapcsoló reláció használata 4 Bináris 1 : N számosságú kapcsolattípusok 5 Bináris M : N számosságú kapcsolattípusok 6 Többértékű attribútumok 7 N-edfokú kapcsolattípusok 8 k 9
k 15 EER k Konvertáljunk át minden C (generalizált) szuperosztállyal és m darab, {S 1, S 2,..., S m } alosztállyal rendelkező specializációt, ahol C attribútumai {k, a 1,..., a n } és k az (elsődleges) kulcs, a következő lehetőségek valamelyike szerint émákká: (a) Több reláció szuperosztály és ok (b) Több reláció csak relációk (c) Egyetlen reláció egy típus attribútummal (d) Egyetlen reláció több típus attribútummal
k több lehetőségek 16 EER k (a) Több reláció szuperosztály és ok Hozzunk létre egy L relációt a C számára Attrs(L) = {k, a 1,..., a n } attribútumokkal és PK(L) = k elsődleges kulccsal. Hozzunk létre egy L i relációt minden egyes S i hoz (1 i m) Attrs(L i ) = {k} {S i attribútumai} attribútumokkal és PK(L i ) = k elsődleges kulccsal. Ez a lehetőség mindenféle specializáció esetén (totális vagy részleges, diszjunkt vagy átfedő) működik. (b)több reláció csak relációk Hozzunk létre egy L i relációt minden egyes S i hoz (1 i m) Attrs(L i ) = {S i attribútumai} {k, a 1,..., a n } attribútumokkal és PK(L i ) = k elsődleges kulccsal. Ez a lehetőség csak olyan specializáció esetén működik, ahol az ok totálisak (minden szuperosztálybeli egyednek legalább egy hoz kell tartoznia). Ha a specializáció átfedő, egy egyed több relációban is felbukkanhat.
k egyetlen lehetőségek 17 EER k (c) Egyetlen reláció egy típus attribútummal Hozzunk létre egy L relációt Attrs(L) = {k, a 1,..., a n } {S 1 attribútumai}... {S n attribútumai} {t} attribútumokkal és PK(L) = k elsődleges kulccsal. A t-t típus (vagy diszkrimináló) attribútumnak nevezzük, amely jelzi azt az t, amelyhez az egyes rekordok tartoznak. Ez a lehetőség csak olyan specializáció esetén működik, amely diszjunkt, és fennáll a veszélye annak, hogy sok NULL értéket generál, ha sok speciális attribútum szerepel az ban.
k egyetlen lehetőségek 18 EER k (d) Egyetlen reláció több típus attribútummal Hozzunk létre egy L relációt Attrs(L) = {k, a 1,..., a n } {S 1 attribútumai}... {S n attribútumai} {t 1, t 2,..., t m } attribútumokkal és PK(L) = k elsődleges kulccsal. Minden t i (1 i m) logikai típusú attribútum, amely azt jelzi, hogy egy adott rekord az S i hoz tartozik-e. Ez a lehetőség olyan specializációk esetén is működik, amely átfedő okat tartalmaz.
19 EER k Különböző kulcsokkal rendelkező szuperosztályok által definiált kategória leképezéséhez célszerű egy új kulcsattribútumot bevezetni, amelyet helyettesítő kulcsnak nevezünk a kategóriának megfelelő reláció létrehozásakor. A helyettesítő kulcs attribútumot minden olyan relációba is felvesszük, amelyeket a kategória szuperosztályaiból képezünk.