E/K diagram átalakítása relációs adatbázistervre Egy egyedhalmaznak egy reláció felel meg, melynek neve megegyezik az egyedhalmaz nevével, attribútumai az egyedhalmaz attribútumai. Egy kapcsolatnak szintén egy relációt feleltetünk meg, melynek neve a kapcsolat neve, attribútumai pedig a kapcsolatban részt vevő egyedhalmazok kulcsai. Amennyiben két attribútum neve megegyezne, az egyiket értelemszerűen át kell neveznünk. Gyenge egyedhalmazok esetében a kapott relációhoz hozzá kell még venni azokat az attribútumokat, amelyek egyértelműen azonosítják az egyedhalmazt. Alegyedek átírása relációkká E/K megközelítés: az alegyed esetében a megfelelő relációban a saját attribútumokhoz hozzávesszük az ősegyed kulcsát. Objektum-orientált megközelítés: felsoroljuk a hierarchia összes lehetséges részfáját, s ezek mindegyikére létrehozunk egy-egy relációt, amely azon egyedeket reprezentálja, amelyeknek pontosan az adott részfában vannak komponensei. A reláció sémája az összes, a részfában szereplő egyed komponenseit tartalmazza. Erre objektumorientált megközelítésként hivatkozunk, mivel az a feltevés motiválta, hogy az egyedek egy és csak egy osztályhoz tartozó "objektumok" legyenek. NULL értékek használata: ha megengedjük a relációkban a NULL érték használatát, akkor az egyedhalmazok teljes hierarchiáját egyetlen egyszerű reláció segítségével ábrázolhatjuk. Ez a reláció minden attribútumot tartalmaz. Egy egyedet pedig egy sorral ábrázolunk. Ennek a sornak azon értékei, amelyek nem definiáltak az adott egyedre, NULL értéket vesznek fel. Írjuk át az alábbi E-K diagramok modelljeit relációsémákra. 1. Az egyedhalmazok kulcsát aláhúzás jelöli. Söröző (bárnév, cím, engedély), Sörök (sörnév, gyártó), Sörivók (ivónév, cím) Látogat (ivónév, bárnév), Felszolgál (sörnév, bárnév), Szeret (ivónév, sörnév)
2. A kulcsok legyenek ugyanazok, mint az előző feladatban. Söröző (bárnév, cím, engedély), Sörök (sörnév, gyártó), Sörivók (ivónév, cím) Kedvencek (ivónév, bárnév, sörnév,) 3. A Sörivók és Sörök attribútumai és kulcsa legyen ugyanaz, mint az előző feladat esetén. Sörök (sörnév, gyártó), Sörivók (ivónév, cím, kedvencsör) Szeret (ivónév, sörnév) 4. Csapatok (csapatnév, ), Játékosok (csapatnév, játékosszám, játékosnév)
5. Írjuk át az alábbi E-K modellt relációsémákra mindhárom megközelítésben (E-K, Objektum-orientált, Nullértékes). E-K: Sörök (sörnév, gyártó), Alkoholmentes (sörnév, szín) Objektum: Sörök (sörnév, gyártó), Alkoholmentes (sörnév, gyártó, szín) NULL: Sörök (sörnév, gyártó, szín) 6. Film (cím, év, hossz) Stúdió (név, cím) Színész (név, lakcím) Szerződés (filmcím, év, stúdiónév, színésznév, fizetés) Ha a stúdiója kapcsolat dupla rombusz volna, az azt jelentené, hogy a kapcsolat szükséges a gyenge egyedhalmaz azonosításához, és ez esetben a Szerződés relációban a stúdiónév attribútum is része volna a kulcsnak.
Ha feltennénk, hogy egy szerződésben több stúdió is részt vehet, vagyis a stúdiója kapcsolat sok-sok kapcsolat volna (ekkor nem lehetne dupla rombusz), akkor a Szerződés reláció helyett az alábbi két reláció szerepelne: Szerződés (filmcím, év, színésznév, fizetés) Stúdiója (filmcím, év, színésznév, stúdiónév) 7. Írjuk át az alábbi E-K modellt relációsémákra mindhárom megközelítésben (E-K, Objektum-orientált, Nullértékes). E-K alapú átírás relációs modellbe: (az objektum-orientált átírás a név, alapterület attribútumokat is mindenhol meghagyná) Helyiség (épület, ajtószám, név, alapterület) Tanterem (épület, ajtószám, férőhely, vetítő, tábla) Gépterem (épület, ajtószám, gépszám) Iroda (épület, ajtószám, telefon, fax) Dolgozó (adószám, név, lakcím) Dolgozik (adószám, épület, ajtószám) -> az utolsó kettő összevonható Null értékes átírás: Helyiség (épület, ajtószám, név, alapterület, férőhely, vetítő, tábla, gépszám, telefon, fax) Dolgozó (adószám, név, lakcím) Dolgozik (adószám, épület, ajtószám)
4.5.1. feladat Alakítsuk át az alábbi ábra E-K diagramját relációs adatbázissémává. Utasok (azonosító, név, cím, telefon) Járatok (szám, nap, repülő) Foglalások (utasazon, járatszám, járatnap, sor, ülés) 4.5.2. feladat A fenti ábrán látható Foglalások gyenge egyedhalmazhoz más E/K diagram is elképzelhető. Vegyük észre, hogy egy foglalást egyértelműen azonosít a járat száma, dátuma és az ülőhely sorszék száma. Így tehát az utas nem játszik szerepet egy foglalás azonosításában. a.) Módosítsuk a fenti ábrát a fenti nézőpont szerint. b.) Alakítsuk át az a.) feladat megoldását relációkká. Ugyanazt az eredményt kapjuk-e, mint a 4.5.1. feladatban? Utasok (azonosító, név, cím, telefon) Járatok (szám, nap, repülő) Foglalások (utasazon, járatszám, járatnap, sor, ülés) 4.6.1. feladat Alakítsuk át az alábbi ábra E/K diagramját relációs adatbázissémává, a különböző megközelítésekkel: a.) E/K-elvű, b.) objektumelvű, c.) nullértékes módszerrel.
E-K alapú átírás relációs modellbe: Tanszék (név, tanszékvezető) Tantárgy (kód, terem, tanszéknév) Labortárgy (tárgykód, tanszéknév, szgigény) Objektumelvű átírás relációs modellbe: Tanszék (név, tanszékvezető) Tantárgy (kód, terem, tanszéknév) Labortárgy (tárgykód, tanszéknév, szgigény, terem) Null értékes átírás relációs modellbe: Tanszék (név, tanszékvezető) Tantárgy (kód, terem, tanszéknév, szgigény)