
I datamodellering er en entitet et klart definert objekt hvis informasjon skal lagres eller behandles. Objektetet som modelleres kan være materielt eller immateriell, konkret eller abstrakt. Noen eksempler kan være et kjøretøy, en konto, en person eller en tilstand.
Entiteter er individuelt identifiserbare objekter, personer osv. Disse kan tildeles individuelle egenskaper (som for eksempel farge = rød, fødselsdato = 28. august 1749, høyde = 2962 meter, temperatur = -4,5 celsius). Entitetstyper (noen ganger kalt entitetsklasser) kan utledes ved å skrive (gjenkjenne de samme attributtene/karakteristikkene til entiteter); flere personer blir for eksempel "kunder". De enkelte kundene regnes som entiteter, altså konkrete manifestasjoner (instanser) og har en identitet (for eksempel naturlig nøkkel).
Mengden entiteter av en entitetstype kalles entitetsmengden - som (avhengig av utvalget) kan inkludere alle, bare visse eller ingen entiteter. Entiteter som elementer i en entitetsmengde kjennetegnes ved deres egenskaper (attributtverdier). Hver entitet av en entitetstype identifiseres fra de andre entitetene av samme entitetstype gjennom en unik verdi av en identifiserende attributt eller kombinasjon av attributter (for eksempel rammenummeret for en individuell bil eller kjøretøyets registreringsnummer for en individuell registrering). Denne attributten eller attributtkombinasjonen kalles for kort for identifikasjon, identifikator eller ID.
En entitet kan være i relasjon med andre entiteter så vel som med seg selv. For eksempel: Person X <er eier av> kjøretøy Y, person A <er leder av> person B, hvor <... > = betydning/navn på relasjonen.
Typifiseringen av entiteter og mulige relasjoner mellom entiteter (til relasjonstyper) skjer gjennom abstraksjon. Dette skillet mellom instanser og typer er nødvendig for å komme frem til en datamodell. I modellen blir entitetene entitetstyper, og relasjonene deres blir relasjonstyper, som kan representeres grafisk i et entitet-relasjon-diagram. I dagligtale brukes av og til det kortere ordet «entitet» i stedet for det korrekte uttrykket «entitetstype», selv om konteksten vanligvis viser om det menes en objektinstans (entitet) eller dens typifisering (entitetstype).
For eksempel for å lage en relasjonsdatabase implementeres en entitetstype som en tabell i databasen, basert på datamodellen. Hver tabellrad i denne tabellen (også kalt en oppføring eller tuppel) vil representere en entitet, mens identifikatoren blir primærnøkkelen, og relasjoner blir fremmednøkkelen.
Hvis attributter og/eller relasjonstyper som er identiske for samme entitet forekommer i ulike entitetstyper, kan disse administreres og oppsummeres under en ny entitetstype, som omtales som generalisering. Den resulterende entitetstypen inneholder de vanlige attributtene. De opprinnelige entitetstypene forblir; de arver attributtene til den nye entitetstypen. Dermed kan for eksempel entitetstypene kunde og leverandør slås sammen til den generaliserte entitetstypen forretningspartner, hvor for eksempel navn, adresse, bankinformasjon, med mer kan brukes både for kunder og leverandører. Det omvendte (at attributter for en entitetstype bare vises i visse situasjoner/roller) kan også resultere i en ny entitetstype (for eksempel privatkunde) og omtales som spesialisering.
Generalisering, spesialisering og arv av attributtene tilsvarer den grunnleggende ideen om objektorientert programmering .
Noen eksempler på entitetstyper er:
| Tabell | Relasjonsdatabase | Entitet–relasjonsmodell (ERM) | Unified Modeling Language (UML) |
|---|---|---|---|
| Verdiområde (domene) | Verdiområde (domene) | Verdiområde (domene) | Verdiområde (domene) |
| Overskrift | Relasjonstype / relasjonsformat / relasjonsskjema | Entitetstype | Klasse |
| Kolonneoverskrift | Egenskap | Egenskap | Egenskap |
| Innhold | Relasjon | Entitetsmengde | Objektmengde, instansmengde |
| --/-- | Fremmednøkkel | Relasjon | Assosiasjon |
| Linje | Tuppel | Entitet | Objekt, forekomst |
| Celle | Attributtverdi | Attributtverdi | Attributtverdi |
Entitetsbegrepet er knyttet til objektbegrepet i objektorientert programmering. Imidlertid har begrepene ulik betydning i sine respektive konseptuelle verdener, datamodellering og objektorientert programmering. De korresponderer i hovedsak med hverandre, men er verken identiske eller synonyme:
Begge begrepene (entitet og objekt) har én ting til felles: De kan identifiseres, struktureres, avledes til entitets-/objekttyper og dokumenteres - vanligvis som en del av programvareutviklingsprosesser. Spesifikasjonene blir teknisk implementert i dataprogrammene gjennom deklarasjoner og datarelaterte behandlingskommandoer, og eksisterer til sist som innholdet i datasett. Den metodisk mer detaljerte objektorienterte modelleringen er ofte basert på klassisk datamodellering med dens entiteter, attributter og relasjoner.