Qraft(クラフト) 資格・学習クイズアプリ

基本情報技術者試験 練習問題 71:データベース技術

📊 Qraftユーザーの成績

  • 難易度 Bランク(レーティング1200)
  • 難易度 766位/2795問中
  • 正答率 —(0回)
レーティングは解いた人の実力と正誤から算出する難しさ(初期値1200)。ランクはその全問題中の順位(S+が最難関、F-が最易)

データベースのトランザクション分離レベル(アイソレーションレベル)について述べた文として、正しいものはどれか。

  1. 「READ UNCOMMITTED」では、他のトランザクションがまだコミットしていない更新途中のデータを読み取ってしまう現象が発生する。
  2. 「READ COMMITTED」では、トランザクションの実行中に同じデータを何度読み取っても、常に同じ値が返されることが完全に保証される。
  3. 「REPEATABLE READ」では、他のトランザクションが新たに追加した行を読み取ってしまう現象(ファントムリード)が一切発生しない。
  4. 「SERIALIZABLE」では、複数のトランザクションが並行して実行されるため、データベースの処理性能が最も高くなるという特徴がある。
  5. すべての分離レベルにおいて、トランザクションがシステム障害等で中断された場合は、自動的に処理が継続されてデータが保護される。
正解と解説を見る
正解:「READ UNCOMMITTED」では、他のトランザクションがまだコミットしていない更新途中のデータを読み取ってしまう現象が発生する。

分離レベルが「READ UNCOMMITTED」の場合、他のトランザクションがまだコミットしていない(=確定していない)変更途中のデータを読み取る「ダーティリード」が発生するという説明が正解です。

【正解の理由】
データベースのトランザクション分離レベルは4段階あり、「READ UNCOMMITTED」はその中で最も緩いレベルです。このレベルでは、他のトランザクションが更新中であり確定(コミット)していない未確定のデータを読み取ってしまう現象(ダーティリード)が発生します。

【不正解の理由】
• 「『READ COMMITTED』では、トランザクションの実行中に同じデータを何度読み取っても、常に同じ値が返されることが完全に保証される」という説明は、READ COMMITTEDでは他の処理がコミットした変更が見えてしまうため、再読み込み時に値が変わる「ノンリピータブルリード」が発生するため誤り
• 「『REPEATABLE READ』では、他のトランザクションが新たに追加した行を読み取ってしまう現象(ファントムリード)が一切発生しない」という説明は、REPEATABLE READでは既存行の値は保証されるものの、新しく挿入された行が見えてしまう「ファントムリード」は防げないため誤り
• 「『SERIALIZABLE』では、複数のトランザクションが並行して実行されるため、データベースの処理性能が最も高くなるという特徴がある」という説明は、SERIALIZABLEはトランザクションを実質的に直列化(順番に実行)するため、データの整合性は最高だが処理性能は最も低くなるため誤り
• 「すべての分離レベルにおいて、トランザクションがシステム障害等で中断された場合は、自動的に処理が継続されてデータが保護される」という説明は、障害で中断された場合は変更が取り消される(ロールバックされる)ものであり、分離レベルの定義とは関係がないため誤り

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)