Adatbázisok 1. gyakorlat Adatmodellezés 2016. október 1. 2016. október 1. Adatbázisok 1 / 42
Elérhet ség Web: http://www.inf.u szeged.hu/~mkatona E-mail: mkatona@inf.u-szeged.hu Fogadóóra: Kedd 15 16 Árpád tér 2. 221-es szoba 2016. október 1. Adatbázisok 2 / 42
A mai gyakorlat anyaga E-K modell E-K modellb l relációs adatbázisséma Funkcionális függés, redundancia Normalizálás (2NF, 3NF) 2016. október 1. Adatbázisok 3 / 42
Adatmodellezés Az adatbázis-alapú rendszerek tervezésének alapvet része Az adatmodellezés legtöbbször két fázisú: Egyed-kapcsolat diagram Relációs adatmodell 2016. október 1. Adatbázisok 4 / 42
E-K modell A valós világ jelenségeit egyedekkel, tulajdonságokkal és kapcsolatokkal leíró modell Adatok típusai: Egyszer (atomi) adat: szám, string, dátum, logikai érték Összetett adat: struktúra, halmaz, lista vagy ezek kombinációi NULL (NEM ekvivalens a null értékkel) E-K diagram részei: Egyed - létez dolog, amelyet tulajdonságokkal írunk le 2016. október 1. Adatbázisok 5 / 42
E-K diagram további elemei Kapcsolat - két egyed közötti viszony Attribútum - valamilyen típusú adat, amely jellemz az egyedre Kulcs - az attribútumok azon legsz kebb részhalmaza, amelyek egyértelm en azonosítják az egyedet 2016. október 1. Adatbázisok 6 / 42
E-K diagram további elemei Összetett attribútum - maga is több attribútumból áll Többérték attribútum lehet, pl. szerz k - aktuális értéke halmaz vagy lista 2016. október 1. Adatbázisok 7 / 42
Kapcsolatok típusai Bináris kapcsolatok 1:1 - minden egyedhez legfeljebb egy másik egyed tartozhat 1:N - minden egyedhez több egyed tartozhat N:M - több egyedhez több másik fajta egyed tartozhat 2016. október 1. Adatbázisok 8 / 42
Kapcsolatok típusai Sokágú kapcsolat - kett nél több egyed között (helyettesíthet több kétágú kapcsolattal is, de így sokkal kifejez bb) 2016. október 1. Adatbázisok 9 / 42
Önmagával kapcsolatban álló egyed El fordulhat, hogy egy egyed önmagával áll kapcsolatban (pl. munkahelyi hierarchia modellezése) Ez a modell nem zárja ki a körkörös hivatkozásokat A kapcsolat típusa lehet 1:1, 1:N és N:M is 2016. október 1. Adatbázisok 10 / 42
Gyenge egyed Az attribútumai nem határozzák meg egyértelm en (A kapcsolataival együtt viszont már egyértelm en meghatározott lesz) A meghatározó kapcsolat az, ami azonosítja 2016. október 1. Adatbázisok 11 / 42
Specializáló kapcsolatok Ha valamilyen általános egyed altípusait szeretnénk modellezni Alakzat - kör, négyzet, háromszög Járm - vízi, légi, szárazföldi Helyiség - tanterem, gépterem, iroda Az altípusok öröklik a f típus attribútumait, de lehetnek saját attribútumaik is 2016. október 1. Adatbázisok 12 / 42
Feladat - Nemzetközi táncverseny Olyan relációs adatbázist szeretnénk létrehozni, amely egy nemzetközi táncversenyen résztvev csoportok adatait tartalmazza. Tároljuk a csoport nevét, nemzetiségét, a csoport átlagéletkorát és a verseny folyamán elért pontszámot. E mellett tároljuk a bemutatott tánc nevét, valamint a zenére vonatkozó adatokat, azaz a zene m faját, a szám címét és el adóját. Feltételezzük, hogy: 1 egyféle táncot több csoport is táncolhat, 2 egy csoport több táncot is el adhat, 3 a versenyen nincs kikötés a táncra vonatkozóan, így bármilyen táncot be lehet mutatni, 4 a zenét egyértelm en azonosítja a címe, azaz nincs két azonos cím szám, 5 egy csoportban csak azonos nemzetiség ek táncolnak. A tánc m faja, valamint a csoportok nemzetisége csak meghatározott értékeket vehet fel 2016. október 1. Adatbázisok 13 / 42
Megoldás I. 2016. október 1. Adatbázisok 14 / 42
Megoldás II. 2016. október 1. Adatbázisok 15 / 42
Feladat - Orvosi betegnyilvántartó rendszer Készítsünk EK-diagramot egy háziorvosi betegnyilvántartó rendszerhez! Az orvosok elvárásainak megfelel en az adatbázisnak tartalmaznia kell a betegek személyi adatait, gyógyszerérzékenységüket, az egyes vizsgálatok id pontjait és a felírt gyógyszereket. Feltételezzük, hogy: 1 egy vizsgálaton több betegség is diagnosztizálható, 2 egy betegségre több gyógyszer is felírható, 3 egy-egy páciens több gyógyszerre is lehet érzékeny, 4 egy vizsgálatot a dátum és a vizsgálat kódja határoz meg egyértelm en. 2016. október 1. Adatbázisok 16 / 42
Megoldás 2016. október 1. Adatbázisok 17 / 42
Az adatbázisok szolgáltatásai Több felhasználó párhuzamosan olvashatja, b vítheti, módosíthatja és törölheti az adatokat Az adatok konzisztenciájának és biztonságának biztosítása Eszközök az adatok biztonsági mentésére, vissza- és helyreállítására Nagy mennyiség adat hatékony kezelése Nagyszámú felhasználó kiszolgálása 2016. október 1. Adatbázisok 18 / 42
A relációs adatmodell Az egyedeket, tulajdonságokat és kapcsolatokat egyaránt táblázatok, ún. adattáblák segítségével adja meg Az adattábla sorokból és oszlopokból áll. Egy sorát rekordnak nevezzük, amely annyi mez b l áll, ahány oszlopa van a táblának 2016. október 1. Adatbázisok 19 / 42
A relációs adatbázisséma Minden adattáblához tartozik egy relációséma, amely annak szerkezetét írja le R(A 1,..., A n ), ahol R relációséma, és A 1,..., A n attribútumok Az attribútumok egy részhalmaza lehet kulcs, ezeket aláhúzással jelöljük Az el z példa sémája: Vev (Vev kód, Vev név, Vev cím) 2016. október 1. Adatbázisok 20 / 42
Kulcsok Egy relációséma attribútumainak egy olyan, minimális elemszámú részhalmaza, amely az adott séma feletti tetsz leges tábla bármely két sorában különbözik A kulcs egyértelm en azonosítja a tábla egy sorát Egy táblához több kulcs is tartozhat! (Ezek közül egyet kiválasztunk, és ez lesz az els dleges kulcs.) Ami nem kulcs, az másodlagos attribútum 2016. október 1. Adatbázisok 21 / 42
Kulcsok A kulcs egyértelm en azonosítja az egyedet Küls kulcs: az attribútumok azon részhalmaza, amely egy másik adatbázisséma els dleges kulcsára való hivatkozás Jelölése szaggatott vonallal aláhúzva Az EK-modellben megismert kapcsolatok a relációs modellben küls kulcsok formájában jelennek meg Összes egyedet és kapcsolatot átírtuk relációsémákra, és meghatároztuk a kulcsokat és küls kulcsokat relációs adatbázisséma 2016. október 1. Adatbázisok 22 / 42
E-K diagramból relációséma - egyedek leképezése Minden egyednek létrehozunk egy relációsémát Kulcs: az egyed kulcsattribútuma Könyv(Könyvszám, Szerz, Cím) Olvasó(Olvasószám, Név, Lakcím) 2016. október 1. Adatbázisok 23 / 42
E-K diagramból relációséma - gyenge egyedek leképezése A gyenge entitás relációsémáját b víteni kell a meghatározó kapcsolat(ok)ban szerepl egyed(ek) kulcsával Tulajdonos(Személyiszám, Név, Lakcím) Számítógép(Processzor, Memória, Merevlemez, Személyiszám) 2016. október 1. Adatbázisok 24 / 42
E-K diagramból relációséma - összetett attribútumok leképezése Szétbontjuk (az elemeivel helyettesítjük) Tfh. Lakcím attribútum (Helység, Utca, Házszám) struktúra Ekkor: Olvasó(Olvasószám, Név, Lakcím) helyett Olvasó(Olvasószám, Név, Helység, Utca, Házszám) 2016. október 1. Adatbázisok 25 / 42
E-K diagramból relációséma - többérték attribútumok leképezése Pl. ha egy könyvnek több szerz je van 1 Megadás egyérték attribútumként (az értéknél vessz kkel felsoroljuk a szerz ket) Hátrány, hogy a szerz ket nem tudjuk külön-külön kezelni, valamint sok szerz nem fér el a megadott mez ben 2 Sorok többszörözése (annyi sort veszünk fel egy könyvhöz, ahány szerz je van) 3 Új tábla felvétele Könyv(Könyvszám, Szerz, Cím) helyett Könyv(Könyvszám, cím) Szerz (Könyvszám, Név) 2016. október 1. Adatbázisok 26 / 42
E-K diagramból relációséma - kapcsolatok leképezése Új séma felvétele Neve a kapcsolat neve Attribútumai a a kapcsolódó entitások kulcs attribútumai, valamint a kapcsolat saját attribútumai Ha ezen séma kulcsa megegyezik valamely egyed kulcsával, akkor a kapcsolat és az egyed sémája összevonható 2016. október 1. Adatbázisok 27 / 42
E-K diagramból relációséma - bináris kapcsolatok Bináris kapcsolatok leképezése: 1:1 kapcsolat esetén kiválasztjuk a kapcsolatban részt vev két entitást egyikét (bármelyiket) a kiválasztott entitás sémájába új attribútumként felvesszük a másik entitás kulcs attribútumait, valamint a kapcsolat attribútumait 1:N kapcsolat esetén Az "N" oldali entitás sémájába új attribútumként felvesszük a másik entitás kulcs attribútumait, valamint a a kapcsolat attribútumait N:M kapcsolat esetén új sémát veszünk fel, amelynek attribútumai a kapcsolódó entitások kulcs attribútumai, valamint a kapcsolat saját attribútumai 2016. október 1. Adatbázisok 28 / 42
EK diagram - Taxi 2016. október 1. Adatbázisok 29 / 42
Relációs adatbázisséma - Taxi Sof r(sof r_id, név, igazolvány_szám, jogosítvány_szám, jogosítvány_lejárat, irsz, város, utca, résztvev i_státusz) Állandós(sof r_id, munkaid ) Beugró(sof r_id, ráérés) Járm (rendszám, típus, márka, megtett_km, szín, fér hely, sof r_id) Üzemanyag(ár, típus, rendszám, üzem_azon) Fuvar(cél_cím, indul_cím, indul_dátumid, útvonal_hossza, útvonal_ideje, sof r_id, rendszám, tarifa_azonosító) Tarifa(tarifa_azonosító, tarifa_neve, km_ára) 2016. október 1. Adatbázisok 30 / 42
Funkcionális függ ség Legyen R(A 1,..., A n ) egy relációséma, P, Q {A 1,..., A n }. P- t l funkcionálisan függ Q (jelölés: P Q), ha bármely R feletti T tábla esetében valahányszor két sor megegyezik P-n, akkor megegyezik Q-n is Pl. {EHA} {Név, Lakcím} 2016. október 1. Adatbázisok 31 / 42
Redundancia Ugyanaz az adat több helyen jelenik meg (egyszeri tárolás elegend lenne) Redundáns a következ sémának megfelel adattábla is: KÖNYV(könyvszám, szerz, cím, kiadás, m faj, oldalak száma) 2016. október 1. Adatbázisok 32 / 42
1NF - Els normálforma Egy relációséma 1NF-ben van, ha az attribútumok értéktartománya egyszer (atomi) adatokból áll (nem tartalmat pl. listát vagy struktúrát) A struktúrákat elemeivel helyettesítjük - pl: lakcím A listákat külön sémába vesszük fel B vítjük a tartalmazó séma kulcsával a tartalmazó sémából teljesen eltávolítjuk a listát 2016. október 1. Adatbázisok 33 / 42
Feladat Adott az alábbi struktúra: számla(számlaszám, dátum, vev kód, vev név, vev cím, sorok) A sorok mez a számlán szerepl sorokat jelzi Egy sor felépítése a következ : (árukód, árunév, egységár, mennyiség) Egy sort az árukód egyértelm en azonosít 2016. október 1. Adatbázisok 34 / 42
Feladat - Relációsémák és táblák számla(számlaszám, dátum, vev kód, vev név, vev cím) sorok(számlaszám, árukód, árunév, egységár, mennyiség) 2016. október 1. Adatbázisok 35 / 42
2NF - Második normálforma Egy relációséma 2NF-ben van, ha minden másodlagos attribútum teljesen függ bármely kulcstól Másodlagos: nem része egyik kulcsnak sem Kulcstól teljesen függ: csak az egész kulcstól függ, azaz a részhalmazaitól nem Példa: VIZSGATELJESÍTÉS(kurzuskód, kurzusnév, dátum, jegy) A jegy teljesen függ a kulcstól, de a kurzus neve már nem, mert az csak a kurzuskódtól függ 2016. október 1. Adatbázisok 36 / 42
2NF-re hozás Eredeti séma: sorok(számlaszám, árukód, árunév, egységár, mennyiség) Kulcs: {számlaszám, árukód} Függ ség: {árukód} {árunév} 2016. október 1. Adatbázisok 37 / 42
2NF Eredeti séma: sorok(számlaszám, árukód, árunév, egységár, mennyiség) Felbontás az {árukód} {árunév} függ ség mentén: sorok(számlaszám, árukód, egységár, mennyiség) áruk(árukód, árunév) 2016. október 1. Adatbázisok 38 / 42
3NF - Harmadik normálforma Egy relációséma 3NF-ben van, ha minden másodlagos attribútuma közvetlenül függ bármely kulcstól (A B C) Ha K kulcs, és K B C, ahol C az összes B-t l függ másodlagos attribútum, akkor a sémát felbontjuk a B C függ ség szerint R(A) sémát az alábbi sémákkal helyettesítjük: R1(B C) - ami a második függ ségben részt vesz R2(A - C) - a B-t l függ dolgokat kivéve 2016. október 1. Adatbázisok 39 / 42
3NF-re hozás Eredeti séma: számla(számlaszám, dátum, vev kód, vev név, vev cím) Kulcs: {számlaszám} Tranzitív függés: {számlaszám} {vev kód} {vev név, vev cím} 2016. október 1. Adatbázisok 40 / 42
3NF Eredeti séma: számla(számlaszám, dátum, vev kód, vev név, vev cím) Felbontás a {vev kód} {vev név, vev cím} függ ség mentén: számla(számlaszám, dátum, vev kód) vev k(vev kód, vev név, vev cím) 2016. október 1. Adatbázisok 41 / 42
1. feladat Az R(A, B, C, D, E, F ) relációsémában az E attribútum az E 1, E 2, E 3 attribútumokból tev dik össze, és az alábbi funkcionális függ ségeket feltételezzük: 1 B DEF 2 E 2 E 1 Határozzuk meg a séma kulcsát, és hozzuk a sémát 1NF, 2NF, 3NF alakra! 2016. október 1. Adatbázisok 42 / 42