Informatik · Klasse 11–13 · aktualisiert
ER-Modell: Entitäten und Beziehungen modellieren
Du lernst Entitäten, Attribute, Schlüssel und Kardinalitäten kennen und überführst ein einfaches ER-Modell Schritt für Schritt in Tabellen.
0 von 13 Aufgaben gelöst
Kurz gesagt
Das ER-Modell beschreibt einen Ausschnitt der Wirklichkeit mit Entitätstypen, Attributen und Beziehungstypen. Die Kardinalität (1:1, 1:n, n:m) sagt, wie viele Entitäten beteiligt sein können. Danach wird jeder Entitätstyp zu einer Tabelle.
Eine Schule hat Schüler, Klassen und Kurse, und alles hängt irgendwie zusammen. Bevor man dafür eine Datenbank baut, muss man das Chaos ordnen. Genau dafür gibt es das ER-Modell. Hier lernst du, wie du aus einer Beschreibung ein Modell und daraus Tabellen machst.
Deine Lernziele
Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.
4 Abschnitte
Eine Entität ist ein einzelnes Objekt der Wirklichkeit, das man eindeutig erkennen kann. Beispiele sind der Angestellte Müller oder das Projekt 3232. Viele gleichartige Entitäten fasst man zu einem Entitätstyp zusammen. Das nennt man Abstraktion: Die Kollegen Fritz Maier und Paul Lehmann und viele weitere ergeben den Entitätstyp Angestellter. Weitere Entitätstypen sind Projekt, Buch, Autor oder Verlag.
Ein Attribut sagt, was über eine Entität von Interesse ist, zum Beispiel das Eintrittsdatum des Angestellten Müller. Attribute beschreiben Entitätstypen oder Beziehungstypen näher, etwa Nachname, Vorname und Eintrittsdatum beim Entitätstyp Angestellter.
Eine Beziehung verknüpft zwei oder mehr Entitäten, zum Beispiel „Angestellter Müller leitet Projekt 3232“. Gleichartige Beziehungen werden zum Beziehungstyp zusammengefasst. Aus den Feststellungen, dass Paul Lehmann ein Projekt leitet und Fritz Maier ein anderes, ergibt sich der Beziehungstyp „Angestellter leitet Projekt“.
Im ER-Diagramm werden Entitätstypen meistens als Rechteck dargestellt. Das ER-Modell zeigt nur den Ausschnitt der Wirklichkeit, der im gegebenen Kontext relevant ist. Es behandelt nur das Was (fachliche Gegebenheiten), nicht das Wie, zum Beispiel die Technik.
Definition
Entitätstyp
Ein Entitätstyp bildet einen Aspekt der realen Welt auf abstrakter Ebene ab. Er fasst gleichartige Entitäten zusammen, zum Beispiel Angestellter oder Projekt.
Beispiel: Vier Begriffe an einem Satz
- 1Satz: Angestellter Müller leitet Projekt 3232.
- 2Entitäten: der Angestellte Müller und das Projekt 3232
- 3Entitätstypen: Angestellter und Projekt
- 4Beziehung: Müller leitet das Projekt 3232; Beziehungstyp: Angestellter leitet Projekt
- 5Attribut: das Eintrittsdatum von Müller
Merke: Eine Entität ist ein Einzelfall, ein Entitätstyp fasst gleichartige Einzelfälle zusammen. Attribute beschreiben, Beziehungen verknüpfen.
Teste dich
Damit man eine Entität sicher wiederfindet, braucht man ein identifizierendes Attribut oder eine Attributkombination, an deren Werten man Entitäten eindeutig erkennt. Geeignete davon heißen Schlüsselattribute. Wenn nötig, legt man einen künstlichen Schlüssel fest. Ein Schlüssel ist eine Spalte oder Spaltengruppe, deren Werte in jeder Tabellenzeile eine einmalige Kombination ergeben. Er ist minimal: Lässt man eine Spalte weg, identifiziert er die Zeilen nicht mehr eindeutig. Gibt es mehrere Schlüsselkandidaten, wird einer als Primärschlüssel ausgewählt.
Beispiele: In einer Tabelle zu Literatur ist die ISBN der Schlüssel, denn keine zwei Bücher haben dieselbe ISBN. Buchtitel oder Autor allein sind es nicht, denn sie kommen mehrfach vor. Bei einer Tabelle Kunde kann die Kombination aus Name und Geburtstag als Schlüssel dienen, wenn es keine Kunden mit demselben Namen und demselben Geburtstag gibt. Gibt es sie doch, führt man oft ein zusätzliches Attribut als Primärschlüssel ein (stellvertretender Schlüssel, englisch surrogate key), zum Beispiel eine Kundennummer.
Bei einem starken Entitätstyp genügen ein oder mehrere Attributwerte des Typs selbst: Die Auftragsnummer identifiziert einen Auftrag. Bei einem schwachen Entitätstyp braucht man zusätzlich einen Attributwert einer anderen, in Beziehung stehenden Entität starken Typs. Eine schwache Entität kann nicht ohne die zugehörige starke Entität existieren.
Ein Beispiel: Eine Bestellung wird mit einer eindeutigen Bestellnummer (Primärschlüssel) identifiziert. Ein bestellter Artikel wird mit einem zusammengesetzten Schlüssel aus der Bestellnummer (Fremdschlüssel) und einer Positionsnummer identifiziert. Zu einer Bestellung können keine, einer oder mehrere bestellte Artikel gehören. Bestellte Artikel können aber nicht ohne eine zugehörige Bestellung existieren. Deshalb ist der bestellte Artikel die schwache Entität.
In der Chen-Notation werden schwache Entitäten durch fett gedruckte oder umrandete Rechtecke dargestellt. Eine fett gedruckte oder umrandete Linie führt zu einem Diamanten, der die Beziehung beschreibt und mit der starken Entität verbunden ist. Diese Beziehung heißt identifizierende Beziehung. Bei ihr wird der Primärschlüssel der starken Entität an die schwache Entität weitergegeben und dort für den zusammengesetzten Primärschlüssel verwendet.
Definition
Schwacher Entitätstyp
Bei einem schwachen Entitätstyp reichen die eigenen Attribute zur Identifikation nicht aus. Man braucht zusätzlich einen Attributwert einer Entität eines starken Typs, die mit ihr in Beziehung steht.
Beispiel: Raum und Gebäude
- 1Starker Entitätstyp: Gebäude. Schwacher Entitätstyp: Raum.
- 2Zur Identifikation eines Raums braucht man neben der Raumnummer auch die Angabe eines Gebäudes.
- 3Der Primärschlüssel von Raum ist also zusammengesetzt: Schlüssel des Gebäudes (als Fremdschlüssel) plus Raumnummer.
Merke: Stark: Die Identifikation gelingt mit Attributwerten des Typs selbst. Schwach: Zusätzlich wird der Schlüssel eines starken Typs gebraucht.
Teste dich
Die Kardinalität legt für jeden beteiligten Entitätstyp fest, an wie vielen Beziehungen seine Entitäten beteiligt sein können oder müssen. Du begründest sie, indem du von einer einzelnen Entität ausgehst und in beide Richtungen fragst, mit wie vielen Entitäten des anderen Typs sie in Beziehung steht. Deshalb schreibt man die Entitätsbezeichnungen meist im Singular.
1:1: Jede Entität des einen Typs steht mit einer Entität des anderen Typs in Beziehung, und in der Gegenrichtung genauso. Beispiel: Ein zugelassenes Fahrzeug hatte in Deutschland bis Juli 2012 genau ein Kfz-Kennzeichen, und jedes Kennzeichen gehörte zu genau einem Fahrzeug.
1:n: Jede Entität des einen Typs steht mit beliebig vielen Entitäten des anderen Typs in Beziehung. In der Gegenrichtung steht jede mit genau einer. Eine n:1-Beziehung wird selten angegeben, weil sie ein von rechts nach links gelesenes 1:n ist. Beispiel: Jeder Mitarbeiter arbeitet in einer Abteilung, in jeder Abteilung können n Mitarbeiter arbeiten. Das ist eine n:1-Beziehung.
n:m: Auf beiden Seiten können beliebig viele Entitäten in Beziehung zueinander stehen. Man schreibt n:m und nicht n:n, denn n:n würde bedeuten, dass auf beiden Seiten gleich viele Entitäten vorhanden sind.
Die Grundformen 1:1, 1:n und n:m nennen nur die Maximalaussage. In der Chen-Notation wird vereinfachend dargestellt, wie viele Entitäten höchstens in Beziehung stehen können. Die Min-Max-Notation gibt je Entitätstyp ein Paar „min, max“ an: Jede Entität dieses Typs nimmt an mindestens min und höchstens max Beziehungen teil. Mit einer Min-Angabe 0 ist die Beziehung optional, mit 1 muss sie bestehen.
Definition
Kardinalität
Die Kardinalität legt für jeden beteiligten Entitätstyp fest, an wie vielen Beziehungen seine Entitäten beteiligt sein können oder müssen.
Beispiel: Zwei Beziehungen begründen
- 1Ein Kind hat genau eine leibliche Mutter. Diese Mutter kann mehrere Kinder haben.
- 2Also gilt: Mutter 1:n Kind.
- 3Eine Immobilie kann mehreren Eigentümern gehören (Eigentümergemeinschaft). Ein Eigentümer kann mehrere Immobilien besitzen.
- 4Auf beiden Seiten stehen beliebig viele Entitäten, also gilt: Eigentümer n:m Immobilie.
Merke: Gehe von einer Entität aus und frage in beide Richtungen: Mit einer oder mit beliebig vielen Entitäten des anderen Typs? Daraus folgt 1:1, 1:n oder n:m.
Teste dich
Man geht schrittweise vor. Am Anfang steht eine informelle Beschreibung, etwa Notizen aus dem Sekretariat einer Schule. Zuerst legst du fest, welchen Ausschnitt der realen Welt (die Miniwelt) das Modell erfassen soll. Dann entwirfst du ein vereinfachtes ER-Modell. Dabei spielen Attribute und Datentypen noch keine große Rolle.
Schritt 1: Gleichartige Entitäten werden zu Entitätstypen zusammengefasst. Schüler haben ähnliche Eigenschaften wie Name, Vorname und Geburtstag. Auch abstrakte Objekte wie die Klassen einer Schule sind Entitäten. Schritt 2: Gleichartige Beziehungen werden zu Beziehungstypen und als Raute mit Verbindungen zu den Entitätstypen gezeichnet. Zwischen denselben Entitätstypen können mehrere Beziehungstypen entstehen, deshalb steht eine Beschreibung in der Raute. Schritt 3: Du bestimmst die Kardinalitäten. Ein Schüler gehört maximal einer Klasse an, einer Klasse gehören bis zu n Schüler an: Schüler–Klasse ist 1:n. Ein Schüler belegt bis zu m Kurse, ein Kurs wird von bis zu n Schülern belegt: Schüler–Kurs ist n:m.
Schritt 4: Du beschreibst die Attribute genauer, zum Beispiel mit Feldlänge, Wertebereich und Pflichtfeld, und bestimmst Schlüsselattribute. Üblicherweise haben Beziehungstypen keine Attribute. Braucht man doch eines, kann man einen eigenständigen Entitätstyp bilden. Schritt 5: Du überführst das Modell in Tabellen. Jeder Entitätstyp wird eine Tabelle (Relation), jedes Attribut wieder ein Attribut. Ein Beziehungstyp wird zu einem Fremdschlüssel, ein n:m-Beziehungstyp zu einer zusätzlichen Tabelle.
Bei 1:n wird die Tabelle der n-Seite um den Fremdschlüssel der 1-Seite erweitert. Als Fremdschlüssel wird in der Regel der Primärschlüssel der anderen Tabelle verwendet. Bei 1:1 wird eine der beiden Tabellen um den Fremdschlüssel der anderen erweitert; zusätzlich muss sichergestellt sein, dass die Werte in der Fremdschlüsselspalte nur einmal vorkommen, zum Beispiel durch UNIQUE-Constraints. Eine n:m-Beziehung lässt sich nicht wie eine 1:n-Beziehung in den vorhandenen Tabellen speichern. In den meisten relationalen Datenbanken legt man eine Hilfstabelle an, die die Primärschlüssel beider Tabellen als Fremdschlüssel enthält. Hat die n:m-Beziehung eigene Attribute, bildet man oft schon im ER-Modell einen eigenen Entitätstyp mit zwei 1:n-Beziehungen.
Schritt 6: Zuletzt erzeugst du das Schema der relationalen Datenbank mit allen Tabellen und Felddefinitionen samt Datentypen. Mit CREATE TABLE legst du Tabellen an. Das legt nur die Struktur fest, es werden noch keine Daten gespeichert.
Definition
Fremdschlüssel
Ein Fremdschlüssel ist ein Attribut oder eine Attributkombination einer Tabelle, die auf den Primärschlüssel einer anderen Tabelle verweist. So zeigt er, welche Datensätze zusammengehören.
Beispiel: Schulwelt in Tabellen (nur Struktur, ohne Schlüsselnamen)
- 1Entitätstypen: Schüler, Klasse, Kurs. Jeder wird eine Tabelle.
- 2Schüler–Klasse ist 1:n, die n steht bei Schüler: Die Tabelle Schüler bekommt einen Fremdschlüssel auf den Primärschlüssel der Tabelle Klasse.
- 3Schüler–Kurs ist n:m: Es entsteht eine zusätzliche Tabelle mit Fremdschlüsseln auf die Tabellen Schüler und Kurs.
Merke: Entitätstyp → Tabelle. 1:n → Fremdschlüssel in der Tabelle der n-Seite. n:m → zusätzliche Tabelle mit den Fremdschlüsseln beider Tabellen.
Teste dich
Alles auf einen Blick
ER-Modell
Entität und Typ
Eine Entität ist ein Einzelfall, ein Entitätstyp fasst gleichartige Entitäten zusammen
Attribut und Beziehung
Attribute beschreiben, Beziehungen verknüpfen Entitäten
Schlüssel
Starke Typen werden durch eigene Attribute identifiziert, schwache brauchen zusätzlich den Schlüssel eines starken Typs
Kardinalität
1:1, 1:n und n:m nennen die Maximalaussage; die Min-Max-Notation ergänzt, ob die Beziehung optional ist
Tabellen
Entitätstyp wird Tabelle, 1:n wird Fremdschlüssel auf der n-Seite, n:m wird zusätzliche Tabelle
Musteraufgabe · Schritt für Schritt
Angestellter leitet Projekt in Tabellen überführen (ausgedachte Schlüsselnamen)
- 1Gegeben: Ein Projekt wird immer von genau einem Angestellten geleitet, ein Angestellter darf mehrere Projekte leiten.
- 2Schritt 1: Entitätstypen sind Angestellter und Projekt, der Beziehungstyp heißt „leitet“.
- 3Schritt 2: Kardinalität: Angestellter 1:n Projekt. Die n steht bei Projekt.
- 4Schritt 3: Jeder Entitätstyp wird eine Tabelle. Ausgedachte Primärschlüssel: AngNr bei Angestellter, ProjNr bei Projekt.
- 5Schritt 4: Die n-Seite bekommt den Fremdschlüssel: Projekt hat zusätzlich die Spalte AngNr, die auf AngNr in Angestellter verweist.
- 6Probe: Zwei Projekte dürfen dieselbe AngNr tragen (ein Angestellter, mehrere Projekte). Jedes Projekt hat nur eine AngNr, also genau einen Leiter.
Fehler finden
Prüfe die Schritte bei Mitarbeiter und Abteilung In einer Zeile steckt ein Fehler. Tippe sie an.
Fehler in Zeile 4Der Fremdschlüssel steht auf der falschen Seite. Richtig: Bei 1:n erhält die Tabelle der n-Seite den Fremdschlüssel, hier also die Tabelle Mitarbeiter mit dem Primärschlüssel der Abteilung.
Lückentext
Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.
Stehen auf beiden Seiten beliebig viele Entitäten, schreibt man . Bei einer 1:n-Beziehung kommt der Fremdschlüssel in die Tabelle der . Zur Identifikation einer schwachen Entität braucht man zusätzlich einen Attributwert einer Entität Typs, die mit ihr in Beziehung steht.
Karteikasten
Erst selbst überlegen, dann umdrehen.
Übung mit Feedback