1. Normálforma (1NF):
Minden sor minden komponense atomi értékű legyen.
2. Normálforma (2NF):
Megengedjük a tranzitív függőségeket 1 relációban, de megtiltjuk azokat a nem triviális függőségeket, amelyeknek bal oldala 1 kulcs valódi részhalmaza.
3. Normálforma (3NF):
A BCNF enyhébb alakja, amelyben előfordulhatnak olyan X→A funkcionális függőségek, ahol ha az X nem szuperkulcs, akkor az A valamely kulcsnak eleme.
BCNF (Boyce-Codd normálforma):
Anomáliák megszüntetésére használjuk. Az R reláció BCNF-ben van akkor és csak akkor, ha minden olyan esetben, ha az R-ben érvényes egy A1A2...An→B „nem triviális” függőség, akkor az {A1,A2,...,An} halmaz R szuperkulcsa kell, hogy legyen.
Azaz minden „nem triviális” funkcionális függőség bal oldalának szuperkulcsnak kell lennie. A szuperkulcsnak nem kell minimálisnak lennie. Emiatt a BCNF feltétel egy ekvivalens megfogalmazása az, hogy minden „nem triviális” funkcionális függőség bal oldalának tartalmaznia kell egy kulcsot.
4. Normálforma (4NF):
Egy R reláció negyedik normálformában van, ha valahányszor az A1A2...An →→ B1B2...Bm „nem triviális” többértékű függőség fennáll, akkor az {A1, A2..., An} szuperkulcs. Azaz, ha egy reláció 4NF-ben van, akkor minden nem triviális többértékű függőség valójában olyan funkcionális függőség, amelynek a baloldala szuperkulcs.
Kapcsolatok: 4 NF -ből következik a BCNF, amiből következik 3 NF.
Normalizálás:
A helyes modell megtervezésére irányuló irányelveket, ennek módszertana. A normalizálás során induláskor egyetlen táblázatot alakítunk ki, melyben elhelyezzük a szükséges tulajdonságokat. Ezután feltárjuk a táblázat belső szerkezetét, a tulajdonságok közötti összefüggéseket, függőségi viszonyokat; lényegében azt vizsgáljuk meg, hogy a feltárt függőségek eleget tesznek-e az ún. normál formáknak nevezett követelményeknek. A normál formákat megsértő függőségeket megszüntetjük úgy, hogy a táblázatot meghatározott szabályok szerint további táblázatokra bontjuk. A kapott új táblázatok normálformáknak való megfelelésének ellenőrzését is elvégezzük és, ha szükséges, azokat is további táblázatokra bontjuk.
A normalizálás tehát táblázat szétbontó relációs műveletek sorozata. Melynek eredményeképpen egymással kapcsolatban álló, az eredetinél kisebb tárolási igényű relációkat kapunk; egy tervezési metodika, ami segítséget nyújt a logikailag áttekinthetőbb anomáliáktól mentes relációs sémák és adatbázis sémák kialakításában.
A normalizálás eredményét 4 lépésben érhetjük el:
- Első lépés: létrehozzuk az első normál formát (1NF).
A táblázat első normál formájának szempontjai:- az oszlopok száma és sorrendje
- minden oszlop csak meghatározott értékeket vehet fel (domain)
- minden attribútum csak egyetlen értéket vehet fel a megengedett tartományból.
- Második lépés: az összetevők száma nem csökkenthető, vagyis a kulcs minimális. A kulcs minimális esetén a teljes függés ugyanaz, mint a funkcionális függés. Jelölése: 2NF
- Harmadik lépés: funkcionális függés csak az elsődleges kulcsból indul ki és ez a függés teljes, hiszen az összetett kulcs komponensein kívül nincs más attribútum. Jelölése: 3NF.
- Negyedik lépés: egy reláció akkor 4NF ha a 3NF és legfeljebb egy többértékű függés van benne.