Frage von AIex2, 38

Was ist referentielle Integrität bei Access?

Was versteht man unter referentielle Integrität bei Access?

Antwort
von wotan38, 19

Die referentielle Intergrität ist nicht nur eine Eigenschaft von Tabellen, vielmehr kann sie optional für Tabellen zur Überwachung dafür eingerichtet werden. Wird so eine Überwachung festgelegt, so sorgt die Datenbank automatisch dafür, dass sie nicht verletzt wird. Bei Verstößen bei der Datenpflege werden regelwidrige Anweisungen mit entsprechender Fehlermeldung abgewiesen. Man kann z.B. keine Artikel-Nr verkaufen, wenn es diesen Artikel nicht gibt oder eine Kunden-Nr löschen, auf den sich noch Rechnungen beziehen. Realisiert wird die referentielle Integrität mittels des Fremdschlüssels, der in der bezogenen Tabelle Primärschlüssel ist (geht auch bei Verbundschlüsseln, die aus mehreren Feldern zusammengesetzt sind). Es gibt mehrere Optionen für die Art der Behandlung:

delete restrict bedeutet: Löschen ist nicht gestattet.

delete cascade bedeutet: Sätze mit Bezug auf den zu löschenden Satz werden mitgelöscht, falls vorhanden, auch deren Bezüge.

delete set null bedeutet, dass lediglich der Bezug in den Sätzen auf Null gesetzt wird.

Antwort
von Ninombre, 22

Das ist nicht speziell bei Access, sondern generell bei relationalen Datenbanken. Wenn Datensätze in mehreren Tabellen abgelegt (über Schlüssel verknüpft) sind, dann darf nicht in einer Tabelle der Satz gelöscht werden, ohne die anderen Tabellen ebenfalls zu ändern. Gleiches gilt für das Anlegen von Sätzen. Ansonsten steht in den Tabellen "Datenmüll"

Bsp: Drei Tabellen: Auftragsnummer -> Vertragskonto > Adresse
Über die Auftragsnummer findet man ein Vertragskonto, über dieses wiederum eine Lieferadresse. Löscht man nur einen Satz in der Tabelle Vertragskonto, kommt man über die Auftragsnummer nicht mehr an die entsprechende Lieferadresse.

Etwas ausführlicher und "wissenschaftlicher" formuliert
https://de.wikipedia.org/wiki/Referentielle_Integrit%C3%A4t

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten