數(shù)據(jù)隔離級別

上傳人:無*** 文檔編號:252931830 上傳時間:2024-11-25 格式:PPT 頁數(shù):19 大?。?88KB
收藏 版權(quán)申訴 舉報 下載
數(shù)據(jù)隔離級別_第1頁
第1頁 / 共19頁
數(shù)據(jù)隔離級別_第2頁
第2頁 / 共19頁
數(shù)據(jù)隔離級別_第3頁
第3頁 / 共19頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《數(shù)據(jù)隔離級別》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)隔離級別(19頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級,,第三級,,第四級,,第五級,,,*,數(shù)據(jù)隔離級別,,,,,隔離級別定義了事務(wù)與事務(wù)之間的隔離程度。,,隔離級別與并發(fā)性是互為矛盾的:隔離程度越高,數(shù)據(jù)庫的并發(fā)性越差;隔離程度越低,數(shù)據(jù)庫的并發(fā)性越好。,,,ANSI/ISO SQL92,標(biāo)準(zhǔn)定義了一些數(shù)據(jù)庫操作的隔離級別:,,未提交讀(,read uncommitted,),,提交讀(,read committed,),,重復(fù)讀(,repeatable read,),,序列化(,serializable,),,,通過一些現(xiàn)象,可以反映出隔離級別的效果。這些現(xiàn)象有:,,,更新丟失(

2、,lost update,):當(dāng)系統(tǒng)允許兩個事務(wù)同時更新同一數(shù)據(jù)是,發(fā)生更新丟失。,,,臟讀(,dirty read,):當(dāng)一個事務(wù)讀取另一個事務(wù)尚未提交的修改時,產(chǎn)生臟讀。,,,非重復(fù)讀(,nonrepeatable,read,):同一查詢在同一事務(wù)中多次進(jìn)行,由于其他提交事務(wù)所做的修改,每次返回不同的結(jié)果集,此時發(fā)生非重復(fù)讀。,,,幻像(,phantom read,):同一查詢在同一事務(wù)中多次進(jìn)行,由于其他提交事務(wù)所做的插入或刪除操作,每次返回不同的結(jié)果集,此時發(fā)生幻像讀。,,,下面是隔離級別及其對應(yīng)的可能出現(xiàn)或不可能出現(xiàn)的現(xiàn)象,,,臟讀,: Mary,的原工資為,1000,,財(cái)務(wù)人員將

3、,Mary,的工資改為了,8000,,但未提交事務(wù),,,Connection con1 =,getConnection,();,con.setAutoCommit(,false,);,,update employee set salary = 8000 where,empId,="Mary";,,,,與此同時,,Mary,正在讀取自己的工資,,,Connection con2 =,getConnection,();,,select salary,fromemployee,where,empId,="Mary"; mit();,,,Mary,發(fā)現(xiàn)自己的工資變?yōu)榱?8000,,歡天喜地! 而財(cái)務(wù)

4、發(fā)現(xiàn)操作有誤,而回滾了事務(wù),,Mary,的工資又變?yōu)榱?1000 //con1 con1.rollback();,像這樣,,Mary,記取的工資數(shù),8000,是一個臟數(shù)據(jù)。,READ_COMMITTED,保證一個事務(wù)修改的數(shù)據(jù)提交后才能被另外一個事務(wù)讀取。另外一個事務(wù)不能讀取該事務(wù)未提交的數(shù)據(jù)。這種事務(wù)隔離級別可以避免臟讀出現(xiàn),但是可能會出現(xiàn)不可重復(fù)讀和幻像讀。,,,,不可重復(fù)讀:,,,在事務(wù),1,中,,Mary,讀取了自己的工資為,1000,,操作并沒有完成,con1 =,getConnection,();,,select salary from employee,empId,="Mary

5、";,在事務(wù),2,中,這時財(cái)務(wù)人員修改了,Mary,的工資為,2000,,并提交了事務(wù),. con2 =,getConnection,();,,update employee set salary = 2000;,在事務(wù),1,中,,Mary,再次讀取自己的工資時,工資變?yōu)榱?2000 //con1 select salary from employee,empId,="Mary";,,,在一個事務(wù)中前后兩次讀取的結(jié)果并不致,導(dǎo)致了不可重復(fù)讀。 使用,REPEATABLE_READ,可以避免這種情況發(fā)生。,,,,幻像讀:,,目前工資為,1000,的員工有,10,人。 事務(wù),1,,讀取所

6、有工資為,1000,的員工。,,con1 =,getConnection,();,,Select * from employee where salary =1000;,共讀取,10,條記錄 這時另一個事務(wù)向,employee,表插入了一條員工記錄,工資也為,1000 con2 =,getConnection,();,,Insert into,employee(empId,salary,) values("Lili",1000); mit();,事務(wù),1,再次讀取所有工資為,1000,的員工,//con1 select * from employee where salary =1000

7、;,,,共讀取到了,11,條記錄,這就產(chǎn)生了幻像讀。,,,ISOLATION_SERIALIZABLE,能避免這樣的情況發(fā)生。但是這樣也耗費(fèi)了最大的資源。,,,,大多數(shù)數(shù)據(jù)庫的默認(rèn)隔離級別為,:?Read,Commited,,,如,Sql,Server?,?Oracle.,,,,少數(shù)數(shù)據(jù)庫默認(rèn)的隔離級別為,Repeatable?Read,,如,MySQL,,InnoDB,存儲引擎,,鎖的概念,2-1,,鎖是數(shù)據(jù)庫用來控制共享資源并發(fā)訪問的機(jī)制。,,鎖用于保護(hù)正在被修改的數(shù)據(jù),,直到提交或回滾了事務(wù)之后,其他用戶才可以更新數(shù)據(jù),,,鎖的概念,2-2,,修改表,修改表,拒絕訪問,Toy_ID,Na

8、me,Price,T001,Barbie,20,T002,GI Joe,45,,鎖定的優(yōu)點(diǎn),,一致性,,-,一次只允許一個用戶修改數(shù)據(jù),,完整性,,-,為所有用戶提供正確的數(shù)據(jù)。如果一個用戶進(jìn)行了修改并保存,所做的修改將反映給所有用戶,并行性,-允許多個用戶訪問同一數(shù)據(jù),Toy_ID,Name,Price,T001,Barbie,20,T002,GI Joe,45,修改表中,,的數(shù)據(jù),查看表中的數(shù)據(jù),允許訪問,,表級鎖,行級鎖,鎖的類型,,鎖的類型,,行級鎖,3-1,,Toy_ID,Name,Price,T001,Barbie,20,T002,GI Joe,45,更新,T00,2,行,更新,T

9、001,,行,行被鎖定,對正在被修改的行進(jìn)行鎖定。其他用戶可以訪問除被鎖定的行以外的行,允許訪問,,行級鎖,3-2,,行級鎖是一種排他鎖,防止其他事務(wù)修改此行,,在使用以下語句時,,Oracle,會自動應(yīng)用行級鎖:,,INSERT,,UPDATE,,DELETE,,SELECT … FOR UPDATE,,SELECT … FOR UPDATE,語句允許用戶一次鎖定多條記錄進(jìn)行更新,,使用,COMMIT,或,ROLLBACK,語句釋放鎖,,行級鎖,3-3,,SELECT … FOR UPDATE,語法,:,,,SELECT … FOR UPDATE [OF columns] [WAIT n |

10、 NOWAIT];,SQL> SELECT * FROM,order_master,WHERE,vencode,=’V002’,,FOR UPDATE OF,odate,,,del_date,;,,SQL> UPDATE,order_master,SET,del_date,=’28-8,月,-05’,,WHERE,vencode,=’V002’;,,SQL> COMMIT;,SQL> SELECT * FROM,order_master,WHERE,vencode,=’V002’,,FOR UPDATE WAIT 5;,SQL> SELECT * FROM,order_master,WHERE

11、,vencode,=’V002’,,FOR UPDATE NOWAIT;,,表級鎖,3-1,,Toy_ID,Name,Price,T001,Barbie,20,T002,GI Joe,45,修改表中的行,更新表,拒絕訪問,鎖定整個表,限制其他用戶對表的訪問。,,表級鎖,3-2,,表級鎖類型,行共享,行排他,共享,使用命令顯示地鎖定表,應(yīng)用表級鎖的語法是,:,,,LOCK TABLE,table_name,IN mode,MODE,;,共享行排他,排他,,表級鎖,3-3,,行共享,(ROW SHARE) –,禁止排他鎖定表,,行排他,(ROW EXCLUSIVE) –,禁止使用排他鎖和共享鎖,,

12、共享鎖,(SHARE),,鎖定表,僅允許其他用戶查詢表中的行,,禁止其他用戶插入、更新和刪除行,,多個用戶可以同時在同一個表上應(yīng)用此鎖,,共享行排他,(SHARE ROW EXCLUSIVE) –,比共享鎖更多的限制,禁止使用共享鎖及更高的鎖,,排他,(EXCLUSIVE) –,限制最強(qiáng)的表鎖,僅允許其他用戶查詢該表的行。禁止修改和鎖定表,,死鎖,,當(dāng)兩個事務(wù)相互等待對方釋放資源時,就會形成死鎖,,Oracle,會自動檢測死鎖,并通過結(jié)束其中的一個事務(wù)來解決死鎖,,右邊是一個死鎖的例子,T,1,T,2,lock,(D,1,),時間,lock,(D,2,),lock,(D,2,),lock,(D,1,),等待,等待,…,…,,

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!

五月丁香婷婷狠狠色,亚洲日韩欧美精品久久久不卡,欧美日韩国产黄片三级,手机在线观看成人国产亚洲