同時実行制御(排他制御)
Concurrency Control
どうじじっこうせいぎょ
他の資格での定義
複数のトランザクションが同時に同じデータにアクセスする際、データの不整合を防ぐための制御。ロック方式が代表的で、あるトランザクションがデータを使用中は他のトランザクションのアクセスを制限する。
複数のトランザクションが同時にデータを更新する際に、データの矛盾を防ぐための制御機構。ロック方式が代表的で、データ更新中は他のトランザクションからのアクセスを制限する。
複数のプロセスやトランザクションが共有資源に同時アクセスする際に、データの整合性を保つための制御機構。セマフォ、ミューテックスなどのOS同期機構や、ロック方式(共有ロック・専有ロック)、MVCC等のデータベース制御手法がある。デッドロックの防止も重要な課題。
複数のプロセスやトランザクションが共有資源に同時にアクセスする際、データの不整合を防ぐための制御機構。楽観的ロックと悲観的ロックの2種類があり、デッドロックの回避も考慮する必要がある。
関連キーワードの用語
関係モデルに基づくデータベース。データを2次元の表(テーブル)で管理し、SQLを用いて操作する。データの整合性制約やトランザクション管理に優れ、業務システムで最も広く利用されている。
データベースのアクセス権限やトランザクションを制御するためのSQL文の総称。GRANT(権限付与)、REVOKE(権限取消)、COMMIT(確定)、ROLLBACK(取消)などが含まれる。
データベースに対する一連の操作を論理的に1つの処理単位としてまとめたもの。ACID特性を満たすことで、データの一貫性と信頼性を保証する。COMMITで確定、ROLLBACKで取消を行う。
トランザクションが満たすべき4つの特性。原子性(Atomicity:全てか無か)、一貫性(Consistency:整合性制約を保持)、隔離性(Isolation:他トランザクションの干渉を受けない)、永続性(Durability:完了した結果は永続的に保持)。
トランザクション内の全操作を確定し、その結果をデータベースに永続的に反映するSQL文。COMMIT後の変更は他のトランザクションからも参照可能になり、障害が発生しても失われない。
トランザクション内の全操作を取り消し、トランザクション開始前の状態に戻すSQL文。エラー発生時や整合性が保てない場合に使用する。SAVEPOINTを指定して部分的なロールバックも可能。