Wat is normalisatie?
sobes.tech AI
Antwoord van AI
Data normalisatie in de context van databases is het proces van het organiseren van gegevens om redundantie te verminderen en de gegevensintegriteit te verbeteren. Dit wordt bereikt door grote tabellen op te splitsen in kleinere tabellen en deze te relateren.
Hoofddoel:
- Het elimineren van gegevensduplicatie.
- Het verbeteren van de gegevensintegriteit (het voorkomen van anomalieën bij invoegen, bijwerken en verwijderen).
- Het verhogen van de efficiëntie van opslag en query's (in sommige gevallen).
Het normalisatieproces is gebaseerd op de principes van normale vormen (NF). De meest voorkomende zijn:
- Eerste normale vorm (1NF): Atomair zijn van gegevens in cellen, geen herhaalde kolomgroepen.
- Tweede normale vorm (2NF): Is in 1NF en elke niet-sleutelattribuut hangt volledig af van de primaire sleutel.
- Derde normale vorm (3NF): Is in 2NF en er zijn geen transitieve functionele afhankelijkheden van niet-sleutelattributen via andere niet-sleutelattributen.
Voorbeeld:
Oorspronkelijke tabel "Bestellingen_Producten":
| Bestelling ID | BestelDatum | Product ID | Productnaam | Productprijs | Aantal | Klantnaam | Klantadres |
|---|---|---|---|---|---|---|---|
| 1 | 2023-10-27 | 101 | Telefoon | 500 | 1 | Ivan Pétrov | Pushkina Straat 10 |
| 1 | 2023-10-27 | 102 | Koptelefoon | 100 | 2 | Ivan Pétrov | Pushkina Straat 10 |
| 2 | 2023-10-27 | 101 | Telefoon | 500 | 1 | Maria Ivanova | Lermontova Straat 5 |
Na normalisatie (tot 3NF):
"Bestellingen" tabel:
| Bestelling ID | BestelDatum | Klant ID |
|---|---|---|
| 1 | 2023-10-27 | 1 |
| 2 | 2023-10-27 | 2 |
"Bestellingregels" tabel:
| Regel ID | Bestelling ID | Product ID | Aantal |
|---|---|---|---|
| 1 | 1 | 101 | 1 |
| 2 | 1 | 102 | 2 |
| 3 | 2 | 101 | 1 |
"Producten" tabel:
| Product ID | Productnaam | Productprijs |
|---|---|---|
| 101 | Telefoon | 500 |
| 102 | Koptelefoon | 100 |
"Klanten" tabel:
| Klant ID | Klantnaam | Klantadres |
|---|---|---|
| 1 | Ivan Pétrov | Pushkina Straat 10 |
| 2 | Maria Ivanova | Lermontova Straat 5 |
Echter, overmatige normalisatie kan leiden tot een toename van het aantal joins (JOIN) bij het uitvoeren van queries, wat de prestaties kan verminderen. Daarom wordt bij het ontwerpen van databases vaak gezocht naar een balans tussen de mate van normalisatie en de prestaties. Denormalisatie is het proces waarbij opzettelijk de normale vormen worden geschonden om de prestaties te verbeteren, meestal door redundantie toe te voegen.