174

ACID とデータベース トランザクションの関係は?

ACID はデータベース トランザクションを提供しますか、それとも同じことですか?

誰かがこのトピックを啓発できますか。

4

9 に答える 9

340

ACIDは、データベースを変更するときに適用する一連のプロパティです。

  • 原子性
  • 一貫性
  • 隔離
  • 耐久性

トランザクションは、ACID プロパティの一部を実現するために使用される一連の関連する変更です。トランザクションは、ACID プロパティを実現するためのツールです。

原子性とは、すべてのトランザクションが発生するか、まったく発生しないことを保証できることを意味します。1 つのユニットとして複雑な操作を行うことができます。オール オア ナッシングです。クラッシュ、電源障害、エラー、またはその他の理由により、関連する変更の一部のみが発生した状態になることはありません。

一貫性とは、データの一貫性を保証することを意味します。関連データに対する制約に違反することはありません。

分離とは、あるトランザクションがまだ完了していない別のトランザクションからデータを読み取ることができないことを意味します。2 つのトランザクションが同時に実行されている場合、それぞれがシーケンシャルに実行されているかのように世界を認識し、一方が別のトランザクションによって書き込まれたデータを読み取る必要がある場合、もう一方が完了するまで待機する必要があります。

永続性とは、トランザクションが完了すると、すべての変更が永続的なメディア (ハードディスクなど) に記録されていることが保証され、トランザクションが完了したという事実も同様に記録されることを意味します。

したがって、トランザクションはこれらのプロパティを保証するメカニズムです。これらは、関連するアクションをまとめてグループ化する方法であり、全体として操作のグループをアトミックにし、一貫した結果を生成し、他の操作から分離し、永続的に記録することができます。

于 2010-09-18T03:50:05.820 に答える
42

ACID は、トランザクション処理エンジンの望ましいプロパティです。

DBMS は (それが良いものであれば) 特定の種類のトランザクション処理エンジンであり、通常はこれらのプロパティを完全ではありませんが非常に広範囲に公開します。

しかし、これらのプロパティを公開できる他のエンジンも存在します。かつて「TP モニター」と呼ばれていた種類のソフトウェアがその好例です (現在ではほとんどが Web サーバーに相当します)。

このような TP モニターは、DBMS 以外のリソース (プリンターなど) にアクセスでき、ユーザーに対して ACID を保証します。プリンターがトランザクションに関与している場合の ACID の意味の例として、次のようなものがあります。

  • 原子性: ドキュメント全体が印刷されるか、まったく印刷されない
  • 一貫性: トランザクションの最後に、用紙送りはページの上部に配置されます
  • 分離: 印刷中に 2 つのドキュメントが混同されることはありません
  • 耐久性: プリンタは、空のカートリッジで「印刷」していないことを保証できます。
于 2010-09-18T09:23:59.880 に答える
12

ACID プロパティは非常に古く、データベース理論の重要な概念です。このトピックに関する多くの投稿を見つけることができることは知っていますが、これは RDBMS の非常に重要なトピックであるため、回答を共有したいと思います。

データベース システムは、すべてのトランザクションが特定の特性を持つ多くの異なるタイプのトランザクションを扱います。この特性は ACID プロパティと呼ばれます。ACID プロパティは、すべてのタスクを実行するために、すべてのデータベース トランザクションの被付与者を取得します。

Atomicity : すべてをコミットするか、何もコミットしないかのいずれかです。

一貫性 : トランザクションのすべてのルールと制約を検証するという点で一貫した記録を作成します。

分離: 2 つのトランザクションが互いに認識されないようにします。

耐久性 : コミットされたデータは永久に保存されます。 この記事からの参照:

于 2015-05-21T05:21:55.647 に答える
5

ウィキペディアを引用するには:

ACID (原子性、一貫性、分離、耐久性) は、データベース トランザクションが確実に処理されることを保証する一連のプロパティです。

トランザクションをサポートする DBMS は、これらすべてのプロパティをサポートするよう努めます。商用 DBMS (およびいくつかのオープンソース DBMS) は、ACID の完全な「サポート」を提供します。 ACIDness を減らします - したがって、完全なトランザクション動作の保証を失います。

于 2010-09-18T03:46:19.027 に答える
2

データベースの ACID プロパティ:

  • 原子性:トランザクションはすべてかゼロか
  • 一貫性:有効なデータのみが保存されます (一貫性のあるある状態のデータベースから、一貫性のある別の状態へのデータベース)。
  • 分離:トランザクションは互いに影響しません(システム内で複数のトランザクションを同時に実行できます。複数のトランザクションを並行して実行すると、それらを順次実行した場合と同じ結果になる必要があります。)
  • 耐久性:書き込まれたデータは失われません(データベースがすぐにクラッシュしたり、停電が発生した場合でも)
于 2021-10-11T12:13:39.760 に答える