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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
Appel              groon
Peer              groen
Banaan            geel

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)
PHP script in nieuw venster Selecteer het PHP script
1
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

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

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Het datamodel.
  2. Waarom schrijf ik deze tut.
  3. In deze tut zal ik het volgende behandelen
  4. Wat is normalisatie van een database.
  5. de bedenker
  6. Nu een veel belangrijker vraag
  7. 2e reden
  8. de query

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.