Datenbankintegrität

In einer Datenbank verweisen viele Daten auf andere Daten, z. B.

Insgesamt gibt es in der Datenbank "zig" solcher Verweise.

Der SQL-Server sorgt dafür, dass keine Datensätze gelöscht werden, die andernorts noch benötigt werden. Der Fachbegriff lautet "referentielle Integrität". Es erscheint dann eine Fehlermeldung, teils schon vom Programm ("Abbruch zur Vermeidung ungültiger Verweise"), teils erst vom SQL-Server.

Wenn Datensätze, die noch benötigt werden, dennoch gelöscht werden sollen, muss erst dafür gesorgt werden, dass alle Datensätze, die auf sie verweisen, entweder ebenfalls gelöscht werden oder einen Ersatz erhalten.

Dieser Vorgang ist für Adressdubletten automatisiert. Im übrigen kann dies manuell oder durch den Dubletten-Killer geschehen.

Beispiele

Soll das Sachgebiet "Kreditrecht" gelöscht werden, weil es mit dem Sachgebiet "Bankrecht" zusammen gelegt werden soll, müssen alle Akten zum "Kreditrecht" manuell in "Bankrecht" geändert werden. Erst dann kann "Kreditrecht" gelöscht werden.

Anders ist es natürlich, wenn nur die Bezeichnung eines Sachgebiets geändert werden soll. Da Akten nicht auf die Bezeichnung, sondern auf die Nummer (Id) des Sachgebiets verweisen, lässt eine Änderung der Bezeichnung den Verweis unberührt und kann diese Änderung jederzeit ohne weiteres erfolgen.

Änderungsweitergabe ("UPDATE Spezifikation", "Regel aktualisieren")

Verwandt ist der Fall, wenn der Primärschlüssel eines Datensatzes geändert wird, z.B. also das Aktenzeichen einer Akte.

Da z.B. die Beteiligungen und Zeiterfassungs-Einträge mit dem Aktenzeichen verknüpft sind, muss sichergestellt sein, dass bei einer Änderung des Aktenzeichens auch die entsprechenden Datensätze in den Tabellen "Aktenbeteiligte" und "Timesheet" geändert werden (u.U. auch diversen weiteren).

Dies erfolgt automatisch, sofern die entsprechenden Tabellen miteinander verknüpft sind und hierbei "überlappend" (bei Access bezeichnet als Änderungsweitergabe oder als verknüpfte Felder mit CASCADE aktualisieren) aktiviert ist.

Die mit der Installation vorhandenen Einstellungen sollten eigentlich überhaupt nicht verändert und wenn doch dann nur durch einen kundigen Administrator.

Mit dem SQL-Server Management Studio können alle Einstellungen vorgenommen, wenn auch, zumal hinsichtlich der deutschen Formulierungen, nicht besonders benutzerfreundlich (Screenshot rechts, zum Vergleich: Screenshot von Access 2010). Näheres in der Dokumentation.

Löschweitergabe ("INSERT Spezifikation", "Regel löschen")

Eine Löschweitergabe sorgt dafür, dass mit der Löschung eines Datensatzes auch alle weiteren Datensätze gelöscht werden, die mit diesem verknüpft waren. Dies kann sehr weitreichende Folgen haben, so dass die Löschweitergabe nur in sicherer Kenntnis aller denkbaren Folgen eingesetzt werden sollte.

Im SQL-Server-Managementstudio wird dies als "überlappend" bezeichnet. Unter Access hieß es klarer "verknüpfte Felder mit CASCADE löschen".

Wird etwa eine Adresse gelöscht, werden damit auch sämtliche Beteiligungen gelöscht, sowie die mit den Beteiligungen verknüpften Konten, Rechnungen und Mahnverfahren.


Impressum

a-jur-Kanzleisoftware

www.a-jur.de