1NF vs 2NF vs 3NF

Normalisatie is een proces dat wordt uitgevoerd om de redundanties die aanwezig zijn in gegevens in relationele databases te minimaliseren. Dit proces zal voornamelijk grote tabellen verdelen in kleinere tabellen met minder ontslagen. Deze kleinere tabellen zijn aan elkaar gerelateerd via goed gedefinieerde relaties. In een goed genormaliseerde database hoeft elke wijziging of aanpassing van gegevens slechts één tabel te 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 daadwerkelijk een relatie vertegenwoordigt (dat wil zeggen dat het geen records bevat die zich herhalen), maar er is geen universeel geaccepteerde definitie voor 1NF. Een belangrijke eigenschap is dat een tabel die voldoet aan 1NF geen attributen kan bevatten die relationeel worden gewaardeerd (dwz dat alle attributen atomaire waarden moeten hebben).

Wat is 2NF?

2NF is de tweede normale vorm die wordt gebruikt in relationele databases. Een tabel moet voldoen aan 2NF om te voldoen aan 1NF en elk kenmerk dat geen deel uitmaakt van een kandidaatsleutel (dwz niet-primaire kenmerken) moet volledig afhankelijk zijn van een van de kandidaatsleutels in de tabel.

Wat is 3NF?

3NF is de derde normale vorm die wordt gebruikt bij de normalisatie van relationele databases. Volgens de definitie van de Codd wordt gezegd dat een tabel in 3NF staat, als en alleen als, die tabel de tweede normale vorm (2NF) heeft, en elk attribuut in de tabel dat niet tot een kandidaatssleutel behoort, direct moet afhangen op elke kandidaatsleutel van die tafel. In 1982 produceerde Carlo Zaniolo een anders geformuleerde definitie voor 3NF. Tabellen die voldoen aan de 3NF bevatten over het algemeen geen afwijkingen 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 formulieren die worden gebruikt in relationele databases om redundanties in tabellen te minimaliseren. 3NF wordt beschouwd als een sterkere normale vorm dan de 2NF en het wordt beschouwd als een sterkere normale vorm dan 1NF. Daarom is het in het algemeen vereist om een ​​tabel te verkrijgen die voldoet aan het 3NF-formulier, om een ​​tabel te ontbinden die zich in de 2NF bevindt. Evenzo zal het verkrijgen van een tabel die voldoet aan de 2NF een tabel ontleden die zich in de 1NF bevindt. Als een tabel die voldoet aan 1NF echter kandidaatsleutels bevat die alleen uit één attribuut bestaan ​​(dwz niet-samengestelde kandidaatsleutels), zou een dergelijke tabel automatisch voldoen aan 2NF. Ontleding van tabellen resulteert in extra join-bewerkingen (of Cartesiaanse producten) bij het uitvoeren van query's. Dit zal de berekeningstijd verlengen. Aan de andere kant zouden de tabellen die voldoen aan sterkere normale formulieren minder ontslagen hebben dan tabellen die alleen voldoen aan zwakkere normale formulieren.