aanduidingstype
In een administratie wordt een attribuuttype weergegeven door de naam van het er in betrokken entiteittype. Dat is immers het variabele deel, zoals we zagen. Aan die naam stellen we bepaalde voorwaarden. Hij dient identificerend te zijn; dat wil zeggen, dat geen twee entiteiten dezelfde naam kunnen hebben. Hij dient ook herkend te worden als een naam voor een entiteit van dat specifieke type. Een verzameling namen die aan deze voorwaarden voldoen noemen we een aanduidingtype.
Synoniemen voor deze term zijn: domein, namenstelsel, codestelsel. Daarvan wordt de term codestelsel in het algemeen voor een bepaald soort aanduidingtypen gereserveerd, namelijk korte, niet voor zich sprekende namen. De term waardenbereik is géén synoniem, zoals we duidelijk zullen maken.
Een aanduidingtype definiëren we als:
een verzameling waarden met gelijksoortige betekenis die de attributen, behorende bij het attribuuttype waarvoor het aanduidingtype gedefinieerd is, mogen aannemen.
We kunnen dat als volgt illustreren.
Waarden hebben een gelijksoortige betekenis als zij gelijksoortige entiteiten aanduiden. Elk voorkomen van het attribuuttype dat op een aanduidingtype gedefinieerd is, moet een waarde hebben die voorkomt in dat aanduidingtype. Dat houdt echter niet in dat alle waarden waaruit het aanduidingtype bestaat ook voorkomen in een tabel. Het aanduidingtype geeft slechts de mogelijke waarden aan en is dus ruimer gedefinieerd dan de verzameling van waarden die op een bepaald moment voorkomen in een administratie.
De waarden die op een bepaald moment in een administratie voorkomen moeten een deelverzameling zijn van de waarden uit het gedefinieerde aanduidingtype. Zo zou het aanduidingtype "printkaartnummer" van het entiteittype printkaart gedefinieerd kunnen zijn als de verzameling reeksen van 6 tekens met als kenmerk, dat het eerste teken altijd P is en de volgende vijf een geheel getal vormen dat ligt tussen 10000 en 99999. In de administratie komen daarvan slechts enkele duizenden exemplaren voor.
De afbeelding van dit specifieke aanduidingstype wordt dan:
In de definitie van aanduidingtype komt naar voren dat de waarden waaruit een aanduidingtype bestaat dezelfde betekenis hebben. Deze laatste toevoeging is bijzonder zinvol om onderscheid te kunnen maken tussen aanduidingtypen die toevallig hetzelfde waardebereik hebben. Het waardebereik van het aanduidingtype personeelsnummer kan net zoals dat van het aanduidingtype printkaartnummer gedefinieerd zijn. Het is echter duidelijk, dat geen enkele conclusie getrokken kan worden uit het feit, dat een printkaart en een medewerker met dezelfde code worden aangeduid. Het waardebereik zelf zegt dus niets over de vergelijkbaarheid van attributen.
Vergelijkbaarheid van attibuten
Attributen zijn met elkaar vergelijkbaar, als er sprake is van hetzelfde aanduidingtype. Laten we kijken naar de volgende voorbeelden:
printkaart is geleverd op dag
en
printkaart is geplaatst op dag.
Het mag duidelijk zijn, dat het attribuuttype is geleverd op dag anders is dan het attribuuttype is geplaatst op dag. Toch kunnen we attributen van deze twee typen zinvol met elkaar vergelijken. Ze bevatten immers beide het (secundaire) entiteittype dag. Daarvoor is het wel noodzakelijk, dat beide dagen op hetzelfde aanduidingtype zijn gedefinieerd, bijvoorbeeld datum, met als waardebereik {1,..,31;1,...,12;0,...,9999} (meestal aangeduid als ddmmjjjj). Door deze vergelijkbaarheid kan in de administratie vastgesteld worden, hoe lang een printplaat gemiddeld op de plank ligt voordat hij geplaatst wordt. Ook is het mogelijk een regel voor de administratie op te nemen, die stelt dat een printplaat niet geplaatst kan worden voordat hij is geleverd.
Het aanduidingtype speelt ook een belangrijke rol bij het leggen van relaties tussen tabellen. We komen hierop terug bij het logische gegevensmodel.
Er kunnen ook relaties tussen aanduidingtypen bestaan. Zo kunnen aanduidingtypen samengesteld zijn uit andere aanduidingtypen. Een voorbeeld hiervan is een datum, welke is samengesteld uit de aanduidingtypen dagaanduiding, maandnummer en jaartal.