1NF vs 2NF vs 3NF
Normalisering är en process som utförs för att minimera de redundanser som finns i data i relationsdatabaser. Denna process kommer huvudsakligen att dela upp stora tabeller i mindre tabeller med färre redundanser. Dessa mindre tabeller kommer att vara relaterade till varandra genom väldefinierade relationer. I en väl normaliserad databas kommer varje ändring eller modifiering av data att kräva modifiering av endast en enda tabell. Första normalformen (1NF), Andra normalformen (2NF) och den tredje normalformen (3NF) introducerades av Edgar F. Codd, som också är uppfinnaren av relationsmodellen och begreppet normalisering.
Vad är 1NF?
1NF är den första normala formen, som tillhandahåller minimikraven för normalisering av en relationsdatabas. En tabell som överensstämmer med 1NF försäkrar att den faktiskt representerar en relation (dvs. den innehåller inga poster som upprepas), men det finns ingen universellt accepterad definition för 1NF. En viktig egenskap är att en tabell som överensstämmer med 1NF inte kan innehålla några attribut som är relationsvärderade (dvs alla attribut bör ha atomvärden).
Vad är 2NF?
2NF är den andra normalformen som används i relationsdatabaser. För att en tabell ska uppfylla 2NF måste den uppfyllas med 1NF och alla attribut som inte är en del av någon kandidatnyckel (d.v.s. icke-primära attribut) bör vara helt beroende av någon av kandidatnycklarna i tabellen.
Vad är 3NF?
3NF är den tredje normalformen som används vid normalisering av relationsdatabas. Enligt Codds definition sägs en tabell vara i 3NF, om och bara om den tabellen är i den andra normala formen (2NF), och varje attribut i tabellen som inte hör till en kandidatnyckel borde vara direkt beroende av på varje kandidatnyckel i den tabellen.1982 producerade Carlo Zaniolo en annorlunda uttryckt definition för 3NF. Tabeller som överensstämmer med 3NF innehåller i allmänhet inga avvikelser som uppstår när man infogar, tar bort eller uppdaterar poster i tabellen.
Vad är skillnaden mellan 1NF och 2NF och 3NF?
1NF, 2NF och 3NF är normala former som används i relationsdatabaser för att minimera redundanser i tabeller. 3NF anses vara en starkare normalform än 2NF, och det anses vara en starkare normalform än 1NF. Därför i allmänhet kommer att erhålla en tabell som överensstämmer med 3NF-formuläret kräva att en tabell som finns i 2NF sönderdelas. På liknande sätt kommer att erhålla en tabell som överensstämmer med 2NF kräva att en tabell som finns i 1NF sönderdelas. Men om en tabell som överensstämmer med 1NF innehåller kandidatnycklar som endast består av ett enda attribut (dvs icke-sammansatta kandidatnycklar), skulle en sådan tabell automatiskt överensstämma med 2NF. Nedbrytning av tabeller kommer att resultera i ytterligare kopplingsoperationer (eller kartesiska produkter) vid exekvering av frågor. Detta kommer att öka beräkningstiden. Å andra sidan skulle de tabeller som överensstämmer med starkare normalformer ha färre redundanser än tabeller som bara följer svagare normalformer.