Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Egyed/kapcsolat modell Adatbázis-kezelés. Egyed-kapcsolat modell Grafikus ábrázolási mód, amellyel egy-egy adatbázis sémája megtervezhető. Az ábra aztán.

Hasonló előadás


Az előadások a következő témára: "Egyed/kapcsolat modell Adatbázis-kezelés. Egyed-kapcsolat modell Grafikus ábrázolási mód, amellyel egy-egy adatbázis sémája megtervezhető. Az ábra aztán."— Előadás másolata:

1 Egyed/kapcsolat modell Adatbázis-kezelés

2 Egyed-kapcsolat modell Grafikus ábrázolási mód, amellyel egy-egy adatbázis sémája megtervezhető. Az ábra aztán könnyen átalakítható relációs adatmodellé.

3 Egyedek I. Az egyedosztály szerepe nagyon hasonló az objektum-orientált nyelvekben használatos osztályok szerepéhez. Az egyedek az egyes objektumoknak felelnek meg. Példa a jelölésre: színész név kor

4 Egyedek II. E(A 1,…, A n ) egyedosztály séma ahol:  E az egyedosztály neve,  A 1,…, A n az attribútumok (tulajdonságok),  dom(A i ) a lehetséges értékek halmaza, a legegyszerűbb esetben csak atomi értékek kerülhetnek szóba. E(A 1,…, A n ) egyedosztály séma egy előfordulása: E = {e 1,…, e m } egyedek (entitások) halmaza, ahol:  e i (k)  dom(A k ),  semelyik két egyed sem egyezik meg minden attribútumán.

5 Kapcsolatok I. A kapcsolatok tehát tulajdonképpen egyedosztályok előfordulásai közötti relációk. A kapcsolatokat rombusz jelöli. A kapcsolatokhoz is tartozhatnak attribútumok. színészfilm szerepel kor név hossz Címév gázsi

6 Kapcsolatok II. K(E 1, …, E k, A 1, …, A m ) egy kapcsolat sémája, ahol:  K a kapcsolat neve,  E 1,…, E k egyedosztályok sémái,  A 1, …, A m a kapcsolathoz tartozó attribútumok. Ha k = 2, bináris kapcsolatról, p > 2 esetén többágú kapcsolatról beszélünk. K(E 1,…, E k ) sémájú kapcsolat egy előfordulása K = {(e 1,…, e k ) | e i  E i }.

7 Kapcsolatok fajtái I. Sok-sok kapcsolat (N:N). Minden E 1 -beli egyedhez E 2 -beli egyedek egy halmazát rendelhetjük hozzá és fordítva. Példa: színészfilm szerepel kor név hossz Címév [1,n]

8 Kapcsolatok fajtái II. Sok-egy kapcsolat (N:1). Egy E 1 -beli egyedhez több E 2 -beli egyed tartozhat, egy E 2 -beli egyedhez azonban legfeljebb egy E 1 -beli. Példa: stúdiófilm gyárt cím név hossz Címév [1,n] [0,1]

9 Kapcsolatok fajtái III. Egy-egy kapcsolat (1:1). Egy E 1 -beli elemhez legfeljebb egy E 2 -beli elem tartozhat és fordítva. Példa: stúdióelnök vezet cím név fizetés névkor [0,1]

10 „Különlegességek” I. Példa többágú kapcsolatra: színészfilm stúdió szerződés [1,n]

11 „Különlegességek” II. Általánosított egy-sok többágú kapcsolat. A K(E 1,…, E k ) sémájú kapcsolatnak nem szerepelhetnek egyszerre (e 1, e 2,…, e k ), (e’ 1, e 2,…, e k ) elemei úgy, hogy e 1 és e’ 1 különböznek egymástól. Példa: színészfilm stúdió szerződés [1,n] fizetés [0,1]

12 „Különlegességek” III. Egy egyedhalmaz többször is szerepel egy kapcsolatban. Példa: film folytatás eredeti folytatás részek száma

13 Alegyedek I. Egy alegyed ősének minden kapcsolatát, attribútumát örökli. Példa: film rajzfilmbűnügyi film az egy az egy színész hang fegyver évcím hossz

14 Alegyedek II. Az az-egy (isa) kapcsolatokat öröklődési kapcsolatnak is nevezik. Az öröklődési struktúra fát kell, hogy alkosson egyetlen gyökérelemmel. Az e egyed komponensekből épül fel, a komponensek az öröklési struktúra egyedosztályainak elemei. Ha egy e egyednek van egy E egyedhalmazhoz tartozó c komponense és a fában az E szülője az F egyedhalmaz, akkor e- nek kell legyen egy d komponense is az F egyedhalmazban. Továbbá a c-d párnak szerepelnie kell az E-t F-fel összekötő öröklési kapcsolatban. Az e egyed attribútumait a komponensek attribútumainak összessége alkotja, és e részt vesz mindazokban a kapcsolatokban, melyekben valamely komponense részt vesz.

15 Gyenge egyedhalmazok Előfordulhat, hogy egy-egy egyedhalmazt csak más egyedhalmazok attribútumainak ismeretében azonosíthatunk egyértelműen. Ezeket gyenge egyedhalmazoknak nevezzük. A gyenge egyedhalmaz az „azonosító” egyedhalmazokhoz egy- sok kapcsolattal kapcsolódhat. Példa: stúdió név cím elnök szám csoport tag

16 Megszorítások (kulcsok) I. Az E(A 1,…, A n ) egyedosztály séma esetén az A i1,…, A ij attribútumhalmaz szuperkulcs, ha abból, hogy tetszőleges e k, e s egyedek megegyeznek a fenti attribútumokon, következik, hogy a többi attribútumon is megegyeznek, vagyis a két egyed ugyanaz (k = s). A korábbi definíció értelmében az A 1,…, A n attribútumhalmaz minden esetben szuperkulcs. A fenti A i1,…, A ij attribútumhalmaz kulcs, ha bárhogy hagyunk is el egy attribútumot, a maradék attribútumhalmaz már nem lesz szuperkulcs. Más szóval: a minimális szuperkulcsok, kulcsok.

17 Megszorítások (kulcsok) II. Egy-egy egyedosztály sémához nem csupán egy kulcs tartozhat. Ezek közül általában ki kell választanunk egyet, ez lesz az elsődleges kulcs. A többi kulcsot megjegyzésként szerepeltethetjük az ábra mellett. A különböző adatbázisrendszerekben az elsődleges kulcs megválasztása kihatással lehet a reláció tárolására, a tábla a kulcs attribútumai szerint rendezetten tárolódhat.

18 Gyenge egyedhalmazok kulcsa I. Egy F gyenge egyedhalmaz kulcsa azokból az egyedhalmazokból származhat, amelyekhez kapcsolódik. Legyen egy ilyen E. Ekkor:  E kulcsának attribútumai benne vannak F kulcsában is. Ha E maga is gyenge egyedhalmaz, akkor ezek az attribútumok legalább egy harmadik egyedhalmazból is származnak.  Ha több sok-egy kapcsolat szerepel E és F között, akkor mindegyik kapcsolat segíthet F kulcsának kialakításában.

19 Gyenge egyedhalmazok kulcsa II. törzs név ősök maiak apa nagyapa tag Itt az ősök egyedosztály kulcsa a törzsnév és a név. A maiak egyedosztályé pedig a nagyapa törzsnév, nagyapa név, apa törzsnév, apa név.

20 Megszorítások (kulcsok) III. Az elsődleges kulcsokat aláhúzással jelölik. Példa: színészfilm szerepel kor név hossz Címév [1,n]

21 Egyéb megszorítások I. Attribútumok értéke lehet ismeretlen (NULL) vagy sem. Hivatkozási épség megszorítás. Megkövetelik, hogy a hivatkozott érték szerepeljen az adatbázisban, vagyis nem fordulhat elő például, hogy egy stúdiónak ne legyen elnöke. Egyéb megszorítások. Például: egy-egy filmben legalább három színésznek kell szerepelnie. Az utóbbi két megszorítás a [1,n] segítségével megadható. Alternatív jelölésforma szerepel az Adatbázisrendszerek alapvetés című könyvben.

22 Egyéb megszorítások II. Példa hivatkozási épség megszorításra: stúdióelnök vezet cím név fizetés névkor [1,1] [0,1]

23 Tervezési alapelvek I. A modell minél pontosabban tükrözze a valóságot. Attribútum vs. új egyedosztály? Általában: ha az ábrázolni kívánt „valóságdarab” több, számunkra fontos tulajdonsággal rendelkezik, akkor érdemes egy új egyedosztályt készíteni, különben elegendő felvenni egy új attribútumot. Példa: Film egyedosztálynál a színésznév új attribútumként szerepeljen vagy inkább hozzunk létre egy új egyedosztályt. A kettőt egyszerre semmi esetre se tegyük.

24 Tervezési alapelvek II. Film (cím, év, hossz, stúdió, színész) relációséma esetén, ha egy filmben több színész is szerepel, akkor a többi attribútum értéke feleslegesen ismétlődik (redundancia). Ez az adatok módosításánál is problémát jelenthet a fölöslegesen elhasznált memória mellett (módosítási anomália). További problémát jelenthet, hogy esetenként egy másik táblában egy színész törlése azokat a sorokat is törli a Film relációban, ahol ez a színész szerepel. Ha ez az egyetlen sora egy filmnek, az összes információ elvész (törlési anomália). A működő adatbázisoknál felmerülő problémák megközelítőleg 70%-a tervezésbeli hiányosságokra vezethető vissza.

25 Feladatok I. Orvosi adatbázist készítünk. Minden embernél számontartjuk a nevét, korát, TAJ számát. Ezen utóbbi alapján egyértelműen azonosítani lehet bárkit. Az orvosoknál tároljuk ezeken kívül még a tudományos fokozatukat és a szakterületüket, a körzeti orvosoknál még annak a városnak a nevét is, ahol rendelnek, a pácienseknél pedig a foglalkozásukat. A betegségeknél számontartjuk a nevüket és azt, hogy átlagosan mennyi ideig tart a gyógyulási folyamat. Minden betegséget valamilyen bacilustörzs okoz. Ezek a nevük alapján egyértelműek, emellett tároljuk az elterjedtségük arányát. A törzsekhez bacilusok tartoznak, ám a név alapján még nem tudhatjuk pontosan melyik bacilusról van szó, mert több törzshöz is tartozhat ugyanolyan nevű bacilus. A különféle betegségekben szenvedő pácienseknek lehet, hogy egyszerre több orvos írja majd fel a különféle árú gyógyszereket. A gyógyszereknél tároljuk a nevüket, és hogy mely bacilusok esetében hatásosak. Minden páciensnek tartoznia kell egy körzeti orvoshoz, s valaki csak úgy lehet körzeti orvos, ha legalább húsz páciense van.

26 TAJ elterjedt ember név kor orvos a. e. körzeti o. páciens felír tartozik gyógyszer ár hat foglalkozás betegség bac. törzs bacilus tag okoz név lefutás név város tud. fok. szakt. név [20,n] [1,1] [1,n] név a.e.

27 E-K modell átírása adatbázissémává 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, 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.

28 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.

29 A szabályok alapján kapott adatbázis- séma Ember (név, kor, TAJ) Orvos (TAJ, szakt., tud.fok) Körzeti orvos (TAJ, szakt., tud_fok,város) Páciens (TAJ, foglalkozás) Gyógyszer (név, ár) Betegség (név, lefutás) Bacilus törzs (név, elterjedtség) Bacilus (név, törzs_név) Felír (orvos_TAJ, páciens_TAJ, gy_név, betegség_név) Tartozik (orvos_TAJ, páciens_TAJ) Hatásos (gy_név, bac_név, törzs_név) Okoz (bet_név, törzs_név)

30 Megjegyzések I. Sok-egy kapcsolat esetén az „egy ághoz” tartozó elsődleges kulcs a kapcsolatból kapott relációnak is kulcsa lesz. Egy-egy kapcsolat esetén ez mindkét relációra elmondható. A kapott adatbázis-séma egyszerűsíthető:  E 1 (A 1,…, A n, B 1,…, B k ), E 2 (B 1,…, B k, C 1,…, C s ) egyedosztályok, ahol B 1,…, B k az E 2 egyedosztály (szuper)kulcsa, E 3 (A 1,…, A n, B 1,…, B k, C 1,…, C s ) egyedosztály készíthető. Itt B 1,…, B k az E 1 egyedosztály idegen (szuper)kulcsa. Példa: Páciens (TAJ, foglalkozás), Tartozik (orvos_TAJ, páciens_TAJ) ebből: Páciens (TAJ, foglalkozás, orvos_TAJ). Sok-sok kapcsolat esetén is érdemes elgondolkodni a az összevonáson

31 Megjegyzések II. Sok-sok kapcsolat esetén is érdemes elgondolkodni az összevonáson. Pl., ha a Hatásos (gy_név, bac_név, törzs_név) kapcsolatban minden gyógyszer legfeljebb két bacilus ellen hatásos, akkor az előbbi Hatásos reláció és a Gyógyszer (név, ár) táblák összevonhatók a Gyógyszer (név, ár, bac_név, törzs_név) táblává, hiszen ez még nem okoz „túlzottan nagy” redundanciát.

32 Egyszerűsítés Ember (név, kor, TAJ) Körzeti orvos (TAJ, szakt., tud.fok,város) Páciens (TAJ, foglalkozás, orvos_TAJ) Gyógyszer (ár, név) Betegség (név, lefutás, törzs_név) Bacilus törzs (név, elterjedtség) Bacilus (név, törzs_név,gy_név) (esetleg) Felír (orvos_TAJ, páciens_TAJ, gy_név, betegség_név)

33 Feladatok I. A középkor nagy kalóztámadásairól szeretnénk adatbázist készíteni. A csatákban kalóz- és szállítóhajók illetve katonai hajók vettek részt. Minden hajónál számontartjuk annak nevét, típusát és súlyát. A katonai hajóknál feljegyezzük még ezen kívül az ágyúk számát, a szállítóhajóknál pedig megadjuk a rakományuk jellemzőit, azaz a rakomány értékét, mennyiségét, származási helyét és azonosítóját. Egy szállítóhajónak mindig van rakománya. Egy-egy csatában legalább 5 hajó vett részt. Egy katonai hajó legalább háromszor, egy kalózhajó legalább kétszer csatázott. Minden csatánál számontartjuk még a nevét, dátumát, helyszínét, a győztes ország nevét és az elsüllyedt hajók neveit. Minden hajóhoz legalább tíz fős legénység tartozott: legalább kilenc matróz és pontosan egy kapitány. A legénység minden tagjánál számontartjuk a nevét és a szolgálati idejét, a kapitányoknál ezenfelül még a fizetésüket is, a matrózoknál pedig a beosztásukat.

34 Feladatok II. Gyermek Anya Orvos Nővér Születés 1.Milyen kardinalitásokat kell a kapcsolatokhoz írnunk, hogy a következőket fejezzük ki? (a)Minden gyermeknek pontosan egy anyja van. (b) Egy gyerek, nővér, orvos hármashoz pontosan egy anya tartozik. (c) Egy adott gyermek és anya kombinációhoz pontosan egy orvos tartozik. 2. A (b) esethez adjuk meg a hozzátartozó adatbázissémát. id kórház fogl.

35 Feladatok III. Születések GyerekAnya OrvosNővér 3. (a) Írjuk be a kardinalitásokat úgy, hogy minden gyermekhez pontosan egy születés tartozzon, és minden születéshez pontosan egy gyermek. (b) Minden születéshez pontosan egy anya és orvos tartozzon. (c) Adjuk meg az ábrához tartozó relációs adatbázissémát.

36 Feladat IV. törzs név ősök maiak apa nagyapa tag 4. Adjuk meg az ábrához tartozó relációs adatbázissémát.


Letölteni ppt "Egyed/kapcsolat modell Adatbázis-kezelés. Egyed-kapcsolat modell Grafikus ábrázolási mód, amellyel egy-egy adatbázis sémája megtervezhető. Az ábra aztán."

Hasonló előadás


Google Hirdetések