1NF vs 2NF vs 3NF
Normaliseerimine on protsess, mis viiakse läbi selleks, et minimeerida koondamisi, mis esinevad relatsiooniandmebaasides sisalduvates andmetes. See protsess jaotatakse suured tabelid peamiselt väiksemateks koondamistega väiksemateks tabeliteks. Need väiksemad tabelid on omavahel täpselt määratletud suhete kaudu seotud. Hästi normaliseeritud andmebaasis nõuab andmete muutmine või muutmine ainult ühte tabelit. Esimese normaalvormi (1NF), teise normaalvormi (2NF) ja kolmanda normaalvormi (3NF) tutvustas Edgar F. Codd, kes on ka relatsioonimudeli ja normaliseerimise kontseptsiooni leiutaja.
Mis on 1NF?
1NF on esimene normaalne vorm, mis pakub minimaalseid nõudeid relatsiooniandmebaasi normaliseerimiseks. 1NF-le vastav tabel kinnitab, et see esindab tegelikult seost (st see ei sisalda korduvaid kirjeid), kuid 1NF-i jaoks pole üldiselt aktsepteeritud määratlust. Üks oluline omadus on see, et tabelile, mis vastab 1NF-le, ei võiks olla ühtegi relatsiooniväärtusega atribuuti (st kõigil atribuutidel peaksid olema aatomväärtused).
Mis on 2NF?
2NF on teine normaalvorm, mida kasutatakse relatsioonandmebaasides. Et tabel vastaks 2NF-le, peaks seda järgima 1NF ja iga atribuut, mis ei kuulu ühegi kandidaatvõtme alla (st mitte-peamised atribuudid), peaks täielikult sõltuma mis tahes tabelis sisalduvast kandidaatvõtmest.
Mis on 3NF?
3NF on kolmas normaalne vorm, mida kasutatakse relatsioonandmebaasi normaliseerimisel. Coddi definitsiooni kohaselt öeldakse, et tabel on 3NF-is, ainult siis, kui see tabel on teisel tavalisel kujul (2NF) ja iga tabeli atribuut, mis ei kuulu kandidaatvõtmesse, peaks otseselt sõltuma selle tabeli igale kandidaadivõtmele. 1982. aastal koostas Carlo Zaniolo 3NF-i teistsuguse määratluse. 3NF-ile vastavad tabelid ei sisalda reeglina kõrvalekaldeid, mis ilmnevad kirjete tabelisse lisamisel, kustutamisel või värskendamisel.
Mis vahe on 1NF ja 2NF ja 3NF vahel?
1NF, 2NF ja 3NF on tavalised vormid, mida kasutatakse relatsiooniandmebaasides tabelites koondamise minimeerimiseks. 3NF peetakse tugevamaks normaalseks vormiks kui 2NF ja seda peetakse tugevamaks normaalseks vormiks kui 1NF. Seetõttu nõuab 3NF vormile vastava tabeli hankimine üldiselt 2NF-is oleva tabeli lagundamist. Sarnaselt nõuab 2NF-ile vastava tabeli hankimine 1NF-is oleva tabeli lagundamist. Kui aga 1NF-le vastav tabel sisaldab kandidaatvõtmeid, mis koosnevad ainult ühest atribuudist (st mittekomposiitsetest kandidaatvõtmetest), vastab selline tabel automaatselt 2NF-le. Tabelite lagundamine põhjustab päringute tegemisel täiendavaid liitumisoperatsioone (või Cartesiuse tooteid). See suurendab arvutusaega. Teisest küljest oleks tugevamatele normaalvormidele vastavates tabelites vähem koondatud kui tabelites, mis vastavad ainult nõrgematele normaalvormidele.