Chen vs. Crow's Foot - m:n Beziehung

Szenario: Studenten belegen Kurse

Geschäftsregeln:

1. Chen-Notation (ERM)

Student
────
belegt
────
Kurs


Attribute der Beziehung "belegt":
Note
Datum
Chen-Regel: Die Raute "belegt" löst die m:n-Beziehung auf. Attribute der Beziehung (Note, Datum) werden als Ovale an die Raute gehängt. Keine separate Hilfstabelle im Diagramm!

2. Crow's Foot - Konzeptionell

Student
student_id
name
email
||────⋖⋖────||
Kurs
kurs_id
titel
credits
Konzeptionell: Direkte m:n-Beziehung ohne Hilfstabelle. Die Krähenfüße (⋖⋖) zeigen "viele zu viele".

3. Crow's Foot - Logisch/Implementierung

Student
student_id
name
email
||────O⋖
Student_Kurs
student_id (FK)
kurs_id (FK)
note
belegung_datum
⋖O────||
Kurs
kurs_id
titel
credits
Implementierung: Hilfstabelle "Student_Kurs" wird explizit gezeichnet. Sie enthält beide Fremdschlüssel plus die Beziehungsattribute (Note, Datum).
||────O⋖ = Ein Student kann 0 bis viele Belegungen haben
⋖O────|| = Ein Kurs kann 0 bis viele Belegungen haben

4. Resultierende SQL-Tabellen

CREATE TABLE Student (
  student_id INT PRIMARY KEY,
  name VARCHAR(100),
  email VARCHAR(100)
);

CREATE TABLE Kurs (
  kurs_id INT PRIMARY KEY,
  titel VARCHAR(100),
  credits INT
);

CREATE TABLE Student_Kurs (
  student_id INT,
  kurs_id INT,
  note DECIMAL(2,1),
  belegung_datum DATE,
  PRIMARY KEY (student_id, kurs_id),
  FOREIGN KEY (student_id) REFERENCES Student(student_id),
  FOREIGN KEY (kurs_id) REFERENCES Kurs(kurs_id)
);

Zusammenfassung für IHK-Prüfung

Chen-Notation:
  • M:n als Raute modellieren
  • Beziehungsattribute an die Raute
  • Keine Hilfstabellen im Diagramm
Crow's Foot:
  • Konzeptionell: Direkte m:n-Linie
  • Logisch: Hilfstabelle als eigenes Rechteck
  • Hilfstabelle enthält beide FKs + Beziehungsattribute