並行性制御
操作が実際に行われるまでトランザクションの同期を遅延させる。衝突は起きないだろうと想定しているが、実際に操作するまでわからない。コミットによってACID原則を破る状態になるなら、トランザクションを中断させる。中断されたトランザクションは即座に再試行され、オーバーヘッドを生じる。中断されるトランザクションが少なければ、楽観的並行性制御はよい戦略である。
時刻印をトランザクションに割り当て、時刻印の順序でデータへのアクセスを制御またはチェックする。
データベースシステムを分散化したり、分散環境で協調動作する場合(例えば、1990年代初めの連合データベースや最近のグリッド・コンピューティング、クラウドコンピューティング、スマートフォンのネットワークなど)、トランザクションも分散化される。分散トランザクションは複数プロセスにまたがるトランザクションであり、さらにコンピュータ間や地理的に離れたサイト間をまたぐこともある。これを処理するには効率的な分散並行性制御機構を必要とする。分散システムのスケジュールで直列化可能性を効率的に達成するには、ローカルな運用を意図して設計された機構では不可能な工夫を必要とする(グローバル直列化可能性を参照)。これは主に、ネットワークやコンピュータによるレイテンシによって並行性制御情報の分散が高くつくことによる。唯一広く知られている分散技法はコミットメント順序付け (Commit ordering, CO) であり、特許取得後の1991年に公表された。これは、トランザクションのコミットイベントを時系列に順序付けする技法である。COでは並行性制御情報を分散する必要がなく、信頼性/性能/スケーラビリティの観点で効率的な汎用技法となっており、異なる並行性制御機構を採用したシステムから成るヘテロジニアスな環境でも使用可能である。COはコミットイベントの順序を決定するだけで、具体的な機構には関与しない。1991年に公表されるまで、そのような技法は存在しないと言われていたし、発表後も誤解する専門家が多く見られた。COの重要な副作用として、分散デッドロック状態の自動的な解消がある。コミットメント順序付けの結果生成されるスケジュールの属性もCOと呼ばれる。
データに割り当てられたロックでそのデータへのアクセスを制御する。トランザクションはデータ(データベースオブジェクト)にアクセスする際にロックを獲得し、そのロックが解放されるまで他のトランザクションはブロックされる可能性がある(ブロックされるかどうかは、ロックの種類とアクセスの種類に依存する)。