Skip to content
IRC-Coding IRC-Coding
ER-Modell Entity Relationship Kardinalität Beziehungen Datenmodellierung

ER-Modelle: Entity Relationship, Beziehungen & Kardinalität

ER-Modelle visualisieren Datenbankstrukturen. Entities, Relationships, Kardinalitäten (1:1, 1:n, n:m), Attribute und Chen-Notation mit praktischen Beispielen.

S

schutzgeist

2 min read

ER-Modelle: Entity Relationship, Beziehungen & Kardinalität

Dieser Beitrag ist eine Begriffserklärung zu Entity-Relationship-Modellen – inklusive Beziehungen, Kardinalitäten und praktischer Beispiele.

In a Nutshell

ER-Modelle sind grafische Darstellungen zur Visualisierung von Datenbankstrukturen, die Entities (Entitäten), Relationships (Beziehungen) und deren Kardinalitäten beschreiben.

Kompakte Fachbeschreibung

Entity-Relationship-Modellierung ist eine Methode zur konzeptionellen Gestaltung von Datenbanken. Sie visualisiert die Datenstruktur bevor die technische Implementierung erfolgt.

Hauptkomponenten:

  • Entities: Objekte der realen Welt (Kunde, Produkt, Bestellung)
  • Relationships: Beziehungen zwischen Entities (kunden → bestellen → produkte)
  • Attributes: Eigenschaften von Entities (Name, Preis, Datum)
  • Kardinalitäten: Anzahl der Beziehungen (1:1, 1:n, n:m)

Notationen:

  • Chen-Notation: Rechtecke für Entities, Rauten für Relationships
  • Crow’s Foot: Moderne Notation mit Krähenfüßen für Kardinalitäten
  • UML-Klassendiagramme: Erweiterte Darstellung mit Methoden

ER-Modelle dienen als Kommunikationsmittel zwischen Entwicklern, Datenbankadministratoren und Fachexperten. Sie bilden die Grundlage für die logische Datenmodellierung und anschließende Normalisierung.

Prüfungsrelevante Stichpunkte

  • Entities: Reale Objekte mit eindeutiger Identifikation
  • Relationships: Beziehungen zwischen Entities mit Kardinalitäten
  • Kardinalitäten: 1:1, 1:n, n:m Beziehungen definieren Anzahl der Verbindungen
  • Attribute: Eigenschaften von Entities (einfach, zusammengesetzt, abgeleitet)
  • Chen-Notation: Klassische ER-Notation mit Rechtecken und Rauten
  • Crow’s Foot: Moderne Notation mit直观er Kardinalitätsdarstellung
  • IHK-relevant: Wichtig für Datenbankdesign und -modellierung
  • Normalisierung: ER-Modelle bilden Grundlage für Normalisierungsprozess

Kernkomponenten

  1. Entity Type: Menge ähnlicher Entitäten mit gleichen Attributen
  2. Weak Entity: Entität ohne eindeutige Identifikation, abhängig von anderer Entität
  3. Relationship Type: Assoziation zwischen zwei oder mehr Entity Types
  4. Attribute: Eigenschaft einer Entität oder Beziehung
  5. Primary Key: Eindeutiger Identifikator einer Entität
  6. Foreign Key: Referenz auf Primary Key einer anderen Entität
  7. Cardinality: Maximale und minimale Anzahl von Beziehungsinstanzen
  8. Participation: Ob eine Entität an einer Beziehung teilnehmen muss (total/partial)

Praxisbeispiele

1:1 Beziehung

-- Jeder Mitarbeiter hat genau einen Arbeitsplatz
CREATE TABLE Mitarbeiter (
    mitarbeiter_id INT PRIMARY KEY,
    name VARCHAR(100),
    geburtsdatum DATE
);

CREATE TABLE Arbeitsplatz (
    arbeitsplatz_id INT PRIMARY KEY,
    gebaeude VARCHAR(50),
    etage INT,
    raum INT,
    mitarbeiter_id INT UNIQUE, -- 1:1 Beziehung
    FOREIGN KEY (mitarbeiter_id) REFERENCES Mitarbeiter(mitarbeiter_id)
);

1:n Beziehung

-- Ein Kunde kann viele Bestellungen haben
CREATE TABLE Kunden (
    kunden_id INT PRIMARY KEY,
    name VARCHAR(100),
    adresse VARCHAR(200)
);

CREATE TABLE Bestellungen (
    bestell_id INT PRIMARY KEY,
    bestelldatum DATE,
    gesamtbetrag DECIMAL(10,2),
    kunden_id INT, -- 1:n Beziehung
    FOREIGN KEY (kunden_id) REFERENCES Kunden(kunden_id)
);

n:m Beziehung (mit Junction Table)

-- Studenten können viele Kurse belegen, Kurse viele Studenten haben
CREATE TABLE Studenten (
    student_id INT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100)
);

CREATE TABLE Kurse (
    kurs_id INT PRIMARY KEY,
    kursname VARCHAR(100),
    credits INT
);

-- Junction Table für n:m Beziehung
CREATE TABLE StudentenKurse (
    student_id INT,
    kurs_id INT,
    belegdatum DATE,
    note DECIMAL(3,1),
    PRIMARY KEY (student_id, kurs_id),
    FOREIGN KEY (student_id) REFERENCES Studenten(student_id),
    FOREIGN KEY (kurs_id) REFERENCES Kurse(kurs_id)
);

Komplexes ER-Modell (Beispiel Bibliothek)

-- Entities mit verschiedenen Beziehungen
CREATE TABLE Autoren (
    autor_id INT PRIMARY KEY,
    name VARCHAR(100),
    geburtsjahr INT
);

CREATE TABLE Buecher (
    buch_id INT PRIMARY KEY,
    titel VARCHAR(200),
    isbn VARCHAR(20) UNIQUE,
    erschienenjahr INT
);

CREATE TABLE Verlage (
    verlag_id INT PRIMARY KEY,
    name VARCHAR(100),
    sitz VARCHAR(100)
);

CREATE TABLE Kunden (
    kunden_id INT PRIMARY KEY,
    name VARCHAR(100),
    mitgliedsdatum DATE
);

-- Beziehungen
-- n:m: Autoren schreiben Bücher
CREATE TABLE BuchAutoren (
    buch_id INT,
    autor_id INT,
    PRIMARY KEY (buch_id, autor_id),
    FOREIGN KEY (buch_id) REFERENCES Buecher(buch_id),
    FOREIGN KEY (autor_id) REFERENCES Autoren(autor_id)
);

-- n:1: Bücher werden von Verlagen veröffentlicht
ALTER TABLE Buecher ADD verlag_id INT;
ALTER TABLE Buecher ADD FOREIGN KEY (verlag_id) REFERENCES Verlage(verlag_id);

-- 1:n: Kunden leihen Bücher
CREATE TABLE Ausleihen (
    ausleih_id INT PRIMARY KEY,
    kunden_id INT,
    buch_id INT,
    ausleihdatum DATE,
    rueckgabedatum DATE,
    FOREIGN KEY (kunden_id) REFERENCES Kunden(kunden_id),
    FOREIGN KEY (buch_id) REFERENCES Buecher(buch_id)
);

ER-Notationen im Vergleich

Chen-Notation

[ KUNDE ] ---< bestellt >--- [ PRODUKT ]
   |                          |
   |1                        |n
   |                          |
[ADRESSE]                [KATEGORIE]

Crow’s Foot Notation

KUNDE ||--o{ BESTELLPOSITION } ||--| PRODUKT
  |                               |
  |                               |
ADRESSE                         KATEGORIE

Kardinalitäts-Symbole

  • | : Genau eins
  • O : Null oder eins
  • } : Null oder mehr
  • |{ : Genau eins oder mehr

Attribute-Typen

Einfache Attribute

name VARCHAR(100)        -- Einfach
preis DECIMAL(10,2)      -- Einfach
datum DATE              -- Einfach

Zusammengesetzte Attribute

-- Adresse als zusammengesetztes Attribut
strasse VARCHAR(100),
hausnummer VARCHAR(10),
plz VARCHAR(5),
ort VARCHAR(100)

Abgeleitete Attribute

-- Berechnete Werte
alter INT AS (YEAR(CURRENT_DATE) - YEAR(geburtsdatum)),
gesamtpreis DECIMAL(10,2) AS (menge * einzelpreis)

Multivalued Attributes

-- Mehrere Werte pro Entität
CREATE TABLE Telefonnummern (
    kunden_id INT,
    telefonnummer VARCHAR(20),
    PRIMARY KEY (kunden_id, telefonnummer),
    FOREIGN KEY (kunden_id) REFERENCES Kunden(kunden_id)
);

Vorteile und Nachteile

Vorteile von ER-Modellen

  • Visualisierung: Intuitive Darstellung komplexer Datenstrukturen
  • Kommunikation: Gemeinsame Sprache für Fachexperten und Entwickler
  • Dokumentation: Gute Dokumentation der Datenbankstruktur
  • Planung: Grundlage für Datenbankimplementierung
  • Qualität: Frühzeitige Erkennung von Designfehlern

Nachteile

  • Komplexität: Bei sehr großen Systemen unübersichtlich
  • Abstraktion: Details der Implementierung nicht sichtbar
  • Wartung: Änderungen erfordern Anpassung des Modells
  • Lernkurve: Erfordert Verständnis der Notationen

Häufige Prüfungsfragen

  1. Was ist der Unterschied zwischen 1:n und n:m Beziehungen? 1:n: Ein Datensatz links kann viele Datensätze rechts haben. n:m: Viele Datensätze links können viele Datensätze rechts haben (erfordert Junction Table).

  2. Wann benötigt man eine Junction Table? Für n:m Beziehungen, da Datenbanken keine direkten n:m Beziehungen unterstützen.

  3. Was sind schwache Entitäten? Entitäten ohne eigenen Primärschlüssel, die von anderen Entitäten abhängig sind.

  4. Erklären Sie die Chen-Notation! Rechtecke für Entities, Rauten für Relationships, Ovale für Attribute.

Wichtigste Quellen

  1. https://de.wikipedia.org/wiki/Entity-Relationship-Modell
  2. https://www.gatech.edu/coe/cse/er-diagrams
  3. https://www.lucidchart.com/pages/er-diagrams
Zurück zum Blog
Share:

Ähnliche Beiträge