7. 1:N Beziehungen

7.1.      Verknüpfung des Primärschlüssels

Unsere Proben-Datenbank ist ein typisches Beispiel für eine 1:N Beziehung. Jeder Lokalität ("1") sind mehrere Proben-Nummern ("N") zugeordnet.

 

Eine 1:N Beziehung wird hergestellt, indem das Primärschlüsselfeld der Tabelle "1" in die Tabelle "N" als neues Feld eingefügt wird.

Das Primärschlüsselfeld wird verwendet, weil es sich um einen eindeutigen Schlüssel handeln muss.

 

Wir öffnen die Tabellen TabLokalit und TabProben in der Entwurfsansicht (z.B. Tabelle markieren und auf Entwurf klicken).

Nun wird in TabLokalit (= Tabelle "1") das die gesamte Zeile des Primärschlüsselfeldes Lok-ID markiert und kopiert (Menü Bearbeiten - Kopieren). Dann wird dieses in TabProben (= Tabelle "N") in der letzten Zeile eingefügt (Menü Bearbeiten - Einfügen).

 

Wichtig: Der Felddatentyp des eingefügten Feldes muss von AutoWert auf Zahl umgestellt werden (weil dieser Wert ja nun aus der anderen Tabelle kommt). Außerdem sollte Indiziert auf Nein oder Ja (Duplikate möglich) gestellt werden.

 

Für uns bedeutet dies: in TabProben wird nun der Felddatentyp von Lok-ID auf Zahl umgestellt sowie die Feldgröße auf LongInteger. Dies ist nötig, weil diese Nummer ja aus TabLokalit kommt und keinesfalls in TabProben neu erstellt werden soll! Außerdem sollte Indiziert auf Nein oder Ja (Duplikate möglich) gestellt werden.

 

7.2.      Beziehungen definieren

Nachdem nun der Primärschlüssel aus Tabelle "1" in die Tabelle "N" eingefügt wurde, muss noch die Beziehung zwischen den Tabellen definiert werden.

Dazu wählt man im Menü Extras - Beziehungen und erhält ein Fenster mit den vorhandenen Tabellen. Man markiert nun die entspr. Tabellen und klickt auf Hinzufügen. Hat man eine Tabelle zuviel hinzugefügt, markiert man diese einfach und drückt auf der Tastatur Entfernen.

Nun klickt man mit der Maus in Tabelle "1" auf den Primärschlüssel, und ziehen ihn auf das selbe Feld, das Sie in Tabelle "N" eingefügt haben, bevor Sie die Maustaste wieder loslassen.

 

In unserem Beispiel klickt man in TabLokalit auf Lok-ID und zieht es in TabProben auf Lok-ID.

 

Nun erscheint das Fenster Beziehungen bearbeiten und zeigt die verknüpften Tabellen und Felder an:

 

 

Optionen:

Referenzielle Integrität ist ein Regelsystem, mit dessen Hilfe Access sicherstellt, dass Beziehungen zwischen Datensätzen in Detailtabellen gültig sind und dass verknüpfte Daten nicht versehentlich gelöscht oder geändert werden.

Wenn Aktualisierungsweitergabe an Detailfeld zusätzlich aktiviert ist, aktualisiert Access bei jeder Änderung des Primärschlüssels eines Datensatzes der Mastertabelle (= Tab. "1", bei uns TabLokalit) automatisch den Primärschlüssel in allen Detaildatensätzen (= Tab. "N", bei uns TabProben) auf den neuen Wert.

Wenn Löschweitergabe an Detaildatensatz zusätzlich aktiviert ist, löscht Access bei jedem Löschen von Datensätzen in der Mastertabelle (Tab. "1", bei uns TabLokalit) automatisch die Detaildatensätze in der Detailtabelle (Tab. "N", bei uns TabProben). Dadurch werden Karteileichen verhindert.

Dies sind Beispiele für die in der Theorie besprochene Integritätsprüfung.

ACHTUNG: Wenn Sie Datensätze löschen, kann dieser Löschvorgang nicht mehr rückgängig gemacht werden. Daher ist es wichtig zu bedenken, dass bei der Aktivierung von 'Löschweitergabe an Detaildatensatz' folgende Konsequenz hat: Wenn ich eine Lokalität lösche, werden sämtliche mit ihr verknüpften Proben ebenfalls gelöscht! Zuerst muß daher überlegt werden, ob ich das überhaupt will.

Wenn Sie nun Erstellen klicken, erhalten Sie die unten gezeigte Verknüpfung, wobei das Unendlich-Zeichen (Brille) für das "N" in der 1:N Beziehung steht: