Diagram Illustration

Inhoud

Een databasemodel 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 databasemodel 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 databasediagram.

Soorten databasemodellen

Er zijn veel soorten datamodellen. Een aantal veelvoorkomende soorten zijn:

  • Hiërarchisch databasemodel
  • Relationeel model
  • Netwerkmodel
  • Objectgeoriënteerd databasemodel
  • Entity Relationship-model
  • Documentmodel
  • Entiteit-attribuut-waarde-model
  • Sterschema
  • Het objectrelationeel model, een combinatie van de twee onderdelen waaruit de naam bestaat

U kunt een database beschrijven met een van bovenstaande modellen, afhankelijk van verschillende factoren. De belangrijkste factor is of het databasemanagementsysteem (DBMS) dat u gebruikt een bepaald model ondersteunt. De meeste databasemanagementsystemen 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 u meer uitleg over een aantal veelgebruikte databasemodellen.

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:

relationeel model

Binnen de database kunnen tabellen genormaliseerd worden of zo gemaakt worden dat ze voldoen aan normalisatieregels 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 informatiemanagementsystemen 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).

netwerkmodel

Objectgeoriënteerd databasemodel

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 multimediadatabase bevat media, zoals afbeeldingen, die niet in een relationele database kunnen worden opgeslagen.

In een hypertextdatabase 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 databasemodel is het meest gekende post-relationele databasemodel, omdat het tabellen bevat, maar niet beperkt is tot tabellen. Dergelijke modellen staan ook bekend als hybride databasemodellen.

objectrelationeel model

Objectrelationeel model

Dit hybride databasemodel combineert de eenvoud van het relationele model met een aantal van de geavanceerde functies van het objectgeoriënteerde databasemodel. In essentie maakt dit type het voor ontwerpers mogelijk om objecten op te nemen in de familiaire tabelstructuur.

Talen en oproepinterfaces omvatten SQL3, vendor languages, ODBC, JDBC en eigen oproepinterfaces 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.

entity relationship-model

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-databasemodellen

Naast het object-databasemodel 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 documentmodel, dat is ontworpen voor het opslaan en beheren van documenten of semigestructureerde 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.