Zum Inhalt springen
Zurück zur Themenübersicht

Datenmodellierung und Datenbanken

Von der Datensammlung zum Datenmodell

Warum eine einzige große Tabelle irgendwann kaputtgeht, und wie man aus einem Sachverhalt Entitäten und Beziehungen herausliest.

Benötigte Grundlagen

Dieses Vorwissen brauchst du für das Kapitel. Schau kurz nach, wenn dir etwas davon nicht mehr präsent ist, sonst leg direkt los.

Einführung

Eine Klasse führt ihre Bücherausleihe in einer Tabellenkalkulation. Eine Zeile je Ausleihe, alles drin: Buchtitel, Autor, Verlag, Name des Schülers, Klasse, Ausleihdatum.

Nach einem halben Jahr sind es 400 Zeilen, und es beginnen Merkwürdigkeiten. Ein Autor ist dreimal verschieden geschrieben. Eine Schülerin hat geheiratet, ihr alter Name steht noch in 12 Zeilen. Und ein Buch, das gerade niemand ausgeliehen hat, verschwindet aus der Liste, sobald man die letzte Ausleihzeile löscht.

Das ist kein Bedienfehler und keine Schlamperei. Es sind drei vorhersagbare Folgen einer einzigen Entscheidung: alles in eine Tabelle zu schreiben. Wer die Ursache kennt, kann sie von vornherein vermeiden.

Das kannst du nach diesem Kapitel

  • erklären, was Redundanz ist und welche drei Anomalien daraus entstehen.

  • aus einer Sachbeschreibung Entitäten, und Beziehungen herauslesen.

  • einen Schlüssel bestimmen und begründen, warum er eindeutig sein muss.

  • die Kardinalität einer Beziehung (1:1, 1:n, n:m) bestimmen.

  • ein einfaches Entity-Relationship-Modell zeichnen.

Sehen wir uns die eine Tabelle genau an

BuchtitelAutorVerlagSchülerKlasseAusleihdatum
Emil und die DetektiveKästnerDresslerMara Weber10a03.02.
Emil und die DetektiveKästnerDresslerJonas Kraus10b17.03.
Das fliegende KlassenzimmerKästnerDresslerMara Weber10a21.03.

Fällt dir auf, was hier mehrfach dasteht? „Kästner“ und „Dressler“ stehen dreimal, „Mara Weber“ und „10a“ zweimal. Man nennt das Redundanz: Dieselbe Angabe ist mehr als einmal gespeichert.

Redundanz ist nicht bloß Platzverschwendung. Sie erzeugt drei ganz konkrete Probleme, und die haben Namen.

Eine Tabelle für alles

Schueler (alles in einer Tabelle)nameklasselehrerraumAnna10aFrau K.R 12Ben10aFrau K.R 12Cem10bHerr M.R 14Dora10aFrau K.R 12„Frau K.“ und „R 12“ stehen dreimalda, einmal für jeden Schüler der10a.

Die beiden markierten Spalten enthalten keine über den einzelnen Schüler, sondern über seine Klasse. Deshalb wiederholen sie sich: dreimal „Frau K.“, dreimal „R 12“. Das ist nicht nur Platzverschwendung. Es ist eine offene Fehlerquelle. Zieht die 10a in einen anderen Raum um, muss man drei Zeilen ändern, und wer eine vergisst, hat eine Tabelle, die sich selbst widerspricht.

Die drei Anomalien

Änderungsanomalie. Der Verlag wird umbenannt. Jetzt muss die Angabe in allen Zeilen geändert werden, in denen sie steht. Wird eine übersehen, enthält die Tabelle zwei verschiedene Wahrheiten, und keine Abfrage kann noch entscheiden, welche stimmt.

Löschanomalie. Die letzte Ausleihe von „Das fliegende Klassenzimmer“ wird gelöscht. Damit verschwindet auch die , dass es dieses Buch überhaupt gibt. Man wollte eine Ausleihe entfernen und hat ein Buch verloren.

Einfügeanomalie. Die Bibliothek kauft ein neues Buch. Wohin damit? Es gibt noch keine Ausleihe, also keine Zeile. Man kann das Buch erst eintragen, wenn es jemand ausleiht, und das ist offensichtlich verkehrt herum.

Alle drei haben dieselbe Ursache: In einer Tabelle stecken Dinge, die gar nicht zusammengehören. Ein Buch existiert unabhängig davon, ob es ausgeliehen ist. Ein Schüler existiert unabhängig von Büchern. Nur die Ausleihe verbindet beide.

Der Ausweg: Dinge trennen

Die Lösung folgt direkt aus der Ursache. Man sucht die eigenständigen Dinge und gibt jedem eine eigene Tabelle.

Ein solches eigenständiges Ding heißt Entität. Woran erkennt man eine? An zwei Fragen:

  1. Existiert es unabhängig? Ein Buch gibt es auch ohne Ausleihe. Ein Autorenname für sich ist dagegen nur eine Angabe über ein Buch.
  2. Hat es eigene Eigenschaften? Ein Schüler hat Vorname, Nachname, Klasse. Ein Ausleihdatum hat keine eigenen Eigenschaften; es ist selbst eine Angabe.

Für unsere Bibliothek ergibt das drei Entitäten: Buch, Schüler und Ausleihe.

Beachte, dass die Ausleihe auch eine Entität ist, obwohl sie zwischen den beiden anderen steht. Sie hat ein eigenes Datum, eine Rückgabefrist, vielleicht eine Verlängerung. Solche Dinge, die eine Beziehung mit eigenen Angaben sind, kommen häufig vor.

Dieselben Daten, zwei Tabellen

n1KlasseklasseIDnamelehrerraum110aFrau K.R 12210bHerr M.R 14SchuelerschuelerIDnameklasseID1Anna12Ben13Cem24Dora1„Frau K.“ steht jetzt genau einmal.Der Umzug der 10a ist eine einzigeÄnderung.

Dieselben Angaben wie oben, nur einmal aufgeschrieben statt viermal. Jede Klasseninformation steht genau einmal in der Tabelle Klasse; die Schüler verweisen mit klasseID darauf. Verfolge eine Zeile: Ben hat klasseID 11, und die 11 steht in Klasse bei der 10a, mehr macht ein nicht. Der Pfeil zeigt vom Verweis zum Ziel, nie umgekehrt.

Attribute und Schlüssel

Jede Entität hat , so wie ein im vorigen Kapitel. Zusätzlich braucht sie etwas Neues: eine Angabe, mit der sich jede Zeile eindeutig ansprechen lässt. Das ist der Schlüssel.

Warum eindeutig? Ohne Eindeutigkeit kann man eine bestimmte Zeile nicht sicher meinen. Gibt es zwei Schüler namens „Jonas Kraus“, so ist „ändere die Klasse von Jonas Kraus“ eine Anweisung, die niemand ausführen kann, weil unklar bleibt, welcher gemeint ist.

Ein guter Schlüssel erfüllt drei Bedingungen:

  • eindeutig: Kein Wert kommt zweimal vor.
  • unveränderlich: Er ändert sich nie, denn alle Verweise hängen daran.
  • immer vorhanden: Er darf nie leer sein.

Deshalb ist der Name ein schlechter Schlüssel, denn er ist weder eindeutig noch unveränderlich. Auch die Telefonnummer ist schlecht, weil sie wechselt. In der Praxis vergibt man eine künstliche Nummer, etwa schuelerNr oder buchNr. Sie hat keinerlei Bedeutung, und genau das ist ihre Stärke: Was nichts bedeutet, kann sich auch nicht ändern.

Beziehungen und ihre Kardinalität

Zwischen Entitäten bestehen Beziehungen. Sie sind das, was die getrennten Tabellen wieder verbindet.

Wichtig ist dabei, wie viele auf jeder Seite stehen können. Diese Angabe heißt Kardinalität, und man bestimmt sie, indem man die Beziehung in beide Richtungen durchspricht.

1:1, jedem einen, und umgekehrt auch. Beispiel: Schüler und Schülerausweis. Ein Schüler hat einen Ausweis, ein Ausweis gehört einem Schüler.

1:n, einer zu vielen. Beispiel: Klasse und Schüler. Eine Klasse hat viele Schüler, aber jeder Schüler ist in genau einer Klasse.

n:m, viele zu vielen. Beispiel: Buch und Schüler über die Ausleihe. Ein Buch kann nacheinander von vielen Schülern ausgeliehen werden, und ein Schüler leiht viele Bücher.

🔴 Die Richtung muss man einzeln prüfen. Bei „Klasse und Schüler“ verführt das Wort „viele“ dazu, n:m zu sagen. Sprich beide Sätze aus:

  • „Eine Klasse hat viele Schüler.“ → n auf der Schülerseite.
  • „Ein Schüler ist in einer Klasse.“ → 1 auf der Klassenseite.

Also 1:n und nicht n:m. Wer nur die erste Richtung prüft, entscheidet falsch, und der Fehler wirkt sich später auf den ganzen Tabellenaufbau aus.

1:n und n:m

Schüler undKlasseSchüler undKursWie viele der anderen Seite kenntein Schüler?genau eineKlassemehrere KurseWie viele Schüler kennt die andereSeite?viele Schülermehrere SchülerWie heißt das?1:nn:mReicht ein einzelnerFremdschlüssel?ja, beim Schülernein, eineSpalte fasst nureinen WertSobald beide Seiten „mehrere“sagen, hilft kein Fremdschlüsselmehr.

Die letzte Zeile ist die, auf die alles hinausläuft. Bei 1:n gibt es eine Seite, die nur einen Partner hat. Dort kann der stehen, und eine Spalte genügt. Bei n:m gibt es diese Seite nicht: Ein Schüler belegt mehrere Kurse, also müsste in seine Zeile mehr als ein Wert; ein Kurs hat mehrere Schüler, also gilt dasselbe umgekehrt. In eine Tabellenzelle passt aber genau ein Wert. Was man stattdessen tut, steht im nächsten Kapitel.

Das ER-Modell zeichnen

Ein Entity-Relationship-Modell stellt das Ergebnis grafisch dar:

  • Rechtecke für Entitäten
  • Ovale für (der Schlüssel wird unterstrichen)
  • Rauten für Beziehungen, an den Verbindungslinien steht die Kardinalität
 [Schüler] ------< leiht aus >------ [Buch]
    1                n : m               1
     |                                    |
  (schuelerNr)                        (buchNr)
  (vorname)                           (titel)
  (nachname)                          (autor)
  (klasse)                            (verlag)

Aus diesem Bild wird im nächsten Kapitel der Tabellenaufbau. Das ER-Modell ist also kein Selbstzweck, sondern der Plan, nach dem die Datenbank gebaut wird.

Ein Modell ist eine Entscheidung

Zum Schluss dieselbe Einsicht wie bei der objektorientierten Modellierung: Es gibt nicht das eine richtige Datenmodell. Es kommt darauf an, welche Fragen die Datenbank beantworten soll.

Soll die Bibliothek auch erfassen, wie oft ein Buch gelesen wurde, braucht die Ausleihe ein Rückgabedatum. Soll sie das nicht, wäre es überflüssiger Aufwand. Bewertet wird ein Modell deshalb nicht mit „richtig oder falsch“, sondern mit „beantwortet es die gestellten Fragen ohne Redundanz?“

Vom Sachverhalt zum Datenmodell

Der Sachverhalt„Schüler besuchen Klassen undbelegen Kurse.“Substantive heraussuchenDie EntitätstypenSchüler, Klasse, Kurs, dieDinge, über die etwasgespeichert wirdKardinalität je BeziehungbestimmenDie Beziehungenbesucht (1:n), belegt (n:m)Umsetzungsregeln anwendenDas DatenmodellTabellen mit Primär- undFremdschlüsseln

Vier Stationen, und nur die letzte ist Handwerk. Die Entitätstypen findet man, indem man die Substantive des Sachverhalts heraussucht und fragt: Wollen wir darüber mehrere Dinge speichern? Die Kardinalität muss man dagegen erfragen, aus dem Satz allein geht sie nicht hervor; ob ein Schüler in genau einer Klasse ist, entscheidet die Schule, nicht die Grammatik. Erst danach ist die Umsetzung in Tabellen ein mechanischer Schritt.

Die drei Anomalien am konkreten Fall

Zeige an der Bibliothekstabelle je ein Beispiel für Änderungs-, Lösch- und Einfügeanomalie.

  1. 1

    Änderung: Der Verlag „Dressler“ wird in „Dressler Verlag“ umbenannt. Die Angabe steht in drei Zeilen. Ändert man nur zwei, gibt es zwei Schreibweisen, und eine Suche nach „Dressler Verlag“ findet das dritte Buch nicht mehr.

  2. 2

    Löschen: Jonas gibt sein Buch zurück, die Zeile wird gelöscht. War es die einzige Zeile mit „Das fliegende Klassenzimmer“, weiß die Bibliothek jetzt nicht mehr, dass sie dieses Buch besitzt.

  3. 3

    Einfügen: Ein neues Buch kommt in den Bestand. Die Tabelle verlangt aber Schüler und Ausleihdatum, die es noch nicht gibt. Man müsste leere Felder eintragen und hätte eine Ausleihe ohne Ausleiher.

  4. 4

    Alle drei Fälle haben dieselbe Ursache: Buch, Schüler und Ausleihe stecken in einer Zeile, obwohl sie unabhängig voneinander existieren.

  5. 5

    Nach der Trennung in drei Tabellen verschwinden alle drei: Der Verlag steht einmal beim Buch, das Buch bleibt beim Löschen einer Ausleihe erhalten, und ein neues Buch wird einfach in die Buchtabelle eingetragen.

Alle drei Anomalien folgen aus derselben Redundanz und verschwinden mit der Trennung der Entitäten.

Kardinalität bestimmen

Bestimme die Kardinalität: a) Lehrer und Fach, b) Schüler und Sitzplatz im Klassenraum, c) Autor und Buch.

  1. 1

    a) Beide Richtungen durchsprechen: „Ein Lehrer unterrichtet mehrere Fächer.“ → viele. „Ein Fach wird von mehreren Lehrern unterrichtet.“ → viele. Also n:m.

  2. 2

    b) „Ein Schüler hat einen Sitzplatz.“ → einer. „Auf einem Sitzplatz sitzt ein Schüler.“ → einer. Also 1:1.

  3. 3

    c) „Ein Autor schreibt mehrere Bücher.“ → viele. „Ein Buch hat einen Autor.“ → einer, jedenfalls in diesem Modell. Also 1:n.

  4. 4

    Zu c) gehört eine Nachfrage, denn die Antwort hängt vom Zweck ab: Sollen auch Bücher mit zwei Verfassern erfasst werden, ist es n:m. Das ist keine Spitzfindigkeit, sondern genau die Modellentscheidung, die man treffen und begründen muss.

  5. 5

    Merke die Arbeitsweise: immer zwei Sätze bilden, einen je Richtung. Wer nur einen bildet, rät.

a) n:m · b) 1:1 · c) 1:n, sofern das Modell nur einen Verfasser je Buch vorsieht.

Typischer Fehler

„Eine Klasse hat viele Schüler, also ist die Beziehung n:m.“

Geprüft wurde nur eine Richtung. Die Kardinalität besteht aber aus zwei Angaben, einer je Seite, und beide müssen einzeln bestimmt werden.

Sprich beide Sätze aus:

  • „Eine Klasse hat viele Schüler.“ → auf der Schülerseite steht n.
  • „Ein Schüler ist in genau einer Klasse.“ → auf der Klassenseite steht 1.

Also 1:n. Das Wort „viele“ allein entscheidet nichts, denn es kommt in jeder n:m- und in jeder 1:n-Beziehung vor.

Die Folge des Fehlers ist keine Kleinigkeit. Aus einer n:m-Beziehung entsteht im nächsten Kapitel eine zusätzliche Tabelle, aus einer 1:n-Beziehung nicht. Wer hier falsch entscheidet, baut eine Datenbank mit einer überflüssigen Tabelle oder, im umgekehrten Fall, eine, in der gar nicht abgelegt werden können.

Übung 1

leicht

Welche Anomalie liegt vor?

a) Eine Lehrerin heiratet; ihr Name steht in 40 Zeilen und wird in 38 geändert. b) Ein neuer Kurs soll angelegt werden, aber die Tabelle verlangt einen Teilnehmer. c) Der letzte Teilnehmer verlässt einen Kurs, und damit verschwindet der Kurs aus der Tabelle.

Tipp anzeigen

Frage jeweils: Wurde geändert, eingefügt oder gelöscht?

Lösung anzeigen

a) Änderungsanomalie (dieselbe Angabe an vielen Stellen, zwei Stellen blieben alt) b) Einfügeanomalie (etwas lässt sich nicht eintragen, weil etwas anderes fehlt) c) Löschanomalie (ungewollter Verlust einer anderen )

Detaillierte Schritterklärung anzeigen

Hier wird jeder Schritt einzeln erklärt, vor allem, warum er gemacht wird.

Erklärungstiefe

✦ Empfohlen: Standard – Die normale Erklärungstiefe passt zum Einstieg.

  1. 1

    Nach der Handlung ordnen, bei der es schiefgeht

    Die drei Anomalien sind nach der Handlung benannt, bei der der Schaden auftritt: Wurde gerade geändert, eingefügt oder gelöscht? Diese eine Frage entscheidet jeden Fall, ganz ohne Fachwissen über Tabellen.

  2. 2

    a) Änderungsanomalie: dieselbe Angabe an vielen Stellen

    Der Name der Lehrerin steht in 40 Zeilen, geändert wurden nur 38. Danach trägt dieselbe Person in derselben Tabelle zwei verschiedene Namen. Das ist die Änderungsanomalie.

  3. 3

    b) Einfügeanomalie: etwas lässt sich nicht eintragen

    Der Kurs existiert, soll angelegt werden, aber die Tabelle verlangt einen Teilnehmer, den es noch nicht gibt. Eine vorhandene Tatsache lässt sich also nicht speichern. Das ist die Einfügeanomalie.

  4. 4

    c) Löschanomalie: ein Löschvorgang nimmt Fremdes mit

    Der letzte Teilnehmer verlässt den Kurs, seine Zeile wird gelöscht und mit ihr verschwindet der Kurs, denn seine Angaben standen nur in dieser Zeile. Gelöscht wurde eine Anmeldung, verloren ging etwas anderes: Löschanomalie.

Übung 2

mittel

Ein Sportverein will Mitglieder, Mannschaften und Trainingszeiten verwalten. Ein Mitglied kann in mehreren Mannschaften spielen, jede Mannschaft hat genau einen Trainer.

a) Bestimme die Entitäten. b) Gib je Entität drei und den Schlüssel an. c) Bestimme alle Beziehungen mit Kardinalität. d) Begründe, warum „Trainername“ kein Attribut der Mannschaft sein sollte.

Tipp anzeigen

Zu d): Was passiert, wenn ein Trainer zwei Mannschaften betreut und heiratet?

Lösung anzeigen

a) Entitäten: Mitglied, Mannschaft, Trainer. (Trainingszeit kann Attribut der Mannschaft sein oder eine eigene Entität, wenn eine Mannschaft mehrere Termine hat.)

b) Mitglied: mitgliedNr (Schlüssel), vorname, nachname, geburtsdatum. Mannschaft: mannschaftNr (Schlüssel), name, altersklasse, trainingstag. Trainer: trainerNr (Schlüssel), vorname, nachname, telefon.

c) Mitglied spielt in Mannschaft: n:m („Ein Mitglied spielt in mehreren Mannschaften“, „Eine Mannschaft hat mehrere Mitglieder“). Trainer betreut Mannschaft: 1:n („Ein Trainer betreut mehrere Mannschaften“, „Eine Mannschaft hat genau einen Trainer“).

d) Weil ein Trainer mehrere Mannschaften betreuen kann. Sein Name stünde dann mehrfach da, und alle drei Anomalien wären wieder da: Bei einer Namensänderung müssten mehrere Zeilen geändert werden, beim Löschen der letzten Mannschaft ginge der Trainer verloren, und ein neuer Trainer ohne Mannschaft ließe sich nicht eintragen. Richtig ist eine eigene Entität Trainer, auf die die Mannschaft verweist.

Detaillierte Schritterklärung anzeigen

Hier wird jeder Schritt einzeln erklärt, vor allem, warum er gemacht wird.

Erklärungstiefe

✦ Empfohlen: Standard – Die normale Erklärungstiefe passt zum Einstieg.

  1. 1

    Entitäten aus dem Text herauslesen

    Man unterstreicht die Hauptwörter der Aufgabenbeschreibung und prüft bei jedem die zwei Fragen: Existiert es unabhängig, und hat es eigene Eigenschaften?

    Zwischenergebnis

    Mitglied, Mannschaft, Trainer bestehen beide Prüfungen. „Trainingszeit“ ist grenzwertig.

    Bei Grenzfällen entscheidet der Zweck: Hat eine Mannschaft genau einen festen Termin, ist es ein Attribut. Hat sie mehrere, muss es eine eigene Entität sein, weil ein Attribut nur einen Wert trägt.

  2. 2

    Schlüssel wählen

    Für jede Entität wird eine künstliche Nummer eingeführt. Sie ist eindeutig, ändert sich nie und ist immer vorhanden, während Namen alle drei Bedingungen verletzen können.

    Zwischenergebnis

    mitgliedNr, mannschaftNr, trainerNr

  3. 3

    Teil c): jede Beziehung zweimal durchsprechen

    Für jede Verbindung werden zwei Sätze gebildet, einer je Richtung. Erst beide zusammen ergeben die Kardinalität.

    \text{Mitglied} ;\overset{n:m}{\longleftrightarrow}; \text{Mannschaft} \qquad \text{Trainer} ;\overset{1:n}{\longrightarrow}; \text{Mannschaft}

    Zwischenergebnis

    n:m zwischen Mitglied und Mannschaft, 1:n zwischen Trainer und Mannschaft.

  4. 4

    Teil d): den Fehler durchrechnen

    Statt zu behaupten, dass es falsch wäre, spielt man den Fall durch. Betreut Herr Meier die U14 und die U16, steht sein Name in zwei Zeilen der Mannschaftstabelle.

    Zwischenergebnis

    Redundanz, und daraus folgen alle drei Anomalien.

    Diese Prüfung lohnt sich bei jedem Attribut: Kann derselbe Wert bei mehreren Zeilen auftreten? Dann steckt dahinter eine eigene Entität.

Übung 3

schwer

Eine Schule verwaltet Wahlpflichtkurse. Ein Schüler belegt mehrere Kurse, ein Kurs hat mehrere Schüler. Für jede Belegung wird zusätzlich die Note festgehalten.

a) Warum lässt sich die Note weder in der Schülertabelle noch in der Kurstabelle speichern? b) Welche Lösung folgt daraus? c) Entwirf das ER-Modell mit allen Entitäten, , Schlüsseln und Kardinalitäten. d) Eine Mitschülerin schlägt vor, in der Schülertabelle die Spalten kurs1, note1, kurs2, note2, kurs3, note3 anzulegen. Nenne drei Gründe dagegen.

Tipp anzeigen

Zu a): Zu wem gehört die Note, zum Schüler oder zum Kurs?

Lösung anzeigen

a) Die Note gehört weder dem Schüler noch dem Kurs allein, sondern der Kombination aus beiden. In der Schülertabelle bräuchte man je Kurs eine Note, in der Kurstabelle je Schüler eine, und ein Attribut kann nur einen Wert tragen.

b) Die Beziehung selbst wird zu einer eigenen Entität, hier Belegung. Sie verweist auf Schüler und Kurs und trägt die Note als eigenes Attribut. Aus der n:m-Beziehung wird dadurch zweimal 1:n.

c) ER-Modell:

Entität Schüler: schuelerNr (Schlüssel), vorname, nachname, klasse. Entität Kurs: kursNr (Schlüssel), bezeichnung, lehrer, wochenstunden. Entität Belegung: schuelerNr + kursNr (zusammengesetzter Schlüssel), note, halbjahr.

Schüler 1:n Belegung · Kurs 1:n Belegung. Zusammen bilden sie die n:m-Beziehung zwischen Schüler und Kurs.

d) Erstens: Die Zahl der Kurse wäre fest auf drei begrenzt; ein vierter Kurs erforderte eine Schemaänderung, also eine neue Spalte für alle Zeilen. Zweitens: Bei Schülern mit nur einem Kurs stünden vier Spalten leer, was Platz kostet und Auswertungen erschwert. Drittens: Abfragen würden unzumutbar, denn „Wer hat Informatik belegt?“ müsste drei Spalten einzeln durchsuchen, und „Durchschnittsnote in Informatik“ müsste je nach Spalte eine andere Note heranziehen. Der Aufbau bildet außerdem eine Reihenfolge vor, die es gar nicht gibt: Kurs 1 ist nicht wichtiger als Kurs 3.

Detaillierte Schritterklärung anzeigen

Hier wird jeder Schritt einzeln erklärt, vor allem, warum er gemacht wird.

Erklärungstiefe

✦ Empfohlen: Standard – Die normale Erklärungstiefe passt zum Einstieg.

  1. 1

    a) Die Note gehört keiner der beiden Entitäten allein

    Die Note gehört weder dem Schüler noch dem Kurs, sondern der Kombination aus beiden. In der Schülertabelle bräuchte man je Kurs eine Note, in der Kurstabelle je Schüler eine, ein Attribut kann aber nur einen Wert tragen.

  2. 2

    b) Die Beziehung selbst wird zur Entität

    Daraus folgt: Die Beziehung wird zu einer eigenen Entität, hier Belegung. Sie verweist auf Schüler und Kurs und trägt die Note als eigenes Attribut. Aus der n:m-Beziehung werden dadurch zweimal 1:n.

  3. 3

    c) Das ER-Modell vollständig aufschreiben

    Schüler (schuelerNr als Schlüssel, vorname, nachname, klasse). Kurs (kursNr als Schlüssel, bezeichnung, lehrer, wochenstunden). Belegung (schuelerNr + kursNr als zusammengesetzter Schlüssel, note, halbjahr). Kardinalitäten: Schüler 1:n Belegung, Kurs 1:n Belegung.

  4. 4

    d) Drei Gründe gegen kurs1, note1, kurs2, note2, kurs3, note3

    Erstens: Die Zahl der Kurse wäre fest auf drei begrenzt; ein vierter Kurs erforderte eine Schemaänderung. Zweitens: Bei Schülern mit einem Kurs stünden vier Spalten leer. Drittens: Abfragen würden unzumutbar: „Wer hat Informatik belegt?“ müsste drei Spalten einzeln durchsuchen.

Zusammenfassung

Alles in eine Tabelle zu schreiben erzeugt Redundanz, und Redundanz erzeugt drei vorhersagbare Anomalien: Eine Änderung muss an vielen Stellen gemacht werden, ein Löschvorgang vernichtet ungewollt andere , und Neues lässt sich nicht eintragen, weil unzusammenhängende Angaben fehlen. Der Ausweg ist die Trennung in Entitäten, also in eigenständig existierende Dinge mit eigenen Eigenschaften. Jede Entität braucht einen Schlüssel, der eindeutig, unveränderlich und immer vorhanden ist; künstliche Nummern erfüllen das, Namen nicht. Beziehungen verbinden die Entitäten wieder, und ihre Kardinalität wird bestimmt, indem man beide Richtungen einzeln durchspricht. Das ER-Modell hält das Ergebnis grafisch fest und ist der Bauplan für die eigentliche Datenbank. Ein Modell ist nicht richtig oder falsch, sondern geeignet oder ungeeignet für die Fragen, die es beantworten soll.