Skip to main content

Splitsen N:M relatie

In de vorige les hebben we de eerste stappen van het normaliseren geleerd.

Stap 1, maak een lijst

Stap 2, splits waar nodig  de attributen

Stap 3, splits waar nodig in twee entiteiten

Nu gaan we nog een stap toevoegen.

In onze vorige les hadden we het over leerlingen en hun studiecoach. In dat voorbeeld had één studiecoach meerdere leerlingen maar een leerling had één studiecoach.

De relatie studiecoach:leerling was 1:N

Maar het kan ook anders, namelijk:

De relatie studiecoach:leerling is N:M

Dat betekent dat een studiecoach meerdere leerlingen heeft, maar dat andersom ook geldt dat een leerlingen meerdere studiecoaches heeft.

Laten we de stappen nog een keer doorlopen met dit nieuwe voorbeeld.

Stap1, maak een lijst

image-1632409442722.png

In dit voorbeeld heeft Bailey Spears twee studiecoaches.

Stap 2, splits attributen

Is in dit voorbeeld al gedaan dus hoeft niet verder meer.

Stap 3, splits waar nodig in entiteiten

We moeten nu ook splitsen, maar omdat we meer studiecoaches per leerling kunnen hebben moeten we anders splitsen. Let op dat in het voorbeeld er twee studiecoaches bij één leerling horen. Het zou ook zo kunnen zijn dat er drie of nog meer studiecoaches aan één leerling kunnen worden gekoppeld.

Als we dit soort situaties tegen komen waar de relatie N:M is. dan moeten we splitsen via een koppelentiteit.

image-1632410260924.png

We zien nu drie entiteiten; leerling, studiecoach en de koppelentiteit. Kijk goed naar de nummers in de koppelentiteit. Zie je hoe de koppeling werkt?

Keys van de koppelentiteit

 In de koppelentiteit moet je nog een PK plaatsen. Een PK mag een samengestelde key zijn Dat is een key die uit twee of meer velden bestaat. De combinatie leerling_id en studiecoach_id is altijd uniek en zou dus een PK kunnen zijn. In de praktijk is het echter veel eenvoudiger om gewoon nog een extra key ID toe te voegen.

Opdracht 1

Maak een ERD van de volgende drie entiteiten. Neem daarbij ook de koppelentiteit op. Benoem de keys, PK en FK en tekne de relaties op de juiste manier.

image-1632410260924.png

Lever een schermafdruk in van je ERD.