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
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.
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.
Lever een schermafdruk in van je ERD.