今日は情報のR2第7問について解説します。
データベースのデータ処理では、アプリケーションにおけるひとまとまりの処理単位を「トランザクション」と呼ぶ。たとえば、ある消費者の口座からある小売店の口座に振込送金する場合、⑴消費者の口座残高から振込金額を引き、それを新しい口座残高にすることと、⑵小売店の口座残高に振込金額を足し、それを新たな口座残高にすること、という2 つの更新処理が必要になる。このような出金処理と入金処理をまとめて扱う必要がある場合が「トランザクション」の例である。
トランザクションの処理には、一般にACID 特性(Atomicity,Consistency,Isolation,Durability)と呼ばれる技術的に満たすべき要件がある。ACID 特性に関する記述として、最も適切なものはどれか。
ア システムに異常が発生したときに、ログなどを用いて異常発生前の状態にまで復旧できることを保証しなければならない。このような特性を「独立性(Isolation)」という。
イ データの物理的格納場所を意識することなくトランザクションの処理が実行される必要がある。このような特性を「耐久性(Durability)」という。
ウ トランザクションを構成する全ての処理が正常に終了したときだけ、処理結果をデータベースに反映する必要がある。このような特性を「原子性(Atomicity)」という。
エ 複数のトランザクションを処理する際には、各トランザクションを逐次的に実行する場合と同時に実行する場合で、処理結果が同じである必要がある。このような特性を「一貫性(Consistency)」という。
解説
トランザクション処理のACID特性に関する問題です。データベース管理システム(DBMS)では、トランザクション処理に対して次の4つの特性が必須とされています。それぞれの頭文字をとって、ACID特性と呼ばれます。
Atomicity(原子性):トランザクションの処理結果が、「すべて実行されるか」「まったく実行されないか」のいずれかで終了すること。中途半端に一部だけ実行されるようなことは許容しない。
Consistency(一貫性):データベースの内容が矛盾の無い状態であること。トランザクションの処理結果が矛盾を生じさせるようなことになってはいけない。
Isolation(隔離性、独立性):複数のトランザクションを同時に実行した場合と、順番に実行した場合の処理結果が一致すること。確実な排他処理により相互影響が出ないことが必要。
Durability(耐久性):正常に終了したトランザクションの更新結果は、障害が発生してもデータベースから消失しないこと。何らかの復旧手段が保証されている必要がある。
それでは早速、各選択肢を見ていきましょう。
選択肢アの「システムに異常が発生したときに、ログなどを用いて異常発生前の状態にまで復旧できることを保証しなければならない」のは、Durability(耐久性)の説明です。
よって、この選択肢は×です。
選択肢イの「データの物理的格納場所を意識することなくトランザクションの処理が実行される必要がある」のは、分散データベースシステムの位置透過性の説明です。データベースシステムが分散した複数のシステムから構成されているものを「分散データベースシステム」と言いますが、それを利用者に意識させないことを分散透過性といいます。
よって、この選択肢は×です。
選択肢ウの「トランザクションを構成する全ての処理が正常に終了したときだけ、処理結果をデータベースに反映する必要がある」のは、Atomicity(原子性)の説明です。トランザクションの処理結果は、「すべて実行されるか」「まったく実行されないか」のいずれかで終了することが必要です。
よって、この選択肢は〇です。
選択肢エの「複数のトランザクションを処理する際には、各トランザクションを逐次的に実行する場合と同時に実行する場合で、処理結果が同じである必要がある」のは、Isolation(隔離性、独立性)の説明です。
よって、この選択肢は×です。
以上から、正解は選択肢ウとなります。