Sapientia - Erdelyi Magyar TudományEgyetem (EMTE) Csíkszereda 5. Előadás tartalma Magas szintű adatbázismodellek Adatmodellezés Az Egyed-kapcsolat (E/K) diagramok C.J. Date szerinti kapcsolatok Varjúláb megfeleltetések 1
Sapientia - Erdelyi Magyar TudományEgyetem (EMTE) Csíkszereda Az egyed-kapcsolat (E/K) modell elemei E/K modellben az adatok szerkezetét grafikusan ábrázoljuk, ez az egyed-kapcsolat diagram. Ennek a három alapvető eleme: 1. Egyedalmazok 2. Attribútumok 3. Kapcsolatok 2
Az EGYEDHALMAZ Egy olyan halmaz, amelyiknek elemei eléggé különálló fogalom kifejezői ahhoz, hogy azonosítani lehessen az adott feltételezések és absztrakciók mellett. Általában egy főnév többes számban való használata. A lentről felfele való építkezés alapeleme. Egy főnév az E/K modellben lehet Egyedhalmaz vagy lehet Attribútum (az egyed tulajdonsága) Ha egy egyedet csak a NEVÉVEL használjuk, akkor valószínű, hogy attribútumként is használhatjuk. Az E/K modell STATIKUS fogalom, amelyik csak az adatok szerkezetéről szól, a rajtuk végezhető műveletekről NEM, ezért az osztály és objektumai fogalmak egyszerűsített modelljét képezi. 3
Egyedhalmazok. Az objektumorientált programozásnál levő osztályok megfelelői. Az egyedhalmazok elemei az objektumok megfelelői. Nincs DINAMIKA. Grafikai jele: téglalap többes számban használjuk Attribútum. Értékei egy egyed tulajdonságait írják le. Grafikai jele: ellipszis egyes számban használjuk. Atominak tekintjük. Kapcsolatok. 2 vagy több egyedhalmazt kapcsolnak össze. Grafikai jele: rombusz Egyedhalmazok Kapcsolat (ok) attribútum 4
Az egyed-kapcsolat diagram egy olyan gráf, amelynek csúcspontjait egyedhalmazok, attribútumok és kapcsolatok alkotják. cím év név cím Filmek Szerepel Benne Színészek hossz műfaj név cím Gyártó Stúdiók 5
Sapientia - Erdelyi Magyar TudományEgyetem (EMTE) Csíkszereda Struktúrák, amelyek nem fordulhatnak elő az E/K diagramban Egyik egyedhalmaz Másik egyedhalmaz Egyik kapcsolat Másik kapcsolat 6
A kapcsolatok típusai nyilak használatával valósul meg a modellezésben Azon kapcsolatoknál, amelyek binárisak, egyértelműen meghatározhatók a típusok. Azon kapcsolatok, amelyek több egyedhalmazt kötnek össze, azoknak típusa nem mindíg egyértelmű. n:m típusú kapcsolatok (sok a sokhoz) Filmek Szereplők Színészek A kapcsolat egyik oldalán sincs nyíl 1 Filmben n Színész játszhat 1 Színész m Filmben játszhat 7
1:n kapcsolat, avagy n:1 kapcsolat (sok az egyhez, egy a sokhoz) Filmek Gyártó Stúdiók Nyíl mutat azon egyed felé, amelyik az egyet jelenti a kapcsolatban. 1 Filmet csak 1 Stúdió gyárthat 1 Stúdió n Filmet is gyárthat 1:1 kapcsolat Stúdió Vezető Elnökök 1 Stúdiónak csak 1 Elnök lehet a vezetője 1 Elnök csak 1 Stúdiónak lehet a vezetője 8
Sokágú kapcsolatok (itt a nyíl, hol a nyíl?) Színészek Szerződik Filmek Stúdiók Szerepek a kapcsolatban Folytatása Eredeti Folytatása Filmek 9
Filmkód Filmcím 1234 Terminátor 2345 Predátor 3456 Terminátor 2 4567 Predátor 2 2777 Fight Club 5678 Terminátor 3 Filmkód Folytatása 3456 1234 4567 2345 5678 1234 Feltételeztük, hogy egy filmnek lehet több folytatása, de minden folytatásnak csak egy eredetije van, vagyis Terminátor 3 a Terminátor folytatása és NEM a Terminátor 2 folytatása. 10
Sokágú kapcsolat és egyedhalmaz több szerepben A szerződik kapcsolat egy bonyolultabb változata látható. A stúdió egyedhalmaz kétszer szerepel. A stúdió, amelyiknek a színésszel szerződése van (általánosan) megengedi, hogy a színésze szerződést kössön egy más stúdióval egy filmre. Színészek Filmek színész stúdiója Szerződik Stúdiók gyártó stúdió 11
Kapcsolatok attribútmai Van eset, hogy kényelmes, sőt ki nem kerülhető, hogy egy kapcsolathoz rendeljük az attribútumot. Miért nem kapcsolható a többi egyedalmazhoz? cím év fizetés név cím Filmek Szerződések Színészek hossz műfaj Stúdiók név cím 12
Kapcsolatok attribútumainak a megszüntetése egy új egyeddel Általában, ha megszüntetjük a kapcsolat attribútumát, a keletkezett egyedhalmazhoz (Fizetések) nyíl vezet. fizetés Fizetések Filmek Szerződések Színészek Stúdiók 13
Sokágú kapcsolatok átalakítása binárissá Egyes adatmodellek csak bináris kapcsolatokat engednek meg. Bármely sokágú kapcsolat átalakítható sok-egy típusú bináris kapcsolatok gyűjteményére egy új egyedhalmaz bevezetésével, amelynek egyedei a sokágú kapcsolat kapcsolathalmazának elemei. Színészek Filmek Színész Film Szerződések Színész stúdiója Gyártó stúdiója Stúdiók 14
Könyvkód Könyvleírás ISBN Nyelv.1 Példánya Vonalkód Leltárszám 1..M Példányadatok Lelőhely Kölcsönözhető Szerző Kiadó Cím KiadásiÉv Állapot 0..M Cutter Dátum Kölcsönzés Határidő Visszahozva BeiratkÉv 0..1 Szak Kölcsönzők Név Kölcsönözhet Törzsszám fénykép Letiltva Datumig 15
Könyvkód Tárgyszókód Elnevezés Könyvleírás 1..M tárgyszava 0..M Tárgyszó szülő gyerek 0..1 0..M Struktúra A könyvtári alkalmazás esetében az E/K modell egy része 16
A könyvtári alkalmazás megvalósítása ACCESS-ben 17
A könyvtári alkalmazás megvalósítása OpenOffice Base-ben 18
A könyvtári alkalmazás megvalósítása MySQL Workbenchben 19
Kapcsolatok típúsai C. J. Date szerint A fő meglátása, hogy nem létezik egy kapcsolat a két egyedhalmaz között. Legyen A és B két halmaz, amelyek nem feltétlenül különböző értékeken vannak értelmezve. Létezik egy függvény A B, és létezik egy inverz függvény B A, vagyis két egyedhalmaz kapcsolatát két függvény határozza meg. A telefonon levő számok és betűk közötti megfeleltetés: Amint látható, az A B függvény meghatározza a számok és betűk közötti megfeleltetést. Nem minden A-beli elemnek van a B-ben megfelelője Továbbá létezik B A függvény 20
Jelöljük a 2 halmazt A és B-vel, elemeiket pedig a és b- vel Egy adott a esetében lehetséges Legtöbb egy b Pontosan egy b Legalább egy b Több b (M 0) Egy adott b esetében lehetséges Legtöbb egy a Pontosan egy a Legalább egy a Több a (M 0) Ezen kombinációk 16 esethez vezetnek 21
1. A 16 eset mátrixos formában 2. A 16 eset rajz formában FORRÁS: C. J. Date, "All for One, One for All, Part 2: How Many Cases Are There?" Business Rules Journal, Vol. 7, No. 12 (Dec. 2006), URL: http://www.brcommunity.co m/a2006/b324.html 22
A 0..1 0..1 B 1.1 eset A 1 0..1 B 1.2 eset A 1..M 0..1 B 1.3 eset A 0..M 0..1 B 1.4 eset 23
1.1. eset minden a-hoz legtöbb egy b-t rendelhetünk és minden b-hez legtöbb egy a-t rendelhetünk Egy adott időben egy férfinak legtöbb egy felesége van és egy nőnek legtöbb egy férje van (nincs poligámia), viszont vannak nők és vannak férfiak, akiknek nincs férjük illetve feleségük. 1.2. eset minden a-hoz legtöbb egy b-t rendelhetünk és minden b-hez pontosan egy a-t rendelhetünk Egy vállalatnak részlegeihez egyetlen menedzser tartozik, viszont nem minden alkalmazott menedzser. 1.3. eset minden a-hoz legtöbb egy b-t rendelhetünk és minden b-hez legalább egy a-t rendelhetünk Egy adott cégnél egy adott időben minden alkalmazott legfeljebb egy részleghez tartozik, minden részlegnek van legalább egy alkalmazottja (ha nincs, akkor nem részleg), viszont van olyan alkalmazott is, aki nem tartozik egy részleghez sem (nagyfőnök, takarító személyzet) 24
1.4. eset minden a-hoz legtöbb egy b és minden b-hez több a rendelhető (akár 0 is) Egy vállalatnál, egy bizonyos időben minden alkalmazott legfeljebb egy részleghez tartozhat, minden részleg tartalmazhat több alkalmazottat is, de lehetséges, hogy egyet sem. 2.1. eset minden a-hoz pontosan egy b tartozik és minden b- hez legtöbb egy a tartozik Felcserélhető az 1.2. esettel. 2.2. eset minden a-hoz pontosan egy b tartozik és minden b- hez pontosan egy a tartozik Egy vállalati szállításnál minden szállítmányhoz egy, és csakis egy szállítólevél tartozik. 2.3. eset minden a-hoz pontosan egy b tartozik és minden b- hez legalább egy a tartozik Egy vállalatnál egy adott időben minden alkalmazott egy részleghez tartozik és minden részleghez legalább egy alkalmazott tartozik 25
A 0..1 1 B 2.1 eset A 1 1 B 2.2 eset A 1..M 1 B 2.3 eset A 0..M 1 B 2.4 eset 26
2.4. eset minden a-hoz pontosan egy b tartozik, minden b-hez több a tartozik (tartozhat, 0 is) Minden személynek pontosan egy biológiai anyja van, minden nő biológiai anyja 0 vagy több gyereknek 3.1. eset minden a-hoz legalább egy b tartozik, minden b-hez legtöbb egy a tartozik 1.3. esettel azonos, ha felcseréljük egymás között az A és B-t 3.2. eset minden a-hoz legalább egy b tartozik, minden b-hez pontosan egy a tartozik 2.3 esettel azonos, ha felcseréljük egymás között A és B-t 3.3. eset minden a-hoz legalább egy b tartozik, minden b-hez legalább egy a tartozik Minden könyvhöz legalább egy szerző tartozik, minden szerző írt legalább egy könyvet (ha nem írt, akkor nem lehet szerzőnek nevezni) 3.4. eset minden a-hoz legalább egy b tartozik, minden b-hez több a tartozhat (0 vagy több) Minden versenynek van legalább egy nyertese, minden résztvevő a versenyben zéró vagy többszörös győztes lehet 27
A 0..1 1..M B 3.1 eset A 1 1..M B 3.2 eset A 1..M 1..M B 3.3 eset A 0..M 1..M B 3.4 eset 28
4.1. eset minden a-hoz több b tartozhat (0,M), és minden b-hez legtöbb egy a tartozhat Ugyanaz, mint az 1.4. eset, ha felcseréljük egymás között az A és B- t 4.2. eset minden a-hoz több b tartozhat (0,M), és minden b-hez pontosan egy a tartozhat Ugyanaz, mint a 2.4. eset, ha felcseréljük egymás között az A és B-t 4.3. eset minden a-hoz több b tartozhat (0,M), és minden b-hez legalább egy a tartozik Ugyanaz, mint a 3.4. eset, ha felcseréljük egymás között az A és B-t 4.4. eset minden a-hoz több b tartozhat (0,M), és minden b-hez több a tartozhat (0,M) Minden személynek lehet 0 vagy több kutyája, minden kutya tartozhat 0 (kóbor kutya) vagy több személyhez. A 16 esetből láttuk, hogy csak 10 maradt, mikor felcseréltük az A és B halmazokat 29
A 0..1 0..M B 4.1 eset A 1 0..M B 4.2 eset A 1..M 0..M B 4.3 eset A 0..M 0..M B 4.4 eset 30
Az egyedek közötti kapcsolatok és a kardinalitásuk megadása miatt különböző CASE eszközök a varjúláb jelöléseket használja kör jelenti a 0-t varjúláb jelenti a sokat függőleges vonal jelenti az 1-et Ezek kombinációi adják meg az összes esetet, amelyet a Date féle kapcsolatok azonosításánál láttunk: Zéró, vagy több az egyhez 31
Sapientia - Erdelyi Magyar TudományEgyetem (EMTE) Csíkszereda A varjúlábas megfeleltetés a színész, film, stúdió alkalmazáshoz 32
Sapientia - Erdelyi Magyar TudományEgyetem (EMTE) Csíkszereda Ellenőrző kérdések 1. Az E/K (Egyed Kapcsolat) diagramok 2. E/K Kapcsolatok típusai 3. Kapcsolatok attribútumokkal 4. Sokágú kapcsolat átalakítása binárissá 5. Kapcsolatok típusai C.J. Date szerint rajz forma 6. Kapcsolatok típusai példák 7. Varjúláb megfeleltetések. Alapelemek. Kombinációk. Date féle rajzok átalakítása varjúláb megfeleltetésnek 33