Adatbázis tervezés II

  • Cél: az anomáliák és a redundancia megszüntetése
    • Módosítási anomália
    • Törlési anomália
    • Beszúrási anomália

Relációk felbontása

relációt, attribútumokkal helyettesítsük és relácciókkal úgy, hogy

Veszteségmentes felbontás

  • Ha teljesül, akkor az előbbi összekapcsolásra azt mondjuk, hogy veszteségmentes. Itt egy sémájú relációt jelöl és attribútumainak részhalmazai az

  • jelentése: sorai az attribútumaira projektálva.

  • Látható, hogy mindig teljesül.

Boyce Codd normálforma

reláció BCNF normálformában van, ha minden nemtriviális funkciónális függőségre -ben szuperkulcs.

  • Nemtriviális: nem része -nek
  • Szuperkulcs: tartalmaz kulcsot (ő maga is lehet kulcs)

BCNF-re bontás:

  • Adott reláció ls funkcionális függőségek.
  • Van-e olyan ami sérti a BCNF-t?
    • Ha van olyan következmény -ben, ami sérti a BCNF-t, akkor -beli funkcionális függőség is sérti
  • Kiszámoljuk -t:
    • Ha itt nem szerepel az összes attribútum, nem szuperkulcs
  • dekomponálása felhasználásával:
    • -t helyettesítsük az alábbiakkal:
    • Projektáljuk a megfelelő -beli FF-eket a két új relációsémára

Miért működik a BCNF?

  • esetén ha egy veszteségmentes felbontás, pedig veszteségmentes felbontása, akkor is veszteségmentes felbontás.
  • Könnyen ellenőrizhrtő, hogy BCNF felbontás dián az veszteségmentes.
  • Minden két attribútum séma BCNF normálformában van
  • A fentiekkel igazolható:
    • Az algoritmus valóban veszteségmentes felbontást ad, ám sajnos exponenciális lépésszámú is lehet a függődégek vetítése miatt.

Chase teszt veszteségmentességhez

Az -beli függőségeket használva egyenlővé tesszük azokat a szimbólumokat, amelyeknek ugyanazoknak kell lennie, hogy valamelyik függőség ne sérüljön.

  • Ha a két egyenlővé teendő szimbólum közül az egyik index nélküli, akkor a másik is ezt az értéket kapja.
  • Két indexes szimbólum esetén a kisebbik indexű értéket kapja meg a másik.
  • A szimbólumok minden előfordulását helyettesíteni kell az új értékkel. Az algoritmus véget ér, ha valamelyik sor -vel lesz egyenlő, vagy több szimbólumot már nem tudunk egyenlővé tenni.

Ha szerepel a tablóban, akkor valóban -nek egy sora, és mivel -t tetszőlegesen választottuk, ezért a felbontás veszteségmentes.

Ha nem kapjuk meg -t, akkor viszont a felbontás nem veszteségmentes.

A harmadik normálforma

Motiváció

  • Bizonyos FF halmazok esetén a felbontáskor elveszíthetünk függőségeket.
  • és
    • pl.:
  • Két kulcs van: és
  • megsérti a BCNF-t, tehát -re dekomponálunk

A probléma az, hogy és sémákkal nem tudjuk kikényszeríteni függőséget

3NF

  • 3.normálformában (3NF) úgy módosul a BCNF feltétel, hogy az előbbi esetben nem kell dekomponálnunk.

  • Egy attribútum prím (elsődleges attribútum), ha legalább egy kulcsnak eleme.

  • nem-triviális FF, megsérti 3NF-t akkor és csak akkor, ha nem szuperkulcs és nem prím.

  • minden nem triviális függőségre igaz, hogy bal oldala szuperkulcs, vagy jobb oldala csak elsődleges attribútumokat tartalmaz

  • 3NF feltétel és a BCNF feltétel közötti különbség a "vagy jobb oldala csak elsődleges attribútumokat tartalmaz"

3NF-re bontás

Minimális bázis létrehozása

  1. Jobb oldalak szétvágása.
  2. Próbáljuk törölni az FF-eket egymás után. Ha a megmaradó FF-halmaz nem ekvivalens az eredetivel, akkor nem törölhető az épp aktuális FF.
  3. Egymás után próbáljuk csökkenteni a baloldalakat, és megnézzük, hogy az eredetivel ekvivalens FF-halmazt kapunk-e.

A minimális bázis minden FF-re megad egy sémát a felbontásban.

  • A séma a jobb- és baloldalak uniója lesz ( FF, séma) .
  • Ha a minimális bázis FF-jei által meghatározott sémák ( FF, séma) között nincs szuperkulcs, akkor hozzáadunk a felbontáshoz egy olyan sémát, amely maga egy kulcs az relációra.

3NF vs BCNF

A dekompozícióknak három fontos tulajdonsága lehet:

  1. Veszteségmentes összekapcsolás (információ visszaállíthatóság)
  2. Függőségek megőrzése
  3. Anomáliák kiküszöbölése

Az (1) tulajdonság teljesül a BCNF esetében.

  • A 3NF (1) és (2)-t is teljesíti, de maradhat benne anomália (általában ez nem akkora baj)

  • A BCNF esetén (2) sérülhet, viszont (FF-ek okozta) anomália nem lehet benne

Források