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 .
- Sommig Schrijfgerij is een Potlood.
- Elk Potlood is een Schrijfgerei.
OONF in het Conceptuele model
In het conceptuele ontwerp zijn dit 3 entiteiten.
- Schrijfgerij is abstract
- Pen is een verbijzondering van Schrijfgerij.
- 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
|