1NF vs 2NF vs 3NF
Normalisering er en proces, der udføres for at minimere de afskedigelser, der findes i data i relationelle databaser. Denne proces vil primært opdele store tabeller i mindre tabeller med færre afskedigelser. Disse mindre tabeller vil være relateret til hinanden gennem veldefinerede forhold. I en godt normaliseret database kræver enhver ændring eller ændring i data kun ændring af en enkelt tabel. Den første normale form (1NF), den anden normale form (2NF) og den tredje normale form (3NF) blev introduceret af Edgar F. Codd, der også er opfinderen af den relationelle model og begrebet normalisering.
Hvad er 1NF?
1NF er den første normale form, som giver det minimale sæt krav til normalisering af en relationsdatabase. En tabel, der overholder 1NF, sikrer, at den faktisk repræsenterer en relation (dvs. den indeholder ikke poster, der gentager), men der er ingen universelt accepteret definition for 1NF. En vigtig egenskab er, at en tabel, der overholder 1NF, ikke kunne indeholde nogen attributter, der er relationelle værdsat (dvs. alle attributterne skal have atomværdier).
Hvad er 2NF?
2NF er den anden normale form, der bruges i relationelle databaser. For at en tabel skal overholde 2NF, skal den overholdes med 1NF, og enhver attribut, der ikke er en del af nogen kandidatnøgle (dvs. ikke-primære attributter), skal helt afhænge af nogen af kandidatnøglerne i tabellen.
Hvad er 3NF?
3NF er den tredje normale form, der bruges i relationel databasegenormalisering. I henhold til Codd's definition siges en tabel at være i 3NF, hvis og kun hvis, den tabel er i den anden normale form (2NF), og enhver attribut i tabellen, der ikke hører til en kandidatnøgle, skal direkte afhænge på hver kandidatnøgle i tabellen. I 1982 producerede Carlo Zaniolo en anderledes udtrykt definition for 3NF. Tabeller, der overholder 3NF, indeholder generelt ikke afvigelser, der opstår, når der indsættes, slettes eller opdateres poster i tabellen.
Hvad er forskellen mellem 1NF og 2NF og 3NF?
1NF, 2NF og 3NF er normale former, der bruges i relationelle databaser for at minimere afskedigelser i tabeller. 3NF betragtes som en stærkere normal form end 2NF, og det betragtes som en stærkere normal form end 1NF. Derfor kræver det generelt at få en tabel, der er i overensstemmelse med 3NF-formen, at nedbryde en tabel, der er i 2NF. Tilsvarende kræver en tabel, der er i overensstemmelse med 2NF, nedbrydning af en tabel, der er i 1NF. Hvis en tabel, der overholder 1NF, indeholder kandidatnøgler, der kun består af en enkelt attribut (dvs. ikke-sammensatte kandidatnøgler), vil en sådan tabel automatisk overholde 2NF. Nedbrydning af tabeller vil resultere i yderligere sammenkoblingsoperationer (eller kartesiske produkter), når der udføres forespørgsler. Dette øger beregningstiden. På den anden side ville tabellerne, der overholder stærkere normale former, have færre afskedigelser end tabeller, der kun overholder svagere normale former.