Beziehungen

Als wir bei unserem Beispiel mit den Orten und Bundesländern zwei Tabellen angelegt haben, dachten wir uns, dass im Feld lngLand der Tabelle tblOrte ausschließlich Werte aus tblLänder stehen sollen. Andere Werte wären sinnlos - man spricht dann von Dateninkonsistenzen.

 Tabelle anzeigen
Tabellen Abfagen Beide

Microsoft Access kann mit dem Datenbanktool Beziehungen überwachen und sicherstellen, dass auch wirklich nur diese Werte eingetragen werden können. Üblicherweise öffnet sich beim Öffnen dieses Fensters auch gleich das Fenster Tabellen anzeigen. Man kann es aber natürlich auch nachträglich öffnen. Aus der dortigen Liste wählen wir tblOrte und tblLänder aus, um sie im Beziehungsfenster einzufügen.

Beziehungen
tblLänder tblOrte
IDLand IDOrt
txtLand txtOrt
lngLand
 Beziehungen bearbeiten
Tabelle/Abfrage:Verwandte Tabelle/Abfrage:



IDLand lngLand
   
   
Mit referentieller Integrität Aktualisierungsweitergabe an verwandte Felder
Löschweitergabe an verwandte Datensätze
Beziehungstyp:
1:n

Nun ziehen wir mit der Maus aus tblLänder das Feld IDLand auf das Feld lngLand in tblOrte. Damit öffnet sich das Fenster „Beziehungen bearbeiten“. Hier wählen wir „Mit referentieller Integrität“ und erstellen die Beziehung.

Beziehungen
tblLänder 1 tblOrte
IDLand IDOrt
txtLand txtOrt
lngLand

Damit haben wir eine Beziehung zwischen den beiden Tabellen angelegt, und zwar vom Primärschlüssel der Tabelle tblLänder zum entsprechenden Fremdschlüssel der Tabelle tblOrte.

Man spricht von einer 1:n-Beziehung, oder auch 1:∞ (eins zu unendlich)-Beziehung. Nachdem schon vorher durch den Schlüssel sichergestellt war, dass ein Wert auf der 1−Seite der Beziehung nur ein einziges Mal vorkommen darf, sind nun auf der n−Seite diese Werte beliebig oft zulässig. Die referentielle Integrität stellt zudem sicher, dass auf der n−Seite nur noch Werte möglich sind, die es auch auf der 1−Seite gibt. Inkonsistente Daten sind nicht mehr möglich.

Zur referentiellen Integrität kann man auch einstellen, was passiert, wenn man auf der 1−Seite Daten ändert oder löscht: Löscht man z. B. bei Löschweitergabe einen Datensatz auf der 1−Seite, werden auch alle auf der n−Seite zugehörigen Datensätze gelöscht. Würde man in unserem Beispiel ein Bundesland löschen, würden zugleich alle zugehörigen Orte gelöscht. Ohne Löschweitergabe kann dagegen ein Datensatz auf der 1−Seite nur gelöscht werden, wenn es auf der n−Seite keinen zugehörigen Datensatz (mehr) gibt.