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:
-
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).
-
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.
-
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.