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

Cursus database ontwerpen

De veel op veel relatie

De veel op veel relatie is een relatie waarbij meerdere rijen uit tabel A gekoppeld kunnen zijn aan meerdere rijen uit tabel B. Een voorbeeld is een school, waarbij docenten les geven aan studenten. Elke docent geeft les aan 0, 1 of meer studenten. Andersom kan elke student les krijgen van 0, 1 of meerdere docenten. Een ander voorbeeld is de relatie tussen biermerken en leveranciers. Elke leverancier levert meerdere biermerken, maar elk biermerk kan ook door meerdere leveranciers geleverd worden. De veel op veel relatie modelleer je met drie tabellen. Twee brontabellen en één koppeltabel.

Cursus Database Ontwerpen - Veel op veel relatie

Tabel A en tabel B zijn beide tabellen met een primaire sleutel. Tabel A_B verbindt records uit tabel A en B en heet een 'koppeltabel'. Een koppeltabel bestaat uit maar twee kolommen die allebei een vreemde sleutel bevatten. De vreemde sleutel in de linkerkolom verwijst naar de primaire sleutel uit tabel A en die in de rechterkolom naar de primaire sleutel uit tabel B. De primaire sleutel in koppeltabel A_B is samengesteld uit de twee vreemde sleutels. Je ziet in het voorbeeld dan ook dat de combinatie van de twee velden uniek moet zijn in koppeltabel A_B. In het klantcontactsysteem komt (vooralsnog) geen veel op veel relatie voor, daarom staat hieronder een voorbeeld met bieren en hun leveranciers.

Tabel bier
bier_id naam
157 Gentse Tripel
158 Uilenspiegel
146 Duvel
123 Leffe
222 Brugse Tripel
160 Sint Bernardus Pater
163 Jupiler
Tabel bier_leverancier
bier_id leverancier_id
157 AC001
157 AB899
157 AC009
158 AC009
163 AC009
160 AB999
163 AB999
222 AB999
123 AB999
146 AB999
158 AB999
157 AB999
Tabel leverancier
leverancier_id naam
AB999 De vrolijke drinker
AC001 Horeca Import NL
AC002 van Gent bierimport
AB899 Jansen Horeca
AC008 De bierleverancier
AC009 Petersen Drankenhandel

Bovenstaande tabellen koppelen bieren en leveranciers in een veel op veel relatie. Eén bier kan door 0, 1 of meerdere leveranciers geleverd worden. Gentse Tripel (157) wordt bijvoorbeeld geleverd door Horeca Import NL (157, AC001), Jansen Horeca (157, AB899) en Petersen Drankenhandel (157, AC009). Andersom levert Petersen Drankenhandel 3 bieren uit de bierentabel, te weten Gentse Tripel (157, AC009), Uilenspiegel (158, AC009) en Jupiler (163, AC009).

Merk op dat in bovenstaande tabellen de primaire sleutels in de tabelkop onderstreept is weergegeven. In modellen van relationele databases worden primaire sleutels vaak onderstreept. Zoals je ziet is de primaire sleutel van de koppeltabel 'bier_leverancier' samengesteld uit twee velden. De combinatie van deze velden moet dus uniek zijn.


  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.