メインコンテンツへ
データベース

トランザクションのACID特性に関する説明として、誤っているものはどれか。

ア.Atomicity(原子性):トランザクション内の処理はすべて完了するか、すべてロールバックされるかのどちらかである。
イ.Consistency(一貫性):トランザクション実行前後でデータベースは一貫した状態(整合性制約を満たす状態)に保たれる。
ウ.Isolation(独立性):同時に実行される複数のトランザクションは互いに影響を与え合い、他のトランザクションの中間状態を参照できる。正解
エ.Durability(耐久性):コミットされたトランザクションの結果はシステム障害が発生しても永続的に保存される。

解説

ACID特性のI(独立性)は「個室で仕事をする」ルール——他のトランザクションが途中で割り込んで覗き見することはできません。ウの選択肢はそのルールを真逆に説明しています。

なぜ ウ が正解か

Isolation(独立性・隔離性)は「複数のトランザクションを同時実行しても、個々のトランザクションは他の影響を受けずに実行されたかのように見える」という特性です。他のトランザクションの「中間状態」は参照できないことが正しい説明です。ウは「互いに影響を与え合い、中間状態を参照できる」と逆の説明をしており、誤りです。

なぜ ア は間違いか

Atomicityの説明として正しいです。銀行振込で「A口座から引き落とし」と「B口座への入金」の両方が成功するか、障害時には両方なかったことになるか——中途半端な状態は許しません。

なぜ イ は間違いか

Consistencyの説明として正しいです。例えば「全口座の合計残高は変わらない」という制約が、トランザクション前後で保たれることを指します。

なぜ エ は間違いか

Durabilityの説明として正しいです。コミット後はハードウェア障害やOSクラッシュが起きても、WAL(ログ先書き)などの仕組みでデータが失われないことを保証します。

出典: AI生成問題(学習用)