Hva er ER-modellering? Lær med eksempel

⚡ Smart oppsummering

Enhetsrelasjonsmodellering er en grafisk tilnærming til databasedesign som representerer virkelige objekter som enheter, beskriver dem med attributter og fanger opp hvordan de kobles sammen gjennom relasjoner, og produserer en tydelig blåkopi før noen tabeller bygges.

  • 🧩 Hva det er: ER-modellering er en grafisk datamodell på høyt nivå som definerer dataelementer og deres relasjoner.
  • 🗂️ Byggeklosser: Enheter representerer ting i den virkelige verden, attributter beskriver egenskapene deres, og relasjoner fanger opp hvordan enheter samhandler.
  • 🔗 Kardinalitet: Relasjoner er én-til-én, én-til-mange eller mange-til-mange, løst med en knutepunktsenhet.
  • 🚀 EER-modell: Den forbedrede ER-modellen bruker UML-notasjon og ekstra konstruksjoner for svært komplekse databaser.
  • 🎬 MyFlix casestudie: Et eksempel på et videobibliotek kartlegger medlemmer, filmer, kategorier, utleie og betalinger i et ER-diagram.
  • 🤖 AI-hjelp: AI-verktøy og GitHub Copilot gjør om beskrivelser i naturlig språk til ER-diagrammer og SQL-skjemaer.

ER-modellering

Hva er ER-modellering?

Enhetsrelasjonsmodell (ER Modeling) er en grafisk tilnærming til databasedesign. Det er en datamodell på høyt nivå som definerer dataelementer og deres forhold for et spesifisert programvaresystem. En ER-modell brukes til å representere virkelige objekter.

En enhet er en ting eller et objekt i den virkelige verden som kan skilles fra omgivelsene. For eksempel er hver ansatt i en organisasjon en separat enhet. Følgende er noen av de viktigste egenskapene til enheter.

  • En enhet har et sett med egenskaper.
  • Enhetsegenskaper kan ha verdier.

La oss se på vårt første eksempel igjen. En ansatt i en organisasjon er en enhet. Hvis «Peter» er en programmerer (en ansatt) hos Microsoft, han kan ha attributter (egenskaper) som navn, alder, vekt, høyde osv. Det er åpenbart at disse har verdier som er relevante for ham.

Hvert attributt kan ha verdier. I de fleste tilfeller har et enkelt attributt én verdi. Men det er mulig for attributter å ha flere verdier også. For eksempel har Peters alder én verdi. Men egenskapen hans «telefonnumre» kan ha flere verdier.

Enheter kan ha relasjoner med hverandre. La oss se på det enkleste eksemplet. Anta at hver Microsoft Programmereren får en datamaskin. Det er tydelig at Peters datamaskin også er en enhet. Peter bruker den datamaskinen, og den samme datamaskinen brukes av Peter. Med andre ord er det et gjensidig forhold mellom Peter og datamaskinen hans.

I modellering av enhetsrelasjoner modellerer vi enheter, deres attributter og forholdet mellom enheter.

Hvorfor bruke en ER-modell?

Nå tenker du kanskje hvorfor bruke ER-modellering når vi bare kan opprette databasen og alle dens objekter uten ER-modellering? En av utfordringene når man designer en database, er det faktum at designere, utviklere og sluttbrukere har en tendens til å se data og bruken av dem annerledes. Hvis denne situasjonen ikke er merket av, kan vi ende opp med å produsere et databasesystem som ikke oppfyller kravene til brukerne.

Kommunikasjonsverktøy som alle interessenter (både tekniske og ikke-tekniske brukere) forstår, er avgjørende for å produsere databasesystemer som oppfyller brukernes krav. ER-modeller er eksempler på slike verktøy.

ER-diagrammer øker også brukerproduktiviteten, ettersom de enkelt kan oversettes til relasjonstabeller.

Enhanced Entity Relationship (EER) modell

Enhanced Entity Relationship (EER)-modellen er en datamodell på høyt nivå som gir utvidelser til den opprinnelige Entity Relationship (ER)-modellen. EER-modeller støtter mer detaljert design. EER-modellering dukket opp som en løsning for modellering av svært komplekse databaser.

EER bruker UML-notasjon. UML er akronymet for Unified Modeling Language; det er et generell modelleringsspråk som brukes når man designer objektorienterte systemer. Entiteter er representert som klassediagrammer. Relasjoner er representert som assosiasjoner mellom enheter. Diagrammet vist nedenfor illustrerer et ER-diagram som bruker UML-notasjon.

Enhanced Entity Relationship (EER) modell

Casestudie: ER-diagram for videobiblioteket «MyFlix»

La oss nå jobbe med databasesystemet MyFlix Video Library for å forstå konseptet med ER-diagrammer. Vi vil bruke denne databasen til alt praktisk arbeid i denne veiledningen.

MyFlix er en forretningsenhet som leier ut filmer til sine medlemmer. MyFlix har lagret sine poster manuelt. Ledelsen ønsker nå å flytte til et DBMS.

La oss se på trinnene for å utvikle et EER-diagram for denne databasen:

  1. Identifiser enhetene og bestem relasjonene som eksisterer mellom dem.
  2. Hver enhet, attributt og relasjon bør ha passende navn som også er lett å forstå av ikke-tekniske personer.
  3. Relasjoner skal ikke kobles direkte til hverandre. Relasjoner skal knytte sammen enheter.
  4. Hvert attributt i en gitt enhet skal ha et unikt navn.

Enheter i «MyFlix»-biblioteket

Enhetene som skal inkluderes i vår ER-diagram er:

  • Medlemmer – denne enheten vil oppbevare medlemsinformasjon.
  • Filmer – denne enheten vil inneholde informasjon om filmer.
  • Kategorier – denne enheten inneholder informasjon som plasserer filmer i forskjellige kategorier som «Drama», «Action» og «Episk» osv.
  • Filmutleie – denne enheten vil oppbevare informasjon om filmer som er leid ut til medlemmer.
  • Betalinger – denne enheten vil oppbevare informasjon om betalinger gjort av medlemmer.

Definere forholdet mellom enheter

Medlemmer og filmer

Det følgende gjelder for samspillet mellom de to enhetene.

  • Et medlem kan leie mer enn én film i en gitt periode.
  • En film kan leies av mer enn ett medlem i en gitt periode.

Fra scenariet ovenfor kan vi se at forholdet er mange-til-mange. Relasjonsdatabaser støtter ikke mange-til-mange-relasjoner. Vi må introdusere en knutepunktsenhet. Dette er rollen MovieRentals-enheten spiller. Den har et én-til-mange-forhold med Members-tabellen og et annet én-til-mange-forhold med Movies-tabellen.

Filmer og kategorier enheter

Det følgende gjelder filmer og kategorier.

  • En film kan bare tilhøre én kategori, men en kategori kan ha mer enn én film.

Vi kan utlede fra dette at forholdet mellom kategori- og filmtabellene er én-til-mange.

Medlemmer og betalingsenheter

Følgende gjelder for medlemmer og betalinger.

  • Et medlem kan bare ha én konto, men kan foreta en rekke betalinger.

Vi kan utlede fra dette at forholdet mellom medlemmene og betalingsenhetene er én-til-mange.

Lag EER-modellen ved hjelp av MySQL Workbench

In MySQL Workbench, klikk på «+»-knappen.

Lag EER-modellen ved hjelp av MySQL Workbench

Double Klikk på Legg til diagram-knappen for å åpne arbeidsområdet for ER-diagrammer.

Legg til diagram i MySQL Workbench

Følgende vindu vises.

MySQL Workbench EER-modelleringsmiljø

La oss se på de to objektene vi skal jobbe med.

  • Tabellobjektet tabellverktøy lar oss opprette enheter og definere attributtene som er knyttet til den bestemte enheten.
  • Stedsforholdet verktøy for stedsrelasjoner -knappen lar oss definere relasjoner mellom enheter.

Medlemsenheten vil ha følgende attributter

  • Medlemsnummer
  • Fulle navn
  • Kjønn
  • Fødselsdato
  • Fysisk adresse
  • postadresse

La oss nå opprette Medlemstabellen

1. Dra tabellobjektet fra verktøypanelet.

2. Slipp den i arbeidsområdet. En enhet kalt tabell 1 vises.

3. Double Klikk på den. Egenskapsvinduet som vises nedenfor vises.

Egenskaper for medlemstabellen i MySQL Workbench

Neste,

  1. Endre tabell 1 til Medlemmer.
  2. Rediger standardverdien idtable1 til medlemskapsnummer.
  3. Klikk på neste linje for å legge til neste felt.
  4. Gjør det samme for alle attributtene som er identifisert i Medlemmer-enheten.

Egenskapsvinduet ditt skal nå se slik ut.

Medlemsenhetsattributter definert

Gjenta trinnene ovenfor for alle identifiserte enheter.

Diagramarbeidsområdet ditt skal nå se ut som det som vises nedenfor.

MyFlix-enheter i diagrammets arbeidsområde

La oss skape et forhold mellom medlemmer og filmutleieselskaper

  1. Velg stedsrelasjonen ved hjelp av verktøyet for eksisterende kolonner.
  2. Klikk på medlemsnummer i Medlemmer-tabellen.
  3. Klikk på referansenummer i tabellen MovieRentals.

Opprette et forhold mellom medlemmer og MovieRentals

Gjenta trinnene ovenfor for andre relasjoner. ER-diagrammet ditt skal nå se slik ut –

Fullført MyFlix ER-diagram

Spørsmål og svar

Et ER-diagram bruker tre kjernekomponenter: enheter som rektangler, attributter som ovaler og relasjoner som diamanter. Understrekede attributter markerer primærnøklene.

Vanlige attributttyper er enkle (atomære), sammensatte (delelige), avledede (beregnede), flerverdiede (flere verdier) og nøkkelattributter som identifiserer en enhet.

Kardinalitet definerer hvor mange forekomster av én enhet som er relatert til en annen: én-til-én, én-til-mange eller mange-til-mange. En knutepunktsenhet løser ustøttede mange-til-mange-lenker.

En sterk enhet har sin egen primærnøkkel og står alene. En svak enhet mangler en fullstendig nøkkel og er avhengig av en eierenhet.

Kråkefot-notasjonen viser kardinalitet med linjeavslutninger som ligner en fuglefot. Utstikkere markerer mangesiden; streker og sirkler viser én og valgfritt.

En ER-modell er en visuell oversikt over enheter og relasjoner på høyt nivå. Relasjonsmodellen implementerer den som tabeller, rader, kolonner og nøkler i et DBMS.

AI-verktøy gjør beskrivelser i naturlig språk om til ER-diagrammer, foreslår enheter og relasjoner, og genererer SQL-skjemaer. Designere gjennomgår og korrigerer resultatet før de implementerer det.

Ja. GitHub Copilot foreslår enheter, relasjoner og tabellstrukturer, og genererer SQL for å bygge dem. Den kan også utarbeide diagrammer som kode, for eksempel Mermaid, som gjengis til et ER-diagram.

Oppsummer dette innlegget med: