Entiteit-verhouding-datamodel

'n **Entiteit-verhouding-datamodel** is die model waarmee data voorgestel word deur middel van dataentiteite en die verhoudings tussen die entiteite. Data word met hierdie modelleringstegniek visueel voorgestel deur datasoorte te groepeer, terwyl die verhoudings tussen die entiteite voorgestel word met lyne. Die doel hiervan is om data te modelleer sodat 'n databasis daarvolgens gebou kan word. Data word dan vervolgens gestoor en onttrek vir rapportering, gebruik in applikasies en vir ander gebruiksdoeleindes. Goeie modellering in 'n deeglike entiteit-verhouding-datamodel beteken dat die gebruikers van die data behoorlik gebruik kan maak van die data. 
## Notasie 
Daar is 'n aantal notasies of skryfwyses om die verhouding tussen entiteite voor te stel:
omraam|ER Notasies
* Kraaivoet
* Driepunt
* 1 pyltjie
* 2 pyltjies
* Chen

## Entiteite 
 'n Eenvoudige voorbeeld vir die modelering van data deur middel van 'n entiteit-verhouding-datamodel sou wees om bates van 'n maatskappy met twee fabrieke voor te stel, met elke fabriek wat 'n aantal produksielyne het. Elke produksielyn het weer op sy beurt 'n aantal masjiene in die lyn. Daar kan ook produksielyne wees wat in onbruik is, met ander woorde geen masjiene het nie. Om so 'n siutasie te modeleer sou mens eers die entiteite identifiseer:
* Fabriek
* Produskielyn
* Masjien

## Verhoudings 
Dit is ook gebruiklik om 'n werkwoord op die verhoudingslyn te voeg, om die verhouding betekenis te gee. Die model sal as volg gelees word:
duimnael|Voorbeeld van 'n entiteit-verhouding-datamodel
* Fabrieke bestaan uit produksielyne
* Produksielyne bestaan uit masjiene

Aangesien die masjien reeds in verhouding staan tot die produksielyn en die prokusielyn in verhouding tot die fabriek, hoef daar nie weer 'n verhoudingslyn tussen die masjien en die fabriek aangedui te word nie, want die verhouding word geïmpliseer.

## Weergawes 
Die weergawe verwys na die spesifieke entiteite wat geïdentifiseer kan word. In die voorbeeld is daar twee fabrieke en 'n aantal produksielyne in elke fabriek, en 'n hele aantal masjiene. *Fabriek A* is 'n weergawe van die entiteit *Fabriek*, en Fabriek B is nog 'n weergawe van die entiteit *Fabriek*.  Elke produksielyn van die entiteit *Produksielyn* is ook 'n weergawe van 'n produksielyn, soos byvoorbeeld: die *Tweewielfietslyn* en die *Driewielfiestlyn*.

## Attribute 
Elke entiteit word gekenmerk deur attribute. Dit is die eienskappe wat elke weergawe van die entiteit uniek identifiseer.  Die volgende is voorbeelde.
*Attribute van *Fabriek*: fabrieknaam, adres, oppervlak, aantal werknemers, omset
*Attribute van *Produksielyn*: lynnommer, lynnaam, funksie, lengte, fabriek, werkend
*Attribute van *Masjien*: batenommer, naam, funksie, gewig, datum van laaste diens, produskielyn, werkend

Die *sleutelattribuut* is die sleutel wat een weergawe van 'n entiteit uniek identifiseer, sodat die inligting oor die entiteite maklik geïdentifiseer, gesorteer en uitgekies kan word.  'n Sleutelattribuut kan met _ID aangedui word, byvoorbeeld fabriek_ID, lyn_ID, of dit kan ook net 'n unieke nommer wees, soos "batenommer" in die voorbeeld.

## Kardinaliteit 
Die kardinaliteit van 'n verhouding is 'n aanduiding van die aantal kere dat 'n verhouding van een weergawe van 'n entiteit met 'n ander weergawe van entiteit uitgevoer, of verbind, kan word. Dit is gebruiklik om die enkelvoud van die entiteit te gebruik in verhouding tot die ander: ''Hoeveel produksielyne kan 'n fabriek hê?* *'n Fabriek kan een of meer produksielyne hê.'' Dit hang ook af van die spesifieke situasie by die bepaalde maatskappy. Die volgende voorstelling van kardinaliteit van die relasie word onderken:

 
N, M stel enige getal van 0 tot oneindig voor.

## Ontledings- en modelleringstegnieke 
Reëls van die spesifieke situasie wat gemodelleer word in die praktyk, bepaal hoe die model saamgestel word. Wanneer die model dan gekonstrueer word, is dit belangrik om alle moontlike situasies uit te beeld in die model, al is dit onwaarskynlik. So kan die model vir meer doeleindes aangewend word, en hoef dit nie oopnuut ontwerp te word nie. Die waardes van die attribute speel dan 'n rol om die spesifieke reëls of beperkings aan te dui. 

Die datamodel in die voorbeeld kan vir meer maatskappye aangewend word en nie slegs vir die bepaalde fabriek waarvoor die modellering plaasgevind het nie. Waar daar twyfel bestaan oor die kardinaliteit, is dit raadsaam om dit aan te dui as N:M, byvoorbeeld,
*masjiene sou tussen produksielyne en fabrieke kon rondbeweeg, of installeer word.
*'n fabriek sou ook geen produksielylne kon he, hoe onwaarskynlik ook.

Dit kan ook wees dat daar wel 'n direkte verhouding tussen *Fabriek* en *Masjien* bestaan, vanweë masjiene wat rondstaan sonder om werkend in 'n produksielyn te wees - dan word 'n verhoudingslyn wel aangedui (en nie geïmpliseer soos vroeër genoem nie). 'n Masjien kan byvoorbeeld nie op twee plekke gelyktydig voorkom nie, maar kan wel aangewend word op twee lyne. Die datamodel kan aangepas word om aan te dui dat die masjien bruikbaar is oor meer lyne, terwyl die spesifieke tydperk wanneer dit in 'n spesifieke lyn aangewend is, vasgelê kan word in die datamodel deur byvoorbeeld 'n entiteit Gebruikstydperk in te voeg.

## Logiese en fisiese datamodellering 
'n Databasis word aanvanklik gemodelleer op logiese vlak en daarna fisiese vlak sodat die data eers konsepsueel voorgestel kan word (wanneer die aanvanklike ontleding gedoen word) en daarna fisies, wanneer die datatipes in velde omgesit word (soos teks-, numeriese en alfanumeriese veldtipes).

## Bronne 
*