- Konsistenz (Datenbank)
-
Als Konsistenz oder auch Integrität bezeichnet man bei Datenbanken die Korrektheit der in der Datenbank gespeicherten Daten. Man kann zwischen der technischen (arbeitet das System korrekt) und der logischen (stimmen die Beziehungen unter den Daten) Konsistenz unterscheiden.[1] Inkonsistente Datenbanken können zu schweren Fehlern führen.
Inhaltsverzeichnis
Technische Konsistenz
Unter der technischen (oder auch physischen) Konsistenz versteht man das korrekte Arbeiten der Datenbank, d. h. dass Lesezugriffe korrekt beantwortet werden und Schreibzugriffe korrekt durchgeführt werden. Die technische Konsistenz erfordert nicht, dass die Daten, die gelesen/geschrieben werden, sinnvoll sind, sondern nur, dass die Operationen den Spezifikationen gemäß durchgeführt werden.
Logische Konsistenz
Unter logischer Konsistenz versteht man die Schlüssigkeit der Daten in der Datenbank. Diese wird durch das Aufstellen von Integritätsbedingung definiert. Man unterscheidet verschiedene Arten der Integritätsbestimmungen:
- Bereichsintegrität: Der Wert jedes Attributes muss in einem bestimmten Wertebereich liegen.
- Entitätsintegrität: Der Primärschlüssel jedes Objektes muss eindeutig sein. Er darf auf keinen Fall Null sein.
- Referentielle Integrität: Der Wert eines Fremdschlüssel muss entweder Null sein, oder ein Objekt mit einem solchen Schlüssel muss existieren.
- Logische Konsistenz: Der Benutzer kann auch zusätzliche Integritätsbestimmungen definieren (z. b. bei einer Stammbaumdatenbank: Die Kinder müssen nach den Eltern geboren worden sein). Solche Bedingungen können in der Regel vom Datenbanksystem nicht kontrolliert werden und müssen deshalb vom Benutzer selbst erfüllt werden.
Eine Datenbank ist nur konsistent, wenn sie alle Integritätsbestimmungen erfüllt. Ein Zustand, in dem mindestens eine Integritätsbedingung verletzt wird, wird als nicht konsistent bezeichnet.
Konsistente Transformationen
Konsistenz ist eine der vier in Datenbank-Transaktionen geforderten ACID-Eigenschaften. Jede Transaktion muss eine Datenbank von einem konsistenten in einen anderen konsistenten Zustand überführen. Während der Verarbeitung der Anfrage kann die Konsistenz der Datenbank jedoch kurzfristig verletzt werden.
Nach jeder durch eine Transaktion gegebene Reihe von Veränderungen der Daten (Einfügen, Löschen oder Ändern) wird die Datenbank auf die Integritätsbedingungen geprüft. Falls diese nicht erfüllt sein sollten, muss die gesamte Transaktion so zurückabgewickelt werden, dass der vorige (konsistente) Zustand wiederhergestellt wird („Rollback“).
Besondere Vorsicht erfordern parallel ablaufende Transaktionen.
Weblinks
- Microsoft SQL Server Constraints
- Kapitel12: Integrität der Datenbank, Skript von Prof. Dr. M.-R. Wolff
Quellen
Kategorie:- Datenbanktheorie
Wikimedia Foundation.