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

鈴木浩司(日本オラクル)
2007/12/07 07:00

前回まででデータの取得・追加・削除・更新といった基本動作を学びました。今回はデータベースの重要な機能である、「トランザクション」の仕組みについてお話していきます。

排他制御とは?

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

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

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

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

図4. データの同時更新

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

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

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

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

鈴木浩司
筆者紹介

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

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

記事の感想やご意見をコメントでお寄せください(CNET_IDログインが必要です)
ログイン パスワードを忘れた方  |  新規登録
米フォレスター・リサーチ社 シニアアナリスト Jeremiah K.Owyang氏を迎え、同氏が提唱するソーシャルテクノロジーを効果的に活用方法するための方法『POST』を日本で初めて紹介する注目のリアルイベント
  • 今日のトップ記事
  • 昨日
  • 2日前
  • 5日前
  • 6日前
  • 7日前
  • 新着記事
  • 人気記事
  • 特集
  • ブログ