Adatbázis rendszerek 1. 5.Gy: ER relációs konverzió 1/60 B ITv: MAN 2018.10.14
A féléves feladat Témakör: Relációs adatbázis tervezés, SQL Feladat részletezése: A tervezett adatbázis szöveges leírása: témakör, egyedek leírása (kb. fél-egy oldal) ER modell terve, ábrája 5-6 egyed, minden ER elem jelenjen meg relációs adatmodell (ábra, leírás, magyarázatok) leírható az ER relációs konverzió Ennek a résznek az elkészítési határideje: 6. okt.hét 2/60
A féléves feladat Témakör: Relációs adatbázis tervezés, SQL Feladat részletezése: SQL-ben megoldandó feladatok: tábla generáló parancsok adatfeltöltő parancsok módosító parancsok (5-6 db, szerkezet és adat is) lekérdező parancsok (min. 10 db: szelekció, projekció, join, outer join, csoportképzés, al_select) Ennek a résznek az elkészítési határideje: 11. okt.hét 3/60
A féléves feladat A feladat elkészítési módja: PDF dokumentum, az ábrák szerkesztővel készüljenek. Beadás módja: A feladat védése, bemutatása a gyakorlatvezetőnél, a vele egyeztetett időpontban. A dokumentumot a feladat nyilvántartó rendszerbe is fel kell tölteni. 4/60
5/60
1:1 kapcsolat jelölési módjai (nem jelöli a kötelezőséget) Chen-féle jelölés A B Bachman jelölés A B Crow s foot jelölés A B Martin-féle jelölés A 1 1 B 6/60
Egyik oldalon kötelező 1:1 kapcsolat jelölési módjai Chen-féle jelölés A B Bachman jelölés A B Crow s foot jelölés A B Martin-féle jelölés A 1..1 0..1 B 7/60
1:N kapcsolat jelölési módjai (nem jelöli a kötelezőséget) Chen-féle jelölés A B Bachman jelölés A B Crow s foot jelölés A B Martin-féle jelölés A 1 n B 8/60
Az N-oldalon kötelező 1:N kapcsolat jelölési módjai Chen-féle jelölés A B Bachman jelölés A B Crow s foot jelölés A B Martin-féle jelölés A 0..n 1..n B 9/60
10/60
A modellalkotás folyamata 1. 2. 3. A valóság egy darabja ER modell Relációs modell kenyér sajt 3526 H11 250 Ft 400 db 250 g 450 Ft tej 2011.05.13 0,5 kg 180 Ft Kis Béla bankkártya 2630 1026 C27 100 db Nagy Éva készpénz 2011.05.17 100 g Bazi Joe Kód Név Termék Ár Leírás Méret Dat TV Az Név Vásárló Db Lcím Fizm Irsz Tel Usz Termék Vásárlás Méret Vásárló 11/60
ER konverziója relációs modellre ER elemek Egyed Normál Gyenge Tulajdonság Elemi Kulcs Összetett Többértékű Származtatott Kapcsolatok 1:1 1:N N:M kötelező 12/60 Relációs elemek Reláció reláció kulcs mezővel reláció kulcs mező nélkül Mező mező kulcs mező több mezőre bontjuk szét külön relációba kerül csak a képletet tároljuk Kapcsolatok egyedi kapcsoló kulcs kapcsoló kulcs kapcsoló tábla nem üres kapcsoló kulcs
Erős egyedek leképzése A Az ER séma erős egydéből egy relációt képzünk. Minden normál tulajdonságból egy-egy mező lesz Az összetett tulajdonságokból csak az összetevőket adjuk a relációhoz, ezekből egy-egy mező lesz, az összefogó tulajdonság kimarad (az összetett tulajdonságból csak az egyszerű tulajdonságok kerülnek át a relációba) A kulcs tulajdonságból lesz a reláció kulcsmezője Dolgozó Dolgozó Név Irsz Város U.hsz 13/60
Gyenge egyedek leképzése A Az ER séma gyenge egyedéből szintén egy relációt képzünk, az erős egyedhez hasonlóan, de: Az így képzett relációnak nem lesz kulcsmezője, ezért ki kell egészíteni egy kulcsmezővel A kulcsmező a gyenge egyedet meghatározó erős egyednek a kulcsmezője lesz 14/60
Gyenge egyedek leképzése A SzSzám Tkód Számla R-T ST Tétel TT Termék Sorszám Menny. Tnév Számla Tétel Termék SzSzám Sorszám Menny. SzSzám Tkód Tkód 15/60
Egy érthető példa gyenge egyedeknek A KID Tartalmaz FID Könyv R-T Fejezet Tétel Cím Cím Könyv Fejezet KID Cím FID Cím kid 16/60
Tulajdonságok leképzése Tulajd. A kulcs tulajdonságból lesz a reláció kulcsmezője Minden normál tulajdonságból egy-egy mező lesz Az összetett tulajdonságból csak az egyszerű tulajdonságok kerülnek át a relációba A származtatott tulajdonságok nem kerülnek át a relációba, ezek értéke a hozzájuk tartozó képlet alapján, a letárolt többi adatból bármikor kiszámítható Név Dolgozó Dolgozó Név Irsz Város U.hsz Cím Kor Irsz 17/60 Város U.hsz
Tulajdonságok leképzése Tulajd. Az összetett tulajdonságok esetén mindig minden elemi mezőt szerepeltetni kell a relációban? Nem feltétlenül. Abban az esetben, ha az egyes mezőket szeretnénk önállóan feldolgozni, pl. városok szerinti statisztikák elkészítése, akkor igen. Ha viszont nincsenek ilyen szándékaink, akkor egyetlen mezőbe összevonva is tárolhatjuk az összetett tulajdonságot. Név Dolgozó Dolgozó Cím Név Lakcím + + Irsz Város U.hsz 18/60
Tulajdonságok leképzése Tulajd. Minden egyes többértékű tulajdonságból egy-egy új reláció lesz. A relációba bekerül a tulajdonságnak megfelelő mező A reláció mindig kiegészül egy kulcsmezővel, mely az egyes tulajdonságok azonosítója lesz Az egyedből készült relációba szükséges betenni egy kapcsoló kulcs mezőt, mely a többértékű tulajdonságból készült reláció kulcsmezőjével lesz kapcsolatban Dolgozó Név Dolgozó Név Nyelvtudás nyelv Nyelv 19/60
Tulajdonságok leképzése Tulajd. Dolgozó Nyelv Dolgozó Nyelvtudás Név nyelv Ha végig gondoljuk: ennél a megoldásnál egy nyelvet többször is be kell vinni, így nagy a hibalehetőség. Tökéletes megoldás a következő: Dolgozó Nyelvismeret Nyelvtudás Név Nykód Nykód nyelv A dolgozókat és a nyelveket is csak egyszer kell felvinni, kisebb a hibalehetőség. 20/60
Kapcsolatok leképzése K Az 1:1 kapcsolatok leképzésére általában azt a megoldást alkalmazzuk, hogy az egyik táblában elhelyezünk egy kapcsoló kulcsot, mely a másik tábla elsődleges kulcsára mutat. Akód Autó Tulajdonos Tkód Autó Tulajdonos Akód tkód tkód név Melyik táblába kerüljön a kapcsoló kulcs? 21/60 Általában abba, amelyiknek az összes egyede részt vesz a kapcsolatban (totális résztvevő)
Kapcsolatok leképzése K Akód Autó Tulajdonos Tkód Ha 1:1 típusú a kapcsolat, miért nem kerülnek egy táblába? Mert az adatok száma eltérhet az egyes táblákban, és így szerkeszthető a kapcsolat. Tkód Név Akód Rendszám Tkód T1 Kiss A A1 ABC-123 T5 T2 Nagy B A2 FFF-663 T2 T3 Jó Tóni A3 DCT-432 T4 Kék Zoli T5 Kő Jani 22/60
Kapcsolatok leképzése K Az 1:1 kapcsolatok esetén néha előfordulhat, hogy a két táblában lévő adatok számossága megegyezik. Ekkor a két egyedet egyetlen relációba is összevonhatjuk. Ukód Akód Autó Útnyilvántartás mikor Autó Akód mikor km km Szükséges mindkét kulcsmező? 23/60 Nem, amelyik táblát elhagyjuk, annak a kulcsmezője is eltűnik.
Kapcsolatok leképzése K Az 1:N kapcsolatok az N számosságú oldalon elhelyezünk egy kapcsoló kulcsot, mely a másik tábla elsődleges kulcsára mutat. Akód Autó N 1 Tulajdonos Tkód Autó Akód Rendszám Tkód A1 ABC-123 T1 A2 FFF-663 T2 A3 DCT-432 T2 Tulajdonos Tkód Név T1 Kiss A T2 Nagy B T3 Jó Tóni T4 Kő Jani 24/60 Kapcsoló kulcs (idegen kulcs)
Kapcsoló kulcs vs. idegen kulcs Kapcsoló kulcs: olyan mező, amelynek értékei kapcsolatot tudnak teremteni egy másik tábla egy mezőjébe írt értékekkel. Akód Rendszám Kód A1 ABC-123 2 A2 FFF-663 5 A3 DCT-432 9 Tkód Név Darab 1 Kiss A 2 2 Nagy B 4 3 Jó Tóni 2 4 Kék Zoli 9 5 Kő Jani 5 25/60
Kapcsoló kulcs vs. idegen kulcs Idegen kulcs (külső kulcs): olyan kapcsoló kulcs, amely: 26/60 Dedikált kapcsolatot teremt két tábla között (meg kell mondani, hogy az egyik tábla adott mezőjét összeköti a másik tábla elsődleges kulcs mezőjével). Csak olyan értékeket vehet fel az idegen kulcs mező, ami a kapcsolt tábla elsődleges kulcs mezőjében megtalálható, vagy NULL értéket. Akód Rendszám Kód A1 ABC-123 2 A2 FFF-663 5 A3 DCT-432 9 Idegen kulcs esetén a 9 nem megengedett érték! Tkód Név Darab 1 Kiss A 2 2 Nagy B 4 3 Jó Tóni 2 4 Kék Zoli 9 5 Kő Jani 5
Kapcsolatok leképzése K Az N:M kapcsolatok esetén megoldható a kapcsolat egy kapcsoló kulccsal? Akód Autó Tulajdonos Tkód Autó Akód Rendszám Tkód A1 ABC-123 T1 A2 FFF-663 T2,T4 A3 DCT-432 T2 Tulajdonos Tkód Név T1 Kiss A T2 Nagy B T3 Jó Tóni T4 Kő Jani Nem! 27/60 Sérül az a szabály, hogy egy mezőbe csak egy adat kerülhet!
Kapcsolatok leképzése K Az N:M kapcsolatokat mindig egy új kapcsoló reláció létrehozásával képezzük le a relációs modellben. Akód Autó Tulajdonos Tkód Autó Akód A1 A2 A3 Rendszám ABC-123 FFF-663 DCT-432 Autó Akód A1 A2 A2 A3 Tkód T1 T2 T4 T2 Tulajdonos Tkód Név T1 Kiss A T2 Nagy B T3 Jó Tóni T4 Kő Jani 28/60 Kapcsoló reláció két idegen kulccsal
Kapcsolatok leképzése K Az n.-fokú kapcsolatokat mindig egy olyan kapcsoló reláció létrehozásával képezzük le, melybe minden összekapcsolt egyedhez kerül egy-egy kapcsoló kulcs ID Verseny támogat Versenyző Kód A szponzor egy adott versenyen egy konkrét versenyzőt támogat! Szponzor Összeg Sz.Az Verseny Versenyző Támogat Szponzor ID Kód Kód ID Sz.Az Összeg Sz.Az 29/60
Kapcsolatok leképzése K Rekurzív (önmagával kapcsolódó) kapcsolat leképzése Dnév Dolgozó Főnök felettes beosztott Egy dolgozóhoz 1 felettes tartozhat Egy feletteshez több beosztott tartozhat Hogyan jelöljük ezt a relációs modellben? Dolgozó Dnév Főnök 30/60
Integritás az ER modellben Csak elemi statikus integritási részt tartalmaz Egyediség kulcsmező Kötelezőség kapcsolatnál Pl.: Egy vállalatnál a dolgozóknak kötelező valamelyik részleghez tartoznia Számossága: 1:N Jellege: dolgozó oldalon kötelező, részleg oldalon opcionális Dolgozó N dolgozik 1 Részleg 31/60 Hová, milyen nyíl kerüljön?
Az integritás konvertálása Dnév Dolgozó N dolgozik 1 Részleg Rkód Rnév Mi lesz a kapcsolatból a relációs modellben? Melyik oldalra kerül a kapcsolókulcs? Idegen kulcs Mindig az N oldalra Mit jelent az idegen kulcs? Az adott mezőbe csak olyan értékek kerülhetnek, amit a kapcsolt mezőben megtalálhatók Hogyan néz ki a relációs modell? Dolgozó Dnév Rkód Részleg Rkód Rnév NN Már kötelező a kapcsolat? 32/60 Még nem. Attól lesz kötelező, hogy előírjuk a kapcsolókulcsra, hogy nem lehet üres (Not Null)
Integritás a relációs modellben Dolgozó Dnév Rkód UQ Részleg Rkód Rnév Milyen kapcsolatot jelez az ábra? (1:1, 1:N, N:M) 1:N Lehet a kapcsolatból 1:1 kapcsolatot csinálni? Igen. Előírjuk, hogy a kapcsolómezőbe nem kerülhetnek egyforma értékek (Unique) Fontos: a relációs modellben az elsődleges kulcsmezőre automatikusan érvényes az Unique és a Not Null előírás (nem kell megadni). A kapcsolókulcsokra viszont nem! Az Unique előírással maximum hány darab rekordja lehet a Dolgozó táblának? 33/60 Ahány rekord van a Részleg táblában!
34/60
Gyakorló feladat Konvertálja az alábbi ER modellt relációs modellé! Kód Név Azonosító Név Vásárlás Termék Vásárló Kor Ár Méret Dátum Darab Lakcím Szül.idő IrSz. Város U-Hsz 35/60
Gyakorló feladat Kód Név Termék Termék Kód C5 Név C25 Ár N6 Ár Leírás Méret Kapcsoló kulcs (idegen kulcs) Méretek Tkód C5 Méret C25 36/60 A Méretek tábla Tkód mezője csak olyan értéket vehet fel, ami a Termék tábla Kód mezőjében megtalálható!
Gyakorló feladat Azonosító Név Kor Vásárló Vásárló Azonosító C5 Név C25 IrSz C4 Város C40 U-Hsz C30 Szül.idő D Lakcím Szül.idő IrSz. Város U-Hsz Az összefogó tulajdonság kimarad! A származtatott tulajdonság kimarad! 37/60
Gyakorló feladat Kód Azonosító Termék Vásárlás Vásárló Vásárlás Kód C5 Dátum D Darab N6 Azon C5 Dátum Darab A táblába kerülő adatok: - Idegen kulcsok a kapcsolt táblák elsődleges kulcsaira - A kapcsolat saját mezői 38/60
Gyakorló feladat Méret Termék Vásárlás Vásárló Termék Méretek Kód C5 Név C25 Ár N6 Mkód C5 Tkód C5 Méret C25 Vásárlás Vásárló Kód C5 Dátum D Darab N6 Azon C5 Azonosító C5 Név C25 IrSz C4 Város C40 U-Hsz C30 Szül.idő D 39/60
40/60
Gyakorló feladat Eszközök Konvertálja az alábbi ER modellt relációs modellé! Dnév Ekód Enév Hkód Hnév Dolgozó Iroda Kor Használ Eszköz E-H N M N 1 N Helyszín N Épület Szoba E-K M Knév Epkód H-E 1 Epnév Kkód Kategória Doksi Épület 41/60
Gyakorló feladat Eszközök Mi történik konvertáláskor a megadott elemmel? Dnév Dnév Dnév Dolgozó Dolgozó Dolgozó Iroda Kor Iroda Kor Iroda Kor Épület Szoba Épület Szoba Épület Szoba 1 2 3 Milyen mezők lesznek a Dolgozó táblában? 42/60 Dolgozó Dnév Épület Szoba
Gyakorló feladat Eszközök Mi történik konvertáláskor a megadott elemmel? Ekód Ekód Enév Eszköz Dolgozó N Használ M Eszköz 4 5 Eszköz Ekód Enév Mi lesz a kapcsolatból? Hány mező lesz a kapcsoló táblában? 43/60 Használ Ekód Mely mezők kerülnek a kapcsoló táblába?
Gyakorló feladat Eszközök Mi történik konvertáláskor a megadott elemmel? Ekód Hkód Hnév Hkód Helyszín Hnév Eszköz E-H Helyszín N 1 6 7 Mi lesz a kapcsolatból? Melyik táblába kerül a kapcsoló kulcs? Eszköz Helyszín 44/60 Ekód Hkód Hkód Hnév
Gyakorló feladat Eszközök Mi történik konvertáláskor a megadott elemmel? Helyszín N Hkód Hnév Kkód Kategória Doksi H-E 8 9 1 Épület Epkód Epnév Mi lesz a tulajdonságból? Hány mező lesz a táblában? Mi lesz a kapcsolatból? Melyik táblába kerül a kapcsoló kulcs? Helyszín Épület Hkód Hnév 45/60 Epkód Epkód Epnév Milyen mezők lesznek a táblában? Dokumentumok Kkód Doksi
Gyakorló feladat Eszközök Mi történik konvertáláskor a megadott elemmel? Eszköz E-H Helyszín N 1 Hkód Hnév N Hány darab mező lesz a Helyszín táblában? 10 H-E 1 Helyszín Hkód Hnév Epkód Épület Epkód Epnév Épület Epkód Epnév 46/60
Gyakorló feladat Eszközök Mi történik konvertáláskor a megadott elemmel? Ekód Enév Dolgozó Használ Eszköz E-H N M N 1 N Helyszín 11 E-K Hány darab mező lesz az Eszköz táblában? M Kategória E-K Használ Eszköz Helyszín Ekód Kkód Ekód Ekód Enév Hkód Hkód Hnév Epkód 47/60
Gyakorló feladat Eszközök Mi történik konvertáláskor a megadott elemmel? Knév Kkód Kategória Doksi 12 Hány mező lesz a Kategória táblában? Dokumentumok Kkód Doksi Kategória Kkód Knév 48/60
Gyakorló feladat Eszközök Hány darab tábla keletkezik az ER Relációs konvertáláskor? Dnév Ekód Enév Hkód Hnév Dolgozó Iroda Kor Használ Eszköz E-H N M N 1 N Helyszín N Épület Szoba E-K M Knév Epkód H-E 1 Epnév Kkód Kategória Doksi Épület 5 db 6 db 7 db 8 db 9 db 10 db 49/60
Gyakorló feladat Eszközök Dolgozó Dnév Épület Szoba Használ Ekód Eszköz Ekód Enév Hkód Helyszín Hkód Hnév Epkód Dokumentumok Kategória E-K Épület Kkód Doksi Kkód Knév Ekód Kkód Epkód Epnév 50/60
51/60
Autó útnyilvántartás Útnyilvántartás U-A Autó Fogyaszt Sorsz. Km Rendsz Típus Dátum Útvonal Útnyilvántartás Autó Sorszám Rszám Dátum Útvonal Km Rendszám Típus Fogyaszt Autó [Rendszám, Típus, Fogyaszt ] Útnyilvántartás [ Sorszám, Rendszám, Dátum, Útvonal, Km ] 52/60
Tkód Tnév Menny. Rhkód Rkód Leírás TermékR Készlet Raktárhely R-R Raktár MEgys. BeDat LeDat Aktív Aktív Termékek a raktárban Termék Tkód Tnév MEgys Készlet Raktárhely Raktár Tkód Menny Bedat Ledat Rhkód Rhkód Aktív Rkód Rkód Leírás Aktív NN 53/60
Dnév Tkód Téma Okód Onév Dolgozó Képzés Tanfolyam T-O Oktató Végzettség Dátum Hely IrSz. Cím Tanfolyamok Város UHsz Dolgozó Képzés Tanfolyam T-O Dnév Dátum Hely Tkód Tkód Téma Tkód Okód Végzettségek Végzettség Oktató Okód Onév IrSz Város UHsz 54/60
Számlázási rendszer 55/60
Akciós újság Ukód Újság Régió Dátum U-O Tkód Tnév Fkód Termék T-O Oldal O-F Fotó MEgys. EgysÁr Oszám Szöveg Termék Fálj Termék T-O Oldal O-F Fotó Tkód Tnév MEgys EgysÁr Tkód Oszám Oszám Szöveg Oszám Fkód Fkód Újság Ukód Dátum Régió U-O Ukód Oszám Termék Tkód Fkód Fájl Fkód Fájlnév 56/60
Átszállítás boltba Rhkód Aszám KDátum Dnév Raktárhely Átszállítás A-D Dolgozó Menny. R-T A-T Tkód Tkód Tnév TermékR TR-T Tétel T-TB TermékB Tnév MEgys. Sorszám Menny. TDátum Menny. MEgys. 57/60
Átszállítás boltba Átszállítás Aszám KDátum Dolgozó Dnév Raktárhely Rhkód Tétel Aszám Sorszám Tkód Menny KDátum R-T TermékR TermékB Rhkód 58/60 Tkód Tkód Tnév MEgys Tkód Tnév Menny MEgys
59/60
VÉGE VÉGE 60/60