平成31年度 春期 データベーススペシャリスト試験 午前II 問9
2025年6月30日
【問題9】
トランザクションの隔離性水準のうち、次の (1), (2) に該当する SQL の指定はどれか。
(1) 対象の表のダーティリードは回避できる。
(2) 一つのトランザクション中で、対象の表のある行を 2 回以上参照する場合、1 回目の読み込みの列値と 2 回目以降の読み込みの列値が同じであることが保証されない。
【解説】
1. ダーティリードを回避できる条件
ダーティリードは、他のトランザクションによる未コミットのデータを読み取る問題です。これを回避するには、少なくとも READ COMMITTED 以上の隔離性レベルが必要です。
2. 同一トランザクション内で行値の一貫性が保証されない条件
同一トランザクション内で行値が変更されることを許容するには、 READ COMMITTED が該当します。
REPEATABLE READ では、同一トランザクション中で読み取ったデータが固定され、変更されることはありません。
SERIALIZABLE は最も厳しい隔離性レベルで、他のトランザクションがデータを変更することを完全に防ぎます。
各選択肢について検討します:
ア: READ COMMITTED
正しい。READ COMMITTED はダーティリードを回避しつつ、同一トランザクション内でのデータの変更を許容します。
イ: READ UNCOMMITTED
誤り。READ UNCOMMITTED はダーティリードを許容するため、条件に該当しません。
ウ: REPEATABLE READ
誤り。REPEATABLE READ は、同一トランザクション内で行値の一貫性を保証するため、条件に該当しません。
エ: SERIALIZABLE
誤り。SERIALIZABLE は最も厳しい隔離性レベルで、他のトランザクションによるデータ変更を完全に防ぐため、条件に該当しません。
出典:平成31年度 春期 データベーススペシャリスト試験 午前II 問9