www.wikidata.de-de.nina.az
Als Konsistenz wird in Datenbanken die Korrektheit der dort gespeicherten Daten bezeichnet Inkonsistente Datenbanken konnen zu schweren Fehlern fuhren falls die daruberliegende Anwendungsschicht nicht damit rechnet Man kann dabei zwei grundlegende Perspektiven auf Konsistenz von Daten unterscheiden einerseits aus der Welt der klassischen relationalen Datenbanken und andererseits aus der Welt der verteilten Systeme Inhaltsverzeichnis 1 Verteilte Systeme 1 1 Client Centric Consistency 1 1 1 Monotonic Read Consistency 1 1 2 Monotonic Write Consistency 1 1 3 Read Your Writes Consistency 1 1 4 Write Follows Reads Consistency 1 2 Data centric Consistency 1 2 1 Causal Consistency 1 2 2 Sequential Consistency 1 2 3 Linearizability 2 Konsistenz in klassischen relationalen Datenbanken 2 1 Konsistente Transformationen 3 Siehe auch 4 EinzelnachweiseVerteilte Systeme BearbeitenVerteilte Speichersysteme haben im Zuge des Cloud Computing grossen Auftrieb und Bekanntheit erlangt In verteilten Speichersystemen werden Daten ublicherweise mehrfach uber verschiedene Server verteilt repliziert um einerseits die Verfugbarkeit der Daten zu erhohen und andererseits die Zugriffszeiten zu verringern Ersteres ist klar ersichtlich da die Wahrscheinlichkeit dass mehrere Server gleichzeitig ausfallen deutlich geringer ist als dass lediglich einer ausfallt Letzteres erklart sich dadurch dass Zugriffe wahlweise an geografisch nahere Replikas geschickt werden konnen oder ein vollig uberlasteter Server entlastet wird indem ein Teil der Zugriffe von einem anderen Server ubernommen wird In diesem Kontext bedeutet Konsistenz dass alle Replikas eines Datums identisch sind Insbesondere bedeutete dies auch dass ein verteiltes Speichersystem fur einen Datensatz A konsistent und gleichzeitig fur einen Datensatz B inkonsistent sein kann Man spricht auch von strikter Konsistenz wenn alle Replikas immer identisch sind Da es in verteilten Systemen nicht immer sinnvoll ist alle Replikas konsistent zu halten gibt es hier auch sogenannte schwache Konsistenz englisch weak consistency d h es werden keinerlei Konsistenzgarantien abgegeben und die sogenannte eventual consistency die besagt dass ein Datensatz irgendwann konsistent sein wird sofern nur eine hinreichend lange Zeit ohne Schreibvorgange und Fehler vorausgesetzt werden kann Im Spektrum zwischen eventual und strikter Konsistenz gibt es noch einige Zwischenstufen 1 dabei unterscheidet man zwischen sogenannter client centric consistency und data centric consistency Ersteres beschreibt Konsistenzgarantien aus der Sicht des Clients letzteres interne Konsistenzgarantien Client Centric Consistency Bearbeiten Monotonic Read Consistency Bearbeiten Wenn ein verteiltes Speichersystem einmal auf eine Leseanfrage eines Clients fur einen bestimmten Schlussel mit Version N geantwortet hat werden alle spateren Lesezugriffe dieses Clients nur noch Versionen die mindestens so neu sind wie N zuruckliefern Monotonic Write Consistency Bearbeiten Wenn ein bestimmter Client fur einen bestimmten Schlussel erst Wert 1 und dann Wert 2 schreibt dann ist garantiert dass das System intern die Werte ebenfalls in dieser Reihenfolge schreibt Das bedeutet insbesondere dass ohne weitere Schreibzugriffe in einer Replika niemals Wert 1 Wert 2 uberschreiben wird Read Your Writes Consistency Bearbeiten Hier garantiert das Speichersystem dass ein Prozess der ein Datum mit der Versionsnummer N geschrieben hat garantiert keine Versionen lesen wird die alter sind als N Eine triviale Implementierung hiervon waren lokal im Client vorgehaltene Replikas die nicht synchronisiert werden Allerdings wurde dies nur schwache Konsistenz und keine eventual consistency garantieren In der Praxis wird dies durch sogenannte Session Consistency umgesetzt bei der diese Garantie nur fur die Dauer einer Session gilt Beispielsweise ist es dann moglich alle Anfragen egal ob Lese oder Schreibzugriff eines bestimmten Prozesses zur selben Replika zu routen Ist diese Replika nicht verfugbar wird die Session beendet Write Follows Reads Consistency Bearbeiten Wenn ein Prozess ein Datum X in einer Version N gelesen hat und anschliessend derselbe Prozess dieses Datum uberschreibt dann garantiert Write Follows Reads Consistency dass der Schreibvorgang nur auf einer Replika von X stattfindet die mindestens in Version N vorliegen Data centric Consistency Bearbeiten Causal Consistency Bearbeiten Causal Consistency bedeutet dass alle Operationen die in einer kausalen Beziehung stehen in der gleichen Reihenfolge auf allen Replikas serialisiert werden mussen Eine Operation O ist genau dann kausal von einer Operation P abhangig wenn ein oder mehr der folgenden Bedingungen gelten O und P wurden beide vom gleichen Prozess ausgelost und P lag chronologisch vor O O ist ein Read P ist ein Write und O hat das Ergebnis von P gelesen O ist kausal abhangig von einer Operation X die wiederum kausal abhangig von P ist Transitivitat Sequential Consistency Bearbeiten Sequential Consistency ist strikter als Causal Consistency indem das Modell erfordert dass alle Operationen in der gleichen Reihenfolge auf allen Replika serialisiert werden und die Operationen jedes Clientprozesses in ihrer korrekten finalen Reihenfolge ausgefuhrt werden Linearizability Bearbeiten Linearizability ist strikter als Sequential Consistency indem das Modell daruber hinaus erfordert dass die einheitliche Ordnung der Operationen der tatsachlichen chronologischen Reihenfolge entspricht und alle Requests so erscheinen als wurden sie anstelle wahrend eines Zeitintervalls an einem Zeitpunkt passieren Konsistenz in klassischen relationalen Datenbanken BearbeitenIn relationalen Datenbanken versteht man unter Konsistenz die Integritat von Daten Diese wird durch das Aufstellen von sogenannten Integritatsbedingungen definiert Man unterscheidet verschiedene Arten der Integritatsbestimmungen Bereichsintegritat Der Wert jedes Attributes muss in einem bestimmten Wertebereich liegen Entitatsintegritat Der Primarschlussel jedes Objekts muss eindeutig sein Der Feldinhalt darf auf keinen Fall leer Sql Not Null 2 sein Referentielle Integritat Der Inhalt eines Fremdschlusselfeldes muss entweder leer Null sein oder ein Objekt mit einem solchen Schlussel muss existieren Logische Konsistenz Der Benutzer kann auch zusatzliche Integritatsbestimmungen definieren z B bei einer Stammbaumdatenbank Die Kinder mussen nach den Eltern geboren worden sein Solche Bedingungen konnen in der Regel vom Datenbanksystem nicht kontrolliert werden und mussen deshalb vom Benutzer selbst erfullt werden Eine Datenbank ist nur konsistent wenn sie alle Integritatsbestimmungen erfullt Ein Zustand in dem mindestens eine Integritatsbedingung verletzt wird wird als nicht konsistent bezeichnet 3 Konsistenz in klassischen relationalen Datenbanken ist eine Obermenge der Konsistenzdefinition aus der Welt der verteilten Systeme d h solange nicht alle Replikas identisch sind konnen auch die Integritatsbedingungen nicht alle erfullt sein Konsistente Transformationen Bearbeiten Konsistenz ist eine der vier in Datenbank Transaktionen geforderten ACID Eigenschaften Jede Transaktion muss eine Datenbank von einem konsistenten in einen anderen konsistenten Zustand uberfuhren Wahrend der Verarbeitung der Anfrage kann die Konsistenz der Datenbank jedoch kurzfristig verletzt werden Nach jeder durch eine Transaktion gegebenen Reihe von Veranderungen der Daten Einfugen Loschen oder Andern wird die Datenbank auf die Integritatsbedingungen gepruft Falls diese nicht erfullt sein sollten muss die gesamte Transaktion so zuruck abgewickelt werden dass der vorige konsistente Zustand wiederhergestellt wird Rollback Besondere Vorsicht erfordern parallel ablaufende Transaktionen Siehe auch BearbeitenReplikation Datenverarbeitung Einzelnachweise Bearbeiten Werner Vogels Eventually Consistent Revisited In allthingsdistributed com 22 Dezember 2008 abgerufen am 22 Marz 2017 englisch What Does NOT NULL Mean Really Abgerufen am 21 Januar 2018 K Scott Allen Microsoft SQL Server Constraints In odetocode com 3 Januar 2004 abgerufen am 22 Marz 2017 Normdaten Sachbegriff GND 4214306 8 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Konsistenz Datenspeicherung amp oldid 224825647