トランザクション分離レベル
(分離レベル から転送)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/18 18:31 UTC 版)
トランザクション分離レベル (トランザクションぶんりレベル)または 分離レベル (英: Isolation) とは、データベース管理システム上での一括処理(トランザクション)が複数同時に行われた場合に、どれほどの一貫性、正確性で実行するかを4段階で定義したものである。隔離レベル 、 独立性レベルとも呼ばれる。トランザクションを定義づけるACID特性のうち,I(Isolation; 分離性, 独立性)に関する概念である。
- ^ Lower isolation levels increase transaction concurrency but risk showing transactions a fuzzy or incorrect database. doi: 10.1145/568271.223785
- ^ Running concurrent transactions at different isolation levels allows application designers to trade throughput for correctness. doi: 10.1145/568271.223785
- ^ These levels are defined with the classical serializability definition, plus three prohibited action subsequences, called phenomena: Dirty Read, Non-repeatable Read, and Phantom. doi: 10.1145/568271.223785
- ^ The problem, as illustrated in history H4, is that even if T2 commits, T2's update will be lost. doi: 10.1145/568271.223785
- ^ Running concurrent transactions at different isolation levels allows application designers to trade throughput for correctness doi: 10.1145/568271.223785
- 1 トランザクション分離レベルとは
- 2 トランザクション分離レベルの概要
- 3 脚注
分離レベル
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/18 18:31 UTC 版)
「トランザクション分離レベル」の記事における「分離レベル」の解説
ANSI/ISO SQL標準で定められている分離レベルは、下記の4種類で定義されている。 SERIALIZABLE(直列化可能) 複数の並行に動作するトランザクションそれぞれの結果が、いかなる場合でも、それらのトランザクションを時間的重なりなく逐次実行した場合と同じ結果となる。このような性質を直列化可能性(Serializability)と呼ぶ.SERIALIZABLEは最も強い分離レベルであり、最も安全にデータを操作できるが、相対的に性能は低い。ただし同じ結果とされる逐次実行の順はトランザクション処理のレベルでは保証されない。 REPEATABLE READ(読み取り対象のデータを常に読み取る) ひとつのトランザクションが実行中の間、読み取り対象のデータが途中で他のトランザクションによって変更される心配はない。同じトランザクション中では同じデータは何度読み取りしても毎回同じ値を読むことができる。 ただし ファントム・リード(Phantom Read) と呼ばれる現象が発生する可能性がある。ファントム・リードでは、並行して動作する他のトランザクションが追加したり削除したデータが途中で見えてしまうため、処理の結果が変わってしまう。 READ COMMITTED(確定した最新データを常に読み取る) 他のトランザクションによる更新については、常にコミット済みのデータのみを読み取る。 MVCC はREAD COMMITTEDを実現する実装の一つである。 ファントム・リード に加え、非再現リード(Non-Repeatable Read)と呼ばれる、同じトランザクション中でも同じデータを読み込むたびに値が変わってしまう現象が発生する可能性がある。 READ UNCOMMITTED(確定していないデータまで読み取る) 他の処理によって行われている、書きかけのデータまで読み取る。 PHANTOM 、 NON-REPEATABLE READ 、さらに ダーティ・リード(Dirty Read) と呼ばれる現象(不完全なデータや、計算途中のデータを読み取ってしまう動作)が発生する。トランザクションの並行動作によってデータを破壊する可能性は高いが、その分性能は高い。
※この「分離レベル」の解説は、「トランザクション分離レベル」の解説の一部です。
「分離レベル」を含む「トランザクション分離レベル」の記事については、「トランザクション分離レベル」の概要を参照ください。
- 分離レベルのページへのリンク