2012-09-30 15 views
12

Was ist der Unterschied zwischen Atomarität und Konsistenz? es sieht für mich so aus, als ob beide dasselbe in einem anderen Wort sagen.Datenbank Atomity Konsistenz

Atomicity

Alle Aufgaben einer Transaktion ausgeführt werden, oder keiner von ihnen sind. Es gibt keine Teiltransaktionen. Wenn beispielsweise eine Transaktion mit der Aktualisierung von 100 Zeilen beginnt, das System nach 20 Aktualisierungen jedoch ausfällt, setzt die Datenbank die Änderungen in diesen 20 Zeilen zurück.

Konsistenz

Die Transaktion bringt die Datenbank von einem konsistenten Zustand in einen anderen konsistenten Zustand. Bei einer Banktransaktion, die ein Sparkonto belastet und einem Girokonto gutschreibt, darf ein Fehler nicht dazu führen, dass die Datenbank nur einem Konto gutschreibt, was zu inkonsistenten Daten führen würde.

+1

Nicht atomar, konsistent: Teiltransaktion kann das System in einem konsistenten Zustand verlassen. Atomar, nicht konsistent: 2 Teile des Systems können die Atomarität aufrecht erhalten, ohne konsistent zu sein (die Transaktion wird in einem und nicht im anderen Teil aufgezeichnet). – nhahtdh

Antwort

14

Atomarität bedeutet tatsächlich, dass jede Transaktion entweder alles oder nichts ist, was bedeutet, dass entweder alle oder keine ihrer Aktionen ausgeführt werden und dass es keine Teiloperationen gibt.

Konsistenz bedeutet jedoch, dass jede Transaktion die Datenbank von einem gültigen Zustand in einen anderen Zustand versetzt. Alle Daten, die in die Datenbank geschrieben werden, müssen gemäß allen definierten Regeln gültig sein, einschließlich, aber nicht beschränkt auf Einschränkungen, Kaskaden, Trigger und jede Kombination davon (taken from Wikipedia). Das bedeutet im Grunde, dass nur gültige Zustände in die Datenbank geschrieben werden, und dass eine Transaktion entweder ausgeführt wird, wenn sie nicht gegen die Datenkonsistenz verstößt oder wenn sie rückgängig gemacht wird.

Hoffe es klärt die Dinge für Sie.

0

einfach erklären Für Konsistenz: Wenn ein Feldtyp in der Datenbank Integer ist, sollte es nur die Integer-Wert akzeptieren und nicht irgendeine Art von other.If Sie andere Arten in diesem Bereich gespeichert werden sollen, wird die Konsistenz verletzt. Bei dieser Bedingung wird die Transaktion zurückgesetzt.

0

Atomicity:
Bündel Aussage nur ein Beispiel von 100 Aussagen treffen, die Aussage auch einfügen werden kann, wenn eine der Anweisung fehlgeschlagen ist, während die Verarbeitung zurück Erklärung verbleibenden zurückkehren sollte, was bedeutet Datenbank zurück original gehen sollte Zustand.

Blockquote

autocommit = false

try{ 
    statement one ; 
    statement two ; 
    `enter code here` 
    `enter code here` 
    `enter code here` 
    statement three; 
    } 
    catch(){rollback;} 
    finally(){commit;} t 

Konsistenz: Wenn Ihr versucht, Datum in die Datenbank einfügen, die die Zwänge, Kaskaden zu erfüllen sein müssen, löst wie während Sie versuchen, die Daten in die Datenbank einzufügen, aber die Tabelle hat Einschränkungen für den Primärschlüssel, sodass die Daten, die Sie einfügen möchten, zufriedenstellend sein sollten fy mit Primärschlüsselbeschränkung.

Isolation: Wenn zwei Prozesse in der Datenbank ausgeführt werden, wird davon ausgegangen, dass einer gelesen wird und andere die Daten in die Datenbank schreiben. die Lese Thread soll

Haltbarkeit im Speicher befindlichen Daten nur lesen verpflichtet Daten, sollte nicht sein: einmal Transaktionsdaten in die Datenbank enthalten sein sollen gleiche Stufe begangen, sollte es nicht die Auswirkungen von Stromausfall oder Systemabsturz jeder andere