Relationales Datenmodell 09

Aus SibiWiki
Zur Navigation springen Zur Suche springen


ER-Modell Kurssystem

Auf dieser Seite wird alles dargestellt, was man in Informatik 09 über das relationale Datenmodell wissen muss.

Einen vollständigen Überblick über das relationale Datenmodell findet man hier: relationales Datenmodell

Wofür braucht man relationale Datenmodelle?

Mithilfe von relationalen Datenmodellen kann man Datenbanken planen:

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

  • Um ein relationales Datenmodell zu erstellen, muss erst ein Entity-Relationship-Modell vorliegen.
  • Das Entity-Relationship-Modell kann mithilfe von MySQL-Workbench in ein relationales Datenmodell übertragen werden.
  • Aus MySQL-Workbench kann man das relationale Datenmodell direkt in die Datenbank übertragen.

Primärschlüssel und Fremdschlüssel

Relationales Datenmodell.

Im relationalen Datenmodell werden die Zusammenhänge zwischen den Tabellen durch Primärschlüssel und Fremdschlüssel hergestellt.

  • Primärschlüssel: Der Primärschlüssel (Primary Key; abgekürzt: PK) ist ein Attribut, das einen Datensatz (=eine Zeile in der Tabelle) eindeutig identifiziert.
    • Primärschlüssel haben in MySQL Workbench ein Schlüsselsymbol.
    • Man benennt sie am besten mit id.
  • Fremdschlüssel: Der Fremdschlüssel (Foreign Key; abgekürzt: FK) stellt die Verbindung zwischen Tabellen her: Ein Fremdschlüssel verweist auf den Primärschlüssel einer anderen Tabelle.
    • Fremdschlüssel in 1:n-Beziehungen: Fremdschlüssel werden von MySQL-Workbench automatisch erzeugt, wenn man eine 1:n-Beziehung herstellt, z.B.: lehrer_id in der Tabelle schueler.
    • Fremdschlüssel in n:m-Beziehungen: Für n:m-Beziehungen erzeugt MySQL-Workbench eine Zwischentabelle; z.B. die Tabelle belegt. In dieser Tabelle sind zwei Fremdschlüssel: schueler_id und kurs_id. Zusammen bilden sie den Primärschlüssel der Tabelle belegt. Denn: die Kombination aus schueler_id und kurs_id identifiziert eindeutig eine Zeile in der Tabelle belegt. (Kein Schüler kann zweimal den gleichen Kurs belegen...)

Wie sieht die Datenbank dann aus?

Die Datenbank kann dann z.B. so aussehen wie unten.

  • Die Primärschlüssel (id) identifizieren in den Tabellen schueler, kurs und

lehrer eindeutig die Datensätze (=Zeilen).

  • In der Tabelle belegt besteht der Primärschlüssel aus der Kombination von schueler_id und kurs_id.
  • Durch die Fremdschlüssel (schueler_id, kurs_id und lehrer_id) wird die Beziehung zwischen den Tabellen hergestellt.


Tabelle schueler

id name vorname
1 Meier Hans
2 Schwarzmüller Stefanie
3 Amann Georg
4 Buttenmüller Maria

Tabelle belegt

schueler_id kurs_id note
1 2 3
1 3 1
2 1
2 2
3 2 1

Schüler 2 (= Stefanie Schwarzmüller)
hat noch keine Noten gekriegt!

Tabelle kurs

id fach kuerzel lehrer_id
1 Mathematik M-1 3
2 Deutsch D-1 1
3 Mathematik M-2 2

Tabelle lehrer

id name vorname
1 Rees Martin
2 Zimmermann Georg
3 Hug Christina