重版:理解のデータベースの整合性

酸:

  -原子性:トランザクションは完全に、または全くないです。このため、トランザクションの開始は、BEGINコマンドでマークされ、そして最後には、COMMIT(変更をコミット)やROLLBACK(変更を元に戻す)のいずれかです。
  -一貫性:トランザクションが一貫した状態で始まり、、完了、また一貫性を維持します。
  -単離:この1で同時に実行されている他のトランザクションは、それに影響を与えるべきではありません。
  -耐久性:データが記録された後、彼らも、障害が発生した場合に失われてはなりません。

 

一貫性は、データがセマンティック上の意味の適切な状態であることを意味します。データの可視性制約の一貫性は、トランザクション内の複数の操作の中間状態のデータが他のトランザクションには見えないことを保証することです。これらの中間状態が過渡的な状態ですので、事務の開始状態と終了状態は、トランザクションと矛盾しています。
栗の場合、張Doeが$ 100に転送します。やる総務は、ジョン・ドウのためにチャンサン口座から100元、プラス100元を失うことです。一貫性は、ジョー・スミスやジョン・ドウが状態へ移行していないか、ジョン・ドウジョン・ドウが正常な状態に転送し、ジョー・スミス、ないジョン・ドウプラス100元のための$ 100以下されている参照して他のものの意味であり、この中間状態は表示されません。
その後、レトルトの音が来ました:

1.どちらかそれはアトミックで、すべての操作が成功または失敗し転送します。成功のすべての例の観点から、その一貫性はなぜ一貫性とアトミック性だけで言って、少しアトミック一部ですか?
2.あなたは間違っています。非コミット読み取り分離レベルでは内政操作が表示されている、この時間は、どのように説明するか、一貫性の明確な違反で、ダーティリードがあるでしょうか?

さて、あなたの質問は理にかなって、また非常に良いですが、これはちょうどあなたがトランザクションのACID特性が所定の位置にあることを理解することを示しています。しかし、それが点に留意すべきです。

1.アトミックと異なる強調の一貫性:アトミック懸念状態、いずれかのすべての状態が存在していない部分的に成功、成功、またはすべて失敗します。関心のデータの整合性の可視性は、中間状態データは、唯一の初期状態と最終状態データを外部の可視外部には見えません。
非コミット読み取り分離レベルで2は、別の内政の読み出し動作これは、トランザクション・データであり、ダーティリードが発生します。これを行うにしたい場合はACIDは一貫性は、トランザクションは、理想的には、強い整合状態である必要があります方法について説明している、あなたは、並んトランザクションに排他ロックを使用する必要がある、すなわち、直列化分離レベルそのようなパフォーマンスが大幅に削減されます。現実はスキニーなので、さまざまな分離レベルのアイソレーションを使用すると、より良いパフォーマンスを得るために、一貫性を破壊します。

  

おすすめ

転載: www.cnblogs.com/jkwll/p/11520989.html