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 | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
Beziehungen bearbeiten | |||
---|---|---|---|
Tabelle/Abfrage: | Verwandte Tabelle/Abfrage: |
|
|
IDLand | lngLand | ||
Beziehungstyp: |
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 | |||||||||
---|---|---|---|---|---|---|---|---|---|
|
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.