学習記録

2019年上半期はDBスペシャリストと簿記1級にチャレンジ中.

トランザクション

ACID特性

トランザクションが満たすべき性質

2相コミットメント制御

  1. 調停者が参加者にCOMMIT可否を問い合わせ,応答を受け取る.
  2. COMMIT実行を要求する.
    1. 前項で異常が発生した場合はロールバックを要求
  3. 以下の場合は,参加者に指示が届かずコミットかロールバックかすらわからない状態(=ブロック状態)に陥る.
    • コミット指示の直前に調停者に障害が発生
    • 送信時に通信障害が発生

トランザクション異常

※DB実践入門pp332~

  • ダーティリード
    • まだコミットしていないデータを読み取ってしまう.
      • Aが読み取った後にBがロールバックしてしまうとAに整合性がなくなる.
  • インコンシステントリード
  • ノンリピータブルリード
  • ロストアップデート
  • ファントムリード
    • 過去になかったデータが出現する.

分離レベル

レベル D I/N L/F
READ-UNCOMMITTED
READ-COMMITTED ×
REPEATABLE-READ × ×
SERIALIZABLE × × ×

デスぺpp174~179

  • ロック制御
    • 共有ロック:他から占有ロックのみかけられない.(参照)
    • 占有ロック:他から共有/占有ロックをかけられない.(更新)
  • READ-UNCOMMITTED
    • 共有:しない.
    • 占有:すぐ解放される.
  • READ-COMMITTED
  • REPEATABLE-READ
  • SERIALIZABLE
    • 直列化されたスケジュールと常に同じ結果.
    • 探索範囲のインデックス(なければテーブル)にロックをかける

<略字> - D:ダーティリード - I:インコンシステントリード - N:ノンリピータブルリード - L:ロストアップデート - F:ファントムリード

参考サイト

出題実績

  • H23 問14
  • H23 問15
  • H29 問17