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 enthalten sein können, die in tblLänder enthalten sind. Andere Werte wären sinnlos - man spricht dann von Dateninkonsistenzen.

Tabellen hinzufügen
Tabellen Links Abfragen Alle

Microsoft Access kann mit dem Datenbanktool Beziehungen überwachen und sicherstellen, dass auch wirklich nur diese Werte eingetragen werden können. Öffnet man das Beziehungsfenster, wird normalerweise auch gleich Tabellen hinzufügen angezeigt. Das kann man aber natürlich auch nachträglich öffnen. Dort wählen wir tblOrte und tblLänder aus, um sie ins 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 das Feld IDLand aus tblLänder auf das Feld lngLand in tblOrte. Damit öffnet sich das Fenster „Beziehungen bearbeiten“. Hier wählen wir „Mit referentieller Integrität“ und klicken auf „Erstellen“.

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. Nachdem schon ohne die Beziehung 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. Im Beziehungsfenster erkennt man an den Zeichen „1“ und „∞“, in welcher Richtung die Beziehung definiert ist. Die referentielle Integrität stellt zudem sicher, dass auf der n−Seite nur noch Werte möglich sind, die auf der 1−Seite definitiv existieren. Inkonsistente Daten werden also von der Datenbank verhindert.

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.