‹ Informatik

ER-Modell

ER-Modell in der Informatik verständlich erklärt: Bedeutung, typische Anwendung und Beispiele für Datenbanken und SQL.

Bevor eine Datenbank gebaut wird, muss jemand verstehen, welche Dinge überhaupt gespeichert werden sollen. Genau dabei hilft das ER-Modell: Es macht aus einer unübersichtlichen Miniwelt eine klare Skizze aus Dingen, Eigenschaften und Beziehungen. Nach dieser Erklärung kannst du ein einfaches ER-Diagramm lesen, Kardinalitäten begründen und daraus erste Tabellenideen ableiten.

Deine Lernziele
  • Ich kann erklären, wozu ein ER-Modell beim Datenbankentwurf dient.
  • Ich kann Entität, Attribut und Beziehung unterscheiden.
  • Ich kann Primärschlüssel und Kardinalitäten in einfachen Beispielen erkennen.
  • Ich kann 1:1, 1:n und n:m-Beziehungen deuten.
  • Ich kann aus einem ER-Modell grob ableiten, welche Tabellen entstehen.

Vom Alltag zur Datenbank

Nimm eine Schulbibliothek. Dort gibt es Bücher, Schülerinnen, Ausleihen, vielleicht auch Mahnungen. Wenn du sofort Tabellen anlegst, vergisst du leicht etwas oder speicherst dieselbe Information doppelt. Das ER-Modell setzt einen Schritt davor an: Erst wird die Wirklichkeit geordnet, dann wird daraus eine Datenbank.

Definition

ER-Modell

Ein ER-Modell ist ein Modell zur Datenbankplanung. Es beschreibt wichtige Dinge einer Miniwelt, ihre Eigenschaften und ihre Beziehungen zueinander. ER steht für Entity Relationship, also Entität und Beziehung.

Definition

Miniwelt

Eine Miniwelt ist der Ausschnitt der Wirklichkeit, den ein Informationssystem abbilden soll. Für eine Bibliothek gehören Bücher und Ausleihen dazu, aber zum Beispiel nicht der Stundenplan der Mensa.

Ein ER-Modell beantwortet zuerst fachliche Fragen: Was gibt es? Welche Eigenschaften sind wichtig? Wie hängen die Dinge zusammen? Technische Details wie Speicherort oder Programmiersprache kommen später.

Beispiel

Miniwelt: Schulbibliothek

Wichtige Fragen:

  1. Welche Bücher gibt es?
  2. Welche Schülerinnen und Schüler dürfen ausleihen?
  3. Welches Buch wurde wann ausgeliehen?
  4. Kann ein Buch gleichzeitig mehrfach ausgeliehen sein?

Aus diesen Fragen entstehen Entitäten wie Buch und Schueler sowie die Beziehung leiht aus.

Merke

Ein ER-Modell ist kein fertiges Programm. Es ist der Plan, der vor dem Tabellenbau klärt, welche Daten zusammengehören.

Interaktive Quizfrage wird geladen ...

Entitäten und Attribute

Der erste Baustein sind Entitäten. Eine Entität ist etwas, worüber du Daten speichern möchtest. Das kann eine Person, ein Gegenstand, ein Ereignis oder ein abstraktes Objekt sein.

Definition

Entität

Eine Entität ist ein eindeutig betrachtbares Objekt der Miniwelt, über das Daten gespeichert werden. Beispiele sind ein bestimmtes Buch, eine bestimmte Schülerin oder eine bestimmte Ausleihe.

Definition

Entitätstyp

Ein Entitätstyp fasst gleichartige Entitäten zusammen. Buch ist ein Entitätstyp; das konkrete Buch "Tschick" mit Inventarnummer 17 ist eine Entität dieses Typs.

Definition

Attribut

Ein Attribut ist eine Eigenschaft eines Entitätstyps. Beim Entitätstyp Buch können titel, autor und isbn Attribute sein.

Im Diagramm werden Entitätstypen häufig als Rechtecke gezeichnet. Attribute hängen je nach Notation daran oder stehen in der Tabellenform darunter. Für Schulaufgaben ist wichtiger, dass du die Rolle erkennst: Entitätstyp = Dingart, Attribut = Eigenschaft.

Beispiel

Entitätstyp Schueler

Mögliche Attribute:

  • schueler_id
  • vorname
  • nachname
  • klasse

Konkrete Entität:

  • schueler_id = 7
  • vorname = Mia
  • nachname = Kaya
  • klasse = 8b

Die Entität ist also ein einzelnes echtes Objekt im Modell. Der Entitätstyp ist die Schablone für viele solche Objekte.

Interaktiver Lückentext wird geladen ...

Schlüssel: eindeutig statt geraten

Viele Modellierungsfehler entstehen, weil man glaubt, ein Name sei eindeutig. In Datenbanken ist das gefährlich. Darum markiert man schon im ER-Modell, welches Attribut einen Datensatz eindeutig identifiziert.

Definition

Schlüssel

Ein Schlüssel ist ein Attribut oder eine Attributkombination, mit der jede Entität eindeutig erkannt werden kann.

Definition

Primärschlüssel

Der Primärschlüssel ist der ausgewählte Hauptschlüssel eines Entitätstyps. Er wird später in der Tabelle genutzt, um jeden Datensatz eindeutig anzusprechen.

Bei Schueler wäre schueler_id oft besser als name, weil Namen doppelt vorkommen können. Bei Buch kann eine interne buch_id besser sein als der Titel, denn mehrere Bücher können denselben Titel haben.

Beispiel

Welche Attribute eignen sich als Schlüssel?

Schueler(vorname, nachname, klasse, schueler_id)

  • vorname: ungeeignet, viele heißen gleich.
  • nachname: ungeeignet, Geschwister können denselben Nachnamen haben.
  • klasse: ungeeignet, viele sind in einer Klasse.
  • schueler_id: geeignet, wenn jede ID genau einmal vergeben wird.

Der Primärschlüssel wäre also schueler_id.

Merke

Ein Schlüssel ist gut, wenn er eindeutig, stabil und möglichst kurz ist. "Sieht eindeutig aus" reicht nicht.

Interaktive Quizfrage wird geladen ...

Beziehungen und Kardinalitäten

Entitäten stehen selten allein. Eine Schülerin leiht ein Buch aus. Ein Kurs gehört zu einem Fach. Eine Bestellung enthält Produkte. Solche Zusammenhänge heißen Beziehungen.

Definition

Beziehung

Eine Beziehung beschreibt, wie Entitäten miteinander verbunden sind. Im ER-Modell wird sie oft mit einem Verb benannt, zum Beispiel leiht aus, besucht oder gehört zu.

Definition

Kardinalität

Die Kardinalität gibt an, wie viele Entitäten auf der einen Seite mit wie vielen Entitäten auf der anderen Seite verbunden sein dürfen oder müssen.

Die drei Grundfälle sind 1:1, 1:n und n:m. Lies sie immer in beide Richtungen. Sonst übersiehst du leicht, wo "viele" möglich sind.

Beispiel

Bibliothek:

Beziehung Schueler leiht Buch aus

Fachliche Überlegung:

  1. Eine Schülerin kann mehrere Bücher ausleihen.
  2. Ein einzelnes Buch kann zu einem Zeitpunkt höchstens von einer Person ausgeliehen sein.
  3. Über die Zeit kann dasselbe Buch aber nacheinander von vielen Personen ausgeliehen werden.

Darum modelliert man oft eine eigene Entität Ausleihe. Sie speichert ausleihdatum, rueckgabedatum, den Verweis auf Schueler und den Verweis auf Buch.

Beispiel

Kardinalitäten vergleichen:

  • 1:1: Jede Person hat höchstens einen aktuellen Schülerausweis, und jeder aktuelle Schülerausweis gehört zu genau einer Person.
  • 1:n: Eine Klasse hat viele Schülerinnen und Schüler, aber eine Schülerin gehört zu genau einer aktuellen Klasse.
  • n:m: Ein Schüler kann mehrere AGs besuchen, und eine AG kann mehrere Schüler haben.
Gut zu wissen

Warum wird aus n:m oft eine Zwischentabelle? Eine Tabelle kann in einer Zeile nicht sauber "beliebig viele" Gegenstücke speichern. Darum entsteht zum Beispiel Schueler_AG(schueler_id, ag_id). Jede Zeile beschreibt genau eine Teilnahme.

Interaktive Quizfrage wird geladen ...

Vom ER-Modell zu Tabellen

Nach dem ER-Modell folgt meistens das relationale Modell. Dabei werden Entitätstypen zu Tabellen, Attribute zu Spalten und Beziehungen zu Fremdschlüsseln oder Zwischentabellen.

Definition

Fremdschlüssel

Ein Fremdschlüssel ist eine Spalte, die auf den Primärschlüssel einer anderen Tabelle verweist. Er setzt eine Beziehung im relationalen Modell um.

Für Entitätstypen ist die Umwandlung meist direkt: Aus Buch wird eine Tabelle Buch. Schwieriger sind Beziehungen. Bei 1:n liegt der Fremdschlüssel normalerweise auf der n-Seite. Bei n:m braucht man eine eigene Beziehungstabelle.

Beispiel

ER-Idee:

  • Entitätstyp Klasse
  • Entitätstyp Schueler
  • Beziehung: Eine Klasse hat viele Schüler, ein Schüler gehört zu einer Klasse.

Tabellenidee:

Klasse(klasse_id, name)

Schueler(schueler_id, vorname, nachname, klasse_id)

klasse_id in Schueler ist ein Fremdschlüssel. Er steht auf der n-Seite, weil viele Schüler zur gleichen Klasse gehören können.

Beispiel

ER-Idee:

  • Schueler besucht AG
  • beide Seiten können viele haben

Tabellenidee:

Schueler(schueler_id, name)

AG(ag_id, name)

Schueler_AG(schueler_id, ag_id)

Die Zwischentabelle speichert jede einzelne Teilnahme.

Merke

Faustregel: Entitätstypen werden Tabellen. 1:n wird meist ein Fremdschlüssel auf der n-Seite. n:m wird eine eigene Zwischentabelle.

Prüfungsmodus

In Aufgaben bekommst du oft eine kurze Beschreibung und sollst daraus ein Modell ableiten. Markiere zuerst Nomen und Verben: Nomen liefern Kandidaten für Entitätstypen, Verben liefern Kandidaten für Beziehungen. Danach prüfst du, ob ein Nomen wirklich gespeichert werden muss.

Beispiel

Beschreibung:

"Eine Musikschule verwaltet Schüler, Instrumente und Unterrichtsstunden. Ein Schüler kann mehrere Instrumente lernen. Eine Unterrichtsstunde gehört zu genau einem Schüler und genau einer Lehrkraft."

Möglicher Denkweg:

  1. Entitätstypen: Schueler, Instrument, Unterrichtsstunde, Lehrkraft.
  2. Beziehung Schueler lernt Instrument: n:m, denn ein Schüler kann mehrere Instrumente lernen und ein Instrument wird von vielen Schülern gelernt.
  3. Beziehung Unterrichtsstunde gehört zu Schueler: n:1 aus Sicht der Stunden, denn viele Stunden können zu einem Schüler gehören.
  4. Beziehung Unterrichtsstunde gehört zu Lehrkraft: n:1 aus Sicht der Stunden.

Interaktive Quizfrage wird geladen ...

Alles auf einen Blick

Interaktive Mindmap wird geladen ...

Interaktive Lernkarten wird geladen ...

Abschluss-Check

Interaktive Quizfrage wird geladen ...

Zusammenfassung

Das ER-Modell hilft dir, eine Datenbank fachlich zu planen. Du beschreibst zuerst die Miniwelt, erkennst Entitätstypen, sammelst Attribute und modellierst Beziehungen.

Schlüssel sorgen dafür, dass Entitäten eindeutig unterscheidbar sind. Kardinalitäten zeigen, wie viele Objekte miteinander verbunden sein können.

Beim Übergang ins relationale Modell werden Entitätstypen zu Tabellen. 1:n-Beziehungen nutzt du meist als Fremdschlüssel auf der n-Seite, n:m-Beziehungen als eigene Zwischentabelle.