データベース編 第4章 / 全13章
トランザクションとは
Transaction ・ ACID
全部成功か、全部取り消しか銀行振込。「Aさんの口座から引く」と「Bさんの口座に足す」は、必ずセットで成功させる。
図とさわれるデモで確かめる →
ポイント
- 複数の処理を「ひとまとまり」として扱う
- 途中で失敗したら、全部なかったことにする(ロールバック)
- 最後まで成功したら、まとめて確定する(コミット)
名前の由来
trans向こう側へ・通してaction行い
ラテン語 transigere(やり遂げる・取り決める)から。商取引(transaction)と同じ言葉で、「やり取りをひとまとまりでやり遂げる」こと。
仕事の現場では
「在庫を減らしたのに注文が残っていない」「入金したのに残高が増えない」といった事故を防ぐ、業務システムの心臓部です。
くわしく(正確な話)
- 守るべき4つの性質を、頭文字でACIDと呼ぶ。
- A:原子性(全部か無か)、C:一貫性(ルール違反を起こさない)、I:独立性(同時に動かしても混ざらない)、D:永続性(確定したら消えない)。
- 同じ行を同時に書き換えないよう、ロックをかけて順番待ちさせる。
- NoSQLの多くは、速さや規模のためにこの仕組みを一部ゆるめている。
この章の用語(意味と語源)
- トランザクション Transaction
複数の処理を「全部成功か、全部取り消しか」にまとめたもの。
銀行振込の「引く」と「足す」のように、片方だけ実行されると困る処理をひとまとまりにします。
覚えておく:BEGIN → COMMIT / ROLLBACK
語源ラテン語 transigere(やり遂げる・取り決める)から。商取引と同じ言葉です。
- ACID アシッド
トランザクションが守るべき4つの性質。
Atomicity(原子性:全部か無か)、Consistency(一貫性:ルールを破らない)、Isolation(独立性:同時に動いても混ざらない)、Durability(永続性:確定したら消えない)。
覚えておく:原子性 / 一貫性 / 独立性 / 永続性
語源4つの英単語の頭文字。atom はギリシャ語 atomos(これ以上分けられない)から。偶然「acid(酸)」と同じつづりになっています。
- コミット / ロールバック Commit / Rollback
処理を確定させること/全部取り消して元に戻すこと。
語源commit(ゆだねる・確約する)、roll back(巻き戻す)。
- ロック Lock
書き換え中の行に「使用中」の札をかけて、他の人を待たせること。
同じ在庫を2人が同時に減らして数が合わなくなる、といった事故を防ぎます。
語源lock(錠・鍵をかける)。