Een datamodel beschrijft hoe gegevens gestructureerd en met elkaar verbonden zijn. Het definieert entiteiten, attributen en relaties. Een klant heeft een adres. Een bestelling heeft orderregels. Een product behoort tot een categorie. Het model is een blauwdruk. Het vertelt ontwikkelaars hoe ze de database moeten bouwen en analisten hoe ze er query's op moeten uitvoeren. Een goed model weerspiegelt de bedrijfsactiviteiten. Een slecht model zorgt voor verwarring die jarenlang aanhoudt.
Modellen bestaan in verschillende niveaus. Het conceptuele model beschrijft bedrijfsentiteiten en hun relaties op een hoog niveau. Het logische model voegt details toe: attributen, sleutels en normalisatie. Het fysieke model specificeert tabellen, kolommen, indexen en opslag. Elk niveau is bedoeld voor een andere doelgroep. Zakelijke belanghebbenden begrijpen het conceptuele model. Ontwikkelaars werken met het fysieke model. Het modelleringsproces dwingt tot duidelijkheid. Wat is een klant precies? Is een prospect een klant? Wat gebeurt er als een bestelling wordt geannuleerd? Deze vragen worden beantwoord tijdens het modelleren, niet tijdens een crisis. Slecht ontworpen modellen veroorzaken problemen die moeilijk op te lossen zijn. Gedenormaliseerde tabellen leiden tot update-anomalieën. Ontbrekende sleutels leiden tot duplicaten. Inconsistente naamgeving leidt tot verwarring. Het wijzigen van een model nadat de gegevens zijn geladen is kostbaar. Het vanaf het begin goed doen is goedkoper, hoewel nooit eenvoudig.
Modelniveaus
- Conceptueel — zakelijke entiteiten en relaties
- Logisch — attributen, sleutels en normalisatie
- Fysiek — tabellen, kolommen, indexen en opslag
- Dimensionaal — ster- en sneeuwvlokschema's voor analyses
Een datamodel is een contract. Het beschrijft de betekenis van de data en hoe deze met elkaar verbonden is. Als je het contract verbreekt, stort alles wat erop gebouwd is in elkaar.
Comments
No comments yet. Be the first to share a thought.
Leave a comment