Vad är ER-modellering? Lär dig med exempel

⚡ Smart sammanfattning

Entitetsrelationsmodellering är en grafisk metod för databasdesign som representerar verkliga objekt som entiteter, beskriver dem med attribut och fångar hur de ansluter genom relationer, vilket skapar en tydlig ritning innan några tabeller skapas.

  • 🧩 Vad det är: ER-modellering är en grafisk datamodell på hög nivå som definierar dataelement och deras relationer.
  • 🗂️ Byggstenar: Entiteter representerar verkliga saker, attribut beskriver deras egenskaper och relationer fångar hur entiteter interagerar.
  • 🔗 Kardinalitet: Relationer är en-till-en, en-till-många eller många-till-många, lösta med en knutpunktsentitet.
  • 🚀 EER-modell: Den förbättrade ER-modellen använder UML-notation och extra konstruktioner för mycket komplexa databaser.
  • 🎬 Fallstudie om MyFlix: Ett exempel på ett videobibliotek mappar medlemmar, filmer, kategorier, hyror och betalningar i ett ER-diagram.
  • 🤖 AI-hjälp: AI-verktyg och GitHub Copilot omvandlar beskrivningar i naturligt språk till ER-diagram och SQL-scheman.

ER-modellering

Vad är ER-modellering?

Entitetsrelationsmodell (ER Modeling) är ett grafiskt tillvägagångssätt för databasdesign. Det är en datamodell på hög nivå som definierar dataelement och deras relation för ett specificerat mjukvarusystem. En ER-modell används för att representera verkliga objekt.

En entitet är en sak eller ett objekt i den verkliga världen som kan särskiljas från sin omgivande miljö. Till exempel är varje anställd i en organisation en separat entitet. Följande är några av de viktigaste egenskaperna hos entiteter.

  • En enhet har en uppsättning egenskaper.
  • Entitetsegenskaper kan ha värden.

Låt oss titta på vårt första exempel igen. En anställd i en organisation är en enhet. Om "Peter" är en programmerare (en anställd) på Microsoft, han kan ha attribut (egenskaper) som namn, ålder, vikt, längd etc. Det är uppenbart att dessa har värden som är relevanta för honom.

Varje attribut kan ha värden. I de flesta fall har ett enda attribut ett värde. Men det är möjligt för attribut att också ha flera värden. Till exempel har Peters ålder ett enda värde. Men hans egenskap "telefonnummer" kan ha flera värden.

Entiteter kan ha relationer med varandra. Låt oss betrakta det enklaste exemplet. Anta att varje Microsoft Programmeraren får en dator. Det är tydligt att Peters dator också är en entitet. Peter använder den datorn, och samma dator används av Peter. Med andra ord finns det en ömsesidig relation mellan Peter och hans dator.

I modellering av entitetsrelationer modellerar vi entiteter, deras attribut och relationerna mellan entiteter.

Varför använda en ER-modell?

Nu kanske du tänker varför använda ER-modellering när vi kan helt enkelt skapa databasen och alla dess objekt utan ER-modellering? En av utmaningarna när man designar en databas är det faktum att designers, utvecklare och slutanvändare tenderar att se data och dess användning på olika sätt. Om denna situation lämnas okontrollerad kan det sluta med att vi producerar ett databassystem som inte uppfyller användarnas krav.

Kommunikationsverktyg som alla intressenter (både tekniska och icke-tekniska användare) förstår är avgörande för att skapa databassystem som uppfyller användarnas krav. ER-modeller är exempel på sådana verktyg.

ER-diagram ökar också användarproduktiviteten, eftersom de enkelt kan översättas till relationstabeller.

Enhanced Entity Relationship (EER)-modell

EER-modellen (Enhanced Entity Relationship) är en datamodell på hög nivå som erbjuder utökningar till den ursprungliga ER-modellen (Entity Relationship). EER-modeller stöder mer detaljerad design. EER-modellering framkom som en lösning för modellering av mycket komplexa databaser.

EER använder UML-notation. UML är förkortningen för Unified Modeling Language; det är ett allmänt modelleringsspråk som används vid design av objektorienterade system. Entiteter representeras som klassdiagram. Relationer representeras som associationer mellan enheter. Diagrammet nedan illustrerar ett ER-diagram med hjälp av UML-notation.

Enhanced Entity Relationship (EER)-modell

Fallstudie: ER-diagram för videobiblioteket ”MyFlix”

Nu ska vi arbeta med databasystemet MyFlix Video Library för att förstå konceptet med ER-diagram. Vi kommer att använda den här databasen för allt praktiskt arbete i den här handledningen.

MyFlix är en affärsenhet som hyr ut filmer till sina medlemmar. MyFlix har lagrat sina register manuellt. Ledningen vill nu flytta till ett DBMS.

Låt oss titta på stegen för att utveckla ett EER-diagram för den här databasen:

  1. Identifiera enheterna och bestäm de relationer som finns mellan dem.
  2. Varje entitet, attribut och relation bör ha lämpliga namn som även är lätta att förstå av icke-tekniska personer.
  3. Relationer ska inte kopplas direkt till varandra. Relationer bör koppla samman enheter.
  4. Varje attribut i en given enhet bör ha ett unikt namn.

Enheter i "MyFlix"-biblioteket

De enheter som ska ingå i vår ER-diagram är:

  • Medlemmar – denna enhet kommer att lagra medlemsinformation.
  • Filmer – den här enheten kommer att innehålla information om filmer.
  • Kategorier – den här enheten innehåller information som placerar filmer i olika kategorier som "Drama", "Action" och "Episk", etc.
  • Filmuthyrning – den här enheten kommer att lagra information om filmer som hyrts ut till medlemmar.
  • Betalningar – denna enhet kommer att lagra information om de betalningar som gjorts av medlemmar.

Definiera relationerna mellan enheter

Medlemmar och filmer

Följande gäller när det gäller interaktionerna mellan de två enheterna.

  • En medlem kan hyra mer än en film under en viss period.
  • En film kan hyras av mer än en medlem under en viss period.

Av ovanstående scenario kan vi se att relationens natur är många-till-många. Relationsdatabaser stöder inte många-till-många-relationer. Vi behöver introducera en knutpunktsentitet. Det är den roll som MovieRentals-entiteten spelar. Den har en en-till-många-relation med tabellen Members och en annan en-till-många-relation med tabellen Movies.

Filmer och kategorier

Följande gäller filmer och kategorier.

  • En film kan bara tillhöra en kategori, men en kategori kan ha mer än en film.

Vi kan härleda från detta att relationen mellan kategorierna och filmerna är ett-till-många.

Medlemmar och betalningsenheter

Följande gäller om medlemmar och betalningar.

  • En medlem kan bara ha ett konto men kan göra ett antal betalningar.

Vi kan härleda från detta att relationen mellan medlemmarna och betalningsenheterna är en-till-många.

Skapa EER-modellen med hjälp av MySQL Arbetsbänk

In MySQL Arbetsbänk, klicka på knappen “+”.

Skapa EER-modellen med hjälp av MySQL Arbetsbänk

Double Klicka på knappen Lägg till diagram för att öppna arbetsytan för ER-diagram.

Lägg till diagram i MySQL Arbetsbänk

Följande fönster visas.

MySQL Workbench EER-modelleringsmiljö

Låt oss titta på de två objekten som vi kommer att arbeta med.

  • Tabellobjektet tabellverktyg låter oss skapa entiteter och definiera de attribut som är associerade med den specifika entiteten.
  • Platsförhållandet verktyg för platsrelationer knappen låter oss definiera relationer mellan entiteter.

Medlemsenheten kommer att ha följande attribut

  • Medlemsnummer
  • Fullständiga namn
  • Kön
  • Födelsedatum
  • Fysisk adress
  • postadress

Nu ska vi skapa tabellen Medlemmar.

1. Dra tabellobjektet från verktygspanelen.

2. Släpp den i arbetsytan. En entitet med namnet tabell 1 visas.

3. Double klicka på den. Egenskapsfönstret som visas nedan visas.

Medlemstabellens egenskaper i MySQL Arbetsbänk

Härnäst

  1. Ändra tabell 1 till Medlemmar.
  2. Redigera standardvärdet idtable1 till membership_number.
  3. Klicka på nästa rad för att lägga till nästa fält.
  4. Gör samma sak för alla attribut som identifieras i entiteten Medlemmar.

Ditt egenskapsfönster ska nu se ut så här.

Medlemsenhetsattribut definierade

Upprepa stegen ovan för alla identifierade enheter.

Din diagramarbetsyta bör nu se ut som den som visas nedan.

MyFlix-entiteter i diagrammets arbetsyta

Låt oss skapa en relation mellan medlemmar och filmuthyrare

  1. Välj platsrelationen med hjälp av verktyget för befintliga kolumner.
  2. Klicka på medlemsnummer i tabellen Medlemmar.
  3. Klicka på referensnummer i tabellen MovieRentals.

Skapa en relation mellan medlemmar och MovieRentals

Upprepa stegen ovan för andra relationer. Ditt ER-diagram ska nu se ut så här –

Färdigställt MyFlix ER-diagram

Vanliga frågor

Ett ER-diagram använder tre kärnkomponenter: entiteter som rektanglar, attribut som ovaler och relationer som diamanter. Understrukna attribut markerar primärnycklarna.

Vanliga attributtyper är enkla (atomära), sammansatta (delbara), härledda (beräknade), flervärdiga (flera värden) och nyckelattribut som identifierar en entitet.

Kardinalitet definierar hur många instanser av en entitet som relaterar till en annan: en-till-en, en-till-många eller många-till-många. En knutpunktsentitet löser många-till-många-länkar som inte stöds.

En stark entitet har sin egen primärnyckel och är fristående. En svag entitet saknar en fullständig nyckel och är beroende av en ägarentitet.

Kråkfot-notationen visar kardinalitet med radslut som liknar en fågelfot. Utsprång markerar mångsidan; streck och cirklar visar en och valfria.

En ER-modell är en visuell ritning på hög nivå över entiteter och relationer. Relationsmodellen implementerar den som tabeller, rader, kolumner och nycklar inuti ett databashanteringssystem.

AI-verktyg omvandlar beskrivningar i naturligt språk till ER-diagram, föreslår entiteter och relationer och genererar SQL-scheman. Designers granskar och korrigerar utdata innan de implementerar det.

Ja. GitHub Copilot föreslår entiteter, relationer och tabellstrukturer och genererar SQL för att bygga dem. Den kan också utarbeta diagram som kod, till exempel Mermaid, som renderas till ett ER-diagram.

Sammanfatta detta inlägg med: