Naar de homepage
Homepage Artikelen Contact
Je bevindt je in : Artikelen > Software

Cursus database ontwerpen

Tabellen en de primaire sleutel

Een relationele database bestaat uit tabellen. In deze tabellen zijn gegevens van dezelfde soort in rijen of in vaktaal records opgeslagen. Je zag eerder in deze database-cursus al een voorbeeld van een tabel waarin wat informatie over cursussen is opgeslagen. Die tabel bestaat uit 6 records die elk informatie over één cursus bevatten. Alle 6 de cursussen zijn verschillend, maar van elke cursus is dezelfde informatie opgeslagen.

Voor het klantcontactsysteem dat we willen maken ligt het voor de hand dat we een klanttabel maken. Hieronder staat een voorbeeld van een tabel met klantinformatie.

Cursus Database Ontwerpen - Eerste tabel

Hoe kun je in deze tabel een klant selecteren? Je zou kunnen zoeken op de voornaam. Dat is geen goed idee, want naarmate het aantal klanten in de tabel groeit wordt de kans groter dat er nog een klant komt die Jan heet en dan kun je niet meer met zekerheid de juiste Jan selecteren. Je zou kunnen zoeken op een combinatie, bijvoorbeeld de voornaam en achternaam. Maar hoe lang zou het duren voordat zich een tweede Jan Jansen aanmeldt als klant?

Om klanten uniek te kunnen identificeren moet elke klant gekoppeld zijn aan een uniek stukje informatie, bijvoorbeeld een klantnummer. Deze unieke informatie wordt de primaire sleutel (primary key) genoemd. Een van de belangrijkste regels van het relationeel model is dat alle rijen in een tabel uniek te identificeren zijn door middel van de primaire sleutel. Het cursus_id uit het eerste tabelvoorbeeld op deze pagina is zo'n primaire sleutel.

Er zijn tal van voorbeelden te bedenken van nummers en codes uit het dagelijks leven die waarschijnlijk dienen als primaire sleutel in een database.

  • Een bestelnummer
  • Een rekeningnummer
  • Een sofinummer
  • Een factuurnummer
  • Een klantnummer
  • Een productnummer

Wat hebben al deze codes gemeen?

  • Ze zijn allemaal uniek. Jouw rekeningnummer bestaat altijd maar één keer, net als een factuurnummer, je sofinummer, etc.
  • Ze werken allemaal als toegangsweg naar meer informatie. Aan een factuurnummer is een datum, een bedrag, etc gekoppeld. Aan een productnummer kan een productbeschrijving, een plaatje, etc gekoppeld zijn.

De primaire sleutel wordt dus gebruikt om rijen in tabellen uniek te identificeren en om gegevens in verschillende tabellen aan elkaar te koppelen. Primaire sleutels zijn zoals gezegd altijd uniek en mogen daarom maar 1 keer voorkomen in de kolom. Het is in onderstaande tabel dus niet mogelijk om een nieuwe rij met klantnummer 1 toe te voegen. Geef je aan dat het klantnummer de primaire sleutel is, dan zal het databasesysteem er (voor zover ik weet altijd) automatisch voor zorgen dat klantnummers in die kolom uniek zijn.

Cursus Database Ontwerpen - Tabel met klantnummer

Je kunt aan deze afbeelding overigens niet zien dat het klantnummer de primaire sleutel is. In de ontwerpweergave van de tabel is dat wel te zien.


  1. 1  
  2. 2  
  3. 3  
  4. 4  
  5. 5 
  6. 6  
  7. 7  
  8. 8  
  9. 9  
  10. 10  
  11. 11  
  12. 12  
  13. 13  
  14. 14  
  15. 15  
  16. 16  

Cursus database ontwerpen
  1. 1Introductie
  2. 2Databasegeschiedenis
  3. 3Voordelen en mogelijkheden van relationele databases
  4. 4Klantcontactsysteem
  5. 5Tabellen en de primaire sleutel
  6. 6Gegevens koppelen
  7. 7De één op veel relatie
  8. 8De veel op veel relatie
  9. 9De één op één relatie
  10. 10Database normaliseren
  11. 11De eerste normaalvorm (1NF)
  12. 12De tweede normaalvorm (2NF)
  13. 13De derde normaalvorm (3NF)
  14. 14Het definitieve database-ontwerp
  15. 15Nog een voorbeeld: webwinkel
  16. 16Conclusie
Schrijf voor Tekstenuitleg!
Ben jij goed in schrijven en weet je veel van een computergerelateerd onderwerp? Schrijf dan betaald artikelen voor Tekstenuitleg.net! Lees meer...

De inhoud van Tekstenuitleg is beschermd door auteursrecht en mag niet gekopieerd worden zonder schriftelijke toestemming van Tekstenuitleg.net. Lees svp de voorwaarden.