1NF vs 2NF vs 3NF
Normalisatie is een proces dat wordt uitgevoerd om de overtolligheden die aanwezig zijn in gegevens in relationele databases te minimaliseren. Dit proces verdeelt voornamelijk grote tabellen in kleinere tabellen met minder overtolligheden. Deze kleinere tabellen zijn aan elkaar gerelateerd door middel van goed gedefinieerde relaties. In een goed genormaliseerde database moet voor elke wijziging of wijziging van gegevens slechts één tabel worden gewijzigd. Eerste normale vorm (1NF), Tweede normale vorm (2NF) en de Derde Normale Vorm (3NF) werd geïntroduceerd door Edgar F. Codd, die ook de uitvinder is van het relationele model en het concept van normalisatie.
Wat is 1NF?
1NF is de eerste normale vorm, die de minimale set vereisten biedt voor het normaliseren van een relationele database. Een tabel die voldoet aan 1NF verzekert dat het feitelijk een relatie vertegenwoordigt (dat wil zeggen dat het geen records bevat die zich herhalen), maar er is geen universeel aanvaarde definitie voor 1NF. Een belangrijke eigenschap is dat een tabel die voldoet aan 1NF geen attributen kan bevatten die een relationele waarde hebben (dat wil zeggen dat alle attributen atoomwaarden moeten hebben).
Wat is 2NF?
2NF is de tweede normale vorm die wordt gebruikt in relationele databases. Voor een tabel die voldoet aan 2NF, moet aan 1NF worden voldaan en elk attribuut dat geen deel uitmaakt van een willekeurige kandidaatsleutel (d.w.z. niet-primaire attributen) moet volledig afhangen van een van de kandidaatsleutels in de tabel..
Wat is 3NF?
3NF is de derde normale vorm die wordt gebruikt bij normalisatie van relationele databases. Volgens de definitie van Codd is een tabel naar verluidt in 3NF, als en alleen als die tabel in de tweede normale vorm (2NF) is en elk attribuut in de tabel dat niet tot een kandidaatsleutel behoort, direct afhankelijk moet zijn op elke kandidaat-sleutel van die tafel. In 1982 produceerde Carlo Zaniolo een verschillend uitgedrukte definitie voor 3NF. Tabellen die voldoen aan de 3NF bevatten over het algemeen geen anomalieën die optreden bij het invoegen, verwijderen of bijwerken van records in de tabel.
Wat is het verschil tussen 1NF en 2NF en 3NF?
1NF, 2NF en 3NF zijn normale vormen die worden gebruikt in relationele databases om overtolligheden in tabellen te minimaliseren. 3NF wordt beschouwd als een sterkere normale vorm dan de 2NF en wordt beschouwd als een sterkere normale vorm dan 1NF. Daarom moet het verkrijgen van een tabel die voldoet aan het 3NF-formulier in het algemeen een tabel in de 2NF ontbinden. Evenzo moet het verkrijgen van een tabel die voldoet aan de 2NF een tabel in de 1NF ontbinden. Als een tabel die voldoet aan 1NF echter kandidaatsleutels bevat die slechts uit een enkel attribuut bestaan (dat wil zeggen niet-samengestelde kandidaatsleutels), zou een dergelijke tabel automatisch voldoen aan 2NF. Het decompositie van tabellen resulteert in extra join-bewerkingen (of Cartesiaanse producten) bij het uitvoeren van query's. Dit zal de computertijd doen toenemen. Aan de andere kant zouden de tabellen die voldoen aan sterkere normale vormen minder overtolligheden hebben dan tabellen die alleen voldoen aan zwakkere normale vormen.