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

鈴木浩司(日本オラクル)

2007-12-07 07:00

トランザクションとは?

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

 トランザクションという言葉を初めて聞くという読者の方もいらっしゃると思いますので、トランザクションとは何かを最初に簡単にお話しします。トランザクションとは簡単に言ってしまえば、「関連する処理のまとまり」のことを言います。実際、読者の皆さんの仕事においてもいろいろな関連する作業があり、それらの作業をこなして1つの仕事が終わりというようなになりますよね?データベースにおいて、関連する複数の処理を一つの処理単位にまとめた処理単位をトランザクションと呼び、データの整合性を確保するため、また、障害復旧のために利用されます。

 それでは、「銀行振込み」をひとつの例にして、データベースでのトランザクションの管理についてみていきましょう。「Aさんの口座からBさんの口座に5万円を振り込む」ということを行いたいとします。この場合、銀行でのシステムでは、以下のような一連の作業が必要になります。

  1. Aさんの口座から5万円を引く
  2. Bさんの口座に5万円を加える

 これらの作業が完了して初めて「振り込み」という1つのトランザクションが完了します。

図1. 銀行振込みのトランザクション

 では、もし仮に2)の作業の後にシステムに何らかの障害や不具合が発生してしまい、Aさんの口座から10万円引かれたのに、Bさんの口座にはまだ10万円加算されていない状態が発生してしまったらどうなるでしょうか?はい、もちろん大変な混乱が起きてしまいます。

 1つのトランザクションの中での処理は、必ず「すべて成功」か「すべて失敗」のどちらかである必要があります。上記の例の様に、「出金には成功して、入金には失敗」してしまうと出金した分の金額がどこかにいってしまい、結果としてデータの不整合が発生してしまいます。トランザクションでの処理が1つでも失敗したら「すべて失敗」としてデータベースに書き込みを行わず、そして、全ての処理に成功したときに全体を成功としてデータベースに書き込みを行い、処理を完了させる必要があります。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    2027年開始のSCS評価制度にも対応。「業務を止めない」ファイル暗号化の最適解

  2. セキュリティ

    Gmail標準機能だけでは防げない誤送信・なりすまし。操作性を変えずに組織のメール統制を固める方法

  3. セキュリティ

    製造業の情報漏洩をどう防ぐ?CADデータ・USB運用・ネットワーク分離環境のセキュリティ強化を解説

  4. セキュリティ

    AIを武器化する攻撃者にどう立ち向かうか。1,000名のリーダー調査で迫る「5つのリスク防御論」

  5. ビジネスアプリケーション

    なぜAIエージェントはPoCで停滞するのか? 本番稼働を実現する統合アプローチを解説

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]