DBMS に実装すべき原子性(atomicity)を説明したものはどれか。
- ア 同一データベースに対する同一処理は,何度実行しても結果は同じである。
- イ トランザクション完了後にハードウェア障害が発生しても,更新されたデータベースの内容は保証される。
- ウ トランザクション内の処理は,全てが実行されるか,全てが取り消されるかのいずれかである。
- エ 一つのトランザクションの処理結果は,他のトランザクション処理の影響を受けない。
DBMS に実装すべき原子性(atomicity)を説明したものはどれか。
正解: ウ
トランザクションが満たすべき 4 つの性質を ACID特性といいます。頭文字と対応付けて整理します。
各選択肢との対応は次のとおりです。
典型例は銀行の振込処理です。「A口座から出金」と「B口座へ入金」は必ずセットで実行されなければならず,片方だけ成功した状態は許されません。失敗時にはロールバックで全てを取り消します。
ちなみに、「トランザクション内の処理は「全て実行」か「全て取消し」のいずれか。中途半端な状態を許さない」という特性が「原子性」と言われてもしっくり来ない方も多いかと思います。
これは、「原子(atom)」という言葉の由来からきています。atom は、ギリシャ語の atomos(a=否定 + tomos=切る)に由来し、もともとは 「もうこれ以上は切り分けられない・分割できない最小単位」 という意味です。
現代の科学では「原子」もそれ以上に分割できることが分かっていますが、ITの用語では、「分割不可能」という元々の言葉の意味を引き継いでいて、atomicity =「分割できない一塊として扱う」性質とされています。
「トランザクションを、それ以上分割できない1つの不可分な処理単位として扱う」から、この特性は「原子性(atomicity)」と呼ばれているわけです。