はじめてのSQL【初心者編:トランザクションについて】
こんにちは。
スタッフブログ担当の岩でございます。
前回のはじめてのSQL編ではDCLについて説明いたしました。
その説明の中で「トランザクション」という言葉が出てきましたので、今回の記事ではその説明をいたします。
トランザクションちゃん
トランザクションとは
まず、トランザクションとはどのような意味でしょう。
ビジネス用語としても使われる言葉ですが、今回はIT分野での意味を説明いたします。
トランザクションとは、ソフトウェアの処理方式のことを指します。
トランザクション方式は複数の処理を一つにまとめて、全ての処理が成功すれば「成功」。
ひとつの処理でも失敗すれば「失敗」とします。
よく例として挙げられるのは銀行の振込処理です。
Aさんの口座からBさんの口座に5,000円振り込む場合、処理は2つあります。
処理1:Aさんの口座から5,000円引く
処理2:Bさんの口座に5,000円足す
※実際は他にも処理がありますが、今回は分かりやすくするために簡単に表現しています。
この2つの処理をまとめたものを「トランザクション」といいます。
では、なぜ2つの処理をまとめてしまうのでしょうか。
それは、全ての処理が成功した場合のみ「成功」としたいからです。
ここで、処理をまとめなかった場合を考えてみます。
処理1は成功しましたが、処理2は失敗してしまいました。
処理をまとめていないため、Aさんの口座から5,000円引かれましたが、Bさんの口座には5,000円足されません。
このようにAさんの口座からお金がなくなってしまうような処理になってしまいます。
処理をまとめて、処理1と処理2どちらも成功した場合のみ「成功」として扱い、どちらか失敗した場合はどちらも「失敗」したように扱うと、
どちらかの処理だけが実行されることはなくなります。
これを原子性(Atomicity)といいます。
トランザクションの条件
さきほど急に聞きなれない言葉がでてきましたね。
原子性(Atomicity)とは、
「全ての処理が行われるか、全ての処理が行われない」
という特性のことです。
このようにトランザクションには条件があり、全てで4つの条件があります。
基本情報技術者試験でも問題としてよく出てきますので、覚えてみてください。
- 原子性(Atomicity)
- 一貫性(Consistency)
- 独立性(Isolation)
- 永続性(Durability)
これらをまとめて「ACID特性」と言われます。
SQL分のトランザクション終了文
それでは前回の記事の復習をしてみましょう。
「COMMIT」や「ROLLBACK」はトランザクションの終了文として扱われます。
COMMITを行うと、トランザクション内の全ての処理が成功した場合、変更されたデータを確定します。
ROLLBACKを行うと、トランザクション内の全ての処理が成功した場合、変更されたデータを取り消しします。
また、トランザクション内のどれかの処理が失敗した場合はROLLBACKが行われ、データは変更されません。
前回の記事で説明したDCLについて、理解が深まったでしょうか。
まとめ
今回はトランザクションについてどのようなものか説明いたしました。
トランザクションはSQLやデータベース管理と深い関係があるため、理解を深めていただきたいです。
最後まで読んでくださりありがとうございました。
次回はトランザクションのACID特性について説明いたします。
どうぞよろしくお願いいたします。