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

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

2007-12-07 07:00

データの確定と中止(コミットとロールバック)

 トランザクションによる処理が正常に終了した場合に、その変更処理を有効な結果と確定し、データベースに反映することをコミットといいます。そのとき、「トランザクションが完了した」ことを認識させるために、「COMMIT」という命令を発行します。また、トランザクションによる処理の途中で何らかの障害が発生した場合に、それまでの変更処理を無効なものとし、トランザクションが実行される前の状態に戻すことをロールバックといいます。このとき、「トランザクションが中止された」ことを認識させるために「ROLLBACK」という命令を発行します。一度COMMITを発行しトランザクションを完了すると、変更した内容はROLLBACKを発行しても元のデータに戻すことが出来なくなります。

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

 この「COMMIT」や「ROLLBACK」はSQLの命令の仲間です。これまでの連載の中でお話してきた3つあるSQLの種類の中の「データ制御言語(DCL)」がこの「COMMIT」や「ROLLBACK」になります。

データの同時更新

 データベースには様々なデータが入っており、常にデータの検索、更新が行われています。あるデータへ同時に更新作業が起こるとデータの不整合が起こる可能性があります。

図3. データの同時更新

 AさんがBさんへ5万円振り込みます。この作業が完了していないうちに、Bさんが3万円引き出します。この場合、後から作業を行ったBさんの更新データだけが有効になってしまい、Bさんの残高は7万円ということになってしまいます。

 正しくは、12万円です。これを正しくシステムで実現する為には、排他制御を利用します。

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

ホワイトペーパー

新着

ランキング

  1. セキュリティ

    「デジタル・フォレンジック」から始まるセキュリティ災禍論--活用したいIT業界の防災マニュアル

  2. 運用管理

    「無線LANがつながらない」という問い合わせにAIで対応、トラブル解決の切り札とは

  3. 運用管理

    Oracle DatabaseのAzure移行時におけるポイント、移行前に確認しておきたい障害対策

  4. 運用管理

    Google Chrome ブラウザ がセキュリティを強化、ゼロトラスト移行で高まるブラウザの重要性

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

    技術進化でさらに発展するデータサイエンス/アナリティクス、最新の6大トレンドを解説

ZDNET Japan クイックポール

注目している大規模言語モデル(LLM)を教えてください

NEWSLETTERS

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

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

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