Sobes.tech
Middle

Wat weet je over normale vormen in databases?

sobes.tech AI

Antwoord van AI

Normale vormen (NF) zijn een verzameling regels en aanbevelingen voor het ontwerpen van de structuur van een relationele database, gericht op het minimaliseren van gegevensredundantie en het voorkomen van anomalieën bij het invoegen, bijwerken en verwijderen.

Belangrijkste normale vormen:

  • Eerste normale vorm (1NF):

    • Elke attribuut (kolom) moet atomische (ondeelbare) waarden bevatten.
    • Afwezigheid van herhaalde attribuutgroepen.
    • Elke rij moet uniek zijn (primaire sleutel aanwezig).
  • Tweede normale vorm (2NF):

    • Is in 1NF.
    • Elke niet-sleutelattribuut moet volledig afhankelijk zijn van de gehele primaire sleutel (bij samengestelde sleutels).
  • Derde normale vorm (3NF):

    • Is in 2NF.
    • Afwezigheid van transitieve afhankelijkheden van niet-sleutelattributen van de primaire sleutel (een niet-sleutelattribuut mag niet afhankelijk zijn van een ander niet-sleutelattribuut).
  • Boyce-Codd normaalvorm (BCNF):

    • Strengere versie van 3NF.
    • Elke niet-triviale $X \to Y$ afhankelijkheid moet $X$ als superkey hebben.
  • Vierde normale vorm (4NF):

    • Is in BCNF.
    • Afwezigheid van multivalued dependencies.
  • Vijfde normale vorm (5NF):

    • Is in 4NF.
    • Afwezigheid van join-afhankelijkheden.

Doelen van normalisatie:

  • Vermindering van gegevensredundantie.
  • Voorkomen van anomalieën (invoegen, bijwerken, verwijderen).
  • Waarborgen van gegevensintegriteit.
  • Vereenvoudigen van de structuur van de database.

Voorbeeld:

Tabel met redundantie (niet in 1NF):

OrderID Product Prijs
1 Laptop, Muis 1000, 20
2 Toetsenbord 50

Genormaliseerde tabel (in 1NF en hoger):

Tabel "Bestellingen":

OrderID
1
2

Tabel "Bestelregels":

RegelID OrderID Product Prijs
1 1 Laptop 1000
2 1 Muis 20
3 2 Toetsenbord 50

Normalisatie is een belangrijke stap in het ontwerp, maar overmatige normalisatie kan leiden tot een toename van het aantal joins bij queries, wat de prestaties negatief kan beïnvloeden. De keuze van het optimale normalisatieniveau hangt af van de specifieke vereisten en afwegingen. Soms wordt denormalisatie gebruikt om de prestaties in bepaalde scenario’s te optimaliseren, bewust de regels van normale vormen overtredend.