物事の18.1はじめに:
図1に示すように、物事のセットで構成され、コミットなど、データストレージを表し、文をDMLおよび/ロールバック組成物が、データベースは最小の論理的ユニットである変更コミット
ロールバックした場合、それはすべてのDML操作をキャンセル表明しました。
2、物事は、コミット、ロールバック、DDL文が自動的に送信され、コミット終了しました。
3、物事の始まりは終わりの事は次の事の始まりです。
4、Oracleはデータがライブラリになりませんそれ以外の場合は提出しなければなりません。
5、物事の特徴:
(1)(原子)の原子:どちらかのすべての関連するトランザクションの手順は、データベースの動作を変更するために成功するか、すべて失敗します。
(2)整合性(一貫性):ソースおよび宛先バランスの実装前後に実行されたトランザクション。
(3)分離(単離):同時トランザクションは、互いに独立してそれぞれ相から分離されています。
(4)持続的な(Durubility):トランザクションが正常に送信されると、データの整合性を確保すべきであるが存在します。
18.2、ORACLEデータベースのトランザクション分離レベル:
1、トランザクション分離レベル:別のトランザクションとのトランザクションの分離度が並列にデータベースを変更します。
図2に示すように、2つの同時トランザクションが同じデータベーステーブルの行にアクセスし、次の3つの問題が存在してもよいです。
(1)ダーティ読み取り:トランザクションBは、その後、ダーティデータトランザクションを読み取り、Bロールバック次に、データトランザクションのコミットされていない更新を読み出します。
(2)非反復可能読み取り:トランザクションAが複数回同じデータを読み出し、トランザクションデータ中に行われたトランザクションBの更新はAを何度も読み取る提出、トランザクションAが得られると、結果が矛盾している、同じデータを複数回読み出します。
(3)読み出しマジック:すべての学生代わりABCDEレベルに対する特定のスコアからの結果のシステム管理者Aのデータベースが、この時と送信時に特定のレコードのスコアを挿入するシステム管理者B、
システム管理者Aの変更の終了後も変化は一晩、幻覚などが起こったと同じように、これはファントム読み取りと呼ばれていないレコードがあることがわかりました。
(4)まとめ:非反復読み取りとファントム読み取り容易に混乱している、非反復可能読み取りが変更に焦点を当てた、ファントムを追加または削除に焦点を当てて読み取り、ファントムリードを解決するために、単に行が条件を満たしている非反復読み取りロックの問題を解決しますロックテーブルに必要です。
図3は、問題のOracleデータベースの同時実行物事が起こるを解決するために、次のようなもののレベルを設定します。
(1)より高いレベル、悪い並行性:
両方READをサポートするために(2)Oracleデータベースは、コミットとSERIALIZABLEトランザクション分離レベルので、Oracleは、ダーティ・リードをサポートしていません。
デフォルトのトランザクション分離レベル(3)SQL標準の定義はSERIALIZABLEですが、オラクルはREAD COMMITTEDがデフォルトで使用されます。
(4)設定分離レベルSETトランザクション分離レベルは、[| SERIALIZABLE READがコミット]
(5)例:データベースの分離レベルは、READ COMMITTED時間を設けた場合、今すぐデータベースに追加された2つのトランザクションT1およびT2、T1が存在する場合
データが、コミットされていないトランザクションは、この時点でT2 T1は、変更の内容にアクセスすることはできません。唯一のトランザクションT1を提出した後、T2は、データベースへの変更を見ることができます。トランザクションをコミットする同等のT1
以前は、変更に関するデータは、他のトランザクションが見ることができない、ロックを追加しました!
18.3ロック:
1、排他ロック(Xロック)。
そこDML文が実行されると、ラインの設計は、排他ロックを追加しますコミットまたはロールバックそれを解放するまで、他のものは変更できません。
2、共有ロック(Sロック)。
プラス共有ロックデータは、他のもので読み取ることができますが、変更することはできません。
図3は、テーブルがロックS、Xプラスライン上に排他ロックを共用しました。
ATM:現金自動預け払い機
18.4は、物事の結果は送信されません。
1、彼は見ることができない他のものの操作は、あなたが見ることができます。
2、プラステーブルと行ロックが解放されません、他のものは動作を遮断することができます。
図3に示すように、それは以前の状態に復元することができるデータの操作。