Adatmodellezés normalizálással
(kidolgozott mintafeladat)

Önállóan megoldandó feladat
A relációs adatmodellezés áttekintése A normalizálás Feladatok
  1. A specifikáció megértése és a Relációs Adatelemzés (RDA) elkészítése.
  2. A Logikai Adatbázismodell (LDB) elkészítése.
A modellezési feladat szöveges specifikációja

Egy DVD-kölcsönző nyilvántartását vizsgáljuk. A DVD-kről nyilvántartást vezetnek, mely nyilvántartás tartalmazza a film címét, főszereplőjét, rendezőjét. A filmeknek egyedi azonosító száma van, a cím nem biztos, hogy egyedi. Egy film több DVD-n is szerepelhet, a kölcsönző által készített másolatokban. A DVD-knek szintén egyedi azonosítójuk van, valamint a típusát is nyilvántartják.
A kölcsönzőből kizárólag tagok kölcsönözhetnek. A tag nevét, címét, valamint egyedi sorszámát nyilvántartják. A tagok filme(ke)t kölcsönöznek, a kikölcsönzés dátumát és a visszahozás dátumát is pontosan követni kell. A kölcsönző egy nagykereskedőtől vásárolja a filmeket, minden rendelésnek van egy száma és a visszakeresés érdekében a rendelés dátumát is nyilvántartják. Egy rendelésen több film is szerepelhet.

A kölcsönzőnél található dokumentumok a következő adatokat tartalmazzák a különböző adatlapokon. Ezekből a dokumentumokból kell megalkotni a logikai adatbázis-modellt:

1. A Relációs adatelemzés:

Normalizálatlan forma (0NF):

  1. DVD száma
  2. DVD típusa
  3. Film címe
  4. Film száma
  5. Film főszereplője
  6. Film rendezője
  7. Rendelés száma
  8. Rendelési dátum
  9. Kölcsönzés száma
  10. Kölcsönzés dátuma
  11. Visszahozás dátuma
  12. Tag sorszáma
  13. Tag neve
  14. Tag címe
A normalizálatlan forma a nyilvántartott adatok összességét tartalmazza, átalakítás nélkül. Ha a DVD számát tekintjük azonosítónak, akkor látszik, hogy ennek az azonosítónak egy adott értékéhez egyes tulajdonságoknak (pl. visszahozás dátuma) több értéke is tartozik ("több érték is van egy mezőben").

Első normál forma (1NF):

Elkülönítjük azokat a tulajdonságokat, amelyek többször szerepelnek az adatlapon azoktól, melyek minden adatlapon csak egyszer szerepelnek. Minden tulajdonságnak funkcionálisan függeni kell az azonosítótól (aláhúzva).

DVD

  1. DVD száma
  2. DVD típusa
  3. Film címe
  4. Film száma
  5. Rendelés száma
  6. Rendelés dátuma
  7. Film főszereplője
  8. Film rendezője
Kölcsönzés
  1. Kölcsönzés száma
  2. DVD száma
  3. Tag sorszáma
  4. Tag neve
  5. Tag címe
  6. Kölcsönzés dátuma
  7. Visszahozás dátuma
Például a DVD száma egy adatlapon csak egyszer szerepelhet, mivel minden DVD-nek egyedi azonosítója van, de egy DVD-t többen is kikölcsönözhetnek, ezért a kölcsönzés száma és a tag adatai ismétlődnek egy adatlapon. A DVD számát mindkét reláció tartalmazza, mivel ez volt a kulcs a normalizálatlan formában.

Most alakítsuk tovább a relációkat!

Második normál forma (2NF)

Elkülönítjük azokat az attribútumokat, melyek nem a teljes kulcstól függenek azoktól, melyek teljes függőségben vannak a teljes kulccsal. Mivel egyik kulcsunk sem összetett kulcs, ezért mindkét reláció változatlan marad.

Harmadik normál forma (3NF)

Elkülönítjük azokat az attribútumokat, melyek a reláció kulcsától csak közvetetten függnek. Pl. a film rendezője nem függ közvetlenül a DVD számától, stb.

Film
  1. Film száma
  2. Rendelés száma (külső kulcs)
  3. Film címe
  4. Film rendezője
  5. Film főszereplője
DVD
  1. DVD száma
  2. Film száma (külső kulcs)
  3. DVD típusa
Rendelés
  1. Rendelés száma
  2. Rendelés dátuma
Kölcsönzés
  1. Kölcsönzés száma
  2. DVD száma (külső kulcs)
  3. Tag sorszáma (külső kulcs)
  4. Kölcsönzés dátuma
  5. Visszahozás dátuma
Tag
  1. Tag sorszáma
  2. Tag neve
  3. Tag címe
Az első három reláció a korábbi első relációból adódik, az utolsó kettő pedig a korábbi másodikból. Ez az adatszerkezet már megfelelő arra, hogy adatbáziskezelő programmal dolgozzuk fel.

2. A Logikai Adatbázis Modell elkészítése

Állapítsuk meg az entitások közötti kapcsolatokat! Például: Egy DVD pontosan egy filmet tartalmaz, egy film megtalálható egy vagy több DVD-n (másolatokban).

Most már fel tudjuk rajzolni a logikai adatmodellt (LDB ábrát). A kulcsok vastagon írottak, a kapcsolómezők az azonos nevű mezők.

Tanulság: a táblák egy tranzakciós (OLTP) adatbázisban a szerepük szerint feloszthatók törzsállományokra és tranziens állományokra (a szerep relatív), jellemző a hópehely, illetve hógolyó szerkezet.

Lekérdezések készítése a normalizált formához

Ugrás az elejére

Önállóan megoldandó feladat

A Stupido-Gigantic GmbH Ltd Kft S.A. főleg kereskedelemmel foglalkozik. Ennek megfelelően rendelések futnak be hozzá vásárlóktól, amelyeket a szállítók révén teljesít. Egy terméket csak egy szállító szállít, és egy szállító csak egy terméket szállít. Nyilvántartjuk a vásárlók pillanatnyi egyenlegét.  Egy rendelésen több tétel is szerepelhet, a tétel tartalma a termék megnevezése és a mennyiség. A szállítók, termékek és városok  neve egyedi, de a vásárlók neve csak egy városon belül egyedi. Feltehetjük, hogy minden városnak csak egy irányítószáma van.

A tárolt adatok ömlesztve:
SzállítóIrányítóSzám, VásárlóIrányítóSzám, SzállítóNév, RendelésSzáma, Mennyiség, RendelésDátuma, VásárlóVárosnév, Egyenleg, Egységár, Terméknév, SzállítóVárosnév, Vásárlónév, Terméknév.

Feladatok:

Vissza a tárgy főlapjára