DBMS は、データに変更が加えられた場合に統合された状態を維持する必要があるデータの管理です。データの整合性が影響を受けると、データ全体が乱れて破損してしまうためです。したがって、データの整合性を維持するために、データベース管理システムには 4 つのプロパティが記述されています。 酸 プロパティ。 ACID プロパティは、異なるタスク グループを通過するトランザクションを対象としており、ここで ACID プロパティの役割がわかります。
このセクションでは、ACID プロパティについて学習して理解します。これらのプロパティが何を表し、各プロパティが何に使用されるのかを学びます。また、いくつかの例を使用して ACID のプロパティについても理解します。
ACIDの特性
ACID という用語を拡張すると、次のように定義されます。
1) 原子性
アトミック性という用語は、データがアトミックなままであることを定義します。これは、データに対して何らかの操作が実行される場合、それを実行するか完全に実行するか、まったく実行しないかのいずれかを意味します。さらに、操作を途中で中断したり、部分的に実行したりすべきではないことを意味します。トランザクションに対して操作を実行する場合、操作は部分的にではなく完全に実行される必要があります。
例: Remo のアカウント A に 30 ドルがあり、そこから Sheero のアカウント (B) に 10 ドルを送金したいとします。アカウント B には、合計 100 ドルがすでに存在します。 10 ドルがアカウント B に送金されると、合計は 110 ドルになります。ここで、2 つの操作が実行されます。 1 つは、Remo が送金したい 10 ドルの金額が彼のアカウント A から引き落とされ、同じ金額がアカウント B、つまり Sheero のアカウントに入金されるというものです。さて、何が起こるか - 借方の最初の操作は正常に実行されますが、貸方の操作は失敗します。したがって、Remo のアカウント A では値は 20 ドルになり、Sheero のアカウントでは以前と同じ 100 ドルのままになります。
上の図では、10 ドルを入金した後もアカウント B の金額はまだ 100 ドルであることがわかります。したがって、これはアトミック トランザクションではありません。
以下の画像は、借方操作と貸方操作の両方が正常に完了したことを示しています。したがって、トランザクションはアトミックです。
したがって、金額が原子性を失うと、銀行システムではこれが大きな問題となるため、銀行システムでは原子性が主な焦点となります。
2) 一貫性
言葉 一貫性 値は常に保持される必要があることを意味します。で DBMS 、データの整合性は維持される必要があります。つまり、データベースに変更が加えられた場合、その変更は常に保持される必要があります。トランザクションの場合、トランザクションの前後でデータベースの一貫性が保たれるように、データの整合性が非常に重要です。データは常に正確である必要があります。
例:
上の図では、A、B、C という 3 つの口座があり、A は B と C の両方に対してトランザクション T を 1 つずつ実行しています。実行される操作は 2 つあります。つまり、借方と貸方です。アカウント A はまずアカウント B に 50 ドルを引き落とし、トランザクションの前にアカウント A の金額が B によって 300 ドル読み取られます。トランザクション T が成功した後、B の利用可能な金額は $150 になります。ここで、A がアカウント C に $20 を引き落とし、そのとき C によって読み取られた値は $250 です (これは、B に対して $50 の引き落としが正常に行われたため正しいです)。アカウント A から C への借方および貸方の操作は正常に完了しました。トランザクションが正常に完了し、値も正しく読み取られたことがわかります。したがって、データには一貫性があります。 B と C によって読み取られた値が $300 の場合、デビット操作が実行されるとデータは一貫性がなくなるため、データに一貫性がないことを意味します。
3) 隔離
「アイソレーション」という言葉は分離を意味します。 DBMS では、分離とは、どのデータも他のデータに影響を与えてはならず、同時に発生する可能性があるデータベースのプロパティです。つまり、1 つのデータベースでの操作は、最初のデータベースでの操作が完了したときに開始する必要があります。これは、2 つの異なるデータベースに対して 2 つの操作が実行されている場合、それらは互いの値に影響を及ぼさない可能性があることを意味します。トランザクションの場合、2 つ以上のトランザクションが同時に発生する場合、一貫性が維持される必要があります。特定のトランザクションで発生した変更は、その変更がメモリにコミットされない限り、他のトランザクションには表示されません。
例: 2 つの操作が 2 つの異なるアカウントで同時に実行されている場合、両方のアカウントの値は影響を受けません。値は永続的なままにする必要があります。以下の図からわかるように、アカウント A はアカウント B および C に対して T1 および T2 トランザクションを実行していますが、両方は相互に影響を与えることなく独立して実行されています。それは孤立として知られています。
4) 耐久性
耐久性は、何かの永続性を保証します。 DBMS では、耐久性という用語は、操作が正常に実行された後のデータがデータベース内で永続的になることを保証します。データの耐久性は非常に完璧であるため、システムに障害が発生したり、クラッシュが発生したりした場合でも、データベースは引き続き存続する必要があります。ただし、紛失した場合は、データベースの耐久性を確保するのは回復マネージャーの責任となります。値をコミットするには、変更を加えるたびに COMMIT コマンドを使用する必要があります。
したがって、DBMS の ACID プロパティは、データベース内のデータの一貫性と可用性を維持する上で重要な役割を果たします。
したがって、これは DBMS への ACID プロパティの正確な導入でした。これらのプロパティについては、トランザクションのセクションでも説明しました。