データベースにおける並行性制御
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/12/03 10:02 UTC 版)
「並行性制御」の記事における「データベースにおける並行性制御」の解説
ここでデータベースと称しているのは、汎用のデータベース管理システム (DBMS) に限らず、トランザクションを行うあらゆるシステムである。DBMSはデータベースの並行性制御問題と同時にOS一般の並行性制御問題とも関わりが深い。 データベースについて、トランザクションがデータ完全性を失うことなく安全に実行されることを保証する手法である。並行性制御は特にデータベース管理システム (DBMS) に適用され、トランザクションがACID原則(後述)に従って安全に実行されることを保証する。DBMSはシリアライズ可能 (Serializable) で復旧可能 (Recoverable) なスケジュールだけを許すよう設計されなければならず、中断されたトランザクションを取り消す際にコミット済みのトランザクションの結果が失われないことを保証しなければならない。 データベース管理システム (DBMS)、他のトランザクションオブジェクト、および関連する分散アプリケーション(例えば、グリッド・コンピューティングやクラウドコンピューティング)の並行性制御は、それぞれのデータベースのデータ完全性を損なうことなく同時並行にトランザクションを実行することを保証する。したがって並行性制御は、事実上あらゆる汎用データベースシステムにおいて、複数のトランザクションが時間的に重なりつつ同じデータにアクセスする際の正確性の基本要件である。その結果、1970年代初めにデータベースシステムが出現して以来ずっと関連した様々な研究成果が蓄積されていき、データベースシステムの並行性制御理論が確立している。直列化可能性理論は、並行性制御の技法と機構を効率的に設計し分析することを可能にする。抽象データ型に対するアトミックなトランザクションについての並行性制御理論もある。そちらの理論の方が洗練されていて複雑で適用範囲が広く、最近では上述の古典的理論よりもデータベースの教科書でよく採用されている。どちらの理論も一長一短であり、ある意味では相補的でもある。 正確性を確保するため、DBMSは「直列化可能な」トランザクションスケジュールのみを保証するのが普通だが、アプリケーションが正確性をあまり求めていない場合のみ直列化可能性を意図的に緩和して性能を向上させることもある。トランザクションが失敗した場合の正確性を確保するには、スケジュールが回復可能性という属性を持つ必要がある。DBMSはまた、「コミット」されたトランザクションの結果が失われないことを保証し、「中断」(ロールバック)されたトランザクションの結果が関連するデータベースに残存しないことも保証する。トランザクション全体の特性は一般に後述するACID原則にまとめられる。データベースが分散されるか、分散環境で協調動作する必要がある場合(例えば、1990年代初めの連合データベースや21世紀のクラウドコンピューティング)、並行性制御機構の効果的分散に注目が集まる。
※この「データベースにおける並行性制御」の解説は、「並行性制御」の解説の一部です。
「データベースにおける並行性制御」を含む「並行性制御」の記事については、「並行性制御」の概要を参照ください。
- データベースにおける並行性制御のページへのリンク