Hvad er ER-modellering? Lær med eksempel

⚡ Smart opsummering

Entitetsrelationsmodellering er en grafisk tilgang til databasedesign, der repræsenterer virkelige objekter som enheder, beskriver dem med attributter og registrerer, hvordan de forbinder sig gennem relationer, hvilket producerer en klar plan, før der oprettes tabeller.

  • 🧩 Hvad er det: ER-modellering er en grafisk datamodel på højt niveau, der definerer dataelementer og deres relationer.
  • 🗂️ Byggeklodser: Entiteter repræsenterer ting i den virkelige verden, attributter beskriver deres egenskaber, og relationer indfanger, hvordan enheder interagerer.
  • 🔗 Kardinalitet: Relationer er en-til-en, en-til-mange eller mange-til-mange, løst med en junction-entitet.
  • 🚀 EER-model: Den forbedrede ER-model bruger UML-notation og ekstra konstruktioner til meget komplekse databaser.
  • 🎬 MyFlix casestudie: Et eksempel på et videobibliotek kortlægger medlemmer, film, kategorier, lejemål og betalinger i et ER-diagram.
  • 🤖 AI assistance: AI-værktøjer og GitHub Copilot omdanner beskrivelser i naturligt sprog til ER-diagrammer og SQL-skemaer.

ER modellering

Hvad er ER-modellering?

Entitetsforholdsmodel (ER Modeling) er en grafisk tilgang til databasedesign. Det er en datamodel på højt niveau, der definerer dataelementer og deres forhold for et specificeret softwaresystem. En ER-model bruges til at repræsentere objekter i den virkelige verden.

En enhed er en ting eller et objekt i den virkelige verden, der kan skelnes fra dets omgivende miljø. For eksempel er hver medarbejder i en organisation en separat enhed. Følgende er nogle af de vigtigste karakteristika for enheder.

  • En enhed har et sæt egenskaber.
  • Enhedsejendomme kan have værdier.

Lad os gentage vores første eksempel. En medarbejder i en organisation er en enhed. Hvis "Peter" er en programmør (en medarbejder) hos Microsoft, han kan have attributter (egenskaber) som navn, alder, vægt, højde osv. Det er indlysende, at disse indeholder værdier, der er relevante for ham.

Hver attribut kan have værdier. I de fleste tilfælde har en enkelt attribut én værdi. Men det er muligt for attributter også at have flere værdier. For eksempel har Peters alder én værdi. Men hans egenskab "telefonnumre" kan have flere værdier.

Enheder kan have relationer med hinanden. Lad os betragte det enkleste eksempel. Antag, at hver Microsoft Programmøren får udleveret en computer. Det er tydeligt, at Peters computer også er en enhed. Peter bruger den computer, og den samme computer bruges af Peter. Med andre ord er der et gensidigt forhold mellem Peter og hans computer.

I entitetsrelationsmodellering modellerer vi enheder, deres attributter og relationerne mellem enheder.

Hvorfor bruge en ER-model?

Nu tænker du måske, hvorfor bruge ER-modellering, når vi simpelthen kan oprette databasen og alle dets objekter uden ER-modellering? En af de udfordringer, man står over for, når man designer en database, er det faktum, at designere, udviklere og slutbrugere har en tendens til at se data og deres brug anderledes. Hvis denne situation ikke er markeret, kan vi ende med at producere et databasesystem, der ikke opfylder brugernes krav.

Kommunikationsværktøjer, der forstås af alle interessenter (både tekniske og ikke-tekniske brugere), er afgørende for at producere databasesystemer, der opfylder brugernes krav. ER-modeller er eksempler på sådanne værktøjer.

ER-diagrammer øger også brugerproduktiviteten, da de nemt kan oversættes til relationelle tabeller.

Enhanced Entity Relationship (EER) model

Enhanced Entity Relationship (EER)-modellen er en datamodel på højt niveau, der giver udvidelser til den oprindelige Entity Relationship (ER)-model. EER-modeller understøtter mere detaljeret design. EER-modellering opstod som en løsning til modellering af meget komplekse databaser.

EER bruger UML-notation. UML er akronymet for Unified Modeling Language; det er et generel modelleringssprog, der bruges ved design af objektorienterede systemer. Enheder er repræsenteret som klassediagrammer. Relationer er repræsenteret som associationer mellem enheder. Diagrammet vist nedenfor illustrerer et ER-diagram ved hjælp af UML notation.

Enhanced Entity Relationship (EER) model

Casestudie: ER-diagram for “MyFlix”-videobiblioteket

Lad os nu arbejde med MyFlix Video Library-databasesystemet for at hjælpe med at forstå konceptet med ER-diagrammer. Vi vil bruge denne database til alt praktisk arbejde i denne vejledning.

MyFlix er en forretningsenhed, der udlejer film til sine medlemmer. MyFlix har lagret sine optegnelser manuelt. Ledelsen ønsker nu at flytte til en DBMS.

Lad os se på trinnene til at udvikle et EER-diagram til denne database:

  1. Identificer entiteterne og bestem de relationer, der eksisterer mellem dem.
  2. Hver enhed, attribut og relation bør have passende navne, der også let kan forstås af ikke-tekniske personer.
  3. Relationer bør ikke være forbundet direkte med hinanden. Relationer skal forbinde enheder.
  4. Hver attribut i en given enhed skal have et unikt navn.

Enheder i "MyFlix"-biblioteket

De enheder, der skal indgå i vores ER diagram er:

  • Medlemmer – denne enhed vil opbevare medlemsoplysninger.
  • Film – denne enhed indeholder oplysninger om film.
  • Kategorier – denne enhed indeholder oplysninger, der placerer film i forskellige kategorier såsom "Drama", "Action" og "Episk" osv.
  • Filmudlejning – denne enhed vil opbevare oplysninger om film, der er udlejet til medlemmer.
  • Betalinger – denne enhed vil opbevare oplysninger om medlemmers betalinger.

Definition af forholdet mellem enheder

Medlemmer og film

Det følgende gælder med hensyn til interaktionerne mellem de to enheder.

  • Et medlem kan leje mere end én film i en given periode.
  • En film kan lejes af mere end ét medlem i en given periode.

Ud fra ovenstående scenarie kan vi se, at relationens natur er mange-til-mange. Relationelle databaser understøtter ikke mange-til-mange-relationer. Vi er nødt til at introducere en junction-enhed. Dette er den rolle, som MovieRentals-enheden spiller. Den har en en-til-mange-relation med tabellen Members og en anden en-til-mange-relation med tabellen Movies.

Film og kategorienheder

Det følgende gælder om film og kategorier.

  • En film kan kun tilhøre én kategori, men en kategori kan indeholde mere end én film.

Vi kan udlede af dette, at relationen mellem kategori- og filmtabellerne er en-til-mange.

Medlemmer og betalingsenheder

Følgende gælder for medlemmer og betalinger.

  • Et medlem kan kun have én konto, men kan foretage et antal betalinger.

Vi kan udlede af dette, at forholdet mellem medlemmerne og betalingsenheder er en-til-mange.

Opret EER-modellen ved hjælp af MySQL Workbench

In MySQL Workbench, klik på knappen “+”.

Opret EER-modellen ved hjælp af MySQL Workbench

Double Klik på knappen Tilføj diagram for at åbne arbejdsområdet for ER-diagrammer.

Tilføj diagram i MySQL Workbench

Følgende vindue vises.

MySQL Workbench EER-modelleringsmiljø

Lad os se på de to objekter, som vi vil arbejde med.

  • Tabelobjektet tabelværktøj giver os mulighed for at oprette enheder og definere de attributter, der er knyttet til den specifikke enhed.
  • Stedsforholdet værktøj til stedrelationer Knappen giver os mulighed for at definere relationer mellem enheder.

Medlemsenheden vil have følgende attributter

  • Medlemsnummer
  • Fuldstændige navne
  • Køn
  • Fødselsdato
  • Fysisk adresse
  • postadresse

Lad os nu oprette Medlemstabellen

1. Træk tabelobjektet fra værktøjspanelet.

2. Slip den i arbejdsområdet. En enhed med navnet tabel 1 vises.

3. Double Klik på den. Egenskabsvinduet vist nedenfor vises.

Medlemstabelegenskaber i MySQL Workbench

Dernæst

  1. Skift tabel 1 til Medlemmer.
  2. Rediger standardværdien idtable1 til medlemskabsnummer.
  3. Klik på den næste linje for at tilføje det næste felt.
  4. Gør det samme for alle de attributter, der er identificeret i Medlemmer-enheden.

Dit egenskabsvindue skulle nu se sådan ud.

Medlemsenhedsattributter defineret

Gentag ovenstående trin for alle de identificerede enheder.

Dit diagramarbejdsområde skulle nu se ud som det, der er vist nedenfor.

MyFlix-enheder i diagramarbejdsområdet

Lad os skabe et forhold mellem medlemmer og filmudlejning

  1. Vælg stedrelationen ved hjælp af værktøjet til eksisterende kolonner.
  2. Klik på medlemsnummer i tabellen Medlemmer.
  3. Klik på reference_number i tabellen MovieRentals.

Opbygning af et forhold mellem medlemmer og MovieRentals

Gentag ovenstående trin for andre relationer. Dit ER-diagram burde nu se sådan ud –

Færdiggjort MyFlix ER-diagram

Ofte Stillede Spørgsmål

Et ER-diagram bruger tre kernekomponenter: enheder som rektangler, attributter som ovaler og relationer som diamanter. Understregede attributter markerer de primære nøgler.

Almindelige attributtyper er simple (atomare), sammensatte (delelige), afledte (beregnede), flerværdiede (flere værdier) og nøgleattributter, der identificerer en enhed.

Kardinalitet definerer, hvor mange forekomster af én enhed der relaterer sig til en anden: en-til-en, en-til-mange eller mange-til-mange. En forbindelsesenhed løser ikke-understøttede mange-til-mange-links.

En stærk enhed har sin egen primære nøgle og står alene. En svag enhed mangler en fuld nøgle og er afhængig af en ejerenhed.

Kragefodsnotationen viser kardinalitet med linjeafslutninger, der ligner en fuglefod. Stænger markerer mangesiden; søjler og cirkler viser én og valgfri.

En ER-model er en visuel plan på højt niveau over enheder og relationer. Den relationelle model implementerer den som tabeller, rækker, kolonner og nøgler i et databasesystem.

AI-værktøjer omdanner beskrivelser i naturligt sprog til ER-diagrammer, foreslår enheder og relationer og genererer SQL-skemaer. Designere gennemgår og korrigerer outputtet, før det implementeres.

Ja. GitHub Copilot foreslår enheder, relationer og tabelstrukturer og genererer SQL til at bygge dem. Den kan også udarbejde diagrammer som kode, f.eks. Mermaid, der gengives i et ER-diagram.

Opsummer dette indlæg med: