95
Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Adatbázisok 1. (esti)Egyed-kapcsolat modell

E/K diagramok

Gyenge egyedhalmazok

E/K diagramok átírása relációsémákká

Page 2: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

2

Az E/K modell célja

• Az E/K modellel az adatbázissémát vázolhatjuk fel.• Bizonyos megszorításokat is megadhatunk, de

műveleteket nem.

• A terveket egyed-kapcsolat diagramnak nevezzük.

• Később: az E/K diagramot relációs adatbázissémává alakítjuk..

Page 3: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

3

Az E/K modell „kerete”

• A tervezés komoly része az AB építésnek.

• A “főnök” általában abban biztos, hogy szeretne egy adatbázist, de azt már nem feltétlen tudja, mi és hogyan legyen benne.

• A főbb részek felvázolásával hatékonyan lehet megtervezni egy működő adatbázist.

Page 4: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

4

Egyedhalmazok• Egyed = “valóságdarab” vagy objektum.

• Egyedhalmaz = hasonló egyedek kollekciója.• Az objektum-orientált nyelvek osztály fogalmához hasonló.

• Attribútum = az egyedhalmaz egyedeinek egy tulajdonsága.

• Az attribútumok atomi értékűek, például egészek (integer) vagy karakter sztringek, de nem rekordok, tömbök é.í.t.

Page 5: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

5

E/K diagramok

• Az egyed-kapcsolat diagramban:• az egyedhalmaz = téglalap,

• az attribútum = a megfelelő egyedhalmazt reprezentáló téglalappal összekötött ovális (krumpli).

Page 6: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

6

Példa:

• A Sörök egyedhalmaznak két attribútuma van: név és gyártó.

• Minden Sörök entitás értékeket kap ezeken az attribútumokon, pl. (Bud, Anheuser-Busch).

Sörök

név gyártó

Page 7: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

7

Kapcsolatok

• Egy kapcsolat kettő vagy több egyedhalmazt köt össze.

• Rombusszal jelöljük, melyet a kapcsolatban részt vevő egyedhalmazok téglalapjaival kötünk össze.

Page 8: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

8

Példa: kapcsolatok

Alkeszek címnév

Sörök

gyártónév

Kocsmák

név

eng

cím

Megjegyzés:engedély =sör, minden,semmi.

Felszolgál Kocsmákbansört árulnak.

Szeret

Az alkeszekszeretnek néhánysört.Látogat

Emellettkocsmákbajárnak.

Page 9: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

9

Kapcsolat halmaz

• Az egyedhalmaz “értéke” a hozzá tartozó egyedek halmaza.

• Példa: az adatbázisunkban az összes kocsma halmaza.

• Egy kapcsolat “értéke” a kapcsolat halmaz, azaz sorok egy halmaza, melynek minden eleme egy a kapcsolatban résztvevő egyedhalmazból való.

Page 10: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

10

Példa: kapcsolat halmaz

• A Felszolgál kapcsolathoz például az alábbi kapcsolat halmaz tartozhat:

Kocsma SörJoe bárja BudJoe bárja MillerSue bárja BudSue bárja Pete’s AleSue bárja Bud Lite

Page 11: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

11

Többirányú kapcsolatok• Esetenként több, mint két egyedhalmazt összekötő

kapcsolatra van szükség.

• Tegyük fel, hogy az egyes alkeszek bizonyos söröket csak bizonyos kocsmákban fogyasztanak.

• A bináris kapcsolataink Szeret, Felszolgál és Látogatsegítségével ezt nem tudjuk leírni.

• De egy hármas kapcsolattal igen.

Page 12: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

12

Példa: hármas kapcsolat

Kocsmák Sörök

Alkeszek

név névcím gyártó

név cím

eng

Preferál

Page 13: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

13

Egy tipikus kapcsolat halmaz

Kocsma Alkesz SörJoe bárja Anna MillerSue bárja Anna BudSue bárja Anna Pete’s AleJoe bárja Pál BudJoe bárja Pál MillerJoe bárja Karcsi MillerSue bárja Karcsi Bud Lite

Page 14: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

14

Sok-sok kapcsolat

• Elsősorban a bináris kapcsolatok esetén értelmezzük, mint például a Kocsmák és Sörökközötti Felszolgál kapcsolat.

• A sok-sok kapcsolatokban, mind a két résztvevő egyedhalmaz egyedei több másik egyedhez kapcsolódhatnak.

• A példában: egy kocsma több sört árulhat; egy sört is több kocsmában árulhatnak.

Page 15: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

15

Képen

sok-sok

Page 16: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

16

Sok-egy kapcsolat

• Ezen kívül léteznek még sok-egy kapcsolatok.

• Minden egyede az első egyedhalmaznak legfeljebb egy egyedhez kapcsolódhat a másik halmazból.

• De a második halmaz entitásai nulla, egy vagy több entitáshoz is kapcsolódhatnak az első halmazból.

Page 17: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

17

Képen

sok-egy

Page 18: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

18

Példa: sok-egy kapcsolat

• Az Alkeszekből a Sörökbe menő Kedvenc kapcsolat sok-egy típusú.

• Egy alkesznek legfeljebb egy kedvenc söre lehet.

• De egy sör több vagy akár nulla alkesznek is a kedvence lehet.

Page 19: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

19

Egy-egy kapcsolatok

• Egy egy-egy kapcsolat esetén minden egyes entitás legfeljebb egyetlen másik entitáshoz kapcsolódhat.

• Példa: a Best-seller kapcsolat a Gyártók és Sörökegyedhalmazok között.

• Egy sört nem gyárthat több cég és egy gyártónak sem lehet több bestseller söre.

Page 20: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

20

Képen

egy-egy

Page 21: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

21

A „számosság” jelzése

• A sok-egy kapcsolat „egy oldalát” egy nyíl jelzi.

• Az egy-egy kapcsolatok mindkét végén nyíl van.

• A lekerekített nyíl jelentése: „pontosan egy”, azaz minden első halmazbeli entitásnak pontosan egy párja van a második egyedhalmazból.

Page 22: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

22

Példa: sok-egy kapcsolat

Alkeszek SörökSzeret

KedvencMegjegyzés: a kétkapcsolat különbözőszámosságú.

Page 23: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

23

Példa: egy-egy kapcsolat

• Vegyük a Gyártók és Sörök közötti Bestseller kapcsolatot.

• Néhány sör valószínűleg egyetlen gyártónak sem lesz bestsellere, tehát a Gyártók egyedhalmaz felőli nyíl nem lehet kerek.

• De egy gyártónak kell lennie bestsellerének.

Page 24: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

24

Az E/K diagramon

Gyártók SörökBest-seller

Egy gyártónakpontosan egybestsellere van.

Egy sör 0 vagy 1gyártó bestsellere.

Page 25: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

25

A kapcsolatok attribútumai

• Néha hasznos ha a kapcsolathoz is illeszthetünk attribútumot.

• Erre úgy tekinthetünk, mint a kapcsolat halmazban lévő sorok egy tulajdonságára.

Page 26: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

26

Példa: kapcsolat attribútuma

Kocsmák SörökFelszolgál

ár

Az ár a kocsmának és a sörnek együttes függvénye.

Page 27: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

27

Egy másik lehetőség kapcsolatok attribútumának ábrázolására

• „Vegyünk fel” egy egyedhalmazt, ami a kérdéses attribútum értékeit reprezentálja.

• Ezt az új egyedhalmazt „vonjuk be” a szóban forgó kapcsolatba.

Page 28: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

28

Példa: kapcsolat attribútumának átírása

Kocsmák SörökFelszolgál

ár

ÁrakMegjegyzés: nyíl egy többirányúkapcsolatnál = „a többiegyed együttese egyértelműenmeghatározza a szóban forgóegyedet.”

Page 29: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

29

Szerepek

• Néha egy egyedhalmaz többször is megjelenik egy kapcsolatban.

• Ilyenkor a megfelelő éleket címkézzük és a címkéket szerepekneknevezzük.

Page 30: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

30

Példa: szerepek

Alkeszek

Házas

férj feleség

Kapcsolat halmaz

Férj FeleségKarcsi AnnaPál Éva… …

Page 31: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

31

Példa: szerepek

Alkeszek

Haverok

1 2

Kapcsolat halmaz

Haver1 Haver2Pál AnnaRezső ÉvaÉva KarcsiRichárd Jenő… …

Page 32: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

32

Alosztályok

• Alosztály = speciális eset = kevesebb egyed = több tulajdonság (kapcsolat).

• Példa: Az Ale-ek mind sörök is.• Nem minden sör ale (pl. Pils lager), de minden ale sör.

• Tegyük fel, hogy a sörök már meglévő tulajdonságai(attribútumok és kapcsolatok) mellé az ale-ek esetében még egy a szín attribútumot is felveszünk.

Page 33: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

33

Alosztályok E/K diagramokon

• Feltesszük, hogy az alosztályok rendszere fát alkot.• Azaz, nincs többszörös öröklés.

• Az alosztály kapcsolatot az-egy háromszögek jelölik.• Az ősosztályra mutat a háromszög felső csúcsa.

Page 34: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

34

Példa: részosztályok

Sörök

Ale-ek

az egy

név gyártó

szín

Page 35: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

35

E/K vs. objektumorientált (OO) részosztályok

• Az OO paradigmában minden objektum pontosan egy osztálynak lehet eleme.

• A részosztályok az ősosztályoktól örökölnek.

• Ezzel ellentétben az E/K entitásoknak minden részosztályban vannak reprezentánsai , amihez hozzátartoznak.

• Szabály: ha az e entitás szerepel egy részosztályban, akkore szerepel az ősosztály(ok)ban is.

Page 36: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

36

Példa: entitások előfordulásai

Sörök

Ale-ek

az egy

név gyártó

szín

Pete Ale-e

Page 37: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

37

Kulcsok

• A kulcs az attribútumoknak egy olyan halmaza, amelyekre nem létezhet két olyan entitás, amelyek a kulcsattribútumok mindegyikén azonos értéket vennének fel.

• Ugyanakkor a kulcs néhány attribútumán megegyezhetnek, de az összesen nem.

• Minden entitáshalmazhoz meg kell adnunk egy kulcsot.

Page 38: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

38

Kulcsok az E/K diagramokon

• A kulcsattribútomo(ka)t aláhúzással jelöljük.

• Egy öröklődési hierarchiában csak a gyökér entitáshalmaznak lehet kulcsa, ez lesz a hierarchiában szereplő többi alosztálynak is a kulcsa.

Page 39: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

39

Példa: a név kulcs a Sörökben

Sörök

Ale-ek

az egy

név gyártó

szín

Page 40: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

40

Példa: több attribútumú kulcs

Kurzusok

tanszék szám időpont terem

• Az időpont és terem attribútumok együtt szintén

kulcsot alkotnak, a modellben azonban csak egykulcsot adhatunk meg.

Page 41: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

41

Gyenge egyedhalmazok

• Esetenként egy-egy egyedhalmaz egyedeit csak “külső segítséggel” lehet egyértelműen azonosítani.

• Egy E egyedhalmazt gyengének nevezünk, ha ahhoz, hogy E elemeit azonosítsuk, egy vagy több, E-ből induló sok-egy kapcsolatot követve a kapcsolódó egyedek kulcsértékeire is szükségünk van.

Page 42: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

42

Példa: gyenge egyedhalmazok

• a név majdnem kulcs a focisták esetén, ritkán azonban előfordulhat, hogy két játékosnak ugyanaz a neve.

• a mezszám nyilván nem kulcs.

• Ám a mezszám a csapat nevével kombinálva a Játszikkapcsolaton keresztül már egyedi minden játékos esetén.

Page 43: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

43

Az E/K diagramon

Játékosok CsapatokJátszik

név névmezszám

• A gyenge egyedhalmazt dupla téglalap jelzi.• A támogató sok-egy kapcsolatot dupla rombusszaljelöljük.

Megjegyzés: itt minden játékoshozkell, hogy tartozzon csapat.

Page 44: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

44

Gyenge egyedhalmaz szabályok

• Egy gyenge egyedhalmaznak egy vagy több sok-egy kapcsolata lehet más (támogató) egyedhalmazokhoz.

• Nem az összes sok-egy kapcsolatnak kell támogatónak lennie.

• De a támogató kapcsolatoknak kerek nyílban kell végződniük az egy oldalon (azaz minden entitásnak a gyenge egyedhalmazból pontosan egy egyedhez kell kapcsolódnia a támogató egyedhalmazból).

Page 45: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

45

Gyenge egyedhalmaz szabályok – (2)

• A gyenge egyedhalmaz kulcsa saját aláhúzott és a támogató egyedhalmaz(ok) aláhúzott attribútumaiból áll.

• Például a (játékos) mezszáma és a (csapat) neve kulcs lesz a Játékosokegyedhalmazban.

Page 46: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

46

Tervezési technikák

1. Redundancia elkerülése.

2. A gyenge egyedhalmazok óvatos használata.

3. Ne használjunk egyedhalmazt, ha egy attribútum éppúgy megfelelne a célnak.

Page 47: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

47

Redundancia elkerülése

• Redundancia = ugyanazt a dolgot többféle módon is feltüntetjük.

• Ez egyrészt helypazarlás, másrészt növeli az inkonzisztencia veszélyét.

• Ugyanazon tény két leírása akkor válik inkonzisztenssé, ha az egyik értéket megváltoztatjuk, míg a másikról megfeledkezünk.

• Emlékezzünk vissza a módosítási anomáliára.

Page 48: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

48

Példa: helyes

Sörök GyártókGyártja

név

Ennél a diagramnál minden gyártónál pontosan egyszer szerepel a címe.

név cím

Page 49: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

49

Példa: helytelen

Sörök GyártókGyártja

név

Ennél a diagramnál viszont egy-egy sör gyártója kétszer is szerepel: attribútumként és a kapcsolódó Gyártók egyedhalmazon keresztül.

név

gyártó

cím

Page 50: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

50

Példa: helytelen

Sörök

név

Ez a diagram minden sör esetén felsorolja a gyártó címét. Ha pedig ideiglenesen nincs megadva az adott gyártóhoz sör, akkor elveszítjük ezt a címet.

gyártó gyártóCím

Page 51: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

51

Egyedhalmazok vs. attribútumok

• Egy egyedhalmaznak legalább egy feltételnek eleget kell tennie az alábbiak közül:

• Többnek kell lennie, mint egy egyszerű név, azaz legalább egy nem kulcs attribútumának lennie kell.

Vagy..

• a „sok” végén szerepel egy sok-egy kapcsolatnak.

Page 52: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

52

Példa: helyes

Sörök GyártókGyártja

név

•A Gyártóknak valóban egyedhalmaznak kell lennie a nem kulcs cím attribútum miatt.•A Sörökre ugyanez igaz, hiszen a Gyártjakapcsolat „sok” végén szerepel.

név cím

Page 53: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

53

Példa: helyes

Sörök

név

Itt nem szükséges külön egyedhalmazt definiálni a gyártók számára, hiszen a nevükön kívül mást nem tárolunk.

gyártó

Page 54: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

54

Példa: rossz

Sörök GyártókGyártja

név

Mivel a gyártóknál csak a nevet tároljuk, ezen kívül a sok-egy kapcsolat „egy” oldalán szerepel, ezért fölösleges külön egyedhalmazt definiálni a számára.

név

Page 55: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

55

Ne használjunk gyenge egyedhalmazokat fölöslegesen

• Kezdő adatbázis tervezőknek gyakran kétségeik vannak abban tekintetben, hogy mit is lehet kulcsként definiálni, ami megállna önmaga jogán kulcsként.

• Minden egyedhalmazt gyengének definiálnak, amit az összes vele összekötött egyedhalmaz támogat.

• A „nagybetűs életben” gyakran külön azonosítókat készítenek az egyedhalmazokhoz.

• Pl. TAJ, rendszámtábla stb.

Page 56: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

56

Mikor van szükség gyenge egyedhalmazokra?

• A legtöbb esetben nem létezik olyan globális fórum, amely kioszthatná az egyedi azonosítókat.

• Példa: nem valószínű, hogy el lehetne érni, hogy a világ összes focijátékosát külön mezszámmal regisztrálják.

Page 57: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

57

E/K diagramok átírása relációsémáva

• Egyedhalmaz -> reláció.• Attribútumok -> attribútumok.

• Kapcsolat -> relációk, melyeknek az attribútumai csak:• az összekapcsolt egyedhalmazok kulcs-attribútumait,

• és a kapcsolat attribútumait tartalmazzák.

Page 58: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

58

Egyedhalmaz -> Reláció

Reláció: Sörök(név, gyártó)

Sörök

név gyártó

Page 59: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

59

Kapcsolat -> Reláció

Alkeszek SörökSzeret

Szeret(alkesz, sör)Kedvenc

Kedvenc(alkesz, sör)

Házas

férj

feleség

Házas(férj, feleség)

név cím név gyártó

Haverok

1 2

Haverok(név1, név2)

Page 60: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

60

Relációk összevonása

• Egy relációba összevonhatók:1. Az E egyedhalmazból kapott reláció,

2. valamint azon sok-egy kapcsolatok relációi, melyeknél az E a „sok” oldalon szerepel.

• Példa: Alkeszek(név, cím) és Kedvenc(alkesz, sör)összevonható az Alkeszek1(név, cím, kedvencSör) relációvá.

Page 61: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

61

A sok-sok kapcsolat nem összevonható

• Az Alkeszek és Szeret relációk összevonása hiba lenne, redundanciához vezet.

név cím SörZsuzsa 123 Maple BudZsuzsa 123 Maple Miller

Redundancia

Page 62: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

62

Gyenge egyedhalmazok átírása

• Egy gyenge egyedhalmazokból kapott relációnak a teljes kulcsot tartalmaznia kell (a más egyedhalmazokhoz tartozó kulcs-attribútumokat is), valamint a saját, további attribútumokat.

• A támogató kapcsolatot nem írjuk át, redundanciához vezetne.

Page 63: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

63

Példa: gyenge egyedhalmaz -> reláció

Logins HostsHol?

név név

Hosts(hostNév, hely) (GazdaGép, Kiszolgáló)

Logins(loginNév, hostNév, billTo)Hol(loginNév, hostNév, hostNév2)

Meg kell egyezniük.

Kinek

Számláz

A Hol a Loginsrészévé válik.

hely

Page 64: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

64

Entitás Alosztályok: három megközelítés

1. Objektumorientált : minden alosztályhoz egy reláció tartozik az összes releváns attribútummal.

2. Null értékek használata : az öröklődési hierarchiát egyetlen reláció reprezentálja, az entitások a rájuk nem vonatkozó attribútumoknál null értéket kapnak.

3. E/K style: minden alosztályhoz külön reláció tartozik:

• a kulcs-attribútummal (kulcs-attribútumokkal).• a részosztály további attribútumaival.

Page 65: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

65

Példa: részosztály -> reláció

Sörök

Ale-ek

ez egy

név gyártó

szín

Page 66: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

66

Objektumorientált

név gyártó

Bud Anheuser-BuschSörök

név gyártó színSummerbrew Pete’s barna

Ale-ek

A „Pete által gyártott ale-ek színeit” visszaadólekérdezések esetén hasznos

Page 67: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

67

E/K Style

név gyártóBud Anheuser-BuschSummerbrew Pete’s

Sörök

név színSummerbrew barna

Ale-k

A Pete által gyártott söröket visszaadólekérdezések esetén hasznos.

Page 68: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

68

Null értékek használata

név gyártó színBud Anheuser-Busch NULLSummerbrew Pete’s barna

Sörök

Helytakarékos, hacsak nem túl sok aNULL érték. Összekapcsolásokat ismegspórolhatunk.

Page 69: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

69

Példa: sok-egy kapcsolat, jelölések

• Az Alkeszekből a Sörökbe menő Kedvenc kapcsolat sok-egy típusú.

• Egy alkesznek legfeljebb egy kedvenc söre lehet.

• De egy sör több vagy akár nulla alkesznek is a kedvence lehet.

• Másik jelöléssel:

Alkeszek SörökKedvenc

Alkeszek SörökKedvenc[0,n] [0,1]

Page 70: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

70

Példa: egy-egy kapcsolat, jelölések

• Vegyük a Gyártók és Sörök közötti Bestseller kapcsolatot.

• Néhány sör valószínűleg egyetlen gyártónak sem lesz bestsellere, tehát a Gyártók egyedhalmaz felőli nyíl nem lehet kerek.

• De egy gyártónak kell lennie bestsellerének.

• Másik jelöléssel:

Gyártók SörökBest-seller

Gyártók SörökBest-seller

[0,1] [1,1]

Page 71: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Feladat

• Orvosi adatbázist készítünk. Minden embernél számon tartjuk 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ámon tartjuk 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.

Page 72: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

TAJember

névkor

Page 73: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

körzeti o.

TAJember

névkor

orvos

a.e.

páciens

foglalkozás

város

tud. fok.

szakt.

a.e. a.e.

Page 74: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

TAJember

névkor

orvos páciens

foglalkozás

város

tud. fok.

szakt.

a.e. a.e.név

lefutásbetegség

a.e.

körzeti o.

Page 75: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

TAJember

névkor

orvos páciens

foglalkozás

város

tud. fok.

szakt.

a.e. a.e.név

lefutásbetegség

bac. törzs

okoza.e.

körzeti o.

Page 76: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

TAJember

névkor

orvos páciens

foglalkozás

város

tud. fok.

szakt.

a.e. a.e.név

lefutásbetegség

bac. törzs

okoz

elterjedt

név

a.e.

körzeti o.

Page 77: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

TAJember

névkor

orvos páciens

foglalkozás

város

tud. fok.

szakt.

a.e. a.e.név

lefutásbetegség

bac. törzs

okoz

elterjedt

név

bacilus

tag

név

a.e.

körzeti o.

Page 78: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

TAJember

névkor

orvos páciens

foglalkozás

város

tud. fok.

szakt.

a.e. a.e.név

lefutásbetegség

bac. törzs

okoz

elterjedt

név

bacilus

tag

név

felír

[1,n] [1,n]

gyógyszer[1,n]

a.e.

körzeti o.

Page 79: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

TAJember

névkor

orvos páciens

foglalkozás

város

tud. fok.

szakt.

a.e. a.e.név

lefutásbetegség

bac. törzs

okoz

elterjedt

név

bacilus

tag

név

felír

[1,n] [1,n]

gyógyszer[1,n]

árhat

név

a.e.

körzeti o.

Page 80: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

TAJember

névkor

orvos páciens

foglalkozás

város

tud. fok.

szakt.

a.e. a.e.név

lefutásbetegség

bac. törzs

okoz

elterjedt

név

bacilus

tag

név

felír

[1,n] [1,n]

gyógyszer[1,n]

árhat

név

tartozik

[1,1]

[20,n]a.e.

körzeti o.

Page 81: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Adatbázis-séma az összevonások előtt

• Ember (név, kor, TAJ)

• Orvos (TAJ, szakt., tud_fok)

• Körzeti orvos (TAJ ,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)

Page 82: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Egyszerűsítés• Ember (név, kor, TAJ)

• Orvos (TAJ, szakt., tud_fok)

• Körzeti orvos (TAJ,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: ha pont egy gyógyszer hatásos a bacilusra)

• Felír (orvos_TAJ, páciens_TAJ, gy_név, betegség_név)

Page 83: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Egyed/kapcsolat modell –ismétlés/összefoglalás • Tervezési alapelvek:

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

83

Page 84: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Egyed/kapcsolat modell –ismétlés/összefoglalás • 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.

84

Page 85: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Egyed/kapcsolat modell példaForrás: https://spot.colorado.edu/~moonhawk/technical/C1912567120/E1121736573/Media/rdbdesign.pdf

• A kalózokat az egyedi becenevükkel azonosítják, amelyet a Központi Kalóz Hivatal jegyez. Kalózok nem változtathatják meg a becenevüket. Ráadásként minden kalóznak van egy keresztneve, egy vadság minősítése és az első kalózkodásának dátuma.

• A kalózhajók szintén az egyedi kalózhajó névvel azonosíthatók. Ezeket szintén a Központi Kalóz Hivatal jegyzi. Fontos információk egy kalózhajóról az árbocok száma, ágyúk száma és a megbízás dátuma.

• Egy kereskedelmi hajót egy egyedi kereskedelmi hajó név azonosít, amelyet a Londoni Potenciális Áldozatok Szövetsége jegyez. Fontos jellemzői egy kereskedelmi hajónak a súlya és az árbocok száma. A Központi Kalóz Hivatal számon tartja a kereskedelmi hajókról, hogy melyik lett kifosztva vagy elsüllyesztve.

85

Page 86: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Egyed/kapcsolat modell példaForrás: https://spot.colorado.edu/~moonhawk/technical/C1912567120/E1121736573/Media/rdbdesign.pdf

• A kalózokat az egyedi becenevükkel azonosítják, amelyet a Központi Kalóz Hivatal jegyez. Kalózok nem változtathatják meg a becenevüket. Ráadásként minden kalóznak van egy keresztneve, egy vadság minősítéseés az első kalózkodásának dátuma.

• A kalózhajók szintén az egyedi kalózhajó névvel azonosíthatók. Ezeket szintén a Központi Kalóz Hivatal jegyzi. Fontos információk egy kalózhajóról az árbocok száma, ágyúk száma és a megbízás dátuma.

• Egy kereskedelmi hajót egy egyedi kereskedelmi hajó név azonosít, amelyet a Londoni Potenciális Áldozatok Szövetsége jegyez. Fontos jellemzői egy kereskedelmi hajónak a súlya és az árbocok száma. A Központi Kalóz Hivatal számon tartja a kereskedelmi hajókról, hogy melyik lett kifosztva vagy elsüllyesztve.

86

Page 87: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Egyed/kapcsolat modell példaForrás: https://spot.colorado.edu/~moonhawk/technical/C1912567120/E1121736573/Media/rdbdesign.pdf

• Egy adott kalóz egy adott kalózhajó legénységéhez tartozik egy adott időben. Egy kalóz lehet munkanélküli is néha. Egy és csak egy kapitánya lehet egy és csak egy kalózhajónak egy adott időben. (Tegyük fel, hogy a múltbeli foglalkoztatás nem lényeges.)

• A Központi Kalóz Hivatal minden rablás esetet számon tart. Egy feljegyzés azonosítja a kalózhajót, a kereskedelmi hajót, a kifosztás dátumát, azt, hogy vajon a kereskedelmi hajó elsüllyedt vagy sem, valamint azt, hogy hány ártatlan tengerész lett kivégezve. Lehetséges, hogy ugyanaz a kalózhajó többször is kifosztott egy kereskedelmi hajót.

87

Page 88: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Egyed/kapcsolat modell példaForrás: https://spot.colorado.edu/~moonhawk/technical/C1912567120/E1121736573/Media/rdbdesign.pdf

• Egy adott kalóz egy adott kalózhajó legénységéhez tartozik egy adott időben. Egy kalóz lehet munkanélküli is néha. Egy és csak egy kapitánya lehet egy és csak egy kalózhajónak egy adott időben. (Tegyük fel, hogy a múltbeli foglalkoztatás nem lényeges.)

• A Központi Kalóz Hivatal minden rablás esetet számon tart. Egy feljegyzés azonosítja a kalózhajót, a kereskedelmi hajót, a kifosztás dátumát, azt, hogy vajon a kereskedelmi hajó elsüllyedt vagy sem, valamint azt, hogy hány ártatlan tengerész lett kivégezve. Lehetséges, hogy ugyanaz a kalózhajó többször is kifosztott egy kereskedelmi hajót.

88

Page 89: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Egyed/kapcsolat modell példaForrás: https://spot.colorado.edu/~moonhawk/technical/C1912567120/E1121736573/Media/rdbdesign.pdf

• Azonosítsuk az összes funkcionális függőséget!

• Készítsünk egy egyed/kapcsolat diagramot a struktúrához!

• Tervezzünk egy normalizált adatbázis struktúrát!

• Készítsünk egy teljes egyed/attribútum listát az összes táblához!

89

Page 90: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Egyed/kapcsolat modell példaForrás: https://spot.colorado.edu/~moonhawk/technical/C1912567120/E1121736573/Media/rdbdesign.pdf

• Funkcionális függőségek:• Kalóz becenév → Kalóz keresztnév• Kalóz becenév → Kalóz vadság minősítés• Kalóz becenév → Kalóz első kalózkodásának dátuma• Kalóz becenév → Kalózhajó név• Kalózhajó név → Kalózhajó árbocok száma• Kalózhajó név → Kalózhajó ágyúk száma• Kalózhajó név → Kalózhajó megbízás dátuma• Kalózhajó név → Kalózhajó kapitány• Kereskedelmi hajó név → Kereskedelmi hajó súly• Kereskedelmi hajó név → Kereskedelmi hajó árbocok száma• Kereskedelmi hajó név + Kalózhajó név + Kifosztás dátuma → Kereskedelmi hajó

süllyedése• Kereskedelmi hajó név + Kalózhajó név + Kifosztás dátuma → Kivégzések száma

90

Page 91: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Áldozat-e

91

Egyed/kapcsolat modell példaForrás: https://spot.colorado.edu/~moonhawk/technical/C1912567120/E1121736573/Media/rdbdesign.pdf

Kalóz

Kalózhajó

Kifosztás

Kereskedelmi hajó

[1,1]

[1,M]

[1,1]

[1,1]

Kapitány-e

Legénység része-e

Részt vesz benne

[1,1]

[1,M]

[1,M]

[1,1]

Page 92: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Egyed/kapcsolat modell példaForrás: https://spot.colorado.edu/~moonhawk/technical/C1912567120/E1121736573/Media/rdbdesign.pdf

• Normalizált adatstruktúra:

92

Oszlopnevek Adattípus Kulcsok

Kalóz neve Varchar(80) PK

Kalóz keresztneve Varchar(80)

Kalóz vadság minősítés

Integer

Kalóz első kalózkodásának dátuma

Date

Kalózhajó név Varchar(80) FK1

Kalóz

Page 93: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Egyed/kapcsolat modell példaForrás: https://spot.colorado.edu/~moonhawk/technical/C1912567120/E1121736573/Media/rdbdesign.pdf

• Normalizált adatstruktúra:

93

Oszlopnevek Adattípus Kulcsok

Kalózhajó név Varchar(80) PK

Kalózhajó árbocok száma

Integer

Kalózhajó ágyúk száma

Integer

Kalózhajó megbízás dátuma

Date

Kalózhajó kapitány Varchar(80) FK1

Kalózhajó

Page 94: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Egyed/kapcsolat modell példaForrás: https://spot.colorado.edu/~moonhawk/technical/C1912567120/E1121736573/Media/rdbdesign.pdf

• Normalizált adatstruktúra:

94

Oszlopnevek Adattípus Kulcsok

Kereskedelmi hajó név

Varchar(80) PK

Kalózhajó árbocok száma

Integer

Kereskedelmi hajó

Page 95: Adatbázisok 1. (esti) Egyed-kapcsolat modell · Adatbázisok 1. (esti) Egyed-kapcsolat modell E/K diagramok Gyenge egyedhalmazok E/K diagramok átírása relációsémákká

Egyed/kapcsolat modell példaForrás: https://spot.colorado.edu/~moonhawk/technical/C1912567120/E1121736573/Media/rdbdesign.pdf

• Normalizált adatstruktúra:

95

Oszlopnevek Adattípus Kulcsok

Kereskedelmi hajó név

Varchar(80) PK1 FK1

Kalózhajó név Varchar(80) PK2 FK2

Kifosztás dátuma Date PK3

Kereskedelmi hajó süllyedése

Char(1)

Kivégzések száma Integer

Kifosztás