Skip navigation

Példák

Könyvtári adatbázis

Tegyük fel, hogy a könyvtár az sémának megfelelő táblban tartja nyilván a kölcsönzéseket! A táblában a könyvek szerepelnek, ha egy könyvet kikölcsönöztek, akkor a dátum, olvasójegy, olvasóNév, olvasóLakcím mezők ki vannak töltve a könyv sorában, különben pedig üresek. Az szerző itt most csak egy mezőt takar, ha több szerzője van egy könyvnek, akkor szerzőket  egymás után sorolják fel a szerző mezőben.

Kölcsönzés (leltári szám, könyvCím, szerző, kiadásiÉv, kiadó, dátum, olvasójegy, olvasóNév, olvasóLakcím)

Derítsük fel ebben a sémában a függőségeket!

{leltári szám} → {könyvCím, szerző, kiadásiÉv, kiadó, olvasójegy, olvasóNév, dátum, olvasóLakcím}
{olvasójegy} → {olvasóNév, olvasóLakcím}
{könyvCím, kiadásiÉv, kiadó} → {szerző}

A származtatott függőségeket nem vesszük fel külön.

Ezek a függőségek mind nyilvánvalóak.

A tábla soraiban a könyvtár könyvei szerepelnek, így hogyha tekintünk egy adott leltári számmal rendelkező könyvet, akkor az csak egyszer fordul elő a táblázatban.

Az olvasójegytől az olvasói adatok függnek. Ha tekintünk egy olvasójegy értéket a táblázatban, akkor mindig ugyanaz a név és lakcím tartozik az olvasóhoz. A táblázat alkalmas arra, hogy egy olvasó egyszerre több könyvet is kivegyen.

A harmadik is könnyen belátható. A könyvkiadásoknak vannak bizonyos utánnyomásai, de ha tudjuk a könyv címét, kiadóját, illetve a kiadási évet, akkor tudjuk a szerzőjét is. Még tankönyvek esetében is nagyon ritka, hogy egy adott évben ugyanaz a kiadó többféle tankönyvet adna ki ugyanazzal a címmel úgy, hogy más a szerzőlistája a könyvnek.

Taxis adatbázis

Egy taxitársaság az következő szerkezetű táblázatban tartja nyilván a fuvarokat. A gépkocsikat mindig ugyanaz a sofőr vezeti, nincs olyan, hogy átadják egymásnak a járműveket.

Fuvar (rendszám, gépkocsiTipus, műszakiLejár, sofőrNév, sofőrLakcím, sofőrTelefon, indulásiIdő, indulásiCím, megtettKm)

Derítsük fel a függőségeket ebben a relációsémában!

{rendszám} → {gépkocsiTípus, műszakiLejár, sofőrNév, sofőrLakcím, sofőrTelefon}
{rendszám, indulásiIdő} → {indulásiCím, megtettKm}
{sofőrTelefon} → {sofőrNév, sofőrLakcím, rendszám}

A származtatott  függőségeket most sem vesszük figyelembe.

Ezek a függőségek nyilvánvalóak.

Mivel tudjuk, hogy egy kocsit mindig csak egy sofőr vezet, így egyértelmű, hogy a táblázatban egy-egy rendszám esetében mindig ugyanazok a gépkocsi és sofőr adatok.

Mivel egy gépkocsi egy adott időpontban csak egy helyről indulhat, ezért a rendszámtól és az indulási időponttól függ az indulási cím és a megtett km.

Minden sofőrnek egyedi telefonszáma van, ezért egy adott telefonszám esetében mindig ugynazok a sofőradatok és gépkocsiadatok fognak szerepelni a táblázatban. Megjegyezzük, hogy a gépkocsiadatok közül itt csak a rendszámot jelöltük meg, de a többi gépkocsi adat is felsorolható lenne a származtatott függőségek miatt.

Dolgozói nyilvántartás

Keressük meg a kulcsokat a Dolgozói nyilvántartásban!

Dolgozók (név, adószám, cím, osztálykód, osztálynév, vezAdószám)

Név Adószám Cím Osztálykód Osztálynév VezAdószám
Kovács 1111 Pécs, Vár u. 5 2 Tervezési 8888
Tóth 2222 Tata, Tó u. 2 1 Munkaügyi 3333
Kovács 3333 Vác, Róka u. 1 1 Munkaügyi 3333
Török 8888 Pécs, Sas u. 8 2 Tervezési 8888
Kiss 4444 Pápa, Kő tér 2. 3 Kutatási 4444
Takács 5555 Győr, Pap u. 7. 1 Munkaügyi 3333
Fekete 6666 Pécs, Hegy u. 5. 3 Kutatási 4444
Nagy 7777 Pécs, Cső u. 25. 3 Kutatási 4444

{osztálykód} {osztálynév, vezAdószám}
{osztálynév} → {vezAdószám}
{adószám} {név, lakcím, osztálykód, osztálynév, vezAdószám}

Egyrészről látjuk, hogy az {adószám}+ visszaadja a teljes attribútumhalmazt, tehát az adószám lehet kulcs. Másrészről látjuk, hogy más kulcs nincs, mert sem az osztály adatokból, sem a név és a lakcím együtteséből nem lehetne visszakapni a teljes attribútumhalmazt.