Een schema definieert hoe gegevens in een database zijn georganiseerd. Het specificeert tabellen, kolommen, gegevenstypen, beperkingen en relaties. Het schema is de blauwdruk. De database is het gebouw. Een goed ontworpen schema maakt query's eenvoudig en zorgt voor consistente gegevens. Een slecht ontworpen schema creëert problemen die later moeilijk op te lossen zijn. Het wijzigen van een schema nadat er gegevens bestaan, vereist migraties die applicaties kunnen laten crashen en gegevens kunnen beschadigen.
Schema's bestaan op verschillende niveaus. Het conceptuele schema beschrijft de bedrijfsentiteiten en hun relaties. Het logische schema voegt details toe: tabellen, kolommen en sleutels. Het fysieke schema specificeert de opslag: bestandsgroepen, indexen en partities. Elk niveau is bedoeld voor een andere doelgroep. Bedrijfsanalisten begrijpen het conceptuele schema. Ontwikkelaars werken met het logische en fysieke schema. In sommige databases wordt het schema strikt afgedwongen. In andere is het flexibel. Documentdatabases hebben vaak helemaal geen afgedwongen schema. De applicatie definieert de structuur. Die flexibiliteit versnelt de ontwikkeling, maar verschuift de verantwoordelijkheid naar de applicatie. Zonder schema-afdwinging kunnen er gemakkelijk foute gegevens in de database terechtkomen. De database accepteert alles wat de applicatie aanlevert. Een schema is een contract. Het beschrijft hoe de gegevens eruitzien en welke regels ze volgen. Het schenden van het contract maakt alles wat erop gebouwd is onbruikbaar.
Schema-componenten
- Tabellen — entiteiten in het datamodel
- Kolommen — attributen met gegevenstypen
- Sleutels — primaire en externe sleutels
- Beperkingen — regels voor geldige gegevens
- Indexen — structuren voor queryprestaties
- Weergaven — opgeslagen query's die als tabellen worden weergegeven
Een schema is een plan. Zonder schema is de database een hoop gegevens zonder structuur.
Comments
No comments yet. Be the first to share a thought.
Leave a comment