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. Egyedhalmazok Grafikai jele: téglalap többes számban használjuk Attribútum. Értékei egy egyed tulajdonságait írják le. Grafikai jele: attribútum ellipszis egyes számban használjuk. Atominak tekintjük. Kapcsolatok. 2 vagy több egyedhalmazt kapcsolnak össze. Grafikai jele: Kapcsolat (ok) rombusz 4
Az egyed-kapcsolat diagram egy olyan gráf, amelynek csúcspontjait egyedhalmazok, attribútumok és kapcsolatok alkotják. név cím
év
Filmek
hossz
cím
Színészek
Szerepel Benne
műfaj
Gyártó
név
cím
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
Egyik kapcsolat
Másik egyedhalmaz
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 Eredeti Filmek
Folytatása
Folytatása
9
Filmkód
Filmcím
1234
Terminátor
Filmkód
2345
Predátor
3456
1234
3456
Terminátor 2
4567
2345
4567
Predátor 2
5678
1234
2777
Fight Club
5678
Terminátor 3
Folytatása
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 Szerződik gyártó stúdió
színész stúdiója
Stúdiók 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? fizetés cím
cím
év Szerződések
Filmek hossz
név
Színészek
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 Gyártó stúdiója
Színész stúdiója Stúdiók
14
Könyvkód
Nyelv
Vonalkód Leltárszám
ISBN .1 Példánya
Könyvleírás
Szerző
Cím
Lelőhely
1..M Példányadatok
KiadásiÉv
Kölcsönözhető
0..M Állapot
Cutter
Kiadó Dátum
Határidő
Kölcsönzés
Visszahozva 0..1 BeiratkÉv
Szak
Kölcsönzők
Név
Törzsszám
fénykép
Kölcsönözhet
Letiltva Datumig
15
Tárgyszókód
Könyvkód 1..M Könyvleírás
Elnevezés
0..M Tárgyszó
tárgyszava
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 bvel 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
0..1
A
0..1
B
1.1 eset
1
A
B
1.2 eset
B
1.3 eset
B
1.4 eset
0..1 1..M
A 0..1 0..M
A 0..1
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 bhez legtöbb egy a tartozik Felcserélhető az 1.2. esettel. 2.2. eset minden a-hoz pontosan egy b tartozik és minden bhez 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 bhez 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
0..1
A
B
1
2.1 eset
1
A
B
2.2 eset
B
2.3 eset
B
2.4 eset
1 1..M
A 1 0..M
A 1
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
0..1
A
B
3.1 eset
1..M 1
A
B
3.2 eset
B
3.3 eset
B
3.4 eset
1..M 1..M
A 1..M 0..M
A
1..M
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 Bt 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
0..1
A
B
4.1 eset
0..M 1
A
B
4.2 eset
B
4.3 eset
B
4.4 eset
0..M 1..M
A 0..M 0..M
A
0..M
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