




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗4 事務處理與并發(fā)控制【實驗目的與要求】n 提交事務、回滾事務n 發(fā)出保存點n 事務鎖機制的理解【實驗內容與步驟】4.1. 事務處理初步無論何時發(fā)出命令,都不會對數(shù)據庫作直接更改。對于DML語句來講必須明確地發(fā)出提交語句來保存更改;對于DDL,系統(tǒng)會自動提交。實驗4-1:事務提交的實現(xiàn)。請按照下列給出的步驟完成實驗,理解事務處理過程。(1) 打開一個以上的 SQL plus 的實例,即啟動 SQL plus 多個會話,并連接到上次使用的相同用戶模式(即以相同用戶名和口令登錄)。如:開啟兩個同時處于活動狀態(tài)的 SQL plus 會話,如圖 4-1 所示。會話 1會話 2圖 4-1開啟多個會話
2、(2) 如圖 4-1 中所示,在“dept”表中插入一條新記錄。圖 4-2插入與查詢數(shù)據(2) 在第一個會話窗口中發(fā)出一個選擇語句,檢驗記錄的插入。請給出查詢結果:(4)另一個會話窗口對同一 dept 表發(fā)出同一查詢語句。請給出查詢結果:思考:比較兩個查詢語句運行結果,思考為什么會有這樣的結果。(5)在第一個會話窗口提交修改。(6)完成提交后再在兩個窗口各自對dept執(zhí)行查詢操作,比較查詢結果,看是否相同?實驗4-2:執(zhí)行下面的步驟理解提交的概念。(1)單擊第一個 SQL 實例,如圖 所示,插入一項新記錄。(2)單擊第二個會話,在此插入同一項記錄。觀察并比較運行結果,特別關注第二個會話的運行結
3、果。(3)在第一個會話中提交數(shù)據(Commit),觀察第二個會話中的反應狀態(tài)。請給出運行結果:結論:由于記錄是插入到第一個會話中的,又試圖把相同的記錄插入第二個會話中,并且由于 deptno 是主鍵,因此第二個會話不允許用戶插入記錄;而且在第一個會話發(fā)出提交語句或回滾語句(以后討論)之前,掛起第二個會話。實驗4-3:遵循下面給出的步驟,我們將理解如何保存記錄整個過程背后的邏輯。(1)單擊任務欄上 SQL 的第一個會話。將某雇員的薪水更新為4000。請給出運行結果:(2)單擊任務欄上的第二個 SQL 會話,試著更新相同記錄的值。請給出運行結果:結論:第二個會話處于掛起狀態(tài),因為無論何時更新一個記
4、錄,在用戶提交或回滾它之前,該記錄是鎖定的。因此,如果不發(fā)出提交或回滾語句,第二個會話一直是鎖定的,直到解鎖。注意:DDL 語句是自動提交的,所以沒有必要使用任何提交語句來保存 DDL 語句所作的更改。4.2. 撤消更改我們已用提交語句保存更改,下面看看如何使用回滾語句來達到我們的目的?;貪L語句用于撤消未提交的更改。實驗4-4:執(zhí)行下面給出的步驟,用回滾語句進行操作。(1)如圖中所示,在“dept”表中插入一條新記錄。(2)發(fā)出一個選擇語句查看如圖 4 中所示的新記錄,可以看到新記錄。請給出查詢結果:(3)發(fā)出一個如下圖所示的回滾語句。(4)給出一個選擇語句查看記錄。請給出運行結果:思考:比較
5、兩次查詢語句執(zhí)行的結果,理解回滾操作。注意:提交更改之后,就不能執(zhí)行回滾語句。4.3. 插入保存點保存點只是在事務中插入的書簽。這些書簽用于標注事務,并配合回滾語句工作。由于回滾撤消整個任務,與保存點一起使用的回滾可用來撤消事務的某個部分。實驗4-5:通過下面的操作步驟了解如何使用保存點:(1)刪除 deptno 70 和 80 的記錄,發(fā)出一個如下圖所示的保存點。(2)把 deptno為 40 的位置(Loc)更新為“SAN DIEGO”。(3)給出一個如下所示的命令來只撤消更新的記錄。(4)查詢dept表中數(shù)據,給出查詢結果,注意觀查表中是否還有deptno=70 和 80的記得和dept
6、no=40的記錄是否被更新。請給出運行結果:4.4. 事務處理的ACID屬性4.4.1事務原子性實驗4-6:語句級原子性(1)完成以下語句的執(zhí)行(2)依次執(zhí)行以下語句:set serveroutput on;insert into tp values(1);insert into tp values(-1);觀查運行結果:(3)查詢t2表中cnt字段的值請給出執(zhí)行結果:思考:為什么會有這樣的結果?4.4.2事務一致性實驗4-7:按以過程完成程序,理解事務的一致性。(1)完成以下語句的執(zhí)行(2)依次執(zhí)行以下語句:請給出執(zhí)行結果:4.5. 事務的并發(fā)控制實驗4-8:引發(fā)死鎖鎖定是用來控制共享資源并
7、發(fā)訪問的機制死鎖就是兩個會話都進入了彼此等待對方的狀態(tài)。請按下列步聚完成實驗操作,理解Oracel鎖機制。(1)在會話1中,執(zhí)行如下的操作:SQL> create table a 2 as 3 select 1 x from dual;表已創(chuàng)建。SQL> create table b 2 as 3 select 1 x from dual;表已創(chuàng)建。SQL> update a set x=x+1;已更新 1 行。(2)在會話2中,執(zhí)行如下的操作:SQL> update b set x=x+1;已更新 1 行。現(xiàn)在在會話2中執(zhí)行語句:SQL> update a se
8、t x=x+1;請給出執(zhí)行結果:因為第一個會話已經將這個行鎖定,所以將會立即阻塞(SQL提示符不能返回)。然而,這并不是死鎖,這只是阻塞?,F(xiàn)在還沒有死鎖,因為第一個會話還有機會進行提交或者回滾,這是第二個會話將繼續(xù)執(zhí)行。只是處于等待狀態(tài)。(3)在會話1中,更新B表,這將導致死鎖。SQL> update b set x=x+1;會話1處于執(zhí)行狀態(tài),但是沒有SQL提示符的返回,也沒有處理結果(4)在會話2中,可以看到Oracle檢測到了死鎖。SQL> update a set x=x+1;請給出執(zhí)行結果:(5)查找Oracle的追蹤文件:c:oracleproduct10.1.0adm
9、intestdbudumptestdb_ora_XXXX.trc,其中XXXX為一編號,實驗時請根據文件創(chuàng)建和修改時間選擇最新的。會發(fā)現(xiàn)類似如下記錄信息:該文件中記錄了發(fā)生死鎖的系統(tǒng)的一系列的信息。4.6. 事務處理綜合練習(1)實驗準備:根據現(xiàn)有表emp生成測試用表(2)按下表所示步驟完成實驗,根據運行結果完成表格最后一欄,理解事務處理。打開三個SQL Plus窗口完成實驗要點:在第一個SQL Plus窗口中設置 SET TRANSACTION READ ONLY 時間會話1會話2會話3給出各會話結果T1set transaction read only;T 2select count(*) from emp_t;select count(*) from emp_t;會話1:會話2:T3delete from emp_t where rownum<=5;會話3:T4select count(*) from emp_t;select count(*) from emp_t;會話1:會話2:T5commit;T6select count(*) from emp_t;select count(*) from emp_t;會話1:會話2:T7insert into emp_tselect * fro
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 扒渣機租賃合同協(xié)議書
- 小股東未簽合同協(xié)議書
- 醫(yī)美代運營合同協(xié)議書
- 機械駕駛員合同協(xié)議書
- 商砼站用工合同協(xié)議書
- 入股注資合同協(xié)議書模板
- 清包工勞動合同協(xié)議書
- 物品預定金合同協(xié)議書
- 租賃校車協(xié)議書
- 房地產行業(yè)內部協(xié)議書
- GB 45672-2025車載事故緊急呼叫系統(tǒng)
- 規(guī)劃測量協(xié)議書
- 模具開發(fā)保密協(xié)議書
- DB41T 2794-2024高速公路隧道和高邊坡監(jiān)測技術指南
- 2025年會展經濟與管理考試試題及答案
- 2025年護士考試安全管理試題及答案
- 2024秋招北森題庫數(shù)學百題
- 福州地鐵考試試題及答案
- 鋼材授權合同協(xié)議
- 小學生朗讀指導課件
- 倍智tas人才測評系統(tǒng)題庫及答案
評論
0/150
提交評論