A.G. Hofman
Evaluatie van relationele databasepaketten dQuery en Paradox t.a.v. de
geschiktheid voor het implementeren van I/R-data-modellen.
Computeropdracht,
Rapport 92.3.LT.3023, Sectie Transporttechniek en Logistieke Techniek.
Het Datamodel
Een data-model bestaat uit 'entiteiten'. Deze worden als volgt gedefinieerd
[Blanken]: Een entiteit is een onderscheidbaar object waarover informatie
moet worden bijgehouden. In een database worden entiteiten geclassificeerd.
Entiteiten waarover men dezelfde soort informatie wil bijhouden worden in
dezelfde klasse geplaatst. De entiteiten behoren dan tot hetzelfde
'entiteit-type' (entity-class). In het data-model worden entiteitt-typen
aangegeven met een rechthoek.
Tussen verschillende entiteiten kan een verband bestaan, men noemt dit een
'associatie'. Een associatie verbindt entiteiten uit een bepaalde klasse met
entiteiten uit dezelfde of een andere klasse [Blanken]. Ook associaties
worden in klassen geplaatst, 'association classes'. In het data-model worden
associaties aangegeven met een rechthoek met afgeronde hoeken. De collectieve
naam voor entiteiten en associaties is 'identiteiten'.
Om informatie aan een identiteit toe te voegen, maakt men gebruik van
'attributen'. Een attribuut van een identiteit-type kent aan een identiteit van
dat type een waarde toe [zie: H. Blanken en S. van der Honig "Database-management",
Teleac, Utrecht (1992)]. In het data-model worden in de bijbehorende
tekst attributen aangegeven. Van entiteit-typen kunnen andere entiteit-typen
afgeleid worden. De afgeleide entiteit-typen erven de attributen van de typen
waarvan ze zijn afgeleid en zijn existentieel van ze afhankelijk. Dit laatste
wil zeggen dat als een entiteit van het 'moedertype' verwijderd wordt, al haar
kinderen ook verwijderd worden. Een afleiding van entiteittypen wordt aangegeven
met een kraaiepoot.
Identiteiten uit eenzelfde klasse hebben soms verschillende attributen, die
elk slechts betrekking hebben op een deel van de identiteiten. In de
database ontstaan dan grote tabellen met veel velden, waarvan een groot deel
leeg is. Dit is erg onoverzichtelijk. Identiteiten kunnen in dat geval
gecategoriseerd worden. Categorisatie vindt plaats op grond van overeenkomstige
attributen, zodat iedere identiteit tot één en slechts
één categorie behoort. Categorisatie wordt in het data-model met
een dubbele pijl aangegeven. Het data-model dat voor deze opdracht gebruikt is
staat in bijlage A.
Entiteit/relatie diagram
Alvorens dit data-model om te zetten in een relationele database wordt het
eerst omgezet in een Entiteit/Relatie-diagram, zoals gebruikt in de
Teleac-cursus [Blanken]. Het zo verkregen diagram kan rechtstreeks vertaald
worden in een relationele database.
In het diagram worden entiteit-typen aangegeven met een rechthoek, attributen
met een ovaal. Vanuit een entiteit-type wijst een pijl naar een bijbehorend
attribuut. Afgeleide entiteit-typen wijzen met een dikke pijl naar het
entiteit-type, waarvan ze zijn afgeleid. Relaties tussen entiteit-typen worden
aangegeven met een verbinding tussen beide entiteit-typen met boven de
verbindingslijn de naam van de relatie. Aan de uiteinden van de
verbindingslijnen wordt aangegeven hoevaak het entiteit-type minimaal en
maximaal in de relatie voorkomt. Hierbij staat een rondje voor 0 keer, een
streepje voor één keer en een kraaiepoot voor veel keren.
In dit geval kan een document dus nul of meerdere keywords hebben en kan een
keyword op nul of meerdere documenten voorkomen. Een location daarentegen
heeft altijd maar één 'Client', terwijl een Client wel op
meerdere locations kan voorkomen. Tenslotte worden geaggregeerde
entiteittypen aangegeven met een rechthoek met schuine streepjes in de
hoeken. Geaggregeerde entiteiten zijn relaties tussen twee entiteit-typen,
die eigen attributen hebben.
In dit geval is Location een geaggregeerd entiteit-type.
Bij de omzetting van het data-model in het E/R-diagram is een andere
naamgeving gebruikt en zijn een paar aanpassingen gemaakt.
Rapporten studenten Transporttechniek en Logistieke Techniek
Gewijzigd: 2008.01.19;
logistics@3mE.tudelft.nl
, TU Delft
/ 3mE
/ TT
/ LT.