1NF vs 2NF vs 3NF
Normalisering är en process som utförs för att minimera de redundans som finns i data i relationsdatabaser. Denna process kommer huvudsakligen att dela upp stora tabeller i mindre tabeller med färre uppsägningar. Dessa mindre tabeller kommer att relateras till varandra genom väldefinierade relationer. I en väl normaliserad databas krävs att någon ändring eller modifiering i data ändrar endast ett enda bord. Första normala formen (1NF), andra normala formen (2NF) och den tredje normala formen (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 ger den minsta uppsättningen krav för normalisering av en relationsdatabas. En tabell som överensstämmer med 1NF försäkrar att den faktiskt representerar en relation (dvs det innehåller inga poster som upprepas), men det finns ingen universellt accepterad definition för 1NF. En viktig egenskap är att ett bord som överensstämmer med 1NF inte kunde innehålla några attribut som är relationella värderade (dvs alla attribut ska ha atomvärden).
Vad är 2NF?
2NF är den andra normala formen som används i relationsdatabaser. För att ett bord ska uppfylla 2NF ska det vara uppfyllt 1NF och ett attribut som inte ingår i någon kandidatnyckel (dvs icke-primära attribut) borde helt bero på någon av kandidatnycklarna i tabellen.
Vad är 3NF?
3NF är den tredje normala formen som används i relationell databas normalisering. Enligt Codds definition sägs en tabell vara i 3NF, om och endast om det bordet är i den andra normala formen (2NF), och varje attribut i tabellen som inte hör till en kandidatnyckel bör direkt bero på på varje kandidatnyckel i den tabellen. År 1982 producerade Carlo Zaniolo en annorlunda uttryckt definition för 3NF. Tabeller som överensstämmer med 3NF innehåller vanligtvis inte anomalier som uppstår när du lägger in, 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 redundans i tabeller. 3NF anses vara en starkare normal form än 2NF, och anses vara en starkare normal form än 1NF. Därför behöver det generellt sett uppnås ett bord som är i 2NF-tabellen i enlighet med 3NF-formuläret. På samma sätt, att få en tabell som överensstämmer med 2NF kommer att behöva sönderdela ett bord som finns i 1NF. 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 leda till ytterligare anslutningsoperationer (eller kartesiska produkter) när du utför frågor. Detta ökar beräkningstiden. Å andra sidan skulle tabellerna som motsvarar starkare normala former ha färre uppsägningar än tabeller som endast motsvarar svagare normala former.