Datenverlust durch Inkonsistenzen vermeiden

Irreparable Schäden an der Datenbank durch inkonsistente Daten bleiben oft zunächst unbemerkt. Da die Datensicherung nicht hilft, sollten Sie vorbeugende Maßnahmen ergreifen

Access-Datenbanken bestehen meist aus mehreren Tabellen, die über wenige Referenzfelder miteinander verknüpft werden. Die intakte Beziehung zwischen einzelnen Tabellen ist daher sehr wichtig. Fehlerhafte Referenzen, die in verknüpften Tabellen auftreten können, heißen Inkonsistenzen.

Beispiel: Kunden und Rechnungen sind in der Regel über die Kundennummer verknüpft. Die Rechnungstabelle enthält daher nur die Kundennummer, als Referenz auf Daten der Kundentabelle, aber keine anderen Kundendaten. Wenn in der Rechnungstabelle eine Kundennummer auftaucht, die in der Kundentabelle nicht existiert, fehlt ein Kunde für die Rechnung – der typische Fall einer Inkonsistenz.
Damit Access die Verknüpfung zwischen einem Kunden und seinen Rechnungen aufrechterhalten kann, muss der Wert des Fremdschlüssels in der Detail-tabelle (Rechnungen) mit dem Wert des Primärschlüssels in der Haupttabelle (Kunden) übereinstimmen. Treten hierbei Fehler auf, kommen vier Ursachen in Betracht:

1. In der Detailtabelle verursacht ein falscher Fremdschlüssel eine Einfüge-Anomalie.

2. Der Primärschlüssel (Kundennummer) in der Haupttabelle wurde geändert, obwohl er in der Detailtabelle in Benutzung ist. So entsteht eine Änderungsanomalie.

3. Ein Datensatz in der Haupttabelle wurde gelöscht, obwohl der Fremdschlüssel einer Detailtabelle auf diese Daten verweist. Hier liegt eine Löschanomalie vor.

4. Die Daten wurden mit fehlerhaften Referenzen importiert.


Die ersten drei Datenbankfehler lassen sich bei der Tabellenverknüpfung vermeiden. Wenn Sie im Dialog »Beziehungen« das Kontrollkästchen »Mit referentieller Integrität« ankreuzen, verbietet Access selbstständig alle Eingaben, Änderungen oder Löschversuche, die Anomalien verursachen.
Die Import-Variante der Inkonsistenz lässt sich nur mit einer Abfrage bekämpfen. Verwenden Sie nach jedem Import neuer Tabellen den »Assistent zur Inkonsistenzsuche« um fehlerhafte Referenzen aufzuspüren. Dazu rufen Sie den Befehl »Einfügen | Abfrage« auf und wählen den Assistenten aus. Mit wenigen Mausklicks sucht der Assistent nach Fremdschlüsseln in der Detailtabelle (Rechnungen), zu denen es keine Primärschlüssel in der Haupttabelle (Kunden) gibt.


www.chip.de/forum/office97