平成28年度 春期 午前 問30
データベース
トランザクションに関する問題
DBMS において,複数のトランザクション処理プログラムが同一データベースを同時に更新する場合,論理的な矛盾を生じさせないために用いる技法はどれか。
- ア再編成
- イ正規化
- ウ整合性制約
- エ排他制御
答えと解説を見る
✓ これが正解エ排他制御
解説
同時更新の衝突を防ぐのは排他制御です。
同じデータを複数のトランザクションが同時に書き換えようとすると、更新の順序や重なり具合によって結果が食い違い、論理的に矛盾した状態が残ることがあります。これを避けるために、あるトランザクションがデータを触っている間は他のトランザクションが同じデータに触れないように順番を制御する仕掛けが使われます。この、同時に走る仕事を互いに邪魔しないよう順序立てて処理する働きが排他制御です。だから、排他制御が当たりました。判定の軸は、その働きが同時実行の場面で衝突を防ぐためのものかどうかの一点です。データベースの整った状態を保つ手立てにはほかにもいくつかの名前が付いていますが、それぞれが担うのは別の目的です。ここで扱っているのは、単独の実行では起きず、複数のトランザクションが重なって走るときにだけ起きる問題への手当ての位置付けです。
ほかの選択肢はなぜ違うのか
- ア再編成:再編成の側に対応する記述の候補として置かれていますが、この働きが担うのは物理的な格納の乱れを整えて性能や領域を回復させることでした。同時に走るトランザクションの衝突を防ぐ場面での手当てとは目的が違いました。
- イ正規化:正規化の側に対応する記述の候補として置かれていますが、この働きが担うのは重複や更新の異常を避けるためにテーブルの構造を整えることでした。設計段階の作業で、同時実行の衝突を実行中に防ぐ仕組みではありません。
- ウ整合性制約:整合性制約の側に対応する記述の候補として置かれていますが、この働きが担うのはデータが決まりの範囲から外れないよう宣言的に守ることでした。同時に走るトランザクションどうしを順序立てて捌く働きとは別のものです。
この問題の用語
- 排他制御同じデータを同時に更新しても、矛盾が起きないようにする仕組みです。先の処理が終わるまで、後の処理を待たせて防ぎます。
- トランザクションデータベースへの一連の処理をひとまとめにした単位のこと。途中で失敗すると開始前の状態へ戻され、中途半端な更新が残りません。
- DBMSデータベースを管理するソフト。複数の処理が同じデータを同時に更新しても矛盾しないよう、排他制御などを行います。
- データベースたくさんのデータを決まった形で貯め、探したり書き換えたりできるようにした仕組み。多くの人が同時に使うことを前提にしています。
出典:平成28年度 春期 基本情報技術者試験 午前 問30
同じ用語が出る問題
- 令和6年度 科目A 問7:原子性に関する問題(DBMS)
- 令和5年度 科目A 問7:ACIDに関する問題(トランザクション)
- 平成30年度 春期 午前 問27(DBMS)
- 平成29年度 春期 午前 問28(排他制御)
- 平成25年度 春期 午前 問30:排他制御のロック獲得の可能性(排他制御)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)