F-nameのブログ

はてなダイアリーから移行し、更に独自ドメイン化しました。

DBMSの同時実行制御と障害回復解説(データベース第1回)#放送大学講義録

ーーーー講義録始めーーーー

 

データベースにおける同時実行制御と障害回復機能

データベースには、多くのユーザが操作するさまざまなアプリケーションから同時にアクセスが生じる場合があります。1つのアプリケーションから見たデータベースへの読み書きなどの一連の処理をトランザクションと呼びます。複数のアプリケーションから同時にトランザクションが実行される際、データベース管理システム(DBMS)は、これら複数のトランザクションを整理し、並列で正しく処理できるように制御します。この機能を同時実行制御と呼びます。

同じデータに対して複数のトランザクションが発生した場合、DBMSはロックなどの仕組みを用いて、データの不整合が発生しないように制御する必要があります。たとえば、あるトランザクションがデータを更新している間は、他のトランザクションが同じデータにアクセスできないようにロックをかけ、整合性を確保します。


障害回復機能

DBMSが提供するもう1つの重要な機能として、障害回復機能があります。これは、先述したトランザクションの実行中に発生する障害に対処するためのものです。

例えば、銀行システムにおける送金処理を考えてみます。ある口座から別の口座へ送金するトランザクションの途中で、片方の口座の残高だけが更新された時点で何らかの障害が発生し、トランザクションが中断してしまった場合、そのままではデータベース内に不整合が生じます。

DBMSは、各トランザクションのデータ操作をログとして記録し、さらに二次記憶装置(ディスク)への書き込みを制御しています。障害が発生しトランザクションが中断された場合でも、このログを利用して中断されたトランザクションで行われた変更を取り消し、データベースをトランザクション実行前の一貫性のある状態に戻すことができます。このプロセスをロールバックと呼びます。