##はじめに
トランザクションについての学習をしている中で、例えると何だろうと・・となったので
出てきた3パターンを残しておくことにします。
##トランザクションとは
データを操作する上で、必要な複数の処理のまとまりのことをトランザクションという。
データベースのデータの整合性を担保するために、適切なトランザクション処理が必要。
##例1
Aさんの銀行口座からBさんの銀行口座へ送金する処理、というよく例えに出ているものを
実際のテーブルなどになぞらえてみる。
usersテーブルとprofilesテーブルがあり、
この2つどちらも操作をしないと変更や新規作成ができないとする。
どっちかが失敗したら変更操作をする前に戻るということ(ロールバック)
どっちも成功しないとコミットしない(確定されないということ)
##例2
CSVファイルのインポート
データのあるカラムの数だけINSERTする必要があるため、トランザクションが必ず必要。
途中でうまく行かなかった場合、すでに取り込んだものも無かったことにする。
(まだデータがあるかという部分は、ifやループで回している)
##例3
オークションのとき。
1つのテーブルの1つのカラムを更新していっているイメージ。
Aさんが先に入札をした場合、同タイミングで入札しようとしていたBさんにはロックがかかってしまう。
つまり待ち時間が発生してしまう。
Aさんが入札し終わり、コミットされた時にやっとBさんは現在の商品価格が見れるようになる。
一つのテーブルの1つのカラムをUPDATEしていっているイメージ。
あまりないかも?