Tutorial: Erstellen einer n:m-Beziehung (Many-to-Many) in Microsoft Access

Melden

Hier ist ein ausführliches Tutorial, wie du eine Many-to-Many (n:m) Beziehung in Microsoft Access erstellst.

In der Welt der Datenbanken gibt es drei Arten von Beziehungen: 1:1, 1:n und n:m. Während Microsoft Access 1:n-Beziehungen direkt unterstützt, erfordert eine n:m-Beziehung (viele-zu-viele) einen kleinen Trick: eine sogenannte Verknüpfungstabelle (Junction Table).

Das Konzept verstehen

Ein klassisches Beispiel für eine n:m-Beziehung ist das Verhältnis zwischen Studenten und Kursen:

  • Ein Student kann viele Kurse besuchen.
  • In einem Kurs können viele Studenten sein.

Da man dies nicht direkt in zwei Tabellen speichern kann, ohne Datenredundanz zu erzeugen, benötigen wir eine dritte Tabelle in der Mitte.


Schritt 1: Die beiden Haupttabellen erstellen

Zuerst erstellen wir die beiden Tabellen, die miteinander verknüpft werden sollen.

  1. Tabelle „tblStudenten“:
    • StudentID (AutoWert, Primärschlüssel)
    • Vorname (Kurzer Text)
    • Nachname (Kurzer Text)
  2. Tabelle „tblKurse“:
    • KursID (AutoWert, Primärschlüssel)
    • Kursname (Kurzer Text)
    • Beschreibung (Langer Text)

Schritt 2: Die Verknüpfungstabelle erstellen

Dies ist der wichtigste Schritt. Die Verknüpfungstabelle löst die n:m-Beziehung in zwei 1:n-Beziehungen auf.

  1. Erstelle eine neue Tabelle namens „tblEinschreibungen“.
  2. Füge die folgenden Felder hinzu:
    • EinschreibungsID (AutoWert, Primärschlüssel – optional, aber empfohlen).
    • RefStudentID (Zahl, Feldgröße: Long Integer) – Dies wird der Fremdschlüssel für die Studenten.
    • RefKursID (Zahl, Feldgröße: Long Integer) – Dies wird der Fremdschlüssel für die Kurse.
  3. Optional: Du kannst auch weitere Informationen hinzufügen, die nur für diese Verbindung relevant sind, z. B. Note oder Anmeldedatum.

Schritt 3: Die Beziehungen im Beziehungs-Fenster definieren

Jetzt verknüpfen wir die Tabellen logisch miteinander.

  1. Klicke im Menüband auf den Reiter Datenbanktools und dann auf Beziehungen.
  2. Füge alle drei Tabellen (tblStudenten, tblKurse, tblEinschreibungen) dem Fenster hinzu.
  3. Die erste 1:n-Verbindung:
    • Ziehe das Feld StudentID aus tblStudenten auf das Feld RefStudentID in tblEinschreibungen.
    • Ein Fenster öffnet sich. Aktiviere das Kontrollkästchen Mit referenzieller Integrität.
    • Klicke auf Erstellen.
  4. Die zweite 1:n-Verbindung:
    • Ziehe das Feld KursID aus tblKurse auf das Feld RefKursID in tblEinschreibungen.
    • Aktiviere auch hier Mit referenzieller Integrität.
    • Klicke auf Erstellen.

Ergebnis: Du siehst nun eine Linie von tblStudenten zu tblEinschreibungen (1 zu ∞) und eine Linie von tblKurse zu tblEinschreibungen (1 zu ∞). Zusammen ergeben sie die n:m-Beziehung.


Schritt 4: Dateneingabe über Unterformulare (Praxis-Tipp)

Um die Daten benutzerfreundlich einzugeben, nutzt man in Access meist Formulare mit Unterformularen.

  1. Erstelle ein Formular basierend auf tblStudenten.
  2. Erstelle ein Unterformular basierend auf tblEinschreibungen.
  3. Wähle im Unterformular für das Feld RefKursID ein Kombinationsfeld (Dropdown) aus, das seine Daten aus tblKurse bezieht.
  4. Wenn du nun einen Studenten im Hauptformular aufrufst, kannst du im Unterformular einfach mehrere Kurse auswählen. Access speichert im Hintergrund automatisch die IDs in der Verknüpfungstabelle.

Zusammenfassung der Vorteile

  • Keine Redundanz: Kursnamen oder Studentennamen werden nicht mehrfach gespeichert.
  • Flexibilität: Du kannst beliebig viele Studenten beliebig vielen Kursen zuweisen.
  • Integrität: Durch die aktivierte referenzielle Integrität verhinderst du, dass ein Student einem Kurs zugewiesen wird, der gar nicht existiert.

Glückwunsch! Du hast erfolgreich eine n:m-Beziehung in Microsoft Access implementiert.

0