Typeren van beweringen
Zoals we in het objectmodel de objecten groepeerden tot objecttypen, gaan we in het gegevensmodel ook de beweringen groeperen tot beweringstypen. Omdat het van deze beweringstypen niet meer zinvol is te spreken van waar of onwaar, hanteren we de term gegevenstype als synoniem voor beweringstype, waarbij de term gegevenstype de voorkeur heeft in verband met het gangbare taalgebruik. We doen immers aan gegevensmodellering.
We definiƫren het begrip "gegevenstype" als volgt:
Een gegevenstype is een verzameling beweringen met dezelfde samenstelling.
Wat verstaan we in dit verband onder samenstelling? Dit laat zich het beste uitleggen aan de hand van een voorbeeld. Kijken we naar de reeds genoemde bewering
P12345 is een product van Alcatel.
Een andere bewering zou kunnen luiden:
P12346 is een product van Lucent.
In beide gevallen zien we een bewering die bestaat uit een verband tussen twee entiteiten 1. Dat is echter niet voldoende om te spreken van eenzelfde samenstelling. Immers, de bewering P12345 is in voorraad bij Rayon Noord is wel een verband tussen twee entiteiten, maar we beschouwen deze toch niet als van hetzelfde type als de voorgaande. Het verband tussen de twee entiteiten is anders en, in dit geval, de tweede entiteit is van een ander type dan in de andere beweringen.
We zeggen daarom dat twee beweringen dezelfde samenstelling hebben, als- de verbandnamen (is een product van) identiek zijn en
- de entiteiten op de overeenkomende posities tot dezelfde entiteittypen (respectievelijk printplaat en leverancier) behoren.
We beschrijven het uit dit voorbeeld resulterende gegevenstype aldus:
printplaat is een product van leverancier.
Bij de gegevensmodellen handhaven we de conventie uit het objectmodel om objecttypen in hoofdletters (in dit elektronische handboek om redenen van leesbaarheid vet) aan te duiden. De verbandnamen worden in kleine letters geschreven.
Het typeren van gegevens gebeurt dus door het typeren van de entiteiten die in de gegevens voorkomen. We beschouwen deze als de variabelen. De verbanden worden als constanten gezien.
De algemene vorm van een gegevenstype wordt daarmee:
entiteittype verbandnaam entiteittype.
Uit het bovenstaande kan worden opgemaakt dat het typeren van de gegevens die een bepaalde gebruiker met een informatiesysteem uitwisselt, inhoudt, dat we moeten bepalen van welk type de entiteiten zijn die in de betreffende gegevens kunnen voorkomen. Zo zou het kunnen zijn dat een bepaalde gebruiker het gegeven P12345 is een product van Alcatel beschouwt als een gegeven van het type: printplaat is een product van leverancier. Een andere gebruiker zou dezelfde verbanden kunnen onderkennen tussen switch en leverancier. De keuze hangt af van de gegevens die de desbetreffende gebruiker uitwisselt met het informatiesysteem.
Uit het oogpunt van gegevensbeheer kunnen deze twee gegevenstypen veralgemeniseerd worden tot het gegevenstype:
artikel is een product van leverancier.
Deze keuze wordt onderbouwd met het bedrijfsobjectmodel, waarin printplaat, switch en andere soortgelijke objecttypen gegeneraliseerd zijn in het objecttype artikel. In een notendop zien we hier het onderscheid tussen informatiemodel en semantisch gegevensmodel.
noot:1 Een verband tussen entiteiten wordt ook wel relatie of associatie genoemd.