Het behandelen van repeterende attribuuttypen (stap 5)
Maak, indien nog niet aanwezig, voor repeterende attribuuttypen een nieuwe tabel of voeg ze toe aan een tabel die ontstaan is als gevolg van het opbreken van een n:m relatie (een relatietabel).
Het uitvoeren van deze stap levert tabellen op die in de eerste normaalvorm staan.
De regel bij het is de volgende:
Als een gegevenstype een relatie betreft met een secundair entiteittype b (of een groep van secundaire entiteittypen) en dit gegevenstype komt repeterend voor bij een primair entiteittype a uit het semantische gegevensmodel, dan wordt dit gegevenstype niet als attribuuttype toegevoegd aan tabel A, maar aan een nieuwe tabel B.
Voor deze nieuwe tabel worden de sleutels bepaald. Voor de primaire sleutel heb je de keuze uit twee alternatieven. Deze keuze hangt af van de relatie tussen de nieuwe en de oude tabel. Als deze n:m is, wordt de sleutel samengesteld uit de sleutel van de oude tabel en het attribuuttype dat de identificatie vormt van het afgesplitste secundaire entiteittype.
Voorbeeld:
medewerker {heeft verlof op dag} leidt tot de tabel VERLOFDAG, die een n:m-relatie heeft met de tabel MEDEWERKER (immers, op een dag kunnen meerdere medewerkers verlof hebben).
De tabelbeschrijving luidt dan: VERLOFDAG (medewerkernummer, datum,
..).
Als de relatie tussen de oude en nieuwe tabel 1:n is, wordt de primaire sleutel alleen het attribuuttype dat de identificatie vormt van het afgesplitste secundaire entiteittype.
Voorbeeld:
medewerker {is bereikbaar op mobiel-telefoonnummer} leidt tot de tabel MOBIELNUMMER, die een 1:n-relatie heeft met de tabel MEDEWERKER (immers, een mobiel nummer hoort slechts bij één persoon).
De tabelbeschrijving luidt dan: MOBIELNUMMER (telefoonnummer, medewerkernummer,
..).
Toevoegen van de overige attribuuttypen aan de tabellen (stap 6)