SQLってどう使う?―その3 トランザクションの扱い
前回まででデータの取得・追加・削除・更新といった基本動作を学びました。今回はデータベースの重要な機能である、「トランザクション」の仕組みについてお話していきます。
排他制御とは?
データベースでは、複数のユーザが同時に更新処理を実行した場合も、データに矛盾がおきないようにするために排他制御という機能を備えています。
更新をしようとするトランザクションが更新している間は、他のトランザクションが更新目的で同じデータにアクセスしようとしても、アクセスできません。
排他制御では「データに鍵をかける」という意味で、ロックという仕組みを使います。
データへのアクセスが少しでも早かったほうのトランザクションがロックを先に取得し、解除するまで主導権を握ります。
図4. データの同時更新
ロックがかかっているデータに対してアクセスできるのは、ロックをかけたトランザクションだけですから、後からアクセスしたトランザクションはしばらく待たされます。
トランザクションがロックを解除してはじめて、解除待ち状態のトランザクションはアクセスができるようになります。
今回は、前回の続きでSQLを使ったデータベースの操作とトランザクションについてお話してきました。トランザクションについては、その特性のおかげでデータベースへの同時実行性やデータの復旧が可能になっているわけですが、今回の記事を書くにあたって本当に奥が深いなぁと実感しました。記事ではなるべく簡単にとお話してしまいましたが、もし興味が湧いちゃいましたら、是非いろいろと勉強してみてください。
さて次回は、本連載でここまでお話してきた、リレーショナル・データベースの機能やSQL発行した際のデータベース側の動作について、オラクルのデータベースではどういう動きをするのかというところをお話していきたいと思っています。
筆者紹介
鈴木浩司(すずき こうじ)
日本オラクル株式会社 システム製品統括本部
クロスインダストリービジネス推進本部
担当製品:
Oracle Fusion Middleware
経歴:
SI企業にて、約8年システム開発に携わる。日本オラクルに営業として入社。エンジニアにコンバートされ、Java,SOA,IDM製品を担当。現在に至る。
一言:
連載もいよいよSQLの話に入ってきました。実際にSQLを実行できるようにDBMSをインストールしてみませんか? Oracleデータベースはインストールが難しいって聞いた?そんな話は過去の話です。今ではサルでもインストールできます(2003年のOrale Worldでは実際にサルのモモちゃんがOracle Database 10gをインストールしました)。
オラクルでは、こうした都市伝説を検証しています。詳しくはこちら
- 特集: データベースのイロハ (6件)
- 今日のトップ記事
- 昨日
- 2日前
- 5日前
- 6日前
- 7日前
- ホワイトペーパー
- 話題のタグ
ソーシャルテクノロジーをビジネスに利用する
Mozilla Labs、Firefoxで地理情報を認識活用できるプラグイン「Geode」を正式発表
DelphiのパフォーマンスをDelphiで改善:エンバカデロの製品戦略
社内政治を生き抜くための教訓10箇条
iPhoneでVoIP--Fringを早速試す
Firefox 3のブックマーク構造を理解しよう
ウェブページの段組みをレイアウトするCSS 3のMulti Column
ラウンドアップ:「優れたUI」を実現するためのアプローチ
MSのバルマー氏、「Windows Cloud」の発表を示唆
KDDI「SaaSソリューション」
Techno Exchange
グリーンITの第一歩は見える化です
エンタメCGM「gooメーカー☆メーカー」
ZDNet Japan Green IT
これからの時代のセキュリティ対策