Skip navigation

2. példa

Taxis adatbázis

Készítsünk egy taxis adatbázist! Az adatbázisban szeretnénk eltárolni a sofőröket nevükkel, születési dátumukkal, lakcímükkel, valamint gépkocsijaikkal, amelynek típusát, rendszámát, és a műszaki vizsgálat érvényességét tartják nyilván. Minden soförnek egy gépkocsija van. A taxitársaság több tarifakategóriát határoz meg, amelyek egyedi elnevezés mellet a kilométerenkénti egységárakat tartalmazzák. A társaság nyilvántartja a törzsutasokat, akiknek törzsutaskártyát ad, és ők kedvezményes tarifával utazhatnak. A törzsutasokról csupán a törzsutas számot, a nevet, és születési évet tárolnak. Továbbá nyilvántartásba vezeti az egyes fuvarokat is, hogy melyik soför, mikor, honnan, hová szállított utast, és milyen tarifakategóriát állított be az útjuk során. A viteldíjat is eltárolhatjuk egy fuvarhoz, így könnyebb lesz az elszámolást elkészíteni. (Megjegyezzük, hogy a viteldíj az út hosszától és a beállított tarifa egységárától függ. Ha nem tárolnánk el a viteldíjat, akkor az a későbbiekben is kiszámolható.) Az gyakorlatban amikor egy taxis több törzsutast visz, akkor csak az egyik diktálja be a törzsutas számát. Ezt figyelembe vesszük az adatbázis tervezésénél.

Képezzük le az egyedeket! Jelen példában ez egyszerű.

TarifaKategória (megnevezés, egységár)
Törzsutas (törzsutasszám, név, születési év)
Gépkocsi (rendszám, típus, műszaki lejár)
Sofőr (név, születési dátum, lakcím)

Képezzük le a gyenge egyedet! Figyeljünk arra, hogy vezetett meghatározó kapcsolaton keresztük a Soför egyed kulcsát is hozzá kell vennünk! Ebben az esetben a {név, születési dátum, mikor} attribútumhalmazt lehet kijelölni elsődleges kulcsnak.

Fuvar( név, születési dátum, mikor, honnan, hová)

Képezzük le a kapcsolatokat!A gépkocsija kapcsolat egy 1:1 kapcsolat, a leképezése egyszerű, hiszen attribútumként felvesszük a kapcsolódó egyedek kulcsait, és a séma kulcsának ezen egyedek kulcsai közül bármelyiket választhatjuk. Most a Sofőr egyed kulcsát választom.

Gépkocsija (név, születési dátum, rendszám)

A kategóriája kapcsolat leképezése sem nehéz, csak arra kell figyelni, hogy gyenge egyedet a Söfőr egyed határozza meg, így az ő kulcsát is fel kell tüntetni. Ilyenkor a gyenge egyedből leképezett relációséma kulcsát kell figyelembe venni. 1:N kapcsolat és nincsenek kapcsolati attribútumok, ezért az N-oldali séma attribútumai alkotják a kulcsot.

Kategóriája ( név, születési dátum, mikor, TarifaKategoria.megnevezés)

Hasonlóképpen történik a vitte kapcsolat leképezése is.

Vitte ( név, születési dátum, mikor, törzsutasszám)

Következő lépésként azokat a relációsémákat, amelyeknek megegyeznek a kulcsai összevonhatjuk. Az összevonás után az alábbi sémákat kapjuk:

TarifaKategória (megnevezés, egységár)
Törzsutas (törzsutasszám, név, születési év)
Gépkocsi (rendszám, típus, műszaki lejár)
Sofőr (név, születési dátum, lakcím, rendszám)
Fuvar(név, születési dátum, mikor, honnan, hová, TarifaKategória.megnevezés, törzsutasszám)