Entity-Relationship-Modell: Unterschied zwischen den Versionen

Aus SibiWiki
Zur Navigation springen Zur Suche springen
Zeile 47: Zeile 47:
==Entity-Relationship-Modell==
==Entity-Relationship-Modell==
[[File:ER-modell-lehrer-kurs-schueler.png|thumb|ER-Modell Kurssystem |572px]]
[[File:ER-modell-lehrer-kurs-schueler.png|thumb|ER-Modell Kurssystem |572px]]
Zum Attribut '''note''':
* Die Note kann nicht Attribut von ''schueler'' sein, denn dann hätte jeder Schüler eine fächerübergreifende Pauschalnote.
* Die Note kann nicht Attribut von ''kurs'' sein, denn dann hätten alle Schüler eines Kurses die gleiche Note.
* Die Note gehört zur Relation ''belegt''; damit kann jede Kursbelegung durch einen Schüler mit einer Note versehen werden.


==Begründung für die Kardinalitäten==
==Begründung für die Kardinalitäten==

Version vom 21. April 2013, 16:16 Uhr


Mithilfe von Entity-Relationship-Modellen (kurz: ER-Modellen) kann man relationale Datenbanken planen:

Realität -> Anforderungsermittlung -> Entity-Relationship-Modell -> Relationales Datenmodell -> Datenbanksystem

Entität, Entitätsmenge und Attribut

  • Entität: ein reales Objekt, z.B. die Schülerin Maria Schwarzmüller. Auch eine Überweisung von 300€ auf das Abikonto ist eine Entität, denn es gibt für sie einen Beleg in "Papierform".
  • Entitätsmenge: mehrere Entitäten werden in einer Entitätsmenge zusammengefasst; so gibt es z.B. die Entitätsmenge schueler, zu der die Schülerin Maria Schwarzmüller gehört. Genauso gibt es die Entitätsmenge ueberweisung.
  • Attribut: Eigenschaft einer Entitätsmenge; jede Entität der Entitätsmenge kann einen eigenen Wert für das Attribut haben. So ist z.B. name ein Attribut der Entitätsmenge schueler. Jeder einzelne Schüler hat dann einen eigenen Wert für name, z.B. Schwarzmüller, Schmidt, Meier... . Ein Attribut der Entitätsmenge ueberweisung ist z.B. betrag.
    • Vorsicht: empfaengerkonto ist KEIN Attribut der Entitätsmenge ueberweisung; empfaengerkonto ist eine Relation (s.u.)

Entsprechungen zur Datenbank

Entität, Entitätsmenge und Attribut haben folgende Entsprechungen in der Datenbank:

  • Entitätsmenge: Datenbank-Tabelle
  • Entität: ein Datensatz in einer Tabelle (=eine Zeile der Tabelle)
  • Attribut: eine Spaltenüberschrift in der Tabelle
  • Wert: eine Zelle in der Tabelle

Relationen und Kardinalitäten

Mithilfe von Relationen kann man die Beziehungen zwischen den Entitätsmengen im ER-Modell festhalten. Relationen haben einen Namen und 2 Kardinalitäten; die Kardinalitäten geben an, in welcher zahlenmäßigen Beziehung die zwei Entitätsmengen stehen.

Folgende Kardinalitäten sind denkbar:

  • 1:1 z.B. trainer trainiert mannschaft:
    • Jeder Trainer trainiert eine Mannschaft.
    • Jede Mannschaft wird von einem Trainer trainiert.
  • 1:n z.B. schueler gehoert zu klasse
    • Jeder Schüler gehört zu einer Klasse.
    • Zu jeder Klasse gehören mehrere Schüler.
  • n:m z.B. schueler nimmt teil an kurs
    • Jeder Schüler nimmt an mehreren Kursen teil.
    • An jedem Kurs nehmen mehrere Schüler teil.

Beispielaufgabe

Die Entity-Relationship-Modellierung wird jetzt an einem Beispiel vorgestellt.

Anforderungsermittlung

Die Firma Schooltech möchte ein Datenbanksystem entwickeln, das es Gymnasien ermöglicht, Schüler, Kurse und Noten in der Oberstufe zu verwalten, u.a. für den Zeugnisdruck. Aus Gesprächen mit mehreren Schulen ergeben sich folgende Anforderungen für die Datenspeicherung:

  • Es gibt keine Schulklassen wie in der Unter- und Mittelstufe, sondern nur noch Kurse. In jedem Schulhalbjahr belegt jeder Schüler ca. 10-12 Kurse.
  • Am Ende des Halbjahres bekommt jeder Schüler in jedem Kurs eine Note.
  • Für jeden Schüler müssen Name, Vorname, Geburtsdatum, Geschlecht und Adresse gespeichert werden.
  • Für die Kurse müssen Name, Kürzel und Schulhalbjahr (z.B. 201213/2) gespeichert werden.
  • Jeder Kurs wird von einem Lehrer unterrichtet.
  • Für Lehrer müssen Name, Vorname und Kürzel gespeichert werden.

Entity-Relationship-Modell

ER-Modell Kurssystem

Zum Attribut note:

  • Die Note kann nicht Attribut von schueler sein, denn dann hätte jeder Schüler eine fächerübergreifende Pauschalnote.
  • Die Note kann nicht Attribut von kurs sein, denn dann hätten alle Schüler eines Kurses die gleiche Note.
  • Die Note gehört zur Relation belegt; damit kann jede Kursbelegung durch einen Schüler mit einer Note versehen werden.

Begründung für die Kardinalitäten

  • schueler - kurs: n:m
    • Jeder Schüler nimmt an mehreren Kursen teil.
    • An jedem Kurs nehmen mehrere Schüler teil.
  • kurs - lehrer: n:1
    • Jeder Kurs wird von einem Lehrer unterrichtet.
    • Jeder Lehrer unterrichtet mehrere Kurse.

Sonstiges

Schreibweise

Damit man das ER-Modell problemlos in das relationale Datenmodell und in die Datenbank übertragen kann, sollten einige Konventionen zur Schreibweise beachtet werden.

  • keine Umlaute, kein ß, keine Sonderzeichen (=dann streikt die Datenbank)
  • keine Leerzeichen; stattdessen einen Unterstrich verwenden, z.B.: kurs_hat_teilnehmer
  • alles klein schreiben (=erleichtert hinterher die SQL-Abfragen)

keine Primary-Keys auszeichnen

Entity-Relationship-Modelle orientieren sich an der Realität, so, wie sie durch die Anforderungsermittlung abgebildet worden ist. D.h. ER-Modelle verfügen noch nicht über technische Details wie z.B. Primary-Keys.

Die Vorgaben des Zentralabiturs sehen im ER-Modell schon Primary-Keys vor; das ist aber nicht richtig; Primary-Keys kommen erst beim relationalen Datenmodell hinzu. Vgl. Wikipedia