數(shù)據(jù)庫(kù) 第6章 數(shù)據(jù)庫(kù)管理_第1頁(yè)
數(shù)據(jù)庫(kù) 第6章 數(shù)據(jù)庫(kù)管理_第2頁(yè)
數(shù)據(jù)庫(kù) 第6章 數(shù)據(jù)庫(kù)管理_第3頁(yè)
數(shù)據(jù)庫(kù) 第6章 數(shù)據(jù)庫(kù)管理_第4頁(yè)
數(shù)據(jù)庫(kù) 第6章 數(shù)據(jù)庫(kù)管理_第5頁(yè)
已閱讀5頁(yè),還剩78頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用 了解數(shù)據(jù)庫(kù)管理必要性 了解DBMS系統(tǒng)結(jié)構(gòu)及其功能 理解數(shù)據(jù)庫(kù)事務(wù)及其ACID特性 掌握數(shù)據(jù)庫(kù)事務(wù)程序 學(xué)習(xí)數(shù)據(jù)庫(kù)并發(fā)事務(wù)調(diào)度 了解數(shù)據(jù)庫(kù)鎖機(jī)制及其控制協(xié)議 理解數(shù)據(jù)庫(kù)安全模型及其用戶管理 掌握數(shù)據(jù)庫(kù)備份和恢復(fù)處理方法2 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用一、為什么需要數(shù)據(jù)庫(kù)管理一、為什么需要數(shù)據(jù)庫(kù)管理6.1 數(shù)據(jù)庫(kù)管理基礎(chǔ)w 數(shù)據(jù)庫(kù)系統(tǒng)隨規(guī)模增大,系統(tǒng)會(huì)變得異常復(fù)雜w 多用戶數(shù)據(jù)庫(kù)應(yīng)用帶來(lái)數(shù)據(jù)庫(kù)訪問(wèn)復(fù)雜性w 數(shù)據(jù)安全和數(shù)據(jù)隱私對(duì)機(jī)構(gòu)和用戶都非常重要w 數(shù)據(jù)庫(kù)性能隨系統(tǒng)使用發(fā)生變化,需要定期維護(hù)w 最大程度地發(fā)揮數(shù)據(jù)庫(kù)對(duì)其所屬機(jī)構(gòu)的作用3 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)

2、用二、數(shù)據(jù)庫(kù)管理系統(tǒng)(二、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)功能)功能w 數(shù)據(jù)庫(kù)定義定義數(shù)據(jù)庫(kù)完整性、安全保密、存取路徑等w 數(shù)據(jù)存取提供數(shù)據(jù)的操縱語(yǔ)言以便對(duì)數(shù)據(jù)進(jìn)行查找和增刪改w 數(shù)據(jù)庫(kù)運(yùn)行管理事務(wù)管理、自動(dòng)恢復(fù)、并發(fā)控制、死鎖檢測(cè)或防止、安全性檢查、存取控制、完整性檢查、日志記錄等w 數(shù)據(jù)組織、存儲(chǔ)和管理數(shù)據(jù)字典、用戶數(shù)據(jù)、存取路徑的組織存儲(chǔ)和管理,以便提高存儲(chǔ)空間利用率,并方便存取w 數(shù)據(jù)庫(kù)的建立和維護(hù)數(shù)據(jù)庫(kù)初建、轉(zhuǎn)儲(chǔ)、恢復(fù)、重組、重構(gòu)以及性能檢測(cè)等w 數(shù)據(jù)傳輸 網(wǎng)絡(luò)通信、數(shù)據(jù)轉(zhuǎn)換、異構(gòu)數(shù)據(jù)庫(kù)互訪等4 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用三、數(shù)據(jù)庫(kù)管理系統(tǒng)(三、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)功能模塊)功能模

3、塊DBMS功能模塊數(shù)據(jù)庫(kù)定義數(shù)據(jù)庫(kù)存取數(shù)據(jù)庫(kù)運(yùn)行處理數(shù)據(jù)組織、存儲(chǔ)和管理數(shù)據(jù)庫(kù)建立、維護(hù)和其他DDL翻譯程序模塊安全性定義程序模塊完整性定義程序模塊查詢處理程序模塊數(shù)據(jù)更新程序模塊交互式查詢程序模塊嵌入式查詢程序模塊系統(tǒng)初啟程序模塊安全性控制程序模塊完整性控制程序模塊事務(wù)管理程序模塊并發(fā)控制程序模塊運(yùn)行日志管理程序模塊緩沖區(qū)管理程序模塊數(shù)據(jù)組織、維護(hù)程序模塊存取路徑(索引)管理程序模塊批量數(shù)據(jù)裝入模塊數(shù)據(jù)轉(zhuǎn)儲(chǔ)模塊數(shù)據(jù)庫(kù)恢復(fù)模塊數(shù)據(jù)庫(kù)重組模塊數(shù)據(jù)轉(zhuǎn)換模塊通信模塊5 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用四、數(shù)據(jù)庫(kù)管理員(四、數(shù)據(jù)庫(kù)管理員(DBA)職責(zé))職責(zé)w 負(fù)責(zé)數(shù)據(jù)庫(kù)系統(tǒng)開(kāi)發(fā)與運(yùn)行w 數(shù)據(jù)庫(kù)用戶管理w

4、數(shù)據(jù)備份與數(shù)據(jù)恢復(fù)管理w 數(shù)據(jù)庫(kù)性能調(diào)優(yōu)管理6 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用五、數(shù)據(jù)庫(kù)管理系統(tǒng)(五、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)結(jié)構(gòu))結(jié)構(gòu)7 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用六、六、SQL SERVER數(shù)據(jù)庫(kù)管理系統(tǒng)簡(jiǎn)介數(shù)據(jù)庫(kù)管理系統(tǒng)簡(jiǎn)介w 1988年,Microsoft、Sybase和Ashton-Tate公司聯(lián)合,開(kāi)發(fā)出運(yùn)行于OS/2操作系統(tǒng)上的SQL Server 1.0。w 1989年,Ashton-Tate公司退出SQL Server的開(kāi)發(fā)。w 1990年,SQL Server 1.1產(chǎn)品面世。w 1992年,SQL Server 4.2產(chǎn)品面世。w 1994年,Microsoft公司和S

5、ybase公司分道揚(yáng)鑣。w 1995年,Microsoft公司發(fā)布了SQL Server 6.0產(chǎn)品,隨后的SQL Server 6.5產(chǎn)品取得了巨大的成功。w 1998年,Microsoft公司發(fā)布了SQL Server 7.0產(chǎn)品,開(kāi)始進(jìn)入企業(yè)級(jí)數(shù)據(jù)庫(kù)市場(chǎng)。w 2000年,Microsoft公司發(fā)布了SQL Server 2000產(chǎn)品。w 2005年,Microsoft公司發(fā)布了SQL Server 2005產(chǎn)品。w 2008年,Microsoft公司發(fā)布了SQL Server 2008產(chǎn)品。w 2012年,Microsoft公司發(fā)布了SQL Server 2012產(chǎn)品。w 2014年,M

6、icrosoft公司發(fā)布了SQL Server 2014產(chǎn)品。 8 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用1.SQL SERVER 2014版本w SQL Server 2014 Express (學(xué)習(xí)版)w SQL Server 2014 Developer (開(kāi)發(fā)版)w SQL Server 2014 WEB (網(wǎng)絡(luò)版)w SQL Server 2014 Standard (標(biāo)準(zhǔn)版)w SQL Server 2014 Business Intelligence (商業(yè)智能版)w SQL Server 2014 Enterprise (企業(yè)版)9 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用2.SQL SERVER

7、2014版本組件10 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用11 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用3.SQL SERVER 數(shù)據(jù)庫(kù)系統(tǒng)結(jié)構(gòu)主主數(shù)數(shù)據(jù)據(jù)庫(kù)庫(kù)文文件件次次數(shù)據(jù)數(shù)據(jù)庫(kù)文庫(kù)文件件事務(wù)事務(wù)曰志曰志文件文件12 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用5.SQL SERVER 數(shù)據(jù)庫(kù)組成系統(tǒng)元系統(tǒng)元數(shù)據(jù)、配數(shù)據(jù)、配置信息置信息臨時(shí)表、臨時(shí)存臨時(shí)表、臨時(shí)存儲(chǔ)過(guò)程提供存儲(chǔ)儲(chǔ)過(guò)程提供存儲(chǔ)復(fù)制、作業(yè)復(fù)制、作業(yè)調(diào)度和管理調(diào)度和管理報(bào)警等報(bào)警等為創(chuàng)建新數(shù)據(jù)為創(chuàng)建新數(shù)據(jù)庫(kù)提供模板庫(kù)提供模板13 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用6.SQL SERVER 數(shù)據(jù)庫(kù)對(duì)象數(shù)據(jù)庫(kù)對(duì)象:數(shù)據(jù)庫(kù)、表、視圖、索引、約束、存儲(chǔ)過(guò)程、觸發(fā)器14 電子科技

8、大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用七、七、SQL SERVER 數(shù)據(jù)庫(kù)管理工具數(shù)據(jù)庫(kù)管理工具SQL Server Management Studio Express功能組件是管理SQL Server 數(shù)據(jù)庫(kù)的圖形工具。 15 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用1. 數(shù)據(jù)庫(kù)創(chuàng)建16 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用命名新建數(shù)據(jù)庫(kù)17 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用HSD數(shù)據(jù)庫(kù)創(chuàng)建完成18 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用2. 數(shù)據(jù)庫(kù)表創(chuàng)建執(zhí)行SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)表19 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用數(shù)據(jù)庫(kù)表創(chuàng)建完成20 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用一、為什么需要事務(wù)管理一、為什么需要事務(wù)管理6.2 事務(wù)管理在數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中,

9、完成一個(gè)業(yè)務(wù)處理通常需要多個(gè)操作步驟才能完成處理。在每個(gè)操作步驟中,都可能遭遇失敗,若沒(méi)有一個(gè)處理機(jī)制,就可能造成操作數(shù)據(jù)混亂,從而破壞數(shù)據(jù)一致性。二、事務(wù)概念二、事務(wù)概念在數(shù)據(jù)庫(kù)中,事務(wù)(Transaction)是指由構(gòu)成單個(gè)邏輯處理單元的一組數(shù)據(jù)庫(kù)訪問(wèn)操作,它們要么都成功執(zhí)行,要么都不執(zhí)行。21 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用例 客戶在銀行將賬戶A轉(zhuǎn)賬1000元到賬戶B,其業(yè)務(wù)操作流程如下:Read (A);A:=A-1000;Write (A);Read (B);B:=B+1000;Write (B)轉(zhuǎn)賬處理操作序列語(yǔ)句銀行業(yè)務(wù)系統(tǒng)執(zhí)行的轉(zhuǎn)賬程序要么所有操作都執(zhí)行,要么所有操作都不執(zhí)行,以

10、確保賬戶資金數(shù)據(jù)的正常狀態(tài)。22 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用在數(shù)據(jù)庫(kù)系統(tǒng)中,事務(wù)是DBMS執(zhí)行的最小任務(wù)單元。同時(shí),事務(wù)也是DBMS最小的故障恢復(fù)任務(wù)單元和并發(fā)控制任務(wù)單元。三、事務(wù)使用三、事務(wù)使用23 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用四、事務(wù)特性四、事務(wù)特性事務(wù)特性:w 原子性(Atomicity):事務(wù)所有操作在數(shù)據(jù)庫(kù)中要么全部執(zhí)行,要么全部不執(zhí)行。w 一致性(Consistency):事務(wù)多次執(zhí)行,其結(jié)果應(yīng)一致。w 隔離性(Isolation):事務(wù)與事務(wù)之間隔離,并發(fā)執(zhí)行透明。w 持續(xù)性(Durability ):事務(wù)完成后,數(shù)據(jù)改變必須是永久的。為了確保數(shù)據(jù)庫(kù)共享訪問(wèn)的數(shù)據(jù)正確性,要求

11、DBMS的事務(wù)管理機(jī)制維護(hù)事務(wù)的ACID特性。24 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用五、事務(wù)并發(fā)執(zhí)行五、事務(wù)并發(fā)執(zhí)行事務(wù)并發(fā)執(zhí)行原因:w 改善系統(tǒng)的資源利用率w 減少事務(wù)運(yùn)行的平均等待時(shí)間事務(wù)并發(fā)執(zhí)行是指多個(gè)事務(wù)程序在計(jì)算機(jī)系統(tǒng)中同時(shí)運(yùn)行。25 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用六、事務(wù)六、事務(wù)SQL程序程序在關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中,可以利用SQL語(yǔ)言提供的相應(yīng)語(yǔ)句編寫(xiě)事務(wù)程序。w BEGIN TRANSACTION -事務(wù)開(kāi)始w ROLLBACK 事務(wù)回滾w COMMIT 事務(wù)提交w SAVE TRANSACTION 事務(wù)數(shù)據(jù)保存 1.事務(wù)SQL語(yǔ)句26 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用2.事務(wù)程序框架BEGI

12、N TRANSACTION 事務(wù)名稱;SQL語(yǔ)句1;SQL語(yǔ)句2;SAVE TRANACTION 保存點(diǎn);SQL語(yǔ)句n;If error 0 ROLLBACK 保存點(diǎn);ElseCOMMIT;27 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用 rowcount上一語(yǔ)句影響的行數(shù); error檢測(cè)上一條語(yǔ)句執(zhí)行時(shí)的錯(cuò)誤代碼。error=0表示執(zhí)行成功; trancount當(dāng)前連接的活動(dòng)事務(wù)數(shù)事務(wù)全局變量的使用方法:事務(wù)全局變量的使用方法:begin transactionbegin transaction / * A A組語(yǔ)句序列組語(yǔ)句序列* /save transaction save transaction

13、保存點(diǎn)保存點(diǎn)1 1 / * B B組語(yǔ)句序列組語(yǔ)句序列* /if error 0if error 0 rollback transaction rollback transaction 保存點(diǎn)保存點(diǎn)1 1 / *回滾到保存點(diǎn)回滾到保存點(diǎn)1 1 * /elseelse commit transaction commit transaction / *提交提交A A和和B B組語(yǔ)句組語(yǔ)句* / 3.事務(wù)程序的全局變量28 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用例1 在課程管理數(shù)據(jù)庫(kù)CourseDB中,使用事務(wù)程序?qū)崿F(xiàn)對(duì)教材表TEXTBOOK插入數(shù)據(jù),其事務(wù)SQL程序如下:USE CourseDB ;BEGI

14、N TRANSACTION T1_book;INSERT INTO TEXTBOOK( book_id , book_name , publish_company)VALUES (B001, 數(shù)據(jù)庫(kù)原理及應(yīng)用 , 機(jī)械工業(yè)出版社 );INSERT INTO TEXTBOOK( book_id , book_name , publish_company )VALUES ( B002, SQL數(shù)據(jù)庫(kù)實(shí)踐 , 電子工業(yè)出版社 );INSERT INTO TEXTBOOK(book_id , book_name)VALUES (B003, SQL Server課程設(shè)計(jì)指導(dǎo)書(shū));IF error0 RO

15、LLBACK ;COMMIT ;4.事務(wù)編程29 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用該事務(wù)程序T1_book在SQL Server數(shù)據(jù)庫(kù)運(yùn)行環(huán)境中執(zhí)行后,其結(jié)果見(jiàn)下圖所示。30 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用例2 使用事務(wù)向表book中插入數(shù)據(jù)USE CourseDB ;BEGIN TRAN tran_book ;INSERT INTO book( book_id , book_name , publish_company)VALUES ( dep04_s006_01, C+程序設(shè)計(jì),機(jī)械工業(yè)出版社);SAVE TRAN int_point ;INSERT INTO book( book_id , b

16、ook_name , publish_company )VALUES ( dep04_s006_02, C+實(shí)驗(yàn)指導(dǎo)書(shū),電子工業(yè)出版社);INSERT INTO book(book_id , book_name)VALUES (dep04_s006_03 ,C+課程設(shè)計(jì)指導(dǎo)書(shū));IF error0 ROLLBACK TRAN int_point ;elseCOMMIT TRAN tran_book ;31 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用創(chuàng)建數(shù)據(jù)庫(kù):create database;修改數(shù)據(jù)庫(kù):alter database;刪除數(shù)據(jù)庫(kù):drop database;備份數(shù)據(jù)庫(kù):dump databas

17、e、backup database;還原數(shù)據(jù)庫(kù):load database、restore database;日志備份:dump transaction、backup log;日志還原:load transaction、restore log;配置:reconfigure;磁盤(pán)初始化:disk init;統(tǒng)計(jì):update statistics;顯示或設(shè)置數(shù)據(jù)庫(kù)選項(xiàng):sp_dboption。5.事務(wù)中不能使用的SQL語(yǔ)句32 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用w 在關(guān)系數(shù)據(jù)庫(kù)中,一個(gè)事務(wù)可以是一條或多條SQL語(yǔ)句,也可以包含一個(gè)或多個(gè)程序。w 一個(gè)程序通常包含多個(gè)事務(wù)當(dāng)用戶沒(méi)有顯式地定義事務(wù)時(shí),DB

18、MS按缺省規(guī)定每執(zhí)行一個(gè)SQL語(yǔ)句將自動(dòng)構(gòu)成一個(gè)事務(wù)。七、七、DBMS默認(rèn)事務(wù)方式默認(rèn)事務(wù)方式八、事務(wù)與程序關(guān)系八、事務(wù)與程序關(guān)系33 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用一、為什么需要并發(fā)控制一、為什么需要并發(fā)控制6.3 并發(fā)控制并發(fā)控制目的w 支持并發(fā)事務(wù)處理,使更多用戶并行操作,提高系統(tǒng)的并發(fā)訪問(wèn)能力。w 保證一個(gè)用戶的工作不會(huì)對(duì)另一個(gè)用戶的工作產(chǎn)生不合理的影響。w 保證用戶與其他用戶同時(shí)操作數(shù)據(jù)庫(kù)時(shí),與用戶單獨(dú)操作數(shù)據(jù)庫(kù)所得到的結(jié)果相同。 當(dāng)多個(gè)事務(wù)程序同時(shí)在DBMS系統(tǒng)中運(yùn)行時(shí),可能會(huì)對(duì)一些共享數(shù)據(jù)進(jìn)行各類操作,即一些事務(wù)修改數(shù)據(jù),另一些事務(wù)讀取數(shù)據(jù)。這些并發(fā)的共享數(shù)據(jù)操作,如果在DBMS中

19、沒(méi)有一定的約束控制,可能會(huì)帶來(lái)數(shù)據(jù)不一致性或事務(wù)程序死鎖問(wèn)題。因此,在DBMS的事務(wù)管理中,必須進(jìn)行并發(fā)控制處理。34 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用二、事務(wù)并發(fā)處理需解決問(wèn)題二、事務(wù)并發(fā)處理需解決問(wèn)題A=16讀讀A=A-1A=A-1A=15A=15A=16A=16出售1出售1事務(wù)T1事務(wù)T2最后結(jié)果:數(shù)據(jù)有錯(cuò)1.丟失更新數(shù)據(jù)A=15售票點(diǎn)2機(jī)票數(shù)量A售票點(diǎn)135 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用出錯(cuò)原因:w 在并發(fā)操作情況下,對(duì)T1、T2兩個(gè)事務(wù)的操作序列的調(diào)度是隨機(jī)的。w 當(dāng)事務(wù)T1和T2讀入同一數(shù)據(jù)并修改,最后T2提交的結(jié)果破壞了T1提交的結(jié)果,導(dǎo)致T1的修改被丟失。36 電子科技大學(xué)數(shù)據(jù)庫(kù)原

20、理及應(yīng)用2.不可重復(fù)讀取問(wèn)題: 事務(wù)T1讀取某一數(shù)據(jù)后,事務(wù)T2對(duì)其做了修改,當(dāng)事務(wù)T1再次讀該數(shù)據(jù)時(shí),得到與前一次不同的值。37 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用(1)事務(wù)T1按一定條件從數(shù)據(jù)庫(kù)中讀取了某些數(shù)據(jù)記錄后,事務(wù)T2刪除了其中部分記錄,當(dāng)T1再次按相同條件讀取數(shù)據(jù)時(shí),發(fā)現(xiàn)某些記錄消失了。也稱為不可重復(fù)讀取。(2)事務(wù)T1按一定條件從數(shù)據(jù)庫(kù)中讀取某些數(shù)據(jù)記錄后,事務(wù)T2插入了一些記錄,當(dāng)T1再次按相同條件讀取數(shù)據(jù)時(shí),發(fā)現(xiàn)多了一些記錄。稱為幻象讀取。同類問(wèn)題:38 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用3.臟數(shù)據(jù)讀取問(wèn)題: T1已修改過(guò)的數(shù)據(jù)恢復(fù)原值,T2讀到的數(shù)據(jù)就與數(shù)據(jù)庫(kù)中的數(shù)據(jù)不一致,即存在所

21、謂臟數(shù)據(jù)。最終結(jié)果:C恢復(fù)為100T2的C為20039 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用三、并發(fā)事務(wù)調(diào)度三、并發(fā)事務(wù)調(diào)度并發(fā)事務(wù)調(diào)度就是要用正確的方式調(diào)度事務(wù)并發(fā)執(zhí)行,使一個(gè)事務(wù)的執(zhí)行不受其他事務(wù)的干擾,從而避免造成數(shù)據(jù)的不一致性或事務(wù)死鎖。事務(wù)并發(fā)執(zhí)行帶來(lái)問(wèn)題原因:當(dāng)多個(gè)事務(wù)同時(shí)存取同一數(shù)據(jù)時(shí),由于不同操作時(shí)序,可能出現(xiàn)存取不正確的數(shù)據(jù),破壞數(shù)據(jù)庫(kù)的一致性。40 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用1.事務(wù)調(diào)度原理在DBMS中,事務(wù)管理器將并發(fā)執(zhí)行事務(wù)的SQL數(shù)據(jù)操作請(qǐng)求提交給并發(fā)控制調(diào)度器。由并發(fā)控制調(diào)度器將各個(gè)事務(wù)的SQL數(shù)據(jù)操作請(qǐng)求按照一定順序進(jìn)行調(diào)度執(zhí)行,并完成對(duì)數(shù)據(jù)庫(kù)緩沖區(qū)進(jìn)行讀寫(xiě)操作。41

22、電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用例 銀行客戶A的賬戶當(dāng)前余款為1000元,客戶B的賬戶當(dāng)前余款為1500元?,F(xiàn)在有兩個(gè)事務(wù)T1和T2,其中T1事務(wù)將從客戶A轉(zhuǎn)賬200元到客戶B,T2事務(wù)也將從客戶A轉(zhuǎn)賬400元到客戶B。2.事務(wù)調(diào)度策略42 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用賬戶A余款=400元賬戶B余款=2100元賬戶A余款=400元賬戶B余款=2100元43 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用賬戶A余款=400元賬戶B余款=2100元賬戶A余款=800元賬戶B余款=1900元44 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用結(jié)論:在事務(wù)并發(fā)執(zhí)行中,只有當(dāng)事務(wù)調(diào)度順序的執(zhí)行結(jié)果與事務(wù)串行執(zhí)行效果一樣時(shí),該并發(fā)事務(wù)調(diào)度才能保

23、證數(shù)據(jù)庫(kù)的一致性。符合這樣效果的調(diào)度稱為可串行化調(diào)度。DBMS的并發(fā)控制調(diào)度器必須使得并發(fā)事務(wù)調(diào)度是一種可串行化調(diào)度。45 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用四、數(shù)據(jù)庫(kù)鎖機(jī)制四、數(shù)據(jù)庫(kù)鎖機(jī)制為了解決多個(gè)事務(wù)并發(fā)對(duì)共享數(shù)據(jù)進(jìn)行新增、更新、刪除、查詢帶來(lái)的數(shù)據(jù)一致性問(wèn)題時(shí),需要采用數(shù)據(jù)庫(kù)鎖機(jī)制?;阪i表的數(shù)據(jù)庫(kù)共享資源訪問(wèn)46 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用w 排它鎖定(Lock-X)鎖定后,不允許其它事務(wù)讀寫(xiě)鎖定資源數(shù)據(jù)w 共享鎖定(Lock-S)鎖定后,允許其它事務(wù)讀取鎖定資源數(shù)據(jù)1. 資源鎖定訪問(wèn)在DBMS中,通過(guò)加入鎖表機(jī)制,來(lái)實(shí)現(xiàn)共享資源鎖定訪問(wèn)。2. 資源鎖定粒度w 數(shù)據(jù)庫(kù)粒度最大w 表粒度較

24、大w 頁(yè)面粒度中等w 行粒度小3. 資源鎖定方式w 隱式鎖定DBMS缺省執(zhí)行w 顯式鎖定加鎖命令顯式執(zhí)行47 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用五、基于鎖機(jī)制的并發(fā)控制協(xié)議五、基于鎖機(jī)制的并發(fā)控制協(xié)議要實(shí)現(xiàn)并發(fā)事務(wù)共享訪問(wèn)數(shù)據(jù)時(shí)可以被串行化調(diào)度執(zhí)行,還必須約束它們對(duì)共享數(shù)據(jù)的操作訪問(wèn)必須是以互斥方式進(jìn)行。這就需要用到基于數(shù)據(jù)庫(kù)鎖機(jī)制的并發(fā)控制協(xié)議。1. 鎖操作的相容性排它鎖排它鎖共享鎖共享鎖無(wú)鎖無(wú)鎖排它鎖排它鎖否否是共享鎖共享鎖否是是無(wú)鎖無(wú)鎖是是是48 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用2. 加鎖協(xié)議一級(jí)加鎖協(xié)議:任何事務(wù)在修改共享數(shù)據(jù)對(duì)象之前,必須對(duì)該數(shù)據(jù)執(zhí)行排它鎖定指令,直到該事務(wù)處理完成,才進(jìn)行解鎖

25、指令執(zhí)行。例 假定某航班空余機(jī)票數(shù)據(jù)A的當(dāng)前值為100張?,F(xiàn)有分別來(lái)自不同售票點(diǎn)的兩個(gè)并發(fā)事務(wù)T1和T2,其中T1事務(wù)將售出1張機(jī)票,T2事務(wù)將售出2張機(jī)票。以下分別給出它們?cè)诓患渔i和按一級(jí)加鎖協(xié)議的并發(fā)事務(wù)調(diào)度執(zhí)行情況,見(jiàn)下圖所示。特點(diǎn):使用一級(jí)加鎖協(xié)議,可避免出現(xiàn)更新丟失問(wèn)題。但不能解決“不可重復(fù)讀取”、“臟讀”等數(shù)據(jù)不一致問(wèn)題。49 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用執(zhí)行結(jié)果A=99執(zhí)行結(jié)果A=9750 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用二級(jí)加鎖協(xié)議:在一級(jí)加鎖協(xié)議基礎(chǔ)上,針對(duì)并發(fā)事務(wù)對(duì)共享數(shù)據(jù)進(jìn)行讀操作,必須對(duì)該數(shù)據(jù)執(zhí)行共享鎖定指令,讀完數(shù)據(jù)后即刻釋放共享鎖定。例 假定某航班空余機(jī)票數(shù)據(jù)A的當(dāng)前值

26、為100張?,F(xiàn)有分別來(lái)自不同售票點(diǎn)的兩個(gè)并發(fā)事務(wù)T1和T2,其中T1事務(wù)將售出1張機(jī)票,T2事務(wù)進(jìn)行機(jī)票空余數(shù)查詢。以下分別給出它們?cè)诎匆患?jí)加鎖協(xié)議執(zhí)行和按二級(jí)加鎖協(xié)議的事務(wù)調(diào)度執(zhí)行情況,見(jiàn)下圖所示。特點(diǎn):該加鎖協(xié)議不但可以防止“丟失更新”的數(shù)據(jù)不一致性問(wèn)題,還可防止出現(xiàn)臟讀數(shù)據(jù)問(wèn)題。但有可能會(huì)出現(xiàn)“不可重復(fù)讀取”的數(shù)據(jù)不一致問(wèn)題。51 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用執(zhí)行結(jié)果A=99執(zhí)行結(jié)果A=10052 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用三級(jí)加鎖協(xié)議:在一級(jí)加鎖協(xié)議基礎(chǔ)上,針對(duì)并發(fā)事務(wù)對(duì)共享數(shù)據(jù)進(jìn)行讀操作,必須對(duì)該數(shù)據(jù)執(zhí)行共享鎖定指令,直到該事務(wù)處理結(jié)束才釋放共享鎖定。例 假定某航班空余機(jī)票數(shù)據(jù)A的

27、當(dāng)前值為100張?,F(xiàn)有分別來(lái)自不同售票點(diǎn)的兩個(gè)并發(fā)事務(wù)T1和T2,其中T1事務(wù)將售出1張機(jī)票,T2事務(wù)進(jìn)行機(jī)票空余數(shù)查詢。以下分別給出它們?cè)诎炊?jí)加鎖協(xié)議執(zhí)行和按三級(jí)加鎖協(xié)議的并發(fā)事務(wù)調(diào)度執(zhí)行情況,見(jiàn)下圖所示。特點(diǎn):該加鎖協(xié)議不但可以防止“丟失更新”、“臟讀”的數(shù)據(jù)不一致性問(wèn)題,還可防止出現(xiàn)“不可重復(fù)讀取”的數(shù)據(jù)一致性問(wèn)題。53 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用執(zhí)行結(jié)果A=99執(zhí)行結(jié)果A=9954 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用加鎖協(xié)議級(jí)別加鎖協(xié)議級(jí)別排它鎖排它鎖共享鎖共享鎖不不丟失丟失更新更新不臟讀不臟讀可重復(fù)讀可重復(fù)讀一級(jí)一級(jí)全程加鎖不加是否否二級(jí)二級(jí)全程加鎖開(kāi)始時(shí)加鎖,讀完數(shù)據(jù)釋放鎖定是是否三

28、級(jí)三級(jí)全程加鎖全程加鎖是是是3. 不同級(jí)別鎖協(xié)議比較55 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用六、兩階段鎖定協(xié)議六、兩階段鎖定協(xié)議并發(fā)事務(wù)的正確調(diào)度準(zhǔn)則:一個(gè)給定的并發(fā)事務(wù)調(diào)度,當(dāng)且僅當(dāng)它是可串行化的,才能保證正確調(diào)度。保證可串行化的一個(gè)協(xié)議是:二階段鎖定協(xié)議56 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用二階段鎖定協(xié)議規(guī)定每個(gè)事務(wù)必須分兩個(gè)階段提出加鎖和解鎖申請(qǐng):w 增長(zhǎng)階段,事務(wù)可以獲得鎖,但不能釋放鎖。w 縮減階段,事務(wù)可以釋放鎖,但不能獲得新鎖。事務(wù)T增長(zhǎng)階段縮減階段57 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用事務(wù)T1事務(wù)T2判斷下列事務(wù)是否可串行化?加鎖解鎖加鎖解鎖加鎖加鎖解鎖解鎖結(jié)論:若并發(fā)事務(wù)執(zhí)行的所有事務(wù)都遵

29、從兩階段鎖定協(xié)議,則這些事務(wù)的任何并發(fā)調(diào)度都是可串行化調(diào)度,即這些并發(fā)調(diào)度執(zhí)行結(jié)果可以保證數(shù)據(jù)庫(kù)一致性。58 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用七、死鎖問(wèn)題解決七、死鎖問(wèn)題解決在基于鎖機(jī)制的并發(fā)事務(wù)執(zhí)行中,如果這些事務(wù)同時(shí)鎖定兩個(gè)以及以上資源時(shí),可能會(huì)出現(xiàn)彼此都不能繼續(xù)執(zhí)行的狀態(tài),即事務(wù)死鎖狀態(tài)。1. 事務(wù)死鎖例 假定兩個(gè)事務(wù)T1和T2,它們都需要加鎖訪問(wèn)數(shù)據(jù)庫(kù)表Table1和Table2,其事務(wù)程序見(jiàn)圖6-20a所示。當(dāng)這兩個(gè)事務(wù)程序調(diào)度執(zhí)行時(shí),只要不是按可串行化調(diào)度執(zhí)行,則它們?cè)趫?zhí)行時(shí)會(huì)出現(xiàn)死鎖狀態(tài),見(jiàn)圖6-20b所示。59 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用60 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用w 允許

30、用戶一次發(fā)出當(dāng)前所需全部資源的鎖定,使用完成后,再釋放給其它用戶訪問(wèn)。w 規(guī)定所有應(yīng)用程序鎖定資源的順序必須完全相同。當(dāng)發(fā)生死鎖時(shí),回滾其中的一個(gè)事務(wù),并取消它對(duì)數(shù)據(jù)庫(kù)所做的改動(dòng)。2. 死鎖出現(xiàn)的必要條件3. 防范死鎖的策略w 互斥條件w 請(qǐng)求和保持條件w 不剝奪條件w 環(huán)路等待條件4. 解決死鎖的辦法61 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用八、事務(wù)隔離級(jí)別八、事務(wù)隔離級(jí)別隔離級(jí)別 臟讀不可重復(fù)讀幻讀讀未提交(Read uncommitted) 可能 可能 可能 讀已提交(Read committed) 不可能 可能 可能 可重復(fù)讀(Repeatable read) 不可能 不可能 可能 可串行化(

31、Serializable ) 不可能 不可能 不可能 說(shuō)明:每個(gè)事務(wù)都有一個(gè)所謂的隔離級(jí)。事務(wù)隔離級(jí)別設(shè)置越高,出現(xiàn)數(shù)據(jù)不一致的可能性越小,但系統(tǒng)吞吐量也越小。 62 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用一、數(shù)據(jù)庫(kù)安全問(wèn)題一、數(shù)據(jù)庫(kù)安全問(wèn)題6.4 數(shù)據(jù)庫(kù)安全 黑客利用系統(tǒng)漏洞,攻擊系統(tǒng)運(yùn)行、竊取和篡改系統(tǒng)數(shù)據(jù)。 內(nèi)部人員非法地泄露、篡改、刪除系統(tǒng)的用戶數(shù)據(jù)。 系統(tǒng)運(yùn)維人員操作失誤導(dǎo)致數(shù)據(jù)被刪除或數(shù)據(jù)庫(kù)服務(wù)器系統(tǒng)宕機(jī)。 系統(tǒng)故障導(dǎo)致數(shù)據(jù)庫(kù)的數(shù)據(jù)損壞、數(shù)據(jù)丟失、數(shù)據(jù)庫(kù)實(shí)例無(wú)法啟動(dòng)。 意外災(zāi)害事件(火災(zāi)、水災(zāi)、地震等自然災(zāi)害)導(dǎo)致系統(tǒng)被破壞。63 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用二、數(shù)據(jù)庫(kù)系統(tǒng)安全模型二、數(shù)據(jù)庫(kù)

32、系統(tǒng)安全模型身份驗(yàn)證:用來(lái)確認(rèn)登錄用戶是否是合法使用者權(quán)限控制:通過(guò)權(quán)限機(jī)制控制用戶對(duì)數(shù)據(jù)的訪問(wèn)系統(tǒng)防護(hù):OS系統(tǒng)安全機(jī)制防范非法系統(tǒng)訪問(wèn)權(quán)限控制:通過(guò)加密算法對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行加密存儲(chǔ)64 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用三、三、DBMS存取控制安全模型存取控制安全模型65 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用例 在3.7.1節(jié)的工程項(xiàng)目管理系統(tǒng)中,假定系統(tǒng)用戶有三類角色:?jiǎn)T工、經(jīng)理和系統(tǒng)管理員。它們對(duì)數(shù)據(jù)庫(kù)各個(gè)表對(duì)象的擁有權(quán)限見(jiàn)表6-4所示。表表員工員工經(jīng)理經(jīng)理系統(tǒng)管理員系統(tǒng)管理員DEPARTMENTDEPARTMENT讀取讀取、插入、修改、刪除賦予權(quán)限、修改結(jié)構(gòu)EMPLOYEEEMPLOYEE讀取、

33、插入、修改讀取、插入、修改、刪除賦予權(quán)限、修改結(jié)構(gòu)PROJECTPROJECT讀取讀取、插入、修改、刪除賦予權(quán)限、修改結(jié)構(gòu)ASSIGNMENTASSIGNMENT讀取讀取、插入、修改、刪除賦予權(quán)限、修改結(jié)構(gòu)66 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用67 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用四、用戶管理四、用戶管理用戶要訪問(wèn)數(shù)據(jù)庫(kù),必須先在DBMS中創(chuàng)建其賬號(hào),并成為數(shù)據(jù)庫(kù)的用戶。此后,用戶每次訪問(wèn)數(shù)據(jù)庫(kù),都需要在DBMS進(jìn)行身份驗(yàn)證,只有合法用戶才能進(jìn)入系統(tǒng),訪問(wèn)操作數(shù)據(jù)庫(kù)對(duì)象。DBMS驗(yàn)證用戶身份有兩種方式: 使用WINDOWS操作系統(tǒng)身份認(rèn)證來(lái)識(shí)別用戶 使用數(shù)據(jù)庫(kù)內(nèi)部機(jī)制來(lái)識(shí)別用戶68 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用用戶訪問(wèn)數(shù)據(jù)庫(kù),需要由DBA創(chuàng)建用戶賬戶,賦予登錄名和密碼。1. 用戶創(chuàng)建69 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用實(shí)例操作:創(chuàng)建HSD數(shù)據(jù)庫(kù)的用戶賬戶HsdUser70 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用2. 用戶角色定義71 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用3. 用戶角色權(quán)限設(shè)置72 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用4. 將自定義角色賦予用戶73 電子科技大學(xué)數(shù)據(jù)庫(kù)原理及應(yīng)用一、數(shù)據(jù)庫(kù)系統(tǒng)故障原因一、數(shù)據(jù)庫(kù)系統(tǒng)故障原因6.5 數(shù)據(jù)庫(kù)備份與恢復(fù)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論