Wat is een datamodel?
Een datamodel laat de logische structuur van een database zien, inclusief de relaties en beperkingen die bepalen hoe gegevens opgeslagen en toegankelijk gemaakt kunnen worden. Een individuele database model wordt ontworpen op basis van de regels en concepten van een meer uitgebreid datamodel dat een ontwerper uitkiest om mee te werken. De meeste datamodellen kunnen worden weergegeven door een bijbehorend database diagram.
In minder dan 5 minuten aan de slag met Lucidchart
- Gebruik onze online tool om je eerste online diagram te maken op basis van een sjabloon of leeg canvas of importeer een document.
- Voeg tekst, vormen en lijnen toe om je stroomdiagram aan te passen.
- Meer informatie over het aanpassen van de stijl en opmaak in je stroomdiagram.
- Vind wat je nodig hebt met 'Functie zoeken'.
- Deel je stroomdiagram met je team om samen te werken.
Soorten datamodellen
Er zijn veel soorten datamodellen. Een aantal veelvoorkomende soorten zijn:
- Hiërarchisch datamodel
- Relationeel model
- Netwerkmodel
- Objectgeoriënteerd datamodel
- Entity Relationship-model
- Documentmodel
- Entiteit-attribuut-waarde-model
- Sterschema
- Het objectrelationeel model, een combinatie van de twee onderdelen waaruit de naam bestaat
Je kunt een datamodel beschrijven met een van bovenstaande modellen, afhankelijk van verschillende factoren. De belangrijkste factor is of het database management systeem (DBMS) dat je gebruikt een bepaald model ondersteunt. De meeste database management systemen zijn gebouwd met een bepaald datamodel in gedachten en vereisen dat gebruikers dat model gebruiken, hoewel sommige systemen verschillende modellen ondersteunen.
Daarnaast worden er verschillende modellen gebruikt voor de verschillende fasen van het database ontwerpproces. Conceptuele datamodellen op een hoog niveau zijn het meest geschikt voor het in kaart brengen van relaties tussen gegevens zoals mensen ze waarnemen. Logische modellen, gebaseerd op gegevens, beschrijven gedetailleerd de manieren weer waarop gegevens op de server zijn opgeslagen.
Het kiezen van een datamodel betekent ook een evenwicht zoeken tussen uw prioriteiten voor de database en de mogelijkheden van een bepaald model. Het kan hierbij gaan om snelheid, kostenbesparing, bruikbaarheid of andere prioriteiten.
Hieronder geven we je meer uitleg over een aantal veelgebruikte datamodellen.
Relationeel model
Het meestgebruikte model is het relationele model dat gegevens sorteert in tabellen, ook wel relaties genoemd. Iedere tabel bestaat uit kolommen en rijen. Iedere kolom bevat een attribuut van de betreffende entiteit, zoals prijs, postcode of geboortedatum. De attributen in een relatie worden samen een domein genoemd. Een bepaald attribuut of een combinatie van attributen wordt gekozen als primaire sleutel waarnaar verwezen kan worden in andere tabellen; dan wordt het een refererende sleutel genoemd.
Iedere rij, ook wel een tupel genoemd, bevat gegevens over een specifieke instantie van de betreffende entiteit, zoals een bepaalde werknemer.
Het model houdt ook rekening met soorten relaties tussen deze tabellen, waaronder een-op-een, een-op-veel en veel-op-veel. Een voorbeeld:
Binnen de database kunnen tabellen genormaliseerd worden of zo gemaakt worden dat ze voldoen aan normalisatie regels waardoor de database flexibel, aanpasbaar en schaalbaar gemaakt wordt. In een genormaliseerde tabel is ieder stukje gegevens atomisch, opgesplitst in de kleinste nuttige deeltjes.
Relationele databases worden meestal geschreven in Structured Query Language (SQL). Dit model werd in 1970 geïntroduceerd door E.F. Codd.
Hiërarchisch model
Het hiërarchische model organiseert gegevens in een boomachtige structuur, waarbij elk record een enkele ouder of wortel heeft. Nevengeschikte records worden in een bepaalde volgorde gesorteerd. Die volgorde wordt gebruikt als de fysieke volgorde voor het opslaan van de database. Dit model is geschikt voor het beschrijven van veel praktische, real-world relaties.
Dit model werd oorspronkelijk gebruikt door de informatie management systemen van IBM in de jaren '60 en '70, maar tegenwoordig wordt het bijna niet meer gemaakt als gevolg van bepaalde operationele inefficiënties.
Netwerkmodel
Dit netwerkmodel is gebouwd op het hiërarchische model door veel-op-veel-relaties tussen gelinkte records toe te staan, waardoor er records met meerdere ouders kunnen ontstaan. Het model is gebaseerd op een wiskundige verzamelingenleer en wordt gebouwd met verzamelingen gerelateerde records. Iedere verzameling bestaat uit een eigenaar of ouder en een of meer leden of kinderen. Een record kan een lid of kind zijn in meerdere verzamelingen, waardoor dit model complexe relaties kan weergeven.
Het was vooral populair in de jaren '70 nadat het officieel gedefinieerd werd door de Conference on Data Systems Languages (CODASYL).
Objectgeoriënteerd datamodel
Dit model definieert een database als een verzameling objecten, of herbruikbare software-elementen, met geassocieerde functies en methoden. Er zijn verschillende soorten objectgeoriënteerde databases:
Een multimedia database bevat media, zoals afbeeldingen, die niet in een relationele database kunnen worden opgeslagen.
In een hypertext database kan ieder object linken naar ieder ander object. Dit is handig voor het organiseren van veel ongelijksoortige gegevens, maar het is niet ideaal voor numerieke analyses.
Het objectgeoriënteerde datamodel is het meest gekende post-relationele datamodel, omdat het tabellen bevat, maar niet beperkt is tot tabellen. Dergelijke modellen staan ook bekend als hybride datamodellen.
Object relationeel model
Dit hybride datamodel combineert de eenvoud van het relationele model met een aantal van de geavanceerde functies van het objectgeoriënteerde datamodel. In essentie maakt dit type het voor ontwerpers mogelijk om objecten op te nemen in de familiaire tabel structuur.
Talen en oproep interfaces omvatten SQL3, vendor languages, ODBC, JDBC en eigen oproep interfaces die extensies zijn van de talen en interfaces die gebruikt worden door het relationele model.
Entity Relationship-model
Dit model bevat de relaties tussen wereldlijke entiteiten, zoals het netwerkmodel, maar is niet direct verbonden met de fysieke structuur van de database. In plaats daarvan wordt dit model vaak gebruikt voor het conceptueel ontwerpen van een database.
Hierin worden mensen, plaatsen en dingen waarover gegevenspunten worden opgeslagen, entiteiten genoemd, waarvan ieder bepaalde attributen heeft die samen het domein vormen. De kardinaliteit, of relaties tussen entiteiten, wordt ook in kaart gebracht.
Een veelgebruikte vorm van het ER-diagram is het sterschema, waarin een centrale feitentabel verbonden is met verschillende dimensionale tabellen.
Andere databasemodellen
Er zijn nog veel andere databasemodellen die gebruikt zijn of worden.
Inverted file-model
Een database gebouwd met de inverted file-structuur is ontworpen om snel zoeken in tekst gemakkelijker te maken. In dit model worden gegevens geïndexeerd als series sleutels in een opzoektabel, waarbij de waardes wijzen naar de locatie van de bijbehorende bestanden. Deze structuur kan vrijwel onmiddellijk resultaten bieden, bijv. in grote hoeveelheden gegevens en analytics.
Dit model wordt sinds 1970 gebruikt door het ADABAS-databasemanagementsysteem van Software AG en wordt tegenwoordig nog steeds ondersteund.
Plat model
Het platte model is het oudste en meest eenvoudige datamodel. Het bevat alle gegevens in één tabel, bestaande uit kolommen en rijen. Voor toegang tot de gegevens of om deze te wijzigen, moet de computer het volledige vlakke bestand in het geheugen lezen. Dit maakt het model inefficiënt voor grotere verzamelingen gegevens.
Multidimensionaal model
Dit is een variant van het relationele model, ontworpen om analytische processen te verbeteren en vergemakkelijken. Waar het relationele model geoptimaliseerd is voor online transaction processing (OLTP) is dit model ontworpen voor online analytical processing (OLAP).
Iedere cel in een dimensionale database bevat gegevens over de dimensies bijgehouden door de database. Het ziet eruit als een verzameling kubussen in plaats van tweedimensionale tabellen.
Semi-gestructureerd model
In dit model zijn de structurele gegevens in het databaseschema ingesloten in de gegevens zelf. Het onderscheid tussen gegevens en schema blijft vaag. Dit model is nuttig voor het beschrijven van systemen, zoals bepaalde webgebaseerde gegevensbronnen die we behandelen als databases maar die niet in een schema passen. Het is ook nuttig voor het beschrijven van interacties tussen databases die niet bij hetzelfde schema horen.
Contextmodel
Dit model kan elementen uit andere databasemodellen opnemen indien nodig. Er worden elementen samengevoegd uit de objectgeoriënteerde, semigestructureerde en netwerkmodellen.
Associatief model
Dit model verdeelt alle gegevenspunten op basis van of ze een entiteit of een associatie beschrijven. In dit model is een entiteit iets wat onafhankelijk bestaat, terwijl een associatie iets is wat alleen in relatie tot iets anders bestaat.
Het associatieve model structureert gegevens in twee verzamelingen:
- Een verzameling items, ieder met een unieke identificatie, naam en type
- Een verzameling links, ieder met een unieke identificatie en unieke identificaties van een bron, werkwoord en doel. Het opgeslagen feit heeft te maken met de bron en elke identificatie kan verwijzen naar een link of een item.
Andere, minder gebruikte databasemodellen zijn:
- Semantisch model, waarin informatie staat over hoe de opgeslagen gegevens zich verhouden tot de werkelijkheid
- XML-database, waarin gegevens gespecificeerd en zelfs opgeslagen kunnen worden in XML-formaat
- Named graph
- Triplestore
NoSQL-datamodellen
Naast het object-datamodel zijn er andere non-SQL-modellen verschenen in contrast met het relationele model:
Het graph database-model, dat nog flexibeler is dan een netwerkmodel, waarin ieder knooppunt met ieder ander knooppunt verbonden kan worden.
Het multi-value-model, dat anders is dan het relationele model omdat attributen een lijst gegevens kunnen bevatten in plaats van slechts een enkel gegevenspunt.
Het document model, dat is ontworpen voor het opslaan en beheren van documenten of semi gestructureerde gegevens, in plaats van atomische gegevens.
Databases op het web
De meeste websites vertrouwen op een soort database om gegevens te organiseren en aan gebruikers te tonen. Als iemand de zoekfuncties op deze sites gebruikt, worden hun zoektermen omgezet in zoekopdrachten voor een databaseserver. Meestal wordt de webserver via middleware met de database verbonden.
De brede aanwezigheid van databases maakt dat ze bijna in ieder veld gebruikt kunnen worden, van online shopping tot het specifiek benaderen van een kiezerssegment als onderdeel van een politieke campagne. Verschillende industrieën hebben eigen normen ontwikkeld voor het ontwerpen van databases, van luchttransport tot voertuigproductie.