- Datenkonsistenz
-
Als Konsistenz bezeichnet man bei Datenbanken allgemein die Widerspruchsfreiheit von Daten.
Konsistenz ist eine der vier in Datenbank-Transaktionen geforderten ACID-Eigenschaften. Transaktionen müssen Datenbanken von einem konsistenten in einen anderen konsistenten Zustand überführen. Während der Verarbeitung der Anfrage kann die Konsistenz der Datenbank jedoch durchaus verletzt sein.
Um die Konsistenz der Datenbank zu bewahren, werden Integritätsbedingungen (englisch constraints) festgelegt, die vom Datenbanksystem zu überwachen sind. Ein Zustand, in dem mindestens eine Integritätsbedingung verletzt wird, gilt als nicht konsistent, und die gesamte Transaktion ist so zurückabzuwickeln, dass der vorige Zustand wiederhergestellt wird („Rollback“).
Beim Einfügen, Löschen oder Ändern von Daten in einem Datenbankmanagementsystem (DBMS) werden Daten nach Integritätsbedingungen geprüft. Diese stellen sicher, dass fehlerfreie und nicht widersprüchliche Daten vorliegen.
Einige Beispiele (für ein relationales Datenbanksystem):
- es dürfen keine doppelten Primärschlüssel entstehen
- Datensätze müssen dem Relationenschema und den entsprechenden Domänen entsprechen
- Fremdschlüssel müssen vorhanden sein oder den Wert Null besitzen (Referenzielle Integrität)
Weiterhin muss mindestens die 1. Normalform erfüllt sein.
Es gibt verschiedene Ebenen von Konsistenz: Aus einer Menge von Informationen wird mittels einer formalen Sprache ein Modell erstellt (Modellkonsistenz als das Maß, in dem das Modell der konkret vorhandenen Information entspricht). Durch die Normalisierung wird daraus ein Schema erstellt (Schemakonsistenz stellt Widerspruchsfreiheit für neu hinzukommende Daten sicher). Schließlich wird durch Geschäftslogik auch die Semantische Konsistenz sichergestellt (ebenfalls für hinzukommende Daten). So ist sichergestellt, dass auch neu hinzukommende Daten in Bezug auf die Wirklichkeit konsistent sind.
Wikimedia Foundation.