本文へスキップ

平成27年度 春期 ITパスポート試験 問77

この問題の解説と、これまでの解答の記録です。

問77
頻出度★☆☆

DBMSにおいて, データへの同時アクセスによる矛盾の発生を防止し, データの一貫性を保つための機能はどれか。

出典 平成27年度 春期 ITパスポート試験 問77
解説

問 77

  • 不正解ア

    正規化はデータベースの設計技法で、表を分割して重複や更新時異状を減らし、データ構造を整理するもの。設計段階で構造上の冗長を取り除く話であり、実行時に発生する同時アクセスの競合を調停する機能ではない。

  • 不正解イ

    デッドロックは、複数のトランザクションが互いに相手の保持するロックの解放を待ち続け、どちらも進めなくなる状態のこと。むしろ排他制御を行った結果として起こり得る「困った現象(障害)」であって、矛盾を防止する機能そのものではない。

  • ウ

    正解 正解はウの「排他制御」。DBMS では複数の利用者やトランザクションが同じデータへ同時にアクセスし得るため、何も制御しないと「更新が上書きされて消える」「コミット前の中途半端な値を他者が読む」といった矛盾(不整合)が起きる。排他制御は、あるトランザクションが処理中のデータに対してロックをかけ、他のトランザクションからの読み書きを一時的に待たせる仕組みで、同時アクセスの順序を調停してデータの一貫性を守る。ロックには他者の参照も更新も禁じる専有ロック(書込み用)と、参照のみ許す共有ロック(読取り用)があり、設問の「同時アクセスによる矛盾の発生を防止し、一貫性を保つ機能」にそのまま合致する。

  • 不正解エ

    リストアはバックアップしたデータを書き戻して、障害発生前の状態にデータベースを復旧する操作。障害からの回復(事後の復旧)が目的であり、稼働中の同時アクセス制御とは役割が異なる。

ここがポイント
  • 排他制御(ロック)=同時実行するトランザクションのデータアクセスを調停し、更新の消失や中途半端な値の読取りを防いでデータの一貫性を保つ DBMS の機能。専有ロック(他者は読取りも更新も不可)と共有ロック(他者の読取りは可)を区別して押さえる。
  • 紛らわしい用語の役割分担: 正規化=設計時の冗長排除、デッドロック=ロックの相互待ちで停止する障害現象、リストア(+ロールバック/ロールフォワード)=障害後の復旧手段。「防止する機能」を問われたら排他制御。
用語

解答の記録