Eerste Normaalvorm

Na het inventariseren is het de bedoeling dat we naar de Eerste Normaalvorm moeten gaan. Dit doen we altijd met de volgende stappen:
1. Verwijder alle procesgegevens.
2. Geef de sleutel van de groep aan.
3. Geef de deelverzameling aan die een herhaald aantal keren voorkomt t.o.v. de primaire sleutel.
4. Herhaal de sleutelgegevens van de oorspronkelijke groep samen met de gegevens van de zich herhalende deelverzameling als een nieuwe groep.
5. Verwijder de zich herhalende deelverzameling uit de oorspronkelijke groep.

Oké, dan nu verder met ons voorbeeld:

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

1. Verwijder alle procesgegevens.
In mijn voorbeeld is het natuurlijk overduidelijk wat de procesgegevens zijn. Het regeltotaal wordt berekend uit aantal * prijs en het eindtotaal wordt berekend als som van alle regeltotalen. Deze twee strepen we dus weg.

2. Geef de sleutel van de groep aan.
Een sleutel is altijd uniek. Je ziet ze op het Internet vaak als 'id'. Het kan natuurlijk anders heten, maar het heeft wel dezelfde functie: het uniek identificeren van een tupel.
In ons voorbeeld is de sleutel ordernr, immers een klant kan meerdere keren een order plaatsen, maar de orders kunnen nooit hetzelfde nummer hebben.
De sleutel geven we aan door het te onderstrepen.

3. Geef de deelverzameling aan die een herhaald aantal keren voorkomt t.o.v. de primaire sleutel.
Deze deelverzameling noemt men ook wel eens de Repeterende Groep (RG). Dit zijn de gegevens die vaker voorkomen. In ons voorbeeld is dit het tabelletje met de bestelde goederen. Geef deze gegevens aan in je inventarisatie. We hebben nu dus het volgende:

0NV
ORDERS
ordernr
orderdatum
klantnr
klantnaam
adres
postcode
plaats
RG artnr
RG artomschrijving
RG aantal
RG prijs
X regeltotaal (procesgegeven)
X eindtotaal (procesgegeven)

4. Herhaal de sleutelgegevens van de oorspronkelijke groep samen met de gegevens van de zich herhalende deelverzameling als een nieuwe groep.
Betere beschrijving nodig? Die kan ik niet verzinnen. Kijk maar naar het voorbeeld

0NV
ORDERS
ordernr
orderdatum
klantnr
klantnaam
adres
postcode
plaats
RG artnr
RG artomschrijving
RG aantal
RG prijs

BESTELDE_ARTIKELEN
ordernr
artnr
artomschijving
aantal
prijs

Zoals je ziet heeft de tweede groep nog geen sleutel. De sleutel moet je zodanig kiezen dat er zo min mogelijk herhaalde groepen voorkomen t.o.v. deze sleutel. Het liefst natuurlijk geen herhaalde groepen meer, anders moet je de vorige stappen nog een keer herhalen.
Meestal kun je een combinatie nemen van de sleutel van de oorspronkelijke groep en het gegeven dat in de Repeterende Groep de sleutelrol vervult. De sleutel wordt in dit geval een combinatie van ordernr en artnr.

5. Verwijder de zich herhalende deelverzameling uit de oorspronkelijke groep.
Hier moeten we de RG dus weer opruimen en dan hebben we de Eerste Normaalvorm:

1NV
ORDERS
ordernr
orderdatum
klantnr
klantnaam
adres
postcode
plaats

BESTELDE_ARTIKELEN
ordernr
artnr
artomschrijving
aantal
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.