1NF vs 2NF vs 3NF
Normalisering er en prosess som utføres for å minimere redundansene som finnes i data i relasjonsdatabaser. Denne prosessen vil hovedsakelig dele store tabeller inn i mindre tabeller med færre redundanser. Disse mindre tabellene vil være relatert til hverandre gjennom veldefinerte relasjoner. I en godt normalisert database vil enhver endring eller modifikasjon i data kreve modifisering av bare en enkelt tabell. Første normalform (1NF), Andre normalform (2NF) og tredje normalform (3NF) ble introdusert av Edgar F. Codd, som også er oppfinneren av relasjonsmodellen og normaliseringsbegrepet.
Hva er 1NF?
1NF er den første normalformen, som gir minimumskravene for normalisering av en relasjonsdatabase. En tabell som samsvarer med 1NF sikrer at den faktisk representerer en relasjon (dvs. den inneholder ingen poster som gjentar seg), men det er ingen universelt akseptert definisjon for 1NF. En viktig egenskap er at en tabell som samsvarer med 1NF ikke kan inneholde noen attributter som er relasjonsverdier (dvs. alle attributtene skal ha atomverdier).
Hva er 2NF?
2NF er den andre normalformen som brukes i relasjonsdatabaser. For at en tabell skal være i samsvar med 2NF, må den være i samsvar med 1NF, og alle attributter som ikke er en del av en kandidatnøkkel (dvs. ikke-primære attributter) bør fullt ut avhenge av hvilken som helst av kandidatnøklene i tabellen.
Hva er 3NF?
3NF er den tredje normalformen som brukes i normalisering av relasjonsdatabaser. I følge Codds definisjon sies en tabell å være i 3NF, hvis og bare hvis, den tabellen er i den andre normalformen (2NF), og hver attributt i tabellen som ikke tilhører en kandidatnøkkel, bør direkte avhenge på hver kandidatnøkkel i den tabellen. I 1982 produserte Carlo Zaniolo en annerledes uttrykt definisjon for 3NF. Tabeller som er i samsvar med 3NF inneholder vanligvis ikke uregelmessigheter som oppstår ved innsetting, sletting eller oppdatering av poster i tabellen.
Hva er forskjellen mellom 1NF og 2NF og 3NF?
1NF, 2NF og 3NF er normale former som brukes i relasjonsdatabaser for å minimere redundanser i tabeller. 3NF regnes som en sterkere normalform enn 2NF, og den regnes som en sterkere normalform enn 1NF. Derfor vil det generelt kreve å dekomponere en tabell som er i 2NF for å få en tabell som samsvarer med 3NF-skjemaet. På samme måte vil det å skaffe en tabell som samsvarer med 2NF kreve dekomponering av en tabell som er i 1NF. Imidlertid, hvis en tabell som samsvarer med 1NF inneholder kandidatnøkler som bare består av et enkelt attributt (dvs. ikke-sammensatte kandidatnøkler), vil en slik tabell automatisk samsvare med 2NF. Dekomponering av tabeller vil resultere i ytterligere sammenføyningsoperasjoner (eller kartesiske produkter) når du utfører spørringer. Dette vil øke beregningstiden. På den annen side ville tabellene som samsvarer med sterkere normalformer ha færre redundanser enn tabeller som kun samsvarer med svakere normalformer.