版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 數(shù)據(jù)庫系統(tǒng)概論數(shù)據(jù)庫系統(tǒng)概論視圖、事務(wù)視圖、事務(wù)主講:劉志鵬主講:劉志鵬2Hello View! select * from my_contacts natural join job_current; create view mc as (select * from my_contacts natural join job_current); select * from mc;3視圖視圖(View) 數(shù)據(jù)庫中的視圖是一個虛擬表,其內(nèi)容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數(shù)據(jù)。但是,視圖并不在數(shù)據(jù)庫中以存儲的數(shù)據(jù)值集形式存在。行和列數(shù)據(jù)來自由定義視圖的查詢所引用的表,并且
2、在引用視圖時動態(tài)生成。4 1.從用戶角度來看,一個視圖是從一個特定的角度來查看數(shù)據(jù)庫中的數(shù)據(jù)。 2.從數(shù)據(jù)庫系統(tǒng)內(nèi)部來看,一個視圖是由SELECT語句組成的查詢定義的虛擬表,是由一張或多張表中的數(shù)據(jù)組成的。 3.從數(shù)據(jù)庫系統(tǒng)外部來看,視圖就如同一張表一樣,對表能夠進行的一般操作都可以應(yīng)用于視圖,例如查詢,插入,修改,刪除操作等。5視圖的作用視圖的作用 1.簡單性簡單性 看到的就是需要的。視圖不僅可以簡化用戶對數(shù)據(jù)的理解,也可以簡化他們的操作。那些被經(jīng)常使用的查詢可以被定義為視圖,從而使得用戶不必為以后的操作每次指定全部的條件。6 2.安全性安全性 通過視圖用戶只能查詢和修改他們所能見到的數(shù)據(jù)。
3、數(shù)據(jù)庫中的其它數(shù)據(jù)則既看不見也取不到。數(shù)據(jù)庫授權(quán)命令可以使每個用戶對數(shù)據(jù)庫的檢索限制到特定的數(shù)據(jù)庫對象上,但不能授權(quán)到數(shù)據(jù)庫特定行和特定的列上。通過視圖,用戶可以被限制在數(shù)據(jù)的不同子集上。 3.邏輯數(shù)據(jù)獨立性邏輯數(shù)據(jù)獨立性 視圖可幫助用戶屏蔽真實表結(jié)構(gòu)變化帶來的影響。7事務(wù)事務(wù) 數(shù)據(jù)庫事務(wù)(Database Transaction) ,是指作為單個邏輯工作單元執(zhí)行的一系列操作。 事務(wù)處理可以確保除非事務(wù)性單元內(nèi)的所有操作都成功完成,否則不會永久更新面向數(shù)據(jù)的資源。通過將一組相關(guān)操作組合為一個要么全部成功要么全部失敗的單元,可以簡化錯誤恢復(fù)并使應(yīng)用程序更加可靠。一個邏輯工作單元要成為事務(wù),必須滿
4、足所謂的ACID(原子性、一致性、隔離性和持久性)特性。8時間時間賬戶賬戶A賬戶賬戶B從賬戶從賬戶A轉(zhuǎn)賬轉(zhuǎn)賬100元到賬戶元到賬戶B11000查詢賬戶查詢賬戶A余額余額 1000元元Select sum from A2900從賬戶從賬戶A中減去中減去100元元Update A set sum=9003100查詢賬戶查詢賬戶B余額余額100元元Select sum from B4200匯入?yún)R入B賬戶賬戶100元元Update B set sum=2005900200轉(zhuǎn)賬完成!轉(zhuǎn)賬完成!9時間時間賬戶賬戶A賬戶賬戶B從賬戶從賬戶A轉(zhuǎn)賬轉(zhuǎn)賬100元到賬戶元到賬戶B11000查詢賬戶查詢賬戶A余額余額
5、 1000元元Select sum from A2900從賬戶從賬戶A中減去中減去100元元Update A set sum=9003100查詢賬戶查詢賬戶B余額余額100元元Select sum from B4意外發(fā)生意外發(fā)生(如停電、網(wǎng)絡(luò)中斷等如停電、網(wǎng)絡(luò)中斷等),后面的更新賬戶,后面的更新賬戶B的的操作無法完成操作無法完成5系統(tǒng)恢復(fù)后系統(tǒng)恢復(fù)后6100查詢賬戶查詢賬戶B余額余額100元元Select sum from B7900查詢賬戶查詢賬戶A余額余額 900元元Select sum from A8賬戶賬戶A的的100元人間蒸發(fā)元人間蒸發(fā)10Hello Transaction! Set
6、 autocommit = 0; Start trasaction; Insert into . Insert into . Rollback;(Commit;)11原子性原子性 (Atomicity ) 原子性屬性用于標識事務(wù)是否完全地完成,一個事務(wù)的任何更新要在系統(tǒng)上完全完成,如果由于某種原因出錯,事務(wù)不能完成它的全部任務(wù),系統(tǒng)將返回到事務(wù)開始前的狀態(tài)。12一致性一致性( Consistency ) 事務(wù)在系統(tǒng)完整性中實施一致性,這通過保證系統(tǒng)的任何事務(wù)最后都處于有效狀態(tài)來實現(xiàn)。如果事務(wù)成功地完成,那么系統(tǒng)中所有變化將正確地應(yīng)用,系統(tǒng)處于有效狀態(tài)。如果在事務(wù)中出現(xiàn)錯誤,那么系統(tǒng)中的所有變化
7、將自動地回滾,系統(tǒng)返回到原始狀態(tài)。因為事務(wù)開 始時系統(tǒng)處于一致狀態(tài),所以現(xiàn)在系統(tǒng)仍然處于一致狀態(tài)。13隔離性隔離性 ( Isolation) 在隔離狀態(tài)執(zhí)行事務(wù),使它們好像是系統(tǒng)在給定時間內(nèi)執(zhí)行的唯一操作。如果有兩個事務(wù),運行在相同的時間內(nèi),執(zhí)行相同的功能,事務(wù)的隔離性將確保每一事務(wù)在 系統(tǒng)中認為只有該事務(wù)在使用系統(tǒng)。 這種屬性有時稱為串行化,為了防止事務(wù)操作間的混淆,必須串行化或序列化請求,使得在同一時間僅有一個請求用于同一數(shù)據(jù)。14持久性持久性 (Durabilily) 持久性意味著一旦事務(wù)執(zhí)行成功,在系統(tǒng)中產(chǎn)生的所有變化將是永久的。應(yīng)該存在一些檢查點防止在系統(tǒng)失敗時丟失信息。甚至硬件本身
8、失敗,系統(tǒng)的狀態(tài)仍能通過在日志中記錄事務(wù)完成的任務(wù)進行重建。持久性的概念允許開發(fā)者認為不管系統(tǒng)以后發(fā)生了什么變化,完 成的事務(wù)是系統(tǒng)永久的部分。 15事務(wù)在并發(fā)時都會遇到那些問題呢?事務(wù)在并發(fā)時都會遇到那些問題呢? 我們先來看看數(shù)據(jù)庫并發(fā)操作時會有那些異常情形 161、第一類丟失更新(Lost update) 兩個事務(wù)都同時更新一行數(shù)據(jù),但是第二個事務(wù)卻中途失敗退出,導(dǎo)致對數(shù)據(jù)的兩個修改都失效了。 17時間時間取款事務(wù)取款事務(wù)A存款事務(wù)存款事務(wù)B1開始事務(wù)開始事務(wù)2開始事務(wù)開始事務(wù)3查詢賬戶余額為查詢賬戶余額為1000元元4查詢賬戶余額為查詢賬戶余額為1000元元5匯入?yún)R入100元把余額改為元
9、把余額改為1100元元6提交事務(wù)(提交事務(wù)(commit)7取出取出100把余額改為把余額改為900元元8撤銷事務(wù)撤銷事務(wù)(roll back)9余額恢復(fù)為余額恢復(fù)為1000元(元(丟失更新丟失更新)182、臟讀(Dirty Read) 一個事務(wù)開始讀取了某行數(shù)據(jù),但是另外一個事務(wù)已經(jīng)更新了此數(shù)據(jù)但沒有能夠及時提交。這是相當(dāng)危險的,因為很可能所有的操作都被回滾。 19時間時間取款事務(wù)取款事務(wù)A存款事務(wù)存款事務(wù)B1開始事務(wù)開始事務(wù)2開始事務(wù)開始事務(wù)3查詢賬戶余額為查詢賬戶余額為1000元元4存入存入100元把余額改為元把余額改為1100元元5查詢賬戶余額為查詢賬戶余額為1100元元(讀取臟數(shù)據(jù)讀
10、取臟數(shù)據(jù))6撤銷事務(wù)撤銷事務(wù)(roll back)7取出取出11008提交事務(wù)失敗提交事務(wù)失敗203、不可重復(fù)讀(Non-repeatable Read) 一個事務(wù)對同一行數(shù)據(jù)重復(fù)讀取兩次,但是卻得到了不同的結(jié)果。同一查詢在同一事務(wù)中多次進行,由于其他提交事務(wù)所做的修改或刪除,每次返回不同的結(jié)果集,此時發(fā)生非重復(fù)讀。21時間時間取款事務(wù)取款事務(wù)A存款事務(wù)存款事務(wù)B1開始事務(wù)開始事務(wù)2開始事務(wù)開始事務(wù)3查詢賬戶余額為查詢賬戶余額為1000元元4查詢賬戶余額為查詢賬戶余額為1000元元5存入存入100元把余額改為元把余額改為1100元元6提交事務(wù)提交事務(wù)8查詢賬戶余額為查詢賬戶余額為1100元元9
11、提交事務(wù)提交事務(wù)224、二類丟失更新(Second lost update) 無法重復(fù)讀取的特例。有兩個并發(fā)事務(wù)同時讀取同一行數(shù)據(jù),然后其中一個對它進行修改提交,而另一個也進行了修改提交。這就會造成第一次寫操作失效。23時間時間取款事務(wù)取款事務(wù)A存款事務(wù)存款事務(wù)B1開始事務(wù)開始事務(wù)2開始事務(wù)開始事務(wù)3查詢賬戶余額為查詢賬戶余額為1000元元4查詢賬戶余額為查詢賬戶余額為1000元元5取出取出100元把余額改為元把余額改為900元元6提交事務(wù)提交事務(wù)8存入存入100元把余額改為元把余額改為1100元元(丟失更新)(丟失更新)9提交事務(wù)提交事務(wù)245、幻讀(Phantom Read) 事務(wù)在操作過
12、程中進行兩次查詢,第二次查詢的結(jié)果包含了第一次查 詢中未出現(xiàn)的數(shù)據(jù)(這里并不要求兩次查詢的SQL語句相同)。這是因為在兩次查詢過程中有另外一個事務(wù)插入數(shù)據(jù)造成的。 和不可重復(fù)讀的區(qū)別: 1.幻讀考慮的是插入和刪除的操作。 2.不可重復(fù)讀考慮的是更新操作。25時間時間查詢學(xué)生事務(wù)查詢學(xué)生事務(wù)A插入學(xué)生事務(wù)插入學(xué)生事務(wù)B1開始事務(wù)開始事務(wù)2開始事務(wù)開始事務(wù)3查詢學(xué)生人數(shù)查詢學(xué)生人數(shù)10人人4插入一個新學(xué)生插入一個新學(xué)生5查詢學(xué)生人數(shù)查詢學(xué)生人數(shù)11人人6提交事務(wù)提交事務(wù)9提交事務(wù)提交事務(wù)26三、數(shù)據(jù)庫管理系統(tǒng)(RDBMS)對事務(wù)并發(fā)時的隔離機制 為了兼顧并發(fā)效率和異??刂疲跇藴蔛QL規(guī)范中,定義
13、了4個事務(wù)隔離級別 1、未提交讀(Read Uncommitted) 2、提交讀(Read Committed) 3、可重復(fù)讀(Repeatable Read) 4、串行讀(Serializable) 27未提交讀未提交讀(Read Uncommitted) 直譯就是讀未提交,意思就是即使一個更新語句沒有提交,但是別的事務(wù)可以讀到這個改變.這是很不安全的。允許任務(wù)讀取數(shù)據(jù)庫中未提交的數(shù)據(jù)更改,也稱為臟讀。 28提交讀(Read Committed) 直譯就是讀提交,可防止臟讀,意思就是語句提交以后即執(zhí)行了COMMIT以后 別的事務(wù)就能讀到這個改變. 只能讀取到已經(jīng)提交的數(shù)據(jù)。Oracle等多數(shù)數(shù)據(jù)庫默認都是該級別 29可重復(fù)讀(Repeatable Read) 直譯就是可以重復(fù)讀,這是說在同一個事務(wù)里面先后執(zhí)行同一個查詢語句的時候,得到的結(jié)果是一樣的.在同一個事務(wù)內(nèi)的查詢都是事務(wù)開始時刻一致的,InnoDB默認級別。在SQL標準中,該隔離級別消除了不可重復(fù)讀,但是還存在幻象讀 30串行讀(Serializable) 直譯就是序列化,意思是
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年專業(yè)高級顧問聘任協(xié)議范例版B版
- 2025年江西貨運從業(yè)資格試題答案大全
- 建筑工程鋁扣板施工合同
- 智能城市交通網(wǎng)絡(luò)部署合同
- 會計師事務(wù)所公關(guān)部聘用合同
- 2025年正規(guī)商品代銷合同書范文
- 港口物流船運租賃合同
- 食品公司品控員招聘合同模板
- 河北省張家口市2024屆高三上學(xué)期期末考試數(shù)學(xué)試題(解析版)
- 圖書館建設(shè)拆遷施工合同
- 橋式起重機定期檢查記錄表
- 微觀經(jīng)濟學(xué)(山東聯(lián)盟-山東財經(jīng)大學(xué))智慧樹知到期末考試答案2024年
- 數(shù)據(jù)可視化技術(shù)智慧樹知到期末考試答案2024年
- MOOC 警察禮儀-江蘇警官學(xué)院 中國大學(xué)慕課答案
- 三基考試題庫與答案
- 2024年廣東省2024屆高三二模英語試卷(含標準答案)
- 全飛秒激光近視手術(shù)
- 2024年制鞋工專業(yè)知識考試(重點)題庫(含答案)
- 2023-2024學(xué)年廣州大附屬中學(xué)中考一模物理試題含解析
- 綠化養(yǎng)護工作日記錄表
- 2024美的在線測評題庫答案
評論
0/150
提交評論