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. セキュリティ

    従来型のセキュリティでは太刀打ちできない「生成AIによるサイバー攻撃」撃退法のススメ

  2. セキュリティ

    マンガでわかる脆弱性“診断”と脆弱性“管理”の違い--セキュリティ体制の強化に脆弱性管理ツールの活用

  3. セキュリティ

    クラウドセキュリティ管理導入による投資収益率(ROI)は264%--米フォレスター調査レポート

  4. セキュリティ

    情報セキュリティに対する懸念を解消、「ISMS認証」取得の検討から審査当日までのTo Doリスト

  5. セキュリティ

    ISMSとPマークは何が違うのか--第三者認証取得を目指す企業が最初に理解すべきこと

ZDNET Japan クイックポール

所属する組織のデータ活用状況はどの段階にありますか?

NEWSLETTERS

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

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

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