アプリケーションから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 |
|
■ |
トランザクション管理を試す |
|
・ |
フィールドの更新処理 |
・ |
更新処理の取り消し |
・ |
更新処理の確定 |
|
■ |
あとがき |
|