freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

數(shù)據(jù)庫(kù)系統(tǒng)原理教程第五章清華大學(xué)-資料下載頁(yè)

2025-05-09 03:10本頁(yè)面
  

【正文】 個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)其他并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。 4. 持續(xù)性 ?持續(xù)性也稱(chēng)永久性( Permanence) – 一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的改變就應(yīng)該是永久性的。 – 接下來(lái)的其他操作或故障不應(yīng)該對(duì)其執(zhí)行結(jié)果有任何影響。 事務(wù)的特性 (續(xù) ) ? 保證事務(wù) ACID特性是事務(wù)處理的重要任務(wù)。 ? 破壞事務(wù) ACID特性的因素 – 多個(gè)事務(wù)并行運(yùn)行時(shí),不同事務(wù)的操作交叉執(zhí)行 ? DBMS必須保證多個(gè)事務(wù)的交叉運(yùn)行不影響這些事務(wù) ACID特性,特別是原子性和隔離性 – 事務(wù)在運(yùn)行過(guò)程中被強(qiáng)行停止 ? DBMS必須保證被強(qiáng)行終止的事務(wù)對(duì)數(shù)據(jù)庫(kù)和其他事務(wù)沒(méi)有任何影響 這些就是 DBMS中恢復(fù)機(jī)制和并發(fā)控制機(jī)制的責(zé)任。 二、 并發(fā)操作與數(shù)據(jù)的不一致性 ?什么是數(shù)據(jù)的不一致性 例:飛機(jī)訂票系統(tǒng)中的一個(gè)活動(dòng)序列: 1) 甲售票員讀出某航班的機(jī)票余額 A, 設(shè) A=16 2) 乙售票員讀出同一航班的機(jī)票余額 A, 也為 16 3) 甲售票點(diǎn)賣(mài)出一張機(jī)票 , 修改機(jī)票余額 A←A1, 所以 A=15, 把 A寫(xiě)回?cái)?shù)據(jù)庫(kù) 4) 乙售票點(diǎn)也賣(mài)出一張機(jī)票 , 修改機(jī)票余額 A←A1, 所以 A=15, 把 A寫(xiě)回?cái)?shù)據(jù)庫(kù) 結(jié)果:賣(mài)出兩張機(jī)票 , 但數(shù)據(jù)庫(kù)中機(jī)票余額只減少 1。 這種情況稱(chēng)為數(shù)據(jù)庫(kù)的不一致性 。 并發(fā)控制概述(續(xù)) – 產(chǎn)生原因 ? 由甲乙兩個(gè)售票員并發(fā)操作引起 ? 在并發(fā)操作情況下 , 對(duì)甲 、 乙兩個(gè)事務(wù)的操作序列的調(diào)度是隨機(jī)的 ? 若按上面的調(diào)度序列執(zhí)行 , 甲事務(wù)的修改就被丟失 。 因?yàn)榈?4步中乙事務(wù)修改 A并寫(xiě)回后覆蓋了甲事務(wù)的修改 并發(fā)控制概述(續(xù)) ?并發(fā)操作帶來(lái)的數(shù)據(jù)不一致性 – 丟失修改 ( lost update) – 不可重復(fù)讀 ( nonrepeatable read) – 讀 “ 臟 ” 數(shù)據(jù) ( dirty read) 1. 丟失修改 ? 事務(wù) 1與事務(wù) 2從數(shù)據(jù)庫(kù)中讀入同一數(shù)據(jù)并修改 ? 事務(wù) 2的提交結(jié)果破壞了事務(wù) 1提交的結(jié)果 ? 導(dǎo)致事務(wù) 1的修改被丟失 。 圖 三種數(shù)據(jù)不一致性 T1 T2 ① 讀 A=16 ② ③ A←A1 寫(xiě)回 A=15 ④ 讀 A=16 A←A1 寫(xiě)回 A=15 (a) 丟失修改 2. 不可重復(fù)讀 ?事務(wù) 1讀取數(shù)據(jù) ?之后 , 事務(wù) 2執(zhí)行更新操作 ?從而使事務(wù) 1無(wú)法再現(xiàn)前一次讀取結(jié)果 。 圖 三種數(shù)據(jù)不一致性 (續(xù) ) 讀 B=100 B←B*2 寫(xiě)回 B=200 ① 讀 A=50 讀 B=100 求和 =150 ② ③ 讀 A=50 讀 B=200 求和 =250 (驗(yàn)算不對(duì) ) T2 T1 (b) 不可重復(fù)讀 不可重復(fù)讀(續(xù)) ?三類(lèi)不可重復(fù)讀 – 1. 讀 更新 ? 事務(wù) 1讀取某一數(shù)據(jù) ? 事務(wù) 2對(duì)其做了修改 ? 當(dāng)事務(wù) 1再次讀該數(shù)據(jù)時(shí) , 得到與前一次不同的值 。 不可重復(fù)讀(續(xù)) ?三類(lèi)不可重復(fù)讀 – 2. 讀 刪除 ? 事務(wù) 1按一定條件從數(shù)據(jù)庫(kù)中讀取某些數(shù)據(jù)記錄 ? 事務(wù) 2刪除了其中部分記錄 ? 當(dāng)事務(wù) 1再次按相同條件讀取數(shù)據(jù)時(shí) , 發(fā)現(xiàn)某些記錄神密地消失了 。 不可重復(fù)讀(續(xù)) ? 三類(lèi)不可重復(fù)讀 (續(xù) ) – 3. 讀 插入 ? 事務(wù) 1按一定條件從數(shù)據(jù)庫(kù)中讀取某些數(shù)據(jù)記錄 ? 事務(wù) 2插入了一些記錄 ? 當(dāng)事務(wù) 1再次按相同條件讀取數(shù)據(jù)時(shí) , 發(fā)現(xiàn)多了一些記錄 。 后兩種不可重復(fù)讀有時(shí)也稱(chēng)為幻行現(xiàn)象 3. 讀“臟”數(shù)據(jù) ? 事務(wù) 1修改某一數(shù)據(jù) , 并將其寫(xiě)回磁盤(pán) ? 事務(wù) 2讀取同一數(shù)據(jù) ? 之后 , 事務(wù) 1由于某種原因被撤消 , 這時(shí)事務(wù) 1已修改過(guò)的數(shù)據(jù)恢復(fù)原值 ? 事務(wù) 2讀到的數(shù)據(jù)就與數(shù)據(jù)庫(kù)中的數(shù)據(jù)不一致 ,是不正確的數(shù)據(jù) , 又稱(chēng)為 “ 臟 ” 數(shù)據(jù) 。 圖 三種數(shù)據(jù)不一致性 (續(xù) ) 讀 C=200 ① 讀 C=100 C←C*2 寫(xiě)回 C ② ③ ROLLBACK C恢復(fù)為 100 T2 T1 (c) 讀“臟”數(shù)據(jù) 并發(fā)控制 并發(fā)控制概述 并發(fā)操作的調(diào)度 封鎖 死鎖和活鎖 Oracle的并發(fā)控制 并發(fā)操作的調(diào)度 ? 計(jì)算機(jī)系統(tǒng)對(duì)并行事務(wù)中并行操作的調(diào)度是的隨機(jī)的,而不同的調(diào)度可能會(huì)產(chǎn)生不同的結(jié)果。 ? 將所有事務(wù)串行起來(lái)的調(diào)度策略一定是正確的調(diào)度策略。 – 如果一個(gè)事務(wù)運(yùn)行過(guò)程中沒(méi)有其他事務(wù)在同時(shí)運(yùn)行,也就是說(shuō)它沒(méi)有受到其他事務(wù)的干擾,那么就可以認(rèn)為該事務(wù)的運(yùn)行結(jié)果是正常的或者預(yù)想的 并發(fā)操作的調(diào)度(續(xù)) ? 以不同的順序串行執(zhí)行事務(wù)也有可能會(huì)產(chǎn)生不同的結(jié)果,但由于不會(huì)將數(shù)據(jù)庫(kù)置于不一致?tīng)顟B(tài),所以都可以認(rèn)為是正確的。 ? 幾個(gè)事務(wù)的并行執(zhí)行是正確的, 當(dāng)且僅當(dāng)其結(jié)果與按某一次序串行地執(zhí)行它們時(shí)的結(jié)果相同。這種并行調(diào)度策略稱(chēng)為可串行化( Serializable)的調(diào)度。 并發(fā)操作的調(diào)度(續(xù)) ?可串行性是并行事務(wù)正確性的唯一準(zhǔn)則 例:現(xiàn)在有兩個(gè)事務(wù),分別包含下列操作: 事務(wù) 1:讀 B; A=B+1;寫(xiě)回 A; 事務(wù) 2:讀 A; B=A+1;寫(xiě)回 B; 假設(shè) A的初值為 2, B的初值為 2。 并發(fā)操作的調(diào)度(續(xù)) –對(duì)這兩個(gè)事務(wù)的不同調(diào)度策略 ? 串行執(zhí)行 –串行調(diào)度策略 1 –串行調(diào)度策略 2 ? 交錯(cuò)執(zhí)行 – 不可串行化的調(diào)度 – 可串行化的調(diào)度 (a) 串行調(diào)度策略,正確的調(diào)度 讀 B= 2 A B+ 1 寫(xiě)回 A= 3 讀 A= 3 B A+ 1 寫(xiě)回 B= 4 T1 T2 (b) 串行調(diào)度策略,正確的調(diào)度 讀 B= 11 A B+ 1 寫(xiě)回 A= 12 讀 A= 10 B A+ 1 寫(xiě)回 B= 11 T1 T2 (c) 不可串行化的調(diào)度 讀 B= 2 A B+ 1 寫(xiě)回 A= 3 讀 A= 10 B A+ 1 寫(xiě)回 B= 11 T1 T2 (c) 不可串行化的調(diào)度 (續(xù) ) – 由于其執(zhí)行結(jié)果與 (a)、 (b)的結(jié)果都不同,所以是錯(cuò)誤的調(diào)度。 (d) 可串行化的調(diào)度 讀 B= 2 A B+ 1 寫(xiě)回 A= 3 等待 等待 等待 讀 A= 3 B A+ 1 寫(xiě)回 B= 4 T1 T2 (d) 可串行化的調(diào)度(續(xù)) ? 由于其執(zhí)行結(jié)果與串行調(diào)度( a)的執(zhí)行結(jié)果相同,所以是正確的調(diào)度。 并發(fā)操作的調(diào)度(續(xù)) ? 為了保證并行操作的正確性, DBMS的并行控制機(jī)制必須提供一定的手段來(lái)保證調(diào)度是可串行化的。 ? 從理論上講,在某一事務(wù)執(zhí)行時(shí)禁止其他事務(wù)執(zhí)行的調(diào)度策略一定是可串行化的調(diào)度,這也是最簡(jiǎn)單的調(diào)度策略,但這種方法實(shí)際上是不可行的,因?yàn)樗褂脩?hù)不能充分共享數(shù)據(jù)庫(kù)資源。 并發(fā)操作的調(diào)度(續(xù)) ?保證并發(fā)操作調(diào)度正確性的方法 – 封鎖方法: 兩段鎖 ( TwoPhase Locking,簡(jiǎn)稱(chēng) 2PL) 協(xié)議 – 時(shí)標(biāo)方法 – 樂(lè)觀方法 并發(fā)控制 并發(fā)控制概述 并發(fā)操作的調(diào)度 封鎖 死鎖和活鎖 Oracle的并發(fā)控制 封鎖 ? 封鎖就是事務(wù) T在對(duì)某個(gè)數(shù)據(jù)對(duì)象(例如表、記錄等)操作之前,先向系統(tǒng)發(fā)出請(qǐng)求,對(duì)其加鎖。加鎖后事務(wù) T就對(duì)該數(shù)據(jù)對(duì)象有了一定的控制,在事務(wù) T釋放它的鎖之前,其它的事務(wù)不能更新此數(shù)據(jù)對(duì)象。 ? 封鎖是實(shí)現(xiàn)并發(fā)控制的一個(gè)非常重要的技術(shù) 封鎖 ? 封鎖類(lèi)型 ? 封鎖粒度 ? 封鎖協(xié)議 封鎖 ? 封鎖類(lèi)型 ? 封鎖粒度 ? 封鎖協(xié)議 封鎖類(lèi)型 ? DBMS通常提供了多種類(lèi)型的封鎖。一個(gè)事務(wù)對(duì)某個(gè)數(shù)據(jù)對(duì)象加鎖后究竟擁有什么樣的控制是由封鎖的類(lèi)型決定的。 ? 基本封鎖類(lèi)型 – 排它鎖( eXclusive lock,簡(jiǎn)記為 X鎖) – 共享鎖( Share lock,簡(jiǎn)記為 S鎖) 封鎖類(lèi)型(續(xù)) ? 排它鎖 – 排它鎖又稱(chēng)為寫(xiě)鎖。 – 若事務(wù) T對(duì)數(shù)據(jù)對(duì)象 A加上 X鎖,則只允許 T讀取和修改 A,其它任何事務(wù)都不能再對(duì) A加任何類(lèi)型的鎖,直到 T釋放 A上的鎖。 封鎖類(lèi)型(續(xù)) ? 共享鎖 – 共享鎖又稱(chēng)為讀鎖。 – 若事務(wù) T對(duì)數(shù)據(jù)對(duì)象 A加上 S鎖,則其它事務(wù)只能再對(duì) A加 S鎖,而不能加 X鎖,直到 T釋放 A上的 S鎖。 封鎖類(lèi)型(續(xù)) Y=Yes,相容的請(qǐng)求 N=No,不相容的請(qǐng)求 T1 T2 X S X N N Y S N Y Y Y Y Y 封鎖 ? 封鎖類(lèi)型 ? 封鎖粒度 ? 封鎖協(xié)議 封鎖粒度 ? X鎖和 S鎖都是加在某一個(gè)數(shù)據(jù)對(duì)象上的。 ? 封鎖的對(duì)象可以是邏輯單元,也可以是物理單元。 例:在關(guān)系數(shù)據(jù)庫(kù)中,封鎖對(duì)象可以是: – 邏輯單元 : 屬性值、屬性值集合、元組、關(guān)系、索引項(xiàng)、整個(gè)索引、整個(gè)數(shù)據(jù)庫(kù)等 – 物理單元:頁(yè)(數(shù)據(jù)頁(yè)或索引頁(yè))、塊等 封鎖粒度(續(xù)) ? 封鎖對(duì)象可以很大也可以很小 例: 對(duì)整個(gè)數(shù)據(jù)庫(kù)加鎖 對(duì)某個(gè)屬性值加鎖 ? 封鎖對(duì)象的大小稱(chēng)為封鎖的粒度 (Granularity) 封鎖粒度(續(xù)) ? 封鎖粒度與系統(tǒng)的并發(fā)度和并發(fā)控制的開(kāi)銷(xiāo)密切相關(guān)。 – 封鎖的粒度越大,系統(tǒng)中能夠被封鎖的對(duì)象就越少,并發(fā)度也就越小,但同時(shí)系統(tǒng)開(kāi)銷(xiāo)也越小; – 封鎖的粒度越小,并發(fā)度越高,但系統(tǒng)開(kāi)銷(xiāo)也就越大。 ? 選擇封鎖粒度時(shí)必須同時(shí)考慮封鎖機(jī)構(gòu)和并發(fā)度兩個(gè)因素,對(duì)系統(tǒng)開(kāi)銷(xiāo)與并發(fā)度進(jìn)行權(quán)衡,以求得最優(yōu)的效果。 封鎖粒度(續(xù)) ?一般原則 – 需要處理大量元組的用戶(hù)事務(wù):以關(guān)系為封鎖單元; – 需要處理多個(gè)關(guān)系的大量元組的用戶(hù)事務(wù):以數(shù)據(jù)庫(kù)為封鎖單位; – 只處理少量元組的用戶(hù)事務(wù):以元組為封鎖單位 封鎖 ? 封鎖類(lèi)型 ? 封鎖粒度 ? 封鎖協(xié)議 封鎖協(xié)議 ?什么是封鎖協(xié)議 – 在運(yùn)用 X鎖和 S鎖對(duì)數(shù)據(jù)對(duì)象加鎖時(shí),需要約定一些規(guī)則,這些規(guī)則為封鎖協(xié)議( Locking Protocol)。 ? 何時(shí)申請(qǐng) X鎖或 S鎖 ? 持鎖時(shí)間 ? 何時(shí)釋放 – 對(duì)封鎖方式規(guī)定不同的規(guī)則,就形成了各種不同的封鎖協(xié)議,它們分別在不同的程度上為并發(fā)操作的正確調(diào)度提供一定的保證。 封鎖協(xié)議 (續(xù)) ?一、保證數(shù)據(jù)一致性的封鎖協(xié)議 ?二、保證并行調(diào)度可串行性的封鎖協(xié)議 ——兩段鎖協(xié)議 一、保證數(shù)據(jù)一致性的封鎖協(xié)議 ——三級(jí)封鎖協(xié)議 三級(jí)封鎖協(xié)議 – 1級(jí)封鎖協(xié)議 – 2級(jí)封鎖協(xié)議 – 3級(jí)封鎖協(xié)議 1級(jí)封鎖協(xié)議 ? 1級(jí)封鎖協(xié)議 – 事務(wù) T在修改數(shù)據(jù) R之前必須先對(duì)其加 X鎖,直到事務(wù)結(jié)束才釋放。 ? 正常結(jié)束 ( COMMIT) ? 非正常結(jié)束 ( ROLLBACK) ? 1級(jí)封鎖協(xié)議可防止丟失修改,并保證事務(wù) T是可恢復(fù)的。 ? 在 1級(jí)封鎖協(xié)議中,如果僅僅是讀數(shù)據(jù)不對(duì)其進(jìn)行修改,是不需要加鎖的,所以它不能保證可重復(fù)讀和不讀“臟”數(shù)據(jù)。 圖 用封鎖機(jī)制解決三種數(shù)據(jù)不一致性示例 T1 T2 ① Xlock A 獲得 ② 讀 A=16 ③ A←A1 寫(xiě)回 A=15 Commit Unlock A ④ ⑤ Xlock A 等待 等待 等待 等待 獲得 Xloc
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1