令和3年度 III-9

科目: 専門科目 / 分野: 情報工学部門 / 年度: 令和3年度

III-9 問題画像

出典:公益社団法人 日本技術士会「技術士第一次試験 過去問題」

データベースのトランザクション分離レベルのうち、ANSIが定義する分離レベルに含まれないものを選ぶ問題。Read Uncommitted、Read Committed、Repeatable Read、Serializableの4段階と、ダーティリードが現象名であることを問う。

解説

この問題で問われていること

ANSI SQLが定めるトランザクション分離レベルの4段階と、発生しうる異常(現象)を区別する問題。

解き方

① ANSIの分離レベルは4つ(弱い順): Read Uncommitted → Read Committed → Repeatable Read → Serializable。ダーティリード・ノンリピータブルリード・ファントムは防ぎたい「現象」の名前
② ダーティリードは現象の名前で、分離レベルではない
③ ④

正解が正しい理由

ANSI SQLの分離レベルは、弱い順に、非コミット読み取り(Read Uncommitted)、コミット済み読み取り(Read Committed)、再読み込み可能読み取り(Repeatable Read)、直列化可能(Serializable)の4つである。ダーティリード(Dirty Read)は、未コミットのデータを読んでしまう現象(異常)の名前であり、分離レベルではない。したがって④が含まれない。

各選択肢について

覚えるべきポイント

分離レベルは、弱い順にRead Uncommitted、Read Committed、Repeatable Read、Serializable。防げる異常は、ダーティリード、ノンリピータブルリード、ファントムリードの順に増える。

キーワード: トランザクション分離レベル、Read Uncommitted、Read Committed、Repeatable Read、Serializable、ダーティリード、情報工学部門