E/R-modell

Fra Wikipedia, den frie encyklopedi
Hopp til navigering Hopp til søk

En E/R-modell eller E/R-diagram (eng. Entity-relationship model) er en konseptuell modell for data som ofte benyttes i design av relasjonsdatabaser for å lage en grafisk fremstilling av strukturen i databasen. En E/R-modell vil typisk bestå av entiteter, entitetenes attributter, og forhold mellom ulike entiteter. I en relasjonsdatabase vil entitetene typisk representere tabeller, attributter vil representere kolonner, og forhold vil representere forbindelsene som dannes av fremmednøkler. E/R-modellering ble utviklet av Peter Chen.[1]

Begreper[rediger | rediger kilde]

Entiteter[rediger | rediger kilde]

Entiteter i E/R-modeller er de objektene man ønsker å beskrive og representeres typisk som bokser i modellen og tabeller i en relasjonsdatabase. Entitetene kan representere fysiske objekter som f.eks personer, eller mer abstrakte objekter som f.eks hendelser. Det anbefales å gi entitetene navn i én-tall (f.eks "kunde" fremfor "kunder"). I en databasetabell vil hver rad typisk representere en forekomst av entitetstypen (f.eks at hver rad representerer én kunde av entitetstypen kunde).[1]

Attributter[rediger | rediger kilde]

Attributter er egenskapene til entitetstypen de tilhører og vil i en relasjonsdatabase typisk fremstilles som kolonner. En entitetsforekomst av typen "kunde" vil f.eks ha attributter som navn, adresse, osv.

En identifikator er den attributten eller kombinasjonen av attributter som skal brukes til å identifisere hver enkelt forekomst av en entitetstype. F.eks en unik kunde-id som opprettes når man registrerer seg som kunde i en nettbutikk, eller et studentnummer innen utdanning.[1]

Forhold[rediger | rediger kilde]

Det vil ofte være ulike forhold mellom flere av entitetene i domenet som E/R-modellen representerer. F.eks dersom domenet er en nettbutikk og "kunde" og "ordre" er noen av entitetstypene vil det gjerne være et forhold mellom disse. Typisk et en-til-mange forhold dersom hver kunde kan utføre et antall ordrer (kjøp).[1]

Kardinalitet[rediger | rediger kilde]

Kardinaliteten til et forhold uttrykker hvor mange entitetsforekomster av en entitet som kan eller må knyttes til en entitetsforekomst av en annnen entitet i forholdet.

I et en-til-en forhold vil hver forekomst av entitet A maks være tilknyttet én forekomst av entitet B og omvendt. F.eks at en person har ett og bare ett pass, og at det passet tilhører kun én person.

I et en-til-mange forhold vil en en forekomst av A kun være tilknyttet én forekomst av B samtidig som hver forekomst av B kan være tilknyttet flere forekomster av A, eller omvendt. F.eks ved at en kunde kan ha mange tilhørende ordre i en nettbutikk, men hver ordre kan bare tilhøre én kunde.

I et mange-til-mange forhold vil en forekomst av A kunne være tilknyttet mange forekomster av B og omvendt. F.eks ved at én student kan ta mange fag og hvert fag kan ha mange studenter som tar det. I modellering av relasjonsdatabaser er det vanlig å løse opp mange-til-mange forhold ved å lage en koblingsentitet. Dette kan hindre gjentagelse av data f.eks ved at man har en entitet for student med beskrivende attributter, en for fag med beskrivende attributter for hvert fag, og deretter oppretter en tredje mellom disse hvor man kobler hver enkelt student sammen med hvert fag den tar. På denne måten kan man hindre at de beskrivende attributtene til en student ikke trengs å gjentas unødvendig (utover den identifiserende identifikator attributten).[1]

Modellering[rediger | rediger kilde]

En E/R-modell kan fremstilles på flere ulike måter og det er utviklet flere ulike notasjoner for komponentene i E/R. En notasjon som er vanlig og utbredt i verktøy for fremstilling av E/R-modeller er den såkalte kråkefot-notasjonen (eng. Crow's foot notation).[1] Kråkefot-notasjonen benyttes som merkelapp på kardinaliteten til forholdet mellom entitetene. I tillegg til å kunne vise om forholdet er et en-til-en, en-til-mange eller mange-til-mange forhold kan kråkefot-notasjonen også vise når det er tillatt med 0 forekomster av en entitet i et forhold.

I blant markeres også forholdene med en tekstbasert merkelapp som sier noe om rollene i forholdet. F.eks ved å merke linja mellom entitetene "kunde" og "ordre" med teksten "gjennomfører" for å fremheve at en kunde gjennomfører en ordre.

Referanser[rediger | rediger kilde]

  1. ^ a b c d e f {{}} Kristoffersen, Bjørn (2012). Databasesystemer (Tredje utg.). Oslo: Universitetsforlaget. ISBN 978-82-15-01997-0. .