Adatbázisok
3. gyakorlat Adatmodellezés: E-K modellb®l relációs adatbázisséma. Kötelez® programok kiválasztása 2016. szeptember 21.
2016. szeptember 21.
Adatbázisok
1 / 24
Az adatbázisok szolgáltatásai
• Több felhasználó párhuzamosan olvashatja, b®vítheti, módo• • • •
sí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. szeptember 21.
Adatbázisok
2 / 24
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. szeptember 21.
Adatbázisok
3 / 24
A relációs adatbázisséma
• Minden adattáblához tartozik egy relációséma, amely annak
szerkezetét írja le • R(A1 , ..., An ), ahol R relációséma, és A1 , ..., An 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. szeptember 21.
Adatbázisok
4 / 24
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. szeptember 21.
Adatbázisok
5 / 24
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. szeptember 21.
Adatbázisok
6 / 24
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. szeptember 21.
Adatbázisok
7 / 24
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ó kap-
csolat(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. szeptember 21.
Adatbázisok
8 / 24
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. szeptember 21.
Adatbázisok
9 / 24
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, va-
lamint sok szerz® nem fér el a megadott mez®ben
2 3
Sorok többszörözése (annyi sort veszünk fel egy könyvhöz, ahány szerz®je van) Új tábla felvétele Könyv(Könyvszám, Szerz®, Cím) helyett Könyv(Könyvszám, cím) Szerz®( , Név)
Könyvszám
2016. szeptember 21.
Adatbázisok
10 / 24
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, ak-
kor a kapcsolat és az egyed sémája összevonható
2016. szeptember 21.
Adatbázisok
11 / 24
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ár-
melyiket)
• 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. szeptember 21.
Adatbázisok
12 / 24
Feladatleírás - Taxi
2016. szeptember 21.
Adatbázisok
13 / 24
EK diagram - Taxi
2016. szeptember 21.
Adatbázisok
14 / 24
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, Beugró(sof®r_id,
munkaid®)
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. szeptember 21.
Adatbázisok
15 / 24
Következ® hétre
• normalizálás • funkcionális függés • redundancia
2016. szeptember 21.
Adatbázisok
16 / 24
1. feladat
E-K diagram vásárlásokról
2016. szeptember 21.
Adatbázisok
17 / 24
Megoldás
Vev®(Vev®kód, Név, Cím) Számla(Számlaszám, Dátum, Vev®kód)
2016. szeptember 21.
Adatbázisok
18 / 24
2. feladat
• El®fordulhat, hogy egy egyed ugyanabban a kapcsolatban több-
ször vesz részt • Példa: egy számítástechnikai kereskedés árul számítógép kongurációkat, de árul külön alkatrészeket is, melyek azonban kongurációknak is lehetnek elemei
2016. szeptember 21.
Adatbázisok
19 / 24
Megoldás
Árucikk(Cikkszám, Cikknév, Tartalmazó_árucikk)
2016. szeptember 21.
Adatbázisok
20 / 24
3. feladat
Gyenge egyed leképezése • A csoportnév nem kulcs (sok cégnél lehet ugyanolyan nev¶ cso-
port), de ha a kapcsolaton belül a céget is bevesszük az azonosításba, akkor egyértelm¶ lesz, hogy melyik csoportról beszélünk
2016. szeptember 21.
Adatbázisok
21 / 24
Megoldás
Cég(Cégnév, Cégcím) Csoport(Csoportnév, Csoportcím, Cégnév )
2016. szeptember 21.
Adatbázisok
22 / 24
4. feladat
2016. szeptember 21.
Adatbázisok
23 / 24
Megoldás
Égitest(név, felszíni h®mérséklet, méret, mikor, cskód) Hold(név, méret, felszíni h®mérséklet, enév) Csillagász(cskód, név, nemzetkód) rszonda(szonda neve, fell®tték, nemzetkód) Nemzet(nemzetkód, név) Mérést végez(név, szonda neve, mért érték, zikai mérték)
2016. szeptember 21.
Adatbázisok
24 / 24