隔離性水準について


READ UNCOMMITED

トランザクション中にコミットしていないものも読める。

ダーティリード
アンリピータブルリード
ファントムリード
が発生する。


READ COMMITED

トランザクション中にコミットしたものは読める。

アンリピータブルリード
ファントムリード
が発生する。


REPEATABLE READ

トランザクション中は読み取りデータが変更されることはない。

追加されたデータがSELECTに引っかかる可能性はあるので
ファントムリード
が発生する。


SERIALIZABLE

データ処理を直列に実行する。
不具合は発生しないが遅い。




ダーティリード

コミットしていないデータを読むこと
トランザクションが取り消されたときなどに問題が発生する。

READ UNCOMMITED
で発生する。


ノンリピータブルリード

同じデータを複数回読むとき、結果が違うこと。
別のトランザクションがデータを変更すること。


READ COMMITED
READ UNCOMMITED

で発生する

ファントムリード

別のトランザクションが追加したデータを読むこと。
点数の合計を取得して、人数を取得して平均を出した場合などに問題が出る。

READ COMMITED
READ UNCOMMITED
REPEATABLE READ
で発生する


Serializable だと不具合は発生しないが遅くなる。


ロックについて


共有ロック
読み取り目的

専有ロック
更新目的

共有ロックが掛けられているときは共有ロックを掛けることができる。
専有ロックが掛けられているときは専有ロックを掛けることはできない。
共有ロックが掛けられているときは専有ロックを掛けることはできない。
特定行に対するロックは他の行には影響がない。


平成29年 春期 午前II 問17


図は、ある探索条件を使って数学模試の平均点を算出している間、当該探索条件に合致するA君の結果を“数学模試成績”表に登録したときの様子を示している。
平均点を求めるトランザクションT1と、登録作業のトランザクションT2が①~⑥の順序で処理された結果、合計点算出時の受験者数と平均点算出時の受験者数が異なり、正しい平均点を得ることができなかった。
このとき発生した事象はどれか。
ここで、トランザクションの隔離性水準はREAD UNCOMMITEDであったとする。

データベーススペシャリスト 平成29年 春期 午前II 問17

ア.アンリピータブルリード
イ.シーケンシャルリード
ウ.ダーティリード
エ.ファントムリード


解答以下反転