Definieren der Beziehungen zwischen Tabellen in einer Microsoft Access-Datenbank

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 304466 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
304466 Defining relationships between tables in a Microsoft Access database
Anfänger: Erfordert Kenntnisse der Benutzeroberfläche auf Einzelplatzrechnern.

Dieser Artikel bezieht sich ausschließlich auf eine Microsoft Access-Datenbank (.mdb oder .accdb).
In Artikel 304467 wird dieses Thema für Microsoft Access 2000 behandelt.
In Artikel 304468 wird dieses Thema für Microsoft Access 97 behandelt.
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Dieser Artikel beschreibt, wie man in einer Microsoft Access-Datenbank Beziehungen definiert. Er enthält die folgenden Themen:
  • Was sind Tabellenbeziehungen?
  • Typen von Tabellenbeziehungen
    • 1:n-Beziehungen
    • n:n-Beziehungen
    • 1:1-Beziehungen

  • Definieren von Tabellenbeziehungen zwischen Tabellen
    • Definieren von 1:n- oder 1:1-Beziehungen
    • Definieren von n:n-Beziehungen

  • Referenzielle Integrität
  • Aktualisierungs- und Löschweitergabe
  • Verknüpfungstypen

Weitere Informationen

Was sind Tabellenbeziehungen?

In einer relationalen Datenbank wird es durch Beziehungen ermöglicht, redundante Daten zu vermeiden. Wenn Sie beispielsweise eine Datenbank erstellen, in der Informationen zu Büchern verfolgt werden sollen, könnten Sie eine Tabelle namens "Titel" haben, in der Informationen zu jedem einzelnen Buch gespeichert werden, z. B. der Titel des Buchs, das Veröffentlichungsdatum und der Verlag. Eventuell möchten Sie auch Informationen zum Verlag speichern, z. B. Telefonnummer, Adresse und Postleitzahl. Wenn diese Informationen alle in der Tabelle "Titel" gespeichert würden, würde die Telefonnummer des Verlags bei jedem einzelnen Titel abgespeichert, der von dem Verlag herausgegeben wird.

Eine bessere Lösung besteht darin, die Verlagsdaten nur einmal in einer separaten Tabelle namens "Verlage" zu speichern. Sie würden dann einen Zeiger in die Tabelle "Titel" aufnehmen, der auf einen Eintrag in der Tabelle "Verlage" verweist.

Wenn Sie sicherstellen möchten, dass Ihre Daten synchron sind, können Sie die referenzielle Integrität zwischen den Tabellen "Titel" und "Verlage" erzwingen. Beziehungen mit referenzieller Integrität gewährleisten, dass die Informationen in einer Tabelle mit den Informationen in einer anderen Tabelle übereinstimmen. Beispielsweise muss jeder Titel in der Tabelle "Titel" mit einem bestimmten Verlag in der Tabelle "Verlage" verknüpft sein. Ein Titel kann nicht für einen Verlag zur Datenbank hinzugefügt werden, der in der Datenbank nicht vorhanden ist.

Typen von Tabellenbeziehungen

Eine Beziehung wird hergestellt, indem Daten in Schlüsselspalten abgestimmt werden, in der Regel Spalten, die in beiden Tabellen denselben Namen haben. In den meisten Fällen wird der Primärschlüssel einer Tabelle, die einen eindeutigen Bezeichner für die einzelnen Zeilen enthält, mit einem Eintrag im Fremdschlüssel der anderen Tabelle abgestimmt. Beispielsweise kann der Umsatz mit den jeweiligen verkauften Titeln verknüpft werden, indem eine Beziehung zwischen der Spalte "Titel-ID" in der Tabelle "Titel" (dem Primärschlüssel) und der Spalte "Titel-ID" in der Tabelle "Umsatz" (dem Fremdschlüssel) erstellt wird.

Es gibt drei Typen von Tabellenbeziehungen. Der Typ der erstellten Beziehung hängt davon ab, wie die verknüpften Spalten definiert sind.

1:n-Beziehungen

Eine 1:n-Beziehung ist der häufigste Beziehungstyp. Bei diesem Beziehungstyp kann eine Zeile in Tabelle A übereinstimmende Zeilen in Tabelle B haben, aber eine Zeile in Tabelle B kann nur eine übereinstimmende Zeile in Tabelle A haben. Beispielsweise haben die Tabellen "Verlage" und "Titel" eine 1:n-Beziehung: Jeder Verlag produziert viele Titel, aber ein Titel kann nur einen Verlag haben.

Eine 1:n-Beziehung wird erstellt, wenn nur eine der verknüpften Spalten ein Primärschlüssel ist oder eine Bedingung (Constraint) hat.

In Access wird die Primärschlüsselseite einer 1:n-Beziehung durch ein Schlüsselsymbol gekennzeichnet. Die Fremdschlüsselseite einer Beziehung wird durch ein Unendlichkeitssymbol gekennzeichnet.

n:n-Beziehungen

In einer n:n-Beziehung kann eine Zeile in Tabelle A viele übereinstimmende Zeilen in Tabelle B haben und umgekehrt. Sie erstellen eine solche Beziehung durch die Definition einer dritten Tabelle, die als Zuordnungstabelle bezeichnet wird. Der Primärschlüssel dieser Tabelle besteht aus den Fremdschlüsseln aus den Tabellen A und B. Beispielsweise haben die Tabellen "Autoren" und "Titel" eine n:n-Beziehung, die durch eine 1:n-Beziehung jeder dieser Tabellen zur Tabelle "TitelAutoren" definiert ist. Der Primärschlüssel der Tabelle "TitelAutoren" ist die Kombination der Spalten "au_id" (Primärschlüssel der Tabelle "Autoren" und "titel_id" (Primärschlüssel der Tabelle "Titel").

1:1-Beziehungen

In einer 1:1-Beziehung kann eine Zeile in Tabelle A nur eine übereinstimmende Zeile in Tabelle B haben und umgekehrt. Eine 1:1-Beziehung wird erstellt, wenn beide verknüpften Spalten Primärschlüssel sind oder Bedingungen (Constraints) haben.

Dieser Beziehungstyp ist nicht häufig, da die meisten so verknüpften Informationen alle in einer Tabelle enthalten wären. Sie können eine 1:1-Beziehung z. B. verwenden,
  • um eine Tabelle mit vielen Spalten zu teilen
  • um einen Teil einer Tabelle aus Sicherheitsgründen abzutrennen
  • um Daten zu speichern, die kurzlebig sind und auf einfache Weise gelöscht werden könnten, indem man einfach die Tabelle löscht
  • um Informationen zu speichern, die nur für eine Untermenge der Haupttabelle gelten
In Access wird die Primärschlüsselseite einer 1:1-Beziehung durch ein Schlüsselsymbol gekennzeichnet. Die Fremdschlüsselseite wird ebenfalls durch ein Schlüsselsymbol gekennzeichnet.

Definieren von Beziehungen zwischen Tabellen

Wenn Sie eine Beziehung zwischen Tabellen erstellen, müssen die verknüpften Felder nicht dieselben Namen haben. Sie müssen jedoch denselben Datentyp haben, es sei denn, das Primärschlüsselfeld ist ein AutoWert-Feld. Sie können ein AutoWert-Feld nur dann mit einem Nummernfeld abstimmen, wenn die Eigenschaft Feldgröße für beide Felder gleich ist. Sie können beispielsweise ein AutoWert-Feld und ein Nummernfeld abstimmen, wenn die Eigenschaft Feldgröße bei beiden Feldern "Long Integer" ist. Selbst wenn es sich bei beiden Feldern um Nummernfelder handelt, müssen sie dieselben Einstellungen für die Eigenschaft Feldgröße haben.

Definieren von 1:n- oder 1:1-Beziehungen

Gehen Sie folgendermaßen vor, um eine 1:n oder eine 1:1-Beziehung zu erstellen:
  1. Schließen Sie alle geöffneten Tabellen. Sie können Beziehungen zwischen geöffneten Tabellen nicht erstellen oder ändern.
  2. Gehen Sie in Access 2002 oder in Access 2003 folgendermaßen vor:
    1. Drücken Sie [F11], um zum Datenbankfenster zu wechseln.
    2. Klicken Sie im Menü Extras auf Beziehungen.
    Klicken Sie in Access 2007 auf der Registerkarte Datenbanktools in der Gruppe Einblenden/Ausblenden auf Beziehungen.
  3. Wenn Sie in Ihrer Datenbank noch keine Beziehungen definiert haben, wird automatisch das Dialogfenster Tabelle anzeigen angezeigt. Wenn Sie die Tabellen hinzufügen möchten, zwischen denen eine Beziehung hergestellt werden soll, aber das Dialogfeld Tabelle anzeigen nicht angezeigt wird, klicken Sie im Menü Beziehungen auf Tabelle anzeigen.
  4. Doppelklicken Sie auf die Namen der Tabellen, zwischen denen Sie eine Beziehung herstellen möchten, und schließen Sie dann das Dialogfenster Tabelle anzeigen. Wenn Sie eine Beziehung zwischen einer Tabelle und der Tabelle selbst herstellen möchten, fügen Sie diese Tabelle zweimal hinzu.
  5. Ziehen Sie das Feld, das Sie in Beziehung setzen möchten, auf das zugehörige Feld in der anderen Tabelle. Wenn Sie mehrere Felder ziehen möchten, halten Sie die Taste [STRG] gedrückt, klicken Sie auf die einzelnen Felder, und ziehen Sie dann die Felder.

    In dem meisten Fällen ziehen Sie das Primärschlüsselfeld (angezeigt in Fettdruck) aus einer Tabelle auf ein ähnliches Feld in der anderen Tabelle, das häufig denselben Namen hat und als Fremdschlüssel bezeichnet wird.
  6. Das Dialogfeld Beziehungen bearbeiten wird angezeigt. Vergewissern Sie sich, dass die in den zwei Spalten angezeigten Feldnamen korrekt sind. Falls erforderlich, können Sie sie ändern.

    Legen Sie bei Bedarf Optionen für die Beziehung fest. Wenn Sie Informationen zu einem bestimmten Element im Dialogfeld Beziehungen bearbeiten benötigen, klicken Sie auf die Fragezeichenschaltfläche und anschließend auf das jeweilige Element. Diese Optionen werden weiter unten in diesem Artikel erläutert.
  7. Klicken Sie auf Erstellen, um die Beziehung zu erstellen.
  8. Wiederholen Sie die Schritte 5 bis 8 für alle Paare von Tabellen, zwischen denen Sie eine Beziehung herstellen möchten.

    Wenn Sie das Dialogfeld Beziehungen bearbeiten schließen, werden Sie gefragt, ob Sie das Layout speichern möchten. Die Beziehungen, die Sie erstellt haben, werden in der Datenbank gespeichert, unabhängig davon, ob Sie das Layout speichern.

    Hinweis: Sie können Beziehungen sowohl in Abfragen als auch in Tabellen erstellen. Bei Abfragen wird jedoch keine referenzielle Integrität erzwungen.

Definieren von n:n-Beziehungen

Gehen Sie folgendermaßen vor, um eine n:n-Beziehung zu erstellen:
  1. Erstellen Sie die zwei Tabellen, zwischen denen eine n:n-Beziehung bestehen soll.
  2. Erstellen Sie eine dritte Tabelle, eine so genannte Zuordnungstabelle, und fügen Sie zur Zuordnungstabelle neue Felder mit denselben Definitionen wie die der Primärschlüsselfelder aus den beiden anderen Tabellen hinzu. In der Zuordnungstabelle fungieren die Primärschlüsselfelder als Fremdschlüssel. Sie können wie bei jeder anderen Tabelle weitere Felder zur Zuordnungstabelle hinzufügen.
  3. Definieren Sie den Primärschlüssel in der Zuordnungstabelle so, dass er die Primärschlüsselfelder aus den zwei anderen Tabellen enthält. Beispielsweise würde der Primärschlüssel in einer Zuordnungstabelle "TitelAutoren" aus den Feldern "BestellID" und "ProduktID" bestehen.

    Hinweis: Gehen Sie folgendermaßen vor, um einen Primärschlüssel zu erstellen:
    1. Öffnen Sie eine Tabelle in der Entwurfsansicht.
    2. Markieren Sie das Feld oder die Felder, das bzw. die Sie als Primärschlüssel definieren möchten. Klicken Sie auf den Zeilenselektor für das gewünschte Feld, um ein Feld zu markieren.

      Wenn Sie mehrere Felder markieren möchten, halten Sie die Taste [STRG] gedrückt, und klicken Sie dann auf den Zeilenselektor für die einzelnen Felder.
    3. Klicken Sie in Access 2002 oder in Access 2003 auf der Symbolleiste auf Primärschlüssel.

      Klicken Sie in Access 2007 auf der Registerkarte Entwurf in der Gruppe Tools auf Primärschlüssel.

      Hinweis: Wenn die Reihenfolge der Felder in einem Primärschlüssel mit mehreren Feldern von der Reihenfolge dieser Felder in der Tabelle abweichen soll, klicken Sie in der Symbolleiste auf Indizes, um das Dialogfeld Indizes anzuzeigen, und ordnen Sie die Feldnamen für den Index namens Primarschlüssel dann neu an.
  4. Definieren Sie eine 1:n-Beziehung zwischen jeder der zwei Primärtabellen und der Zuordnungstabelle.

Referenzielle Integrität

Die referenzielle Integrität ist ein Regelwerk, mit dem Microsoft Access sicherstellt, dass die Beziehungen zwischen Datensätzen in verknüpften Tabellen gültig sind und verknüpfte Daten nicht versehentlich gelöscht oder geändert werden. Sie können die referenzielle Integrität festlegen, wenn alle folgenden Bedingungen erfüllt sind:
  • Das übereinstimmende Feld aus der Primärtabelle ist ein Primärschlüssel oder hat einen eindeutigen Index.
  • Die verknüpften Felder haben denselben Datentyp. Es gibt jedoch zwei Ausnahmen. Ein AutoWert-Feld kann mit einem Nummernfeld verknüpft werden, dessen Eigenschaft Feldgröße auf "Long Integer" eingestellt ist, und ein AutoWert-Feld, dessen Eigenschaft Feldgröße auf die Replikations-ID eingestellt ist, kann mit einem Nummernfeld verknüpft werden, dessen Eigenschaft Feldgröße auf die Replikations-ID eingestellt ist.
  • Beide Tabellen gehören zur selben Microsoft Access-Datenbank. Wenn es sich um verknüpfte Tabellen handelt, müssen sie das Microsoft Access-Format haben, und Sie müssen die Datenbank öffnen, in der sie gespeichert sind, um die referenzielle Integrität festzulegen. Für verknüpfte Tabellen aus Datenbanken in anderen Formaten kann keine referenzielle Integrität erzwungen werden.
Bei Verwendung der referenziellen Integrität gelten die folgenden Regeln:

  • Sie können im Fremdschlüsselfeld der verknüpften Tabelle keinen Wert eingeben, der im Primärschlüssel der Primärtabelle nicht vorhanden ist. Sie können jedoch einen Nullwert im Fremdschlüssel eingeben und so angeben, dass die Datensätze nicht verknüpft sind. Beispielsweise ist keine Bestellung möglich, die einem nicht vorhandenen Kunden zugeordnet ist, aber Sie können eine Bestellung haben, die niemandem zugeordnet ist, indem Sie im Feld "KundenID" einen Nullwert eingeben.
  • Sie können einen Datensatz nicht aus einer Primärtabelle löschen, wenn in einer verknüpften Tabelle übereinstimmende Datensätze vorhanden sind. Beispielsweise können Sie keinen Mitarbeiterdatensatz aus der Tabelle "Personal" löschen, wenn dem betreffenden Mitarbeiter in der Tabelle "Bestellungen" Bestellungen zugeordnet sind.
  • Sie können einen Primärschlüsselwert in der Primärtabelle nicht ändern, wenn es zu diesem Datensatz verknüpfte Datensätze gibt. Beispielsweise können Sie keinen Mitarbeiterdatensatz in der Tabelle "Personal" ändern, wenn dem betreffenden Mitarbeiter in der Tabelle "Bestellungen" Bestellungen zugeordnet sind.

Aktualisierungs- und Löschweitergabe

Bei Beziehungen, in denen die referenzielle Integrität erzwungen wird, können Sie angeben, ob Microsoft Access Aktualisierungen oder Löschungen automatisch an verknüpfte Datensätze weitergeben soll. Wenn Sie diese Optionen einstellen, sind Lösch- und Aktualisierungsvorgänge zulässig, die normalerweise durch die Regeln der referenziellen Integrität verhindert würden. Wenn Sie in einer Primärtabelle Datensätze löschen oder Primärschlüsselwerte ändern, führt Microsoft Access die erforderlichen Änderungen in verknüpften Tabellen durch, um die referenzielle Integrität zu erhalten.

Wenn Sie beim Definieren einer Beziehung das Kontrollkästchen Aktualisierungsweitergabe an verwandte Felder aktivieren, aktualisiert Microsoft Access bei jeder Änderung des Primärschlüssels eines Datensatzes in der Primärtabelle automatisch in allen verknüpften Datensätzen den Primärschlüssel auf den neuen Wert. Wenn Sie beispielsweise eine Kunden-ID in der Tabelle "Kunden" ändern, wird das Feld "KundenID" in der Tabelle "Bestellungen" automatisch für alle Bestellungen dieses Kunden geändert, so dass die Beziehung erhalten bleibt. Microsoft Access gibt Aktualisierungen weiter, ohne eine Meldung anzuzeigen.

Hinweis: Wenn der Primärschlüssel in der Primärtabelle ein AutoWert-Feld ist, hat die Aktivierung des Kontrollkästchens Aktualisierungsweitergabe an verwandte Felder keine Wirkung, da Sie den Wert in einem AutoWert-Feld nicht ändern können.

Wenn Sie beim Definieren einer Beziehung das Kontrollkästchen Löschweitergabe an verwandte Datensätze aktivieren, löscht Microsoft Access bei jeder Löschung von Datensätzen in der Primärtabelle automatisch die verknüpften Datensätze in der verknüpften Tabelle. Wenn Sie beispielsweise einen Kundendatensatz aus der Tabelle "Kunden" löschen, werden alle Bestellungen dieses Kunden automatisch aus der Tabelle "Bestellungen" gelöscht (das gilt auch für Datensätze in der Tabelle "Bestelldetails", die mit den Bestelldatensätzen verknüpft sind). Wenn Sie Datensätze aus einem Formular oder Datenblatt löschen und das Dialogfeld Löschweitergabe an verwandte Datensätze aktiviert ist, werden Sie von Microsoft Access gewarnt, dass verknüpfte Datensätze ebenfalls gelöscht werden können. Wenn Sie jedoch Datensätze über eine Löschabfrage löschen, löscht Microsoft Access die Datensätze in verknüpften Tabellen automatisch, ohne eine Warnung anzuzeigen.

Verknüpfungstypen

Es gibt drei Verknüpfungstypen:

Option 1 definiert einen "Inner Join". Ein Inner Join ist eine Verknüpfung, bei der Datensätze aus zwei Tabellen in den Ergebnissen einer Abfrage nur dann hinzugefügt werden, wenn die Werte in den verknüpften Feldern eine festgelegte Bedingung erfüllen. In einer Abfrage ist die Standardverknüpfung ein Inner Join, der Datensätze nur dann selektiert, wenn die Werte in den verknüpften Feldern übereinstimmen.

Option 2 definiert einen "Left Outer Join" (linke äußere Verknüpfung). Ein Left Outer Join ist eine Verknüpfung, bei der alle Datensätze von der linken Seite des LEFT JOIN-Vorgangs in der SQL-Anweisung der Abfrage zu den Abfrageergebnissen hinzugefügt werden, auch dann, wenn das verknüpfte Feld aus der Tabelle auf der rechten Seite keine übereinstimmenden Werte enthält.

Option 3 definiert einen "Right Outer Join" (rechte äußere Verknüpfung). Ein Right Outer Join ist eine Verknüpfung, bei der alle Datensätze von der rechten Seite des RIGHT JOIN-Vorgangs in der SQL-Anweisung der Abfrage zu den Abfrageergebnissen hinzugefügt werden, auch dann, wenn das verknüpfte Feld aus der Tabelle auf der linken Seite keine übereinstimmenden Werte enthält.

Eigenschaften

Artikel-ID: 304466 - Geändert am: Mittwoch, 30. Mai 2007 - Version: 5.1
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
Keywords: 
kbdesign kbdatabase kbhowto KB304466
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com