トランザクション — ACID とコミット・ロールバック
トランザクションの基本操作 (開始・コミット・ロールバック) と ACID の 4 特性を解説します。ロールバックが取り消す範囲が自分のトランザクションに限られること、コミット後は取り消せないこと、構文エラーが発生するタイミングを扱います。
トランザクションの基本操作 (開始・コミット・ロールバック) と ACID の 4 特性を解説します。ロールバックが取り消す範囲が自分のトランザクションに限られること、コミット後は取り消せないこと、構文エラーが発生するタイミングを扱います。
Laravel の DB::transaction() を使ったトランザクション管理を解説。ACID 特性、1 集約は Repository 内・複数集約は UseCase 内という置き場所の使い分け、ネストしたトランザクション (Savepoint)、楽観的ロックと悲観的ロックの実装と使い分けをまとめます。
共有ロックと排他ロック、4 つのトランザクション分離レベルと 3 つの読み取り異常、楽観ロックと悲観ロックの使い分け、デッドロックの原因と回避方法を解説します。分離レベルを上げてもロック無しでは競合が防げない理由を扱います。
データベースの 4 つの基本操作 (CRUD) と、複数の操作をまとめて扱うトランザクション・ACID 特性 (原子性・一貫性・独立性・永続性) を、銀行振込などの具体例とともに解説します。