恋もデータも、途中で終わっちゃうのはイヤ…!
大事な処理を“最後までちゃんと”終わらせてくれるのが、トランザクションっていう仕組みなんだよっ!
トランザクションとは?

「銀行の振込中にアプリが落ちたらどうなるの!?」って心配になったことない?
そんなときに大活躍するのが「トランザクション処理」ってしくみなんだよっ
トランザクションとは、「処理のひとまとまり」のこと。
たとえば、AさんからBさんへ送金する場合は…
この2つの処理は「セット」で成功してほしいよね?
そのために「両方ちゃんと終わるまで処理を確定しない」のが、トランザクションの考え方だよ~!
トランザクションの4つの約束(ACID特性)
トランザクションが安全に動くには、4つの性質を守る必要があるよ!
それが「ACID特性(エーシッド)」って呼ばれてるのっ
| 特性 | 内容 | 意味 |
|---|---|---|
| A (Atomicity) 原子性 | オールorナッシング | ぜんぶ成功 or ぜんぶ失敗! 中途半端はNG! |
| C (Consistency) 一貫性 | ルール守る | 処理の前後で矛盾しないように |
| I (Isolation) 独立性 | お互いに邪魔しない | 同時に動いてもそれぞれの結果はちゃんと独立 |
| D (Durability) 永続性 | 確定したら壊れない | 成功した処理は電源が切れても残るよっ |
たとえば、電車のチケット予約中に他の人と競合しても、ちゃんと1人分しか確保されないようにするのも、ACIDの力だよっ!
排他制御とデッドロックとは?

複数の人が同時に同じデータを操作したら…大混乱だよね。
それを防ぐのが「排他制御(はいたせいぎょ)」ってしくみ!
でもね、排他制御をうまくやらないと、デッドロック(にらみ合い状態)になっちゃうことも…。
イメージはこんな感じ!
…お互いに待ってるだけで、永遠に処理が進まない😭
これがデッドロックだよ〜!
トランザクションのリカバリ(復旧)方法!
もし何かトラブルが起きちゃったら…?
大丈夫!「ロールバック」や「チェックポイント」でリカバリできる仕組みがあるの!
さらに「2相コミット」っていう、安全に複数データベースに反映する手法もあるんだよ!
ちゃんと準備→実行って段階をふむのがポイントだよっ。
トランザクションに関するITパスポート試験の過去問!
DBMSのトランザクションに関する記述として、適切なものはどれか。
ア:あるデータベースの内容を他のデータベースに複製し,内容の同期をとる。
イ:データベースに対して行った操作を,順次記録する。
ウ:データベースに対する一連の処理が全て成功したら変更結果を確定し,途中で失敗したら処理前の状態に戻す。
エ:データベースの表の索引を作成し,検索時には索引を使用する。
正解は『ウ』
トランザクションとは、関連する複数の処理をひとまとまりにして実行・管理する仕組みだよ。
連携処理を「すべて成功したときにだけ確定(コミット)して、失敗したら元に戻す(ロールバック)」方式で実現するのが、トランザクションの役割だよ~!
ITパスポート試験をスマホで手軽に勉強!
「えろ勉」も戦略的に開発&運営してるよ~!この記事が勉強になったり、ためになったよ〜って思ったら、なにかアクションをお願い!!「えろの力で勉強するゲーム:えろ勉」
もし恋愛にもロールバックがあったら、
「告白失敗」って記録… なかったことにしたいなぁ🥹


