Attribuut en attribuuttype
We hebben gezien, dat beweringen gaan over eigenschappen van objecten (eigenschappen, beweringen en gegevens). In aansluiting op de conventie met betrekking tot entiteiten (als term voor objecten binnen de wereld van de informatie) noemen we een eigenschap van een primaire entiteit die als gegeven is vastgelegd, een attribuut.
Bijvoorbeeld: is een product van Alcatel is een attribuut van P12345. Het onderstaande schema illustreert dit.
Een attribuuttype is dan uiteraard een soort van eigenschap die over entiteiten van een bepaald type beweerd kan worden. Een voorbeeld van een attribuuttype van het entiteittype artikel is dan is een product van leverancier.
De structuur van gegevens kan iets ingewikkelder zijn dan in het voorbeeld dat hierboven is beschreven. Kijk bijvoorbeeld naar
P12345 is in onderhoud bij Alcatel tot 31-12-1999.
Hier is sprake van een verband (is in onderhoud bij tot) tussen 3 entiteiten (P12345, Alcatel en 31-12-1999) i.p.v. 2, zoals in het vorige voorbeeld het geval was. Een verband tussen drie entiteiten of entiteittypen wordt wel een ternair verband genoemd, terwijl een verband tussen twee entiteiten of entiteittypen binair wordt genoemd. Verbanden tussen vier of meer entiteiten of entiteittypen zijn ook mogelijk.
Een gegeven kan ook bestaan uit één (primaire) entiteit met een (unair) verband, bijvoorbeeld:
P12345 is defect.
Dit is een gegeven van het type (bijvoorbeeld):
Artikel is defect.
In alle gevallen wordt het totaal wat in één gegeven over een primaire entiteit wordt beweerd als attribuut beschouwd.
Het komt voor dat je over een bepaalde primaire entiteit meerdere attributen van hetzelfde type wil vastleggen, bijvoorbeeld meerdere kinderen van een persoon. De mogelijkheid dat een bepaald attribuuttype i.p.v. één keer, meer dan één keer voor kan komen bij een bepaalde primaire entiteit, wordt in de semantische gegevensmodellen expliciet aangegeven. Daartoe plaatsen we het attribuuttype tussen accolades:
Afdeling {bestelt artikelsoort bij leverancier}.
Dit betekent dat een afdeling meerdere bestellingen kan doen, die elk betrekking hebben op één leverancier en op één artikelsoort.
Daarnaast is het mogelijk dat in één attribuut meerdere entiteiten van hetzelfde type betrokken (geassocieerd) zijn, bijvoorbeeld als één bestelling betrekking kan hebben op meerdere artikelsoorten:
Afdeling bestelt {artikelsoort} bij leverancier.
In dit voorbeeld nemen we aan, dat een afdeling maar één bestelling kan doen.
De twee hierboven beschreven attribuuttypen hebben een verschillende betekenis: in het eerste geval is er sprake van meerdere bestellingen die elk één artikelsoort betreffen, in het tweede geval is er sprake van één bestelling die meerdere artikelsoorten betreft.
Een combinatie van meervoudige attributen en meerdere geassocieerde entiteiten is ook mogelijk:
Afdeling {bestelt {artikelsoort} bij leverancier}.
In dit voorbeeld kan een afdeling meerdere bestellingen plaatsen én kan een bestelling meerdere artikelsoorten betreffen.