【正解の解説】
独立性(Isolation)とは、トランザクションが実行途中の状態であっても、他のトランザクションからその中間結果がリアルタイムに参照できる性質のことである。
銀行のATMで口座からお金を下ろすとき、窓口で残高を確認している最中にスマホアプリから別の引き出しが行われて計算がおかしくなったら大問題です。独立性(アイソレーション)とは、まさに他人に見られたくない秘密の小部屋で作業しているようなもので、処理の途中のぐちゃぐちゃした中間結果が他の人からリアルタイムに丸見えになってしまうと、データの矛盾が生じるため「見えない(お互いに干渉しない)」ようにする仕組みです。したがって、中間結果が参照できるという記述は独立性の定義に反する誤りとなります。
【その他の選択肢の解説】
原子性(Atomicity)とは、トランザクションに含まれる一連の処理がすべて実行されるか、あるいは全く実行されないかのどちらかになる性質のことである。
原子(アトム)とはこれ以上分割できない最小単位を意味します。例えば、ネット通販で買い物をするとき、決済システムで「口座からの引き落とし」と「商品の購入完了」という2つの処理が発生しますが、お金だけ引き落とされて注文が通らないという中途半端な状態になっては困ります。どちらか一方が失敗した場合は、まるで最初から何もなかったかのように全てがなかったことに(ロールバック)されるのが原子性であり、トランザクションの最も基本となる安全を担保する重要な特性です。
一貫性(Consistency)とは、トランザクションの実行前後でデータベースの整合性が保たれ、定義された制約やルールが満たされる性質のことである。
データベースには「残高はマイナスになってはいけない」「年齢は0以上でなければならない」といった様々なルールや制約が定義されています。一貫性とは、これらのルールがトランザクションの前後でしっかりと守られていることを保証する性質です。例えば、送金処理によって送信元の口座からお金が減った分だけ、受信先の口座に確実にお金が増えていなければならず、システムが勝手に生み出したり消したりしない整合性を維持する役割を持っています。
耐久性(Durability)とは、トランザクションが正常に完了したならば、その後にシステム障害が発生しても更新結果が失われない性質のことである。
銀行口座への入金処理が「正常に完了しました」と画面に表示された直後に、突然の停電やサーバーの故障が発生したとします。このとき、せっかく入金した記録が消えてしまっていたら利用者は大パニックになります。耐久性(ロバストネスや持続性とも呼ばれます)とは、完了した直後のデータは不揮発性のストレージなどにしっかりと書き込まれ、どんなに激しいシステム障害が起きても消えることなく守られることを保証する心強い特性です。