adatbázis

Adatbázis tervezése – feladat 2

Adatbázis

Adatbázis tervezése – feladat 2

Az alábbi adatokból állítunk össze egy adatbázist:
rendszám, szín, név, lakcím, évjárat, érték, személyi szám, típus, 

Célunk az, hogy az adatok redundanciáját minimalizáljuk, miközben biztosítjuk az adatbázis hatékony és logikus működését. A folyamatot az 1NF-től egészen a 3NF-ig és a BCNF-ig vezetjük végig.

1NF (Első normál forma)

Az 1NF követelményei:

  • Minden mezőnek atomi (oszthatatlan) értékeket kell tartalmaznia.
  • Minden sor egyedi.
  • Az adatok táblázatos szerkezetben vannak.
autós feladat NF1

Elemzés:

  • A tábla már táblázatos formátumú, és minden mező atomi értéket tartalmaz.
  • Probléma: az adatok redundanciát tartalmaznak, például „Kovács P.” kétszer szerepel ugyanazzal a lakcímmel és személyi számmal.

Eredmény:

Az 1NF biztosítja, hogy az adatok oszthatatlan értékek formájában jelenjenek meg, de még mindig tartalmaz redundanciát, amelyet további normalizálással kell csökkenteni.

 

2NF (Második normál forma)

A 2NF követelményei:

  • Az 1NF-ben van.
  • Minden nem kulcs attribútumnak teljesen függenie kell az elsődleges kulcstól (nincs részleges függőség).

Elemzés:

  • Kulcs azonosítása: Az autókhoz kapcsolódó adatok (pl. rendszám, szín, évjárat, érték) az rendszám attribútumtól függnek.
  • A tulajdonosokhoz kapcsolódó adatok (pl. név, lakcím, személyi szám) az személyi szám attribútumtól függenek.

A redundancia csökkentéséhez két táblát hozunk létre:

  1. Autók tábla: Az autók adatai + a tulajdonos azonosítója (személyi szám) idegen kulcsként.
  2. Tulajdonosok tábla: A tulajdonosok adatai, ahol a személyi szám az elsődleges kulcs.

autók tábla
Tulajdonosok tábla

Az autók tábla Személyi szám mezője idegen kulcs, amely a tulajdonosok táblájának elsődleges kulcsára hivatkozik.

3NF (Harmadik normál forma)

A 3NF követelményei:

  • A tábla 2NF-ben van.
  • Nincs tranzitív függőség (egy nem kulcs attribútum nem függhet egy másik nem kulcs attribútumtól).

Elemzés:

  • Az Autók tábla attribútumai (pl. Szín, Évjárat, Érték) közvetlenül az elsődleges kulcstól (Rendszám) függenek.
  • A Tulajdonosok tábla attribútumai (pl. Név, Lakcím) közvetlenül az elsődleges kulcstól (Személyi szám) függenek.

Eredmény:

Mivel nincs tranzitív függőség, mindkét tábla 3NF-ben van.

2. feladat: tulajdonos helyett legyen egy autókölcsönző autói. Ebben az esetben 3 tábla készül.

A 3NF így nézne ki

1. tábla: rendszám (kulcs), típus, szín, érték, évjárat
2. tábla: kölcsönző: tag_id (kulcs), név, lakcím
3. tábla: kölcsönzés: kölcsönzés_id (kulcs), dátum, visszahozta, rendszám, tag_id

Az autó – kölcsönzés egy 1-N kapcsolat, mert egy autó van, egy rendszámmal, kölcsönzésnél viszont a rendszám sokszor fordulhat elő.
A kölcsönző-kölcsönzés is 1-N kapcsolat, mert a kölcsönző adatait egyszer visszük fel, viszont a kölcsönzésnél a tag_id sokszor szerepelhet, sokszor bérbe veheti az autót.

Maga az autó és a kölcsönző ember kapcsolata több a többhöz kapcsolat, amit csak így lehet létrehozni, hogy közéjük teszünk egy másik kapcsolótáblát.