ER-modellen definierar den begreppsliga synen på en databas. Den arbetar kring verkliga enheter och associationerna mellan dem. På vynivå anses ER-modellen vara ett bra alternativ för att utforma databaser.
Entitet
En entitet kan vara ett verkligt objekt, antingen animerat eller oanimerat, som lätt kan identifieras. I en skoldatabas kan till exempel elever, lärare, klasser och erbjudna kurser betraktas som enheter. Alla dessa enheter har vissa attribut eller egenskaper som ger dem sin identitet.
En entitetsuppsättning är en samling av liknande typer av enheter. En entitetsuppsättning kan innehålla enheter med attribut som delar liknande värden. Till exempel kan en uppsättning elever innehålla alla elever på en skola, och en uppsättning lärare kan innehålla alla lärare på en skola från alla fakulteter. Entitetsuppsättningar behöver inte vara disjunkta.
Attribut
Entiteter representeras med hjälp av sina egenskaper, så kallade attribut. Alla attribut har värden. Till exempel kan en student-enhet ha namn, klass och ålder som attribut.
Det finns en domän eller ett intervall av värden som kan tilldelas attribut. En elevs namn kan till exempel inte vara ett numeriskt värde. Det måste vara alfabetiskt. En elevs ålder kan inte vara negativ osv.
Typer av attribut
-
Enkla attribut – Enkla attribut är atomära värden, som inte kan delas upp ytterligare. Till exempel är en elevs telefonnummer ett atomärt värde bestående av 10 siffror.
-
Kompositattribut – Kompositattribut består av mer än ett enkelt attribut. Till exempel kan en elevs fullständiga namn bestå av first_name och last_name.
-
Avledda attribut – Avledda attribut är de attribut som inte finns i den fysiska databasen, men deras värden härleds från andra attribut som finns i databasen. Till exempel ska genomsnittslönen på en avdelning inte sparas direkt i databasen, utan den kan härledas. Ett annat exempel är att ålder kan härledas från data_of_birth.
-
Singelvärdesattribut – Singelvärdesattribut innehåller ett enda värde. Exempel: Social_Security_Number.
-
Multivärdesattribut – Multivärdesattribut kan innehålla fler än ett värde. En person kan till exempel ha mer än ett telefonnummer, en e-postadress osv.
Dessa attributtyper kan komma samman på ett sätt som –
- enkelt enkelvärdesattribut
- enkelt flervärdesattribut
- komposit enkel-.värderade attribut
- komposit flervärderade attribut
Entitetsuppsättning och nycklar
Nyckel är ett attribut eller en samling attribut som entydigt identifierar en enhet i en entitetsuppsättning.
Till exempel gör en students roll_nummer att han/hon kan identifieras bland studenterna.
-
Supernyckel – En uppsättning attribut (ett eller flera) som tillsammans identifierar en entitet i en entitetsuppsättning.
-
Kandidatnyckel – En minimal supernyckel kallas en kandidatnyckel. En entitetsuppsättning kan ha mer än en kandidatnyckel.
-
Primärnyckel – En primärnyckel är en av de kandidatnycklar som databaskonstruktören valt för att unikt identifiera en entitetsuppsättning.
Relation
Associationen mellan entiteter kallas för en relation. Till exempel, en anställd arbetar_på en avdelning, en student registrerar sig på en kurs. Här kallas Works_at och Enrolls för relationer.
Relationship Set
En uppsättning relationer av liknande typ kallas för en relationsuppsättning. Liksom entiteter kan även en relation ha attribut. Dessa attribut kallas beskrivande attribut.
Relationsgrad
Antalet deltagande enheter i en relation definierar relationens grad.
- Binary = grad 2
- Ternary = grad 3
- n-ary = grad
Mapping Cardinalities
Cardinality definierar antalet enheter i en entitetsuppsättning, som kan associeras med antalet enheter i en annan uppsättning via relationsuppsättning.
-
En-till-en – En enhet från enhetsuppsättning A kan associeras med högst en enhet i enhetsuppsättning B och vice versa.
-
En-till-många – En enhet från enhetsuppsättning A kan associeras med fler än en enhet från enhetsuppsättning B, men en enhet från enhetsuppsättning B kan associeras med högst en enhet.
-
Many-to-one – Mer än en entitet från entitetsuppsättning A kan associeras med högst en entitet från entitetsuppsättning B, men en entitet från entitetsuppsättning B kan associeras med mer än en entitet från entitetsuppsättning A.
-
Many-to-many – En enhet från A kan associeras med mer än en enhet från B och vice versa.
.