Nu een veel belangrijker vraag
Waarom is de normalisatie bedacht. Zoals ik al eerder aangaf word de database vaak gebruikt als een veredelde spreadsheet. Dat is echter ver beneden de waardigheid van een database. Een database heeft namelijk behalve de gegevens, ook nog de mogelijkheid in huis de gegevens te bewaken.
Dat is de belangrijkste reden om te normaliseren.
Terug naar het voorbeeld van het fruit
Zie je het verschil? De appel is groon geworden. Dat was met een goed datamodel niet gebeurt. Waarom zou je een appel de mogelijkheid geven een kleur aan te nemen welke niet eens bestaat?
Daarom hebben we nu 2 tabellen. 1 met fruit en 1 met kleuren.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Tabel fruit
Fruit_id Fruit_naam Fruit_kleur_id
1 Appel 1
2 Peer 1
3 banaan 2
Tabel kleuren
Fruit_kleur_id Fruit_kleur
1 Groen
2 Geel
3 Rood
Fruit_id Fruit_naam Fruit_kleur_id
1 Appel 1
2 Peer 1
3 banaan 2
Tabel kleuren
Fruit_kleur_id Fruit_kleur
1 Groen
2 Geel
3 Rood
Nu is het in ieder geval niet meer mogelijk voor een appel om groon te worden want die staat niet in het lijstje. Dit is een soort van constraint key. Deze keys zijn in de database wereld zeer geliefd. Mischien heb je wel eens de melding constraint key violation gehad. Bij zo'n melding beschermt de database de gegevens. Er wordt bijvoorbeeld iets weggegooid dat nog in gebruik is. Zie ook:
http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
« vorige pagina | volgende pagina »
Inhoudsopgave
- Het datamodel.
- Waarom schrijf ik deze tut.
- In deze tut zal ik het volgende behandelen
- Wat is normalisatie van een database.
- de bedenker
- Nu een veel belangrijker vraag
- 2e reden
- de query