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

Határozzuk meg az egyedeket! A sofőrök biztosan egyedek lesznek, hiszen nekik egyértelműen különálló példányok. A gépkocsik is önálló egyedek lesznek. A tarifatípusok is külön egyedet alkotnak, mivel jellemzőikkel egyértelműen beazonosíthatók az egyes kategóriák. A törzsutasok is egyedek lesznek, mivel adataikkal egyértelműen meghatározhatók.

Határozzuk meg a kapcsolatokat! A sofőrök és a gépkocsik között felfedezhető egy kapcsolat. Jellegét tekintve a leírás alapján 1:1 típusú lesz. A sofőröket a (törzs)utasokat, és a viteldíjak egységárát a fuvar köti össze. Magát a fuvart is lehetne egyedként kezelni, de saját attribútumaival (mikor, honnan, hová, mennyiért) nehéz azonosítani, hiszen akár több kocsi is szállíthatja az utasokat ugyanakkor ugyanazon az útvonalon. Ily módon a fuvar vagy kapcsolatként vagy pedig gyenge egyedként lesz feltüntetve az E-K diagramba. Válasszuk a második megoldást, mert a további elemzés és tervezés szempontjából nehéz kezelni a többágú kapcsolatokat. Mivel a fuvart gyenge egyed lesz, ezért őt össze kell kötni azokkal az egyedekkel, amelyekkel viszonyban áll, és ezen kapcsolatok közül legalább egynek meghatározó kapcsolatnak kell lennie. (Gyenge egyehez mindig tartozik legalább egy meghatározó kapcsolat.) A fuvart, mint gyenge egyedet a kapcsolódó egyedek közül leginkább a soför határozza meg.

Egy lehetséges logikai modell a következő:

Licensed under the Creative Commons Attribution Non-commercial Share Alike License 4.0