19

Atomicity と Consistency はどう違いますか? どちらも同じことを別の言葉で言っているように見えます。

原子性

トランザクションのすべてのタスクが実行されるか、どれも実行されません。部分的な取引はありません。たとえば、トランザクションが 100 行の更新を開始しても、システムが 20 行の更新後に失敗した場合、データベースはこれらの 20 行への変更をロールバックします。

一貫性

トランザクションは、データベースをある一貫した状態から別の一貫した状態に移行します。たとえば、普通預金口座からの引き落としと当座預金口座への貸方記入を行う銀行取引では、障害によってデータベースが 1 つの口座だけに貸方記入されてはなりません。これにより、データの一貫性が失われる可能性があります。

アトミック性は一貫性のサブセットのように見えます。それから、それは cid(conistency, isolation, duribility) であり、アトミック性はありません

4

3 に答える 3

19

原子性とは実際、各トランザクションがすべてかゼロかのどちらかであるということです。つまり、そのアクションのすべてが実行されるか、まったく実行されず、部分的な操作がないことを意味します。

ただし、一貫性とは、トランザクションがデータベースをある有効な状態から別の有効な状態に移行させることを保証することです。データベースに書き込まれるすべてのデータは、制約、カスケード、トリガー、およびそれらの任意の組み合わせ (ウィキペディアから取得)を含むがこれらに限定されない、定義されたすべてのルールに従って有効である必要があります。これは基本的に、有効な状態のみがデータベースに書き込まれ、トランザクションがデータの一貫性に違反していない場合は実行されるか、違反している場合はロールバックされることを意味します。

それがあなたのために物事を解決することを願っています.

于 2012-09-30T20:35:38.743 に答える
5

簡単な説明一貫性のために:データベースのフィールドタイプが整数の場合、整数値のみを受け入れ、他の種類の値を受け入れないようにする必要があります。このフィールドに他のタイプを保存する場合、一貫性に違反します。この状態で、トランザクションはロールバックします。

于 2014-10-22T14:44:04.083 に答える