OONF

Maandag, 23 september 2002

Wat is de
Object Oriented Normaalvorm?

Vorige week las u dat de derde normaalvorm prima is om gegevens te modelleren tot een logisch database ontwerp.

OONF Definitie

Een verzameling is in OONF
indien deze in 3NF is en
louter zinvolle data elementen heeft.

Een voorbeeld

In een bekertje staan pennen en potloden van verschillende kleur. In 3NF zijn er maar 2 entiteiten. De attributen Laatst geslepen en inktsoort zijn soms zinvol, soms niet. Laatst geslepen heeft alleen betekenis voor potloden. Het is niet zinvol om een pen te slijpen.

Inktsoort heeft alleen betekenis voor pennen.

Beschrijving 3NF OONF
  • Alleen potloden kunnen geslepen worden.
  • Alleen pennen hebben inkt van een bepaalde soort.
bekertje nummer
bekertje grootte
bekertje nummer
bekertje grootte
schrijfgerij nummer
kleur
laatst geslepen
inktsoort
* bekertje nummer
schrijfgerij nummer
kleur
* bekertje nummer
* schrijfgerij nummer
inktsoort
* schrijfgerij nummer
laatst geslepen
De OONF is op het eerste gezicht wat merkwaardig, met 3 entiteiten die dezelfde sleutel hebben.

De relaties van Schrijfgerij met Pen en Potlood zijn van het bijzondere type one-to-sometimes-one. Conceptueel model van Bekertje, Pen en Potlood

  • Sommig Schrijfgerij is een Potlood.
  • Elk Potlood is een Schrijfgerei.

OONF in het Conceptuele model

In het conceptuele ontwerp zijn dit 3 entiteiten.
  1. Schrijfgerij is abstract
  2. Pen is een verbijzondering van Schrijfgerij.
  3. Potlood is ook een verbijzondering van Schrijfgerij.

Database ontwerp

In het fysieke database ontwerp kunt u
  • 3 afzondelijke tabellen implementeren, met foreign keys van zowel Pen als Potlood naar Schrijfgerij.
  • 2 tabellen implementeren, voor Potlood en Pen, na denormalisatie van alle attributen van Schrijfgerij.
  • 1 tabel implementeren door de drie te combineren, een stap terug van OONF naar 3NF.

Object model

Bij het mappen van een conceptueel model naar een OO model blijft de OONF overeind. Tot de volgende week,
Henk Jan Nootenboom