Tweede Normaalvorm

Nu is het tijd om naar de Tweede Normaalvorm te gaan. Dit doen we ook weer met een aantal vaste stappen:
1. Geef de attributen aan die niet functioneel afhankelijk zijn van de volledige sleutel.
2. Formeer een aparte groep voor ieder deel van de sleutel waarvan de attributen functioneel afhankelijk zijn.
3. Neem in iedere groep de attributen met het bijbehorende sleuteldeel op en wijs de primaire sleutel aan.
4. Verwijder deze attributen uit de oorspronkelijke groep.

Het voorbeeld:

http://fratsloos.nl/phphulp/tutplaatje/afleverbon1.gif

1. Geef de attributen aan die niet functioneel afhankelijk zijn van de volledige sleutel.
We herhalen nog even de Eerste Normaalvorm:

1NV
ORDERS
ordernr
orderdatum
klantnr
klantnaam
adres
postcode
plaats

BESTELDE_ARTIKELEN
ordernr
artnr
artomschrijving
aantal
prijs

De eerste groep komt niet in aanmerking voor deze stap omdat het niet beschikt over een samengestelde sleutel. Binnen de andere groep zijn er wel gegevens die functioneel afhankelijk zijn van een deel van de sleutel.

Kijk maar eens naar artomschrijving en prijs. Blijkbaar zijn deze afhankelijk van artnr en niet van ordernr. Je kunt dit nagaan door te kijken wat er veranderd als het artnr gewijzigd wordt.

We geven dit zo aan in het voorbeeld:

1NV
ORDERS
ordernr
orderdatum
klantnr
klantnaam
adres
postcode
plaats

BESTELDE_ARTIKELEN
ordernr
> artnr
> artomschrijving
aantal
> prijs

Let erop dat aantal niet alleen afhankelijk is van artnr. Het aantal per artikel kan verschillen per order.

2. Formeer een aparte groep voor ieder deel van de sleutel waarvan de attributen functioneel afhankelijk zijn.
Het kan gebeuren dat een samengestelde sleutel in meerdere delen gesplitst kan worden en dat van ieder deel afzonderlijk attributen functioneel afhankelijk zijn. Er moeten dan meerdere groepen gevormd worden. In het voorbeeld ontstaat slechts één nieuwe groep: ARTIKELEN.

3. Neem in iedere groep de attributen met het bijbehorende sleuteldeel op en wijs de primaire sleutel aan.

1NV
ORDERS
ordernr
orderdatum
klantnr
klantnaam
adres
postcode
plaats

BESTELDE_ARTIKELEN
ordernr
> artnr
> artomschrijving
aantal
> prijs

ARTIKELEN
artnr
artomschrijving
prijs

4. Verwijder deze attributen uit de oorspronkelijke groep.
Na deze stap hebben we onze Tweede Normaalvorm en begint het al lekker op te schieten:

2NV
ORDERS
ordernr
orderdatum
klantnr
klantnaam
adres
postcode
plaats

BESTELDE_ARTIKELEN
ordernr
artnr
aantal

ARTIKELEN
artnr
artomschrijving
prijs

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Normaliseren inleiding
  2. Nulde Normaalvorm
  3. Eerste Normaalvorm
  4. Tweede Normaalvorm
  5. Derde Normaalvorm
  6. Afsluiting
  7. Begrippen & Literatuur

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.