
さらっと覚えるSQL&T-SQL入門(12)
トランザクション処理をさらっとマスターしよう
株式会社システムインテグレータ
石橋 潤一
2008/3/24
アプリケーション開発でデータベースを利用する新人プログラマに向けて、SQLおよびT-SQLを短期間で理解できるよう、開発現場ですぐに必要となる内容を中心に解説する。(編集部)
| 主な内容 --Page 1--
--Page 2--
--Page 3--
|
SQLの入門解説として始まった本連載も、いよいよ今回で最終回となりました。 今回は、これまで3回にわたって解説してきたストアドプロシージャの集大成として、トランザクションを利用した高度なストアドプロシージャの作成と解説を行います。
■トランザクションの概念
これまでの連載では、データベースへの更新処理として、単一の処理を行うINSERT文やUPDATE文を取り上げてきました。SQLを利用したこのようなデータ更新処理を行う際、複数の更新処理を連続して実行し、1つの関連性のある集まりとして管理する必要があるものがあります。SQLでは、このような複数のデータ更新処理を1つの単位にまとめ、管理することが可能です。この処理単位のことをトランザクションと呼びます。
トランザクションの利用が必要となるのは、複数の更新処理を連続して行う際に、すべての処理が成功したときにのみデータベースへの変更を有効としなければならないような場合です。トランザクションを利用することで、何らかの原因によって、一部の処理が正しく実行されなかったときには、すべての更新処理をキャンセルし、作業全体を取り消すことが可能になります。
■トランザクションが必要な場面とは
トランザクションが必要となる簡単な例として、銀行の入出金システムを例にして考えてみましょう。
銀行の業務の中では、指定の口座から別の口座にお金を移動させることが多くあります。
たとえば、Aさんの口座から50万円をBさんの口座に、という具合です。このような処理を行う場合は、Aさんの口座残高を減らす処理と、Bさんの口座残高を増やす処理を連続して行う必要があります。
もし、トランザクションを利用せずにこの連続処理を実行し、Bさんの口座に対する処理に失敗した場合、問題が発生してしまいます。Aさんの口座からは預金が減る一方、Bさんの口座残高は増えず、お金が消えてしまうことになり、データに不整合が発生するからです(図1)。
![]() |
| 図1 処理失敗による不整合の発生 処理の一部が失敗した場合はすべての変更を取り消す必要がある |
このような問題は、トランザクションを利用して解決することができます。
先の例で言えば、Aさんの口座に対する処理、Bさんの口座に対する処理を1つのトランザクションとしてまとめ、すべての処理が成功した場合にのみ、口座に対する変更内容を確定するようにします。また、処理が一部でも失敗した場合は、すべての処理が取り消されます。このため、口座に対する変更は発生せず、データの整合性が維持されます。
トランザクションは例として取り上げた問題以外にも、同時実行制御など、さまざまな問題に対する対処が可能です。今回は、処理が失敗したら全体を取り消すことができるこのトランザクションの機能を、ストアドプロシージャに組み込んでみます。
| 1/3 |
| Index | |
| 連載:さらっと覚えるSQL&T-SQL入門(12) トランザクション処理をさらっとマスターしよう |
|
| Page 1 ・トランザクションの概念 ・トランザクションが必要な場面とは |
|
| Page 2 ・トランザクションの構文 トランザクション開始 トランザクションの確定 トランザクションの取り消し ・TRY〜CATCH文によるエラー検知 |
|
| Page 3 ・トランザクションを組み込んだストアドプロシージャの作成 テーブルの作成 ストアドプロシージャの作成 ロールバック処理の検証 ・まとめ |
|
| さらっと覚えるSQL&T-SQL入門 |
TechTargetジャパン
- IBMが歴史を変える!? 新カテゴリの製品を発表 (2012/5/25)
IBMは新たな製品カテゴリとなる「PureSystems」を発表。DB2 10とビッグデータの関係、PureSytemsの斬新さはどこかに迫ります - クラウド時代のデータ処理を支える分散KVSの可能性 (2012/5/23)
現在、高速データ処理の主流はインメモリ型データ処理だが、別の方法として分散KVSが注目を集めている。今回は分散KVSについて話を聞いた - 複数の表からデータを取り出して表示させる(2) (2012/4/23)
前回はSQLの基本的な結合構文について説明しました。今回は、より複雑な自己結合や外部結合について説明します - SQL Server、OOWにIQ、盛りだくさんの4月 (2012/4/20)
オラクルオープンワールドが3年ぶりに東京で開催されたほか、SQL Server 2012が提供開始されるなど、今月は話題が盛りだくさんです
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -

