管理と運用



◆情報検索精度の検査



◆データベースのシステム監視


◆データベースの性能チューニング


◆データベースの排他方式

複数のトランザクションが同時進行すると、 データ更新に不整合が起きることががる。 例えば、排他管理をしていないと、預金残高が1,000円の口座に対して、 2つの自動引き出し機から800円ずつ引き落とした場合、 それが全く同時ならば、どちらの処理でも預金残高は1,000円であると見えてしまい、 どちらの引き落としも成功してしまう。 結果的にはどちらかの更新処理が残らないことになってしまうため、 これを更新紛失と言う。 更新紛失を発生させないための排他方式としては以下のものがある。
  1. レコードロック方式
    あるプログラムがレコードを処理中は、 そのレコードにアクセスしようとしている他のプログラムを待たせる方式。 デッドロックが起こる可能性がある。
  2. タイムスタンプ方式
    プログラムを待たせることはしない。 読み取り、書き込み時間を記録することで、他のプログラムと競合が起きそうな 場合には書き込みをやめる、といった方式。 分散環境では時刻の一元管理は極めて難しいため向かない。
  3. 楽観的方式
    トランザクション開始時にデータのコピーを取っておき、 更新時に他のトランザクションとのデータ更新の重複が無いかを データ内容に基づいて調べる。ロックもタイムスタンプも取らない。