応用情報技術者 PR

【応用情報技術者】ACID特性とは何か

記事内に商品プロモーションを含む場合があります

●ACID特性とは
トランザクション処理で必要な以下の4つの処理の頭文字を取ったもの。
・Atomicity(原子性):トランザクション処理を分断しない。
・Consistency(一貫性):トランザクション処理後のデータが正しい。
・Isolation(独立性):トランザクション処理は独立して行う。
・Durability(耐久性):トランザクション処理後のデータは保管される。

出題された回(平成29年度春期以降)
令和2年度秋期/平成31年度春期

ACID特性の説明

ACID特性とは、トランザクション処理で必要な4つの特徴、Atomicity(原子性)とConsistency(一貫性)とIsolation(独立性)とDurability(耐久性)の頭文字を取ったものです。

トランザクション処理とは

分断してはいけない複数の処理をまとめて1つの処理として扱うことです。

銀行の送金を例にトランザクション処理を見ていきます。
例えば、AさんがB商店に1000円振り込むとします。この時、

①Aさんの銀行口座から1000円引く。
②Aさんの銀行口座から振込手数料を引く。
③B商店の銀行口座に1000円を加える。

の3つの処理を行う必要がありますが、この3つの処理は必ず3つとも成功しなくてはいけません。もしも、①と②だけ成功して③は失敗なんてことが起きると、Aさんは1000円振り込んだはずなのに、B商店は1000円を受け取っておらず、その1000円はどこへ行ったんだ?といった事態になります。

なので、トランザクション処理は全て成功するか全て失敗するのいずれかである必要があります。

このように、分断してはいけない複数の処理をまとめて1つの処理として扱うのがトランザクション処理です。

ACID特性とは

Atomicity(原子性)

トランザクション処理に含まれる複数の処理は分断されずに、全て実行されるか全て実行されないかのどちらかになるという性質。

Consistency(一貫性)

トランザクション処理の前後でデータの整合性が保たれるという性質。
例えば、口座残高が1000円しか無いのに、1500円出金すると口座残高が-500円となり、おかしくなります。なので、口座残高が1000円の時は1500円の出金は許可しないようにします。

Isolation(独立性)

複数のトランザクション処理を実行しようとした時、1つずつトランザクション処理を実行していくという性質。
例えば、口座残高が1000円で、800円の出金と600円の出金がほぼ同時に実行された時、2つの出金処理が同時に実行されると残高が-400円になってしまいます。
なので、まず、800円の出金を行って口座残高が200円になってから、600円の出金は「残高が足りないため出金できません」とするべきです。

Durability(耐久性)

トランザクション処理が完了したら、その結果はちゃんとデータベースに保存されるという性質。障害が発生してもデータは残っている必要があります。

過去問

応用情報技術者 午前試験
令和2年度秋期問30

トランザクションのACID特性のうち、耐久性(durability)に関する記述として、適切なものはどれか。

ア 正常に終了したトランザクションの更新結果は、障害が発生してもデータベースから消失しないこと

イ データベースの内容が矛盾のない状態であること

ウ トランザクションの処理が全て実行されるか、全く実行されないかのいずれかで終了すること

エ 複数のトランザクションを同時に実行した場合と、順番に実行した場合の処理結果が一致すること

正解と解説

正解は”ア”

応用情報技術者 午前試験
平成31年度春期問30

トランザクションのACID特性のうち、一貫性(consistency)の記述として、適切なものはどれか。

ア 整合性の取れたデータベースに対して、トランザクション実行後も整合性が取れている性質である。

イ 同時実行される複数のトランザクションは互いに干渉しないという性質である。

ウ トランザクションは、完全に実行が完了するか、全く実行されなかったかの状態しかとらない性質である。

エ ひとたびコミットすれば、その後どのような障害が起こっても状態の変更が保たれるという性質である。

正解と解説

正解は”ア”