8.6. Összefoglalás

Ebben a fejezetben a relációs adatbázis-tervezés néhány buktatójával foglalkoztunk, intuitív érveket felhasználva. Informálisan azonosítottunk néhány mérőszámot egy relációséma vagy rossz voltának a jelzésére, valamint informális irányelveket fektettünk le egy jó terv elkészítéséhez. Ezek az irányelvek azon alapulnak, hogy gondosan elkészítünk egy koncepcionális tervet az ER és EER modellekben, majd helyesen végrehajtjuk a 7. fejezetben leírt leképezési eljárást, hogy relációkra képezzük le az egyedeket és kapcsolatokat. Ezen irányelvek megfelelő betartásával és a redundancia minimalizálásával elkerülhetjük a beszúrási/törlési/módosítási anomáliákat és a hamis adatok előállítását. A NULL értékek korlátozását javasoltuk, mivel azok problémákat okozhatnak a szelekciós, az összekapcsolási és a csoportosítási műveletek közben. Ezután néhány formális fogalmat vezettünk be, amelyek segítségével felülről lefelé módon, a relációk egyenkénti elemzésével végezhetjük a relációs tervezést. Az analízis és dekompozíció alapú tervezésnek ezt a folyamatát a normalizálási folyamat leírásával definiáltuk.

Definiáltuk a funkcionális függés fogalmát, és ismertettük néhány tulajdonságát. A funkcionális függések egy relációséma attribútumai között fennálló szemantikai megszorításokat adnak meg. Megmutattuk, hogyan lehet funkcionális függések egy adott halmazából további függéseket levezetni levezetési szabályok segítségével. Definiáltuk a lezárt és a lefedés fogalmakat a funkcionális függésekhez kötődően. Ezután definiáltuk egy függéshalmaz minimális lefedését, és megadtunk egy algoritmust a minimális lefedés kiszámítására. Azt is megmutattuk, hogyan ellenőrizhetjük, hogy két funkcionálisfüggés-halmaz ekvivalens-e egymással.

Ezt követően leírtuk a normalizálási folyamatot, amelyet arra használhatunk, hogy jó terveket kapjunk úgy, hogy bizonyos nemkívánatos, problémás funkcionális függések létezését teszteljük az egyes relációsémákban. Olyan megoldást javasoltunk, amely minden egyes relációban egy előre rögzített elsődleges kulcson alapuló, egymást követő normalizálási lépések végrehajtásából állt, majd enyhítettük ezt a követelményt, és általánosabb definíciót adtunk a második normálformára (2NF) és a harmadik normálformára (3NF), amelyek a relációk összes kulcsjelöltjét figyelembe veszik. Példákat hoztunk annak illusztrálására, hogy a 3NF általános definíciójának felhasználásával hogyan elemezhetünk és bonthatunk fel egy adott relációt, hogy végül 3NF-ben lévő relációkat kapjunk eredményül.

Végül bevezettük a Boyce–Codd-normálformát (BCNF), s megtárgyaltuk, hogy miért tekinthető a 3NF egy erősebb formájának. Azt is megmutattuk, hogy hogyan kell felbontani egy nem BCNF-ben lévő relációt, figyelembe véve a nemadditív dekompozíciós követelményt.

A 9. fejezet bemutatja a szintézist, valamint a funkcionális függéseken alapuló relációs adatbázis-tervezéshez használt dekompozíciós algoritmusokat. A dekompozícióhoz kötődően ismertetjük a nemadditív (veszteségmentes) join és a függésmegőrzés fogalmakat, amelyeket bizonyos algoritmusok kikényszerítenek. A 9. fejezet további témakörei közé tartoznak a többértékű függések, a join függések, illetve a negyedik és ötödik normálformák, amelyek ezeken a függéseken alapulnak.