データベース千夜一夜第25回

トランザクションの管理(1)~トランザクションの基礎 長谷川裕行
有限会社 手國堂

アプリケーションからSELECTやUPDATE、DELETEなどのSQL命令を受け取り、それを単純に処理するだけがデータベース管理システム(DBMS)の役割ではありません。“Manegement System”の名の通り、データベースに記録された情報に矛盾が生じないよう適正に管理する機能を持っています。

その中でもトランザクションの管理は、複数の端末から連続してやってくる処理命令を適切にさばくための重要な機能です。この機能をうまく使いこなせば、アプリケーションは格段に使いやすくなり、かつデータベースを安全に運用できるようになります。

まずは、トランザクションとその管理の基本事項を理解しておきましょう。


サンプル・データベースとサンプル・アプリケーションの扱いについて
第9回以降、新しいサンプル・データベースを使っているのでご注意ください。新しいサンプル・データベースの登録方法については、第9回の記事から「新しいサンプルデータベースの準備」の項をお読みください。

なお、今回はテーブルの内容を書き換えるSQLを実行するため、テーブル「商品_mr」と同じ内容を持つ「商品_dmy」を使用します。現在のサンプルデータベースにこのテーブルが存在しない場合は、クエリマネージャで今回のサンプルに含まれているクエリファイル「商品_dmy新規作成.sql」を実行して作成してください。

既に「商品_dmy」が存在するものの、その内容が書き換えられていて「商品_mr」と同じでない場合は、同じく今回のサンプルに含まれているクエリファイル「商品_dmy削除・作成.sql」を実行してください。



- 目次 -
トランザクションとその管理
刻々と書き換えられるデータベース
確定するか取り消すか?
トランザクションの管理
処理の競合とタイミングの問題
1人独占なら問題はない
タイミングの『ズレ』が問題
2件の更新処理
内部の処理順が問題を引き起こす
トランザクション管理で解決!
トランザクション管理の実際
3つの命令
自動的なトランザクション管理
トランザクションの開始~BEGIN TRANSACTION
トランザクションの確定~COMMIT TRANSACTION
トランザクションの取り消し~ROLLBACK TRANSACTION
トランザクション管理を試す
フィールドの更新処理
更新処理の取り消し
更新処理の確定
あとがき
長谷川 裕行 (はせがわ ひろゆき)
有限会社 手國堂 代表取締役  http://www.hirop.com/

大阪芸術大学 写真学科講師。フリーライター。日経ソフトウェアなどに連載。
『ソフトウェアの20世紀』、『独習SQL』など著書多数。

Copyright © MESCIUS inc. All rights reserved.