Inhoud

Het definitieve database-ontwerp

We passen voor onze database de normalisatieregels losjes toe. Hieronder staan de tabellen en hun onderlinge relaties afgebeeld. (Afbeelding komt uit MS Access 2003).

Cursus

In de database zijn klanten gekoppeld aan contactmomenten door middel van het klantnummer. Je ziet daarom in de afbeelding een verbindingslijn tussen het klantnummer in de klanttabel en het klantnummer in de contactmomententabel. In de klantabel is klantnummer de primaire sleutel (dik gedrukt) en in de contactmomententabel is het de vreemde sleutel. Dezelfde koppeling bestaat tussen de contactmomententabel en de communicatietypentabel.

Het soort relatie staat ook in de afbeelding. 1 klant correspondeert met 0 tot oneindig veel contactmomenten. Oneindig wordt weergegeven als een ∞ teken. Hetzelfde geldt voor de relatie tussen contactmomenten en communicatietypes. 1 communicatietype is gekoppeld aan 0 tot oneindig veel contactmomenten. Er is nog wel iets aan te merken op deze database. Hij voldoet niet aan de derde normaalvorm. Er bestaat er een transatieve relatie tussen de postcode en de woonplaats. In Nederland zijn deze uit elkaar af te leiden. Om deze cursus niet nog langer te maken heb ik besloten hiermee vrede te nemen. Ook is het voor een eenvoudige applicatie niet nodig om het af te splitsen.

Een tweede aanmerking is dat de postcode in één veld opgeslagen is, terwijl je de cijfers nog van de letters zou moeten scheiden als je streng bent (atomiciteit). Aan de hand van de eerste 4 cijfers kun je de plaatsnaam, de gemeente en de provincie afleiden. Wil je een postcodetabel aan de database hangen, dan is het dus handig om de postcode te verdelen over twee velden. Voor onze doeleinden is dit echter niet nodig.