SQLってどう使う?―その3 トランザクションの扱い

鈴木浩司(日本オラクル)
2007-12-07 07:00:00
  • このエントリーをはてなブックマークに追加

排他制御とは?

 データベースでは、複数のユーザが同時に更新処理を実行した場合も、データに矛盾がおきないようにするために排他制御という機能を備えています。

 更新をしようとするトランザクションが更新している間は、他のトランザクションが更新目的で同じデータにアクセスしようとしても、アクセスできません。

 排他制御では「データに鍵をかける」という意味で、ロックという仕組みを使います。

 データへのアクセスが少しでも早かったほうのトランザクションがロックを先に取得し、解除するまで主導権を握ります。

図4. データの同時更新

 ロックがかかっているデータに対してアクセスできるのは、ロックをかけたトランザクションだけですから、後からアクセスしたトランザクションはしばらく待たされます。

 トランザクションがロックを解除してはじめて、解除待ち状態のトランザクションはアクセスができるようになります。

 今回は、前回の続きでSQLを使ったデータベースの操作とトランザクションについてお話してきました。トランザクションについては、その特性のおかげでデータベースへの同時実行性やデータの復旧が可能になっているわけですが、今回の記事を書くにあたって本当に奥が深いなぁと実感しました。記事ではなるべく簡単にとお話してしまいましたが、もし興味が湧いちゃいましたら、是非いろいろと勉強してみてください。

 さて次回は、本連載でここまでお話してきた、リレーショナル・データベースの機能やSQL発行した際のデータベース側の動作について、オラクルのデータベースではどういう動きをするのかというところをお話していきたいと思っています。

鈴木浩司
筆者紹介

鈴木浩司(すずき こうじ)
日本オラクル株式会社 システム製品統括本部
クロスインダストリービジネス推進本部

担当製品: Oracle Fusion Middleware
経歴: SI企業にて、約8年システム開発に携わる。日本オラクルに営業として入社。エンジニアにコンバートされ、Java,SOA,IDM製品を担当。現在に至る。
一言: 連載もいよいよSQLの話に入ってきました。実際にSQLを実行できるようにDBMSをインストールしてみませんか? Oracleデータベースはインストールが難しいって聞いた?そんな話は過去の話です。今ではサルでもインストールできます(2003年のOrale Worldでは実際にサルのモモちゃんがOracle Database 10gをインストールしました)。
オラクルでは、こうした都市伝説を検証しています。詳しくはこちら

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]