Sobes.tech
Junior

Wat is normalisatie in een database?

sobes.tech AI

Antwoord van AI

Database-normalisatie is het proces van het organiseren van gegevens in een relationele database met als doel de redundantie (gegevensduplicatie) te verminderen en de gegevensintegriteit te verbeteren. Dit wordt bereikt door grote tabellen op te splitsen in kleinere tabellen en relaties tussen hen te definiëren.

Het belangrijkste doel van normalisatie:

  • Vermindering van gegevensredundantie: Het voorkomen van herhaling van dezelfde informatie op verschillende plaatsen.
  • Verbetering van gegevensintegriteit: Het waarborgen van de nauwkeurigheid en consistentie van gegevens.
  • Flexibiliteit bieden: Het vergemakkelijken van wijzigingen en uitbreidingen van de database-structuur.

Normalisatie wordt gedefinieerd door een reeks regels die normale vormen worden genoemd. De meest voorkomende drie normale vormen zijn:

  1. Eerste normale vorm (1NF):

    • Elke kolom in de tabel moet atomische (ondeelbare) waarden bevatten.
    • Er mogen geen herhalende kolomgroepen zijn.
    • Elke rij moet uniek zijn (via de primaire sleutel).
  2. Tweede normale vorm (2NF):

    • De tabel is in 1NF.
    • Alle niet-sleutelattributen hangen volledig af van de gehele primaire sleutel (indien samengesteld). Er mogen geen partiële afhankelijkheden zijn.
  3. Derde normale vorm (3NF):

    • De tabel is in 2NF.
    • Er zijn geen transitieve afhankelijkheden. Niet-sleutelattributen hangen niet af van andere niet-sleutelattributen.

Er zijn hogere normale vormen (BCNF, 4NF, 5NF, 6NF), maar meestal wordt aangenomen dat 3NF voldoende is voor de meeste praktische doeleinden.

Voorbeeld (vereenvoudigd):

Ongenormaliseerde tabel van klantbestellingen:

Bestel-ID Klantnaam Klantadres Producten Aantal Prijs per stuk
101 Ivan Moskou Laptop 1 50000
101 Ivan Moskou Muis 2 1000
102 Maria Sint-Petersburg Toetsenbord 1 3000

Na normalisatie (bijvoorbeeld tot 3NF):

Bestellingen-tabel:

Bestel-ID Klant-ID Besteldatum
101 1 2023-10-26
102 2 2023-10-26

Klanten-tabel:

Klant-ID Klantnaam Klantadres
1 Ivan Moskou
2 Maria Sint-Petersburg

Bestelregels-tabel:

Bestelregel-ID Bestel-ID Product-ID Aantal Prijs per stuk
1 101 10 1 50000
2 101 20 2 1000
3 102 30 1 3000

Producten-tabel:

Product-ID Productnaam
10 Laptop
20 Muis
30 Toetsenbord

Denenormalisatie is het tegenovergestelde proces van normalisatie, dat soms wordt gebruikt om de leesprestaties van gegevens te optimaliseren ten koste van een toename van redundantie.