Egyed/kapcsolat modell

Slides:



Advertisements
Hasonló előadás
Számvitel S ZÁMVITEL. Számvitel Ormos Mihály, Budapesti Műszaki és Gazdaságtudományi Egyetem, Hol tartunk... Hiányzik egy jól strukturált rendszer.
Advertisements

A felhasználói interfész A felhasználói interfész az a felület, amellyel a szoftver az ember felé „fordul”; amellyel a felhasználó nap mint nap találkozik.
FOL függvényjelekkel Zsebibaba anyja A 2 harmadik hatványa a oszlopában az első blokk Ezek is nevek, de nem in- konstansok Azért, mert összetettek Predikátum:
Irattári és levéltári funkciók a tanúsított szoftverekben Vágujhelyi Ferenc.
A kifizetési kérelem összeállítása TÁMOP-3.2.9/B-08 Audiovizuális emlékgyűjtés.
1 Számítógép Hálózatok A hálózatok kialakulása, alapfogalmak Készítette: Csökmei István Péter ( CsIP ) Szegedi Tudományegyetem Természettudományi Kar levelező.
1 Az önértékelés mint projekt 6. előadás 1 2 Az előadás tartalmi elemei  A projekt fogalma  A projektek elemei  A projekt szervezete  Projektfázisok.
Vetésforgó tervezése és kivitelezése. Vetésforgó Vetésterv növényi sorrend kialakításához őszi búza250 ha őszi árpa50 ha lucerna ebből új telepítés 300.
Esettanulmány: egy inf. rendszer adatszerkezetének kialakítása ● Könyvtári adatbázis: ● Könyvek adatai: leltári szám, jelzet, szerző, cím, kiadás, ár,
BEST-INVEST Független Biztosításközvetítő Kft.. Összes biztosítási díjbevétel 2004 (600 Mrd Ft)
Kereskedelmi jog V. Előadás Egyes társasági formák A korlátolt felelősségű társaság.
Gazdasági jog IV. Előadás Egyes társasági formák Közkeresleti társaság, betéti társaság.
Internet tudományos használata
ERASMUS+ DISSZEMINÁCIÓS PLATFORM
Gazdasági informatika - bevezető
Valószínűségi kísérletek
A kérdőívek, a kérdőívszerkesztés szabályai
1Transzplantációs Alapítvány
Adatbázis normalizálás
A FELÜGYELŐBIZOTTSÁG BESZÁMOLÓJA A VSZT
Idegen kulcsok Lokális és globális megszorítások Triggerek
TESZTSOR.HU REGISZTRÁCIÓ, VÁSÁRLÁS ÉS TESZTKITÖLTÉS ELKEZDÉSE
Adatbázisok gyakorlat
Foglalkoztatási Paktumok az EU-ban
A közigazgatással foglalkozó tudományok
videós team Team vezetője: Tariné Péter Judit Tagok:
Egy üzemben sok gyártósoron gyártanak egy bizonyos elektronikai alkatrészt. Az alkatrészek ellenállását időnként ellenőrzik úgy, hogy egy munkás odamegy.
MTMT szervezeti hierarchia kialakítása a Széchenyi István Egyetemen
T.R. Adatbázis-kezelés - Alapfogalmak Adatbázis:
Kovács Gergely Péter Egyszerű lekérdezések
Egyed-kapcsolat modell
Logikai programozás 2..
Adatbázis-kezelés (PL/SQL)
2. Bevezetés A programozásba
Algoritmusok és Adatszerkezetek I.
Adatbázis alapfogalmak
Rendszerfejlesztés gyakorlat
Kovács Gergely Péter Bevezetés
Teljes visszalépéses elemzés
Bemutatkozik az iskolapszichológus
CONTROLLING ÉS TELJESÍTMÉNYMENEDZSMENT DEBRECENI EGYETEM
AVL fák.
A villamos installáció problémái a tűzvédelem szempontjából
Új pályainformációs eszközök - filmek
A csoportok tanulása, mint a szervezeti tanulás alapja
Szerzője Konzulens neve
2. A KVANTUMMECHANIKA AXIÓMÁI
Bináris kereső fák Definíció: A bináris kereső fa egy bináris fa,
Adatbázisok használata
5. Előadás tartalma Magas szintű adatbázismodellek Adatmodellezés
SZAKKÉPZÉSI ÖNÉRTÉKELÉSI MODELL I. HELYZETFELMÉRŐ SZINT FOLYAMATA 8
A szállítási probléma.
Matematika 11.évf. 1-2.alkalom
Foglalkoztatási és Szociális Hivatal
Binomiális fák elmélete
Idegen kulcsok Lokális és globális megszorítások Triggerek
Műveletek, függvények és tulajdonságaik Mátrix struktúrák:
Online pénztárgépadatok felhasználása a kiskereskedelmi statisztikában
SQL jogosultság-kezelés
Szöveges adatok tárolása
Informatika Oktató: Katona Péter.
Bevezetés Tematika Számonkérés Irodalom
Vektorok © Vidra Gábor,
Access alapok Táblák, kapcsolatok, űrlapok.
A geometriai transzformációk
Pszichológia BA műhelymunka és szakdolgozat tájékoztató
A POWERPOINT 2007 újdonságai
Algoritmusok.
Hagyományos megjelenítés
Előadás másolata:

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 könnyen átalakítható relációs adatmodellé.

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: név színész kor

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

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. gázsi Cím év név szerepel színész film kor hossz

Kapcsolatok II. K(E1, …, Ek, A1, …, Am) egy kapcsolat sémája, ahol: K a kapcsolat neve, E1,…, Ek egyedosztályok sémái, A1, …, Am 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(E1,…, Ek) sémájú kapcsolat egy előfordulása K = {(e1,…, ek) | ei  Ei }.

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

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

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

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

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

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

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

Alegyedek II. Az az-egy (isa) kapcsolatokat öröklődési kapcsolatnak is nevezik. Az öröklődési struktúrának fát kell alkotnia 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 lennie egy olyan d komponensének, hogy d komponens 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.

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: név csoport stúdió tag szám cím elnök

Megszorítások (kulcsok) I. Az E(A1,…, An) egyedosztály séma esetén az Ai1,…, Aij attribútumhalmaz szuperkulcs, ha abból, hogy tetszőleges ek, es 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 A1,…, An attribútum halmaz minden esetben szuperkulcs. A fenti Ai1,…, Aij attribútum halmaz kulcs, ha bárhogy hagyunk is el egy attribútumot, a maradék attribútum halmaz már nem lesz szuperkulcs. Más szóval: a minimális szuperkulcsok, kulcsok.

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.

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.

Gyenge egyedhalmazok kulcsa II. név név törzs apa maiak tag nagyapa ősök név 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.

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

Egyéb megszorítások I. Attribútumok értéke lehet ismeretlen (NULL) vagy ismert. 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.

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

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.

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.

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.

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

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.

Alegyed osztályok átírása relációkká (is-a) 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.

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)

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ő: E1(A1,…, An, B1,…, Bk), E2(B1,…, Bk, C1,…, Cs) egyedosztályok, ahol B1,…, Bk az E2 egyedosztály (szuper)kulcsa, E3(A1,…, An, B1,…, Bk, C1,…, Cs) egyedosztály készíthető. Itt B1,…, Bk az E1 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

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.

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)

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.

Feladatok II. fogl. id Anya id id Születés Orvos Gyermek kórház Nővér kórház id Milyen számosságokat kell a kapcsolatokhoz írnunk, hogy a következőket fejezzük ki? Minden gyermeknek pontosan egy anyja van. Egy gyerek, nővér, orvos hármashoz pontosan egy anya tartozik. 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.

Feladatok III. Születések Gyerek Anya Orvos Nővér 3. (a) Írjuk be a számosságokat ú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.

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