Derde Normaalvorm

De laatste Normaalvorm die ik behandel in deze tutorial is de Derde Normaalvorm. Hiervoor hebben we de volgende stappen:
1. Geef de niet-sleutel attributen aan die functioneel afhankelijk zijn van andere niet-sleutel attributen.
2. Formeer een aparte groep voor ieder attribuut of combinatie van attributen, waar andere attributen functioneel van afhankelijk zijn.
3. Neem in iedere groep de attributen met bijbehorende sleutel op en wijs de primaire sleutel aan.
4. Verwijder de attributen van de nieuwe groep(en) uit de oorspronkelijke groep.

Ik begin nog maar eens met de uitkomst van de Tweede Normaalvorm:

2NV
ORDERS
ordernr
orderdatum
klantnr
klantnaam
adres
postcode
plaats

BESTELDE_ARTIKELEN
ordernr
artnr
aantal

ARTIKELEN
artnr
artomschrijving
prijs

1. Geef de niet-sleutel attributen aan die functioneel afhankelijk zijn van andere niet-sleutel attributen.
Als we kijken in de tabel ORDERS zien we dat er een aantal gegevens zijn die niet afhankelijk zijn van ordernr. Deze zijn klantnaam, adres, postcode en plaats. Deze zijn afhankelijk van het klantnr.
Klantnr is in deze tabel een niet-sleutelattribuut, dus deze stap is makkelijk uit te voeren:
(de afhankelijkheid is aangegeven met een A)

2NV
ORDERS
ordernr
orderdatum
A klantnr
A klantnaam
A adres
A postcode
A plaats

BESTELDE_ARTIKELEN
ordernr
artnr
aantal

ARTIKELEN
artnr
artomschrijving
prijs

2. Formeer een aparte groep voor ieder attribuut of combinatie van attributen, waar andere attributen functioneel van afhankelijk zijn.
Vrij vertaald moeten we voor de groep die we net aangegeven hebben een nieuwe groep maken:

2NV
ORDERS
ordernr
orderdatum
A klantnr
A klantnaam
A adres
A postcode
A plaats

KLANTEN
klantnaam
adres
postcode
plaats

BESTELDE_ARTIKELEN
ordernr
artnr
aantal

ARTIKELEN
artnr
artomschrijving
prijs

3. Neem in iedere groep de attributen met bijbehorende sleutel op en wijs de primaire sleutel aan.
We moeten dus de sleutel waarvan de nieuwe groep afhankelijk is in de nieuwe groep plaatsen, daarna moeten we de sleutel aangeven. De nieuwe groep ziet er dan zo uit:

KLANTEN
klantnr
klantnaam
adres
postcode
plaats

Let er wel op dat klantnr niet zomaar uit ORDERS gehaald kan worden, dan zouden de orders namelijk nooit aan een klant gekoppeld kunnen worden.

4. Verwijder de attributen van de nieuwe groep(en) uit de oorspronkelijke groep.
Als we deze stap hebben gedaan zijn we klaar met het normaliseren. Dit ziet er dan zo uit:

3NV
ORDERS
ordernr
klantnr
orderdatum

KLANTEN
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.