Unabhängig davon, ob ich über CAP oder ACID gelesen habe, wird auf Konsistenz verwiesen, um die DB-Integritätsbeschränkungen sicherzustellen. Ich verstehe also nicht, warum zwei Begriffe verwendet werden, um dasselbe zu bezeichnen, oder ob es einen Unterschied zwischen Integrität und Konsistenz gibt.
Wie auch immer, Atomic, Consistent, Isolated, Durable sind Eigenschaften der Transaktionen. Es ist wahr, dass Atomizität + Isolation ausreicht, um Ihre eigene Konsistenz zu erreichen. Wir können aber auch unsere eigene Atomizität, unsere eigene Isolation und unsere eigene Beharrlichkeit (Haltbarkeit) rollen. Wenn wir unsere eigenen rollen, müssen wir für Merkmale mit unserem eigenen Blut, Schweiß und Klammern bezahlen. Wir sagen nicht, dass die Eigenschaften uns von einem Transaktionssystem gegeben wurden.
Dies deutet darauf hin, dass die Benutzeranwendung neben den Einschränkungen der Datenbankintegrität auch Konsistenz bieten kann. Dies ist keine Eigenschaft, die von der Datenbank bereitgestellt wird, wie dies bei AID-Eigenschaften der Fall ist. Warum sollten Sie C den Titel geben, wie Sie es bei den anderen vom System bereitgestellten AID-Eigenschaften tun?
quelle
Serializability is used to keep the data in the data item in a consistent state
. Wenn Sie Recht haben, sollten sie sagenconsistency is used to maintain the integrity/correctness
, nicht wahr? Sie scheinen die Konsistenz-Eigenschaft anstelle der Transaktion auf die Datenbank anzuwenden. Wir sollten also auch über die DB-Konsistenz sprechen können. Es muss dann mit Integrität identisch sein, oder?CAP und ACID diskutieren verschiedene Dinge, obwohl beide das C für Konsistenz verwenden.
Lesen Sie den Beitrag von John Huggs: https://www.voltdb.com/blog/disambiguating-acid-and-cap
ACID definiert, was erforderlich ist, um eine "echte Transaktion" durchzuführen, die die ACID-Ziele erfüllt. Tatsächlich scheint das C für Konsistenz eher für das Akronym zu stehen als für die Definition realer Konsistenzregeln. Die Transaktion definiert die Konsistenzgrenze.
CAP ist für verteilte Systeme vorgesehen und verspricht, dass jedes Replikat mit demselben logischen Wert, das auf Knoten in einem verteilten System verteilt ist, jederzeit denselben exakten Wert hat.
Aufgrund der Latenzprobleme bei verteilten Systemen definiert CAP jedoch nicht unbedingt, welcher letzte logische Wert beibehalten wird.
Konsistenz in CAP bedeutet daher, dass jeder Lesevorgang entweder (1) den letzten Schreibvorgang oder (2) einen Fehler empfängt .
Siehe auch die akzeptierte Antwort von RolandoMySQLDBA (Januar 2013) unter: Konsistenz im ACID- und CAP-Theorem, sind sie gleich?
Die Zusammenfassung dieser kurzen Antwort unterscheidet sich wie folgt:
Adressierung der beiden Begriffe:
Integrität - Konformität bei der Anwendung von etwas aus Gründen der Logik, Genauigkeit oder Fairness.
Konsistenz - Enthält keine logischen Widersprüche.
quelle