【最新版】基本情報技術者試験 予想問題(テクノロジ) [問18] | 模擬試験で効率的に学習!

スポンサーリンク

問題

問18

データベースのロックに関して、他のトランザクションからの読み取りは許可するが、更新は許可しないロックを何と呼ぶか。

  • 排他ロック
  • 共有ロック
  • 参照ロック
  • デッドロック

正解

正解は「」です。

解説

 正解は「共有ロック」です。共有ロックは、データベースに対する読み取り操作(SELECT文など)を複数のトランザクションが同時に行えるようにするロック方式です。このロックがかかると、他のトランザクションは同じデータを読み取ることは許可されますが、データの更新(INSERT、UPDATE、DELETE)は禁止されます。これにより、複数のユーザーが同じデータを安全に参照できる一方で、データが読み取り中に変更されることによる不整合や矛盾を防ぐことができます。

 例えば、図書館の本を複数人が同時に閲覧できる閲覧室をイメージすると分かりやすいです。誰でも同じ本を読むことは可能ですが、読む最中に誰かがその本の内容を書き換えることは禁止されています。データベースでは、共有ロックを使用することで読み取り時の整合性を確保しながら、高い並行性を保つことが可能になります。これに対して、更新時に使用される排他ロックは読み取りも含め他の操作をすべて制限するため、共有ロックとは用途と制御範囲が異なります。

ア(排他ロック):
 データの読み取り・更新ともに他のトランザクションを一切許可しないロックです。データを更新する際に用いられ、共有ロックのように読み取りを許可しません。
ウ(参照ロック):
 データベースで一般的に使用される正式なロック名称ではありません。読み取り専用の概念を連想させますが、標準的なSQLの用語には該当しません。
エ(デッドロック):
 複数のトランザクションがお互いに相手のロック解除を待ち続け、処理が停止してしまう状態を指します。ロックの種類ではなく、ロックが原因で発生する問題の名称です。

スポンサーリンク

解法のポイント

 データベースのロックは「読み取り時に許可するか」「更新時に許可するか」で区別します。読み取りを複数同時に許可し、更新を禁止するのは共有ロック、すべてを禁止するのは排他ロックです。キーワードとして「読み取りOK・更新NG=共有ロック」と覚えておくと混乱を防げます。

用語補足

共有ロック:
データベースの読み取りを複数トランザクションに許可するロック方式です。例えば、複数の利用者が同じニュース記事を同時に閲覧するイメージです。

排他ロック:
1つのトランザクションがデータを更新する際に他のすべての読み取り・更新を禁止するロックです。たとえば、誰かがファイルを編集している間は他の人が開けない状態と似ています。

トランザクション:
データベースで一連の操作をまとめて処理する単位のことです。銀行振込で「残高引き落とし」と「入金」を同時に完了させるなど、処理をまとめて行い、途中で失敗した場合はすべてを取り消します。

デッドロック:
複数のトランザクションが互いに相手のロック解除を待ち続けて処理が停止する現象です。例えば、狭い通路で2人が互いに道を譲らず動けなくなる状態に似ています。



タイトルとURLをコピーしました