同時実行制御(排他制御)
更新日:
用語解説
同時実行制御(排他制御)は、複数のトランザクションが同じデータを同時に読み書きしても、データの内容に論理的な矛盾が生じないようにするDBMSの仕組みです。代表的な方法は、データにロックをかけて、他のトランザクションのアクセスを一時的に制限することです。
■ 試験で押さえるポイント
制御しないと、2つのトランザクションが同じデータを読んで別々に更新し、先の更新が消える(更新の喪失、ロストアップデート)などの矛盾が起こります。
ロックには、読取り用の共有ロック(共有ロックどうしは両立する)と、更新用の専有ロック(他のロックと両立しない)があります。
ロックをかける範囲(ロックの粒度)を大きくすると管理は簡単ですが、待ちが増えて同時に実行できる数が減ります。
互いに相手のロックの解放を待ち合うと、デッドロックになります。DBMSはこれを検出して、一方をロールバックします。
時刻 | トランザクションA | トランザクションB | 在庫の値 |
|---|---|---|---|
1 | 在庫を読む(10) | 10 | |
2 | 在庫を読む(10) | 10 | |
3 | 10 − 3 = 7 を書く | 7 | |
4 | 10 − 5 = 5 を書く | 5(Aの更新が失われる) |
排他制御をすると、Aが専有ロックをかけている間はBが待たされるので、BはAの更新後の値7を読み、正しく2になります。
■ 選択肢での判断ポイント
「複数のトランザクションが同時に更新するときに論理的な矛盾を防ぐ」技法は排他制御です。正規化は表の設計で冗長性をなくすこと、整合性制約は主キー・参照制約などでデータの正しさを保つこと、再編成は格納領域の断片化を解消することです。
音声で聞く
この用語に関連する過去問
令和4年度 春期 応用情報技術者試験 午前 問17
I2Cバスにおける共有資源の排他制御とセマフォ
2021r03a_db_am2_問14
表ロックと行ロックの排他制御
令和4年度 春期 高度情報処理技術者試験 午前Ⅰ
I2Cバスにおける共有資源の排他制御とセマフォ
令和7年度秋期 応用情報技術者試験 午前 問29
トランザクションの同時実行性を高めるMVCC(多版型同時実行制御)
令和元年度秋期 ITパスポート試験 公開問題 問64
排他制御
令和2年度 ITパスポート試験 公開問題 問72
並行更新
令和元年 秋期 応用情報技術者試験 午前 問28
RDBMSにおける共有ロックと専有ロックの排他制御
平成28年度 春期 基本情報技術者試験 午前 問30
DBMSにおいて,複数のトランザクション処理プログラムが同一データベースを同時に更新する場合,論理的な矛盾を生じさせないために用いる技法