河海大學(xué)數(shù)據(jù)庫(kù)課件(by陳惠萍)chp12-DBMS_第1頁(yè)
河海大學(xué)數(shù)據(jù)庫(kù)課件(by陳惠萍)chp12-DBMS_第2頁(yè)
河海大學(xué)數(shù)據(jù)庫(kù)課件(by陳惠萍)chp12-DBMS_第3頁(yè)
河海大學(xué)數(shù)據(jù)庫(kù)課件(by陳惠萍)chp12-DBMS_第4頁(yè)
河海大學(xué)數(shù)據(jù)庫(kù)課件(by陳惠萍)chp12-DBMS_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

數(shù)據(jù)庫(kù)系統(tǒng)概論

AnIntroductiontoDatabaseSystems

陳慧萍chenhp@數(shù)據(jù)庫(kù)系統(tǒng)概論AnIntroductiontoDatabaseSystem第十二章數(shù)據(jù)庫(kù)管理系統(tǒng)第十二章數(shù)據(jù)庫(kù)管理系統(tǒng)12.1DBMS的基本功能12.2DBMS的進(jìn)程結(jié)構(gòu)和多線索機(jī)制12.3DBMS系統(tǒng)結(jié)構(gòu)12.4語(yǔ)言處理12.5數(shù)據(jù)存取層12.6緩沖區(qū)管理12.7數(shù)據(jù)庫(kù)物理組織12.8小結(jié)12.1DBMS的基本功能數(shù)據(jù)庫(kù)定義和創(chuàng)建數(shù)據(jù)組織、存儲(chǔ)和管理數(shù)據(jù)存取數(shù)據(jù)庫(kù)事務(wù)管理和運(yùn)行管理數(shù)據(jù)庫(kù)的建立和維護(hù)其他功能12.1DBMS的基本功能(續(xù))數(shù)據(jù)庫(kù)定義和創(chuàng)建外模式、模式、內(nèi)模式的定義數(shù)據(jù)庫(kù)完整性的定義安全保密定義(如用戶口令、級(jí)別、存取權(quán)限)存取路徑(如索引)的定義

數(shù)據(jù)字典(亦稱為系統(tǒng)目錄):存儲(chǔ)定義

12.1DBMS的基本功能(續(xù))數(shù)據(jù)組織、存儲(chǔ)和管理數(shù)據(jù)的種類數(shù)據(jù)字典用戶數(shù)據(jù)存取路徑任務(wù)以某種文件結(jié)構(gòu)和存取方式物理地組織這些數(shù)據(jù)實(shí)現(xiàn)數(shù)據(jù)之間的聯(lián)系目標(biāo)提高存儲(chǔ)空間利用率提高隨機(jī)查找、順序查找、增、刪、改等操作的時(shí)間效率

12.1DBMS的基本功能(續(xù))數(shù)據(jù)存取數(shù)據(jù)操縱語(yǔ)言(DML)檢索插入修改刪除兩類DML宿主型語(yǔ)言自立(獨(dú)立)型語(yǔ)言12.1DBMS的基本功能(續(xù))數(shù)據(jù)庫(kù)事務(wù)管理和運(yùn)行管理多用戶環(huán)境下事務(wù)的管理和自動(dòng)恢復(fù)并發(fā)控制和死鎖檢測(cè)(或死鎖防止)安全性檢查和存取控制完整性檢查和執(zhí)行運(yùn)行日志的組織管理12.1DBMS的基本功能(續(xù))數(shù)據(jù)庫(kù)的建立和維護(hù)建立數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的初始建立數(shù)據(jù)的轉(zhuǎn)換維護(hù)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)的轉(zhuǎn)儲(chǔ)和恢復(fù)數(shù)據(jù)庫(kù)的重組織和重構(gòu)造性能監(jiān)測(cè)分析12.1DBMS的基本功能(續(xù))其他功能DBMS與網(wǎng)絡(luò)中其他軟件系統(tǒng)的通信功能與其他DBMS或文件系統(tǒng)的數(shù)據(jù)轉(zhuǎn)換功能異構(gòu)數(shù)據(jù)庫(kù)之間的互訪和互操作功能

12.2DBMS進(jìn)程結(jié)構(gòu)和多線索機(jī)制12.2.1N方案:DBMS與應(yīng)用程序相融合的方案12.2.22N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程12.2.3N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程12.2.4N+M方案:M個(gè)DBMS進(jìn)程對(duì)應(yīng)N個(gè)用戶進(jìn)程12.2.5多線索(Multi_Threaded)DBMS的概念12.2.1N方案:DBMS與應(yīng)用程序相融合的方案N個(gè)DB用戶--N個(gè)進(jìn)程連入式方案SGA(Shared GlobalArea) 共享全局區(qū)字典定義信息數(shù)據(jù)和索引緩沖塊日志緩沖塊封鎖控制塊12.2.1N方案:DBMS與應(yīng)用程序相融合的方案優(yōu)點(diǎn)沒有進(jìn)程切換開銷實(shí)現(xiàn)比較簡(jiǎn)單缺點(diǎn)內(nèi)存的需求量比較大:多DBMS副本代碼冗余使系統(tǒng)性能下降適用情況用戶數(shù)少的小型DBMS12.2DBMS進(jìn)程結(jié)構(gòu)和多線索機(jī)制12.2.1N方案:DBMS與應(yīng)用程序相融合的方案12.2.22N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程12.2.3N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程12.2.4N+M方案:M個(gè)DBMS進(jìn)程對(duì)應(yīng)N個(gè)用戶進(jìn)程12.2.5多線索(Multi_Threaded)DBMS的概念12.2.22N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程解決N方案中DBMS代碼段在內(nèi)存中不能被共享

應(yīng)用程序與DBMS副本分開2N方案一用戶一進(jìn)程(Shadow進(jìn)程)N個(gè)用戶進(jìn)程---N個(gè)DBMS進(jìn)程(共2N個(gè)進(jìn)程)12.2.22N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程12.2.22N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程優(yōu)點(diǎn)DBMS對(duì)各數(shù)據(jù)庫(kù)用戶的多任務(wù)調(diào)度由OS完成簡(jiǎn)化了用戶進(jìn)程與DBMS的接口實(shí)現(xiàn)起來比較簡(jiǎn)單

缺點(diǎn)進(jìn)程間總的通信開銷上升操作系統(tǒng)的負(fù)擔(dān)增大,空間、時(shí)間效率不高DBMS必須設(shè)立并維護(hù)若干后臺(tái)進(jìn)程,增加了進(jìn)程切換要訪問的數(shù)據(jù)不在內(nèi)存時(shí)會(huì)造成性能問題臨界區(qū)問題(CriticalSection)適用情況用戶數(shù)不龐大(非OLTP應(yīng)用):Oracle7之前版本,Ingres,Informix早期版本12.2DBMS進(jìn)程結(jié)構(gòu)和多線索機(jī)制12.2.1N方案:DBMS與應(yīng)用程序相融合的方案12.2.22N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程12.2.3N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程12.2.4N+M方案:M個(gè)DBMS進(jìn)程對(duì)應(yīng)N個(gè)用戶進(jìn)程12.2.5多線索(Multi_Threaded)DBMS的概念12.2.3N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程整個(gè)DBMS僅使用一個(gè)進(jìn)程,類似于一個(gè)服務(wù)器(Server)多個(gè)數(shù)據(jù)庫(kù)用戶向Server發(fā)message申請(qǐng)數(shù)據(jù)庫(kù)服務(wù)Server用自己的機(jī)制來調(diào)度這些申請(qǐng),以支持一個(gè)多任務(wù)的數(shù)據(jù)庫(kù)系統(tǒng)沒有SGA,DBMS進(jìn)程的數(shù)據(jù)區(qū)=SGA沒有后臺(tái)進(jìn)程用多線索(Multi_Threaded)技術(shù)來實(shí)現(xiàn)N+1方案12.2.3N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程12.2.3N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程優(yōu)點(diǎn)采用多線索(Multi_Threaded)技術(shù)提高系統(tǒng)性能,降低系統(tǒng)資源的開銷,簡(jiǎn)化DBMS許多部分的設(shè)計(jì)缺點(diǎn)DBMS的設(shè)計(jì)整體上較復(fù)雜消息系統(tǒng)過于昂貴實(shí)際系統(tǒng)Sybase12.2DBMS進(jìn)程結(jié)構(gòu)和多線索機(jī)制12.2.1N方案:DBMS與應(yīng)用程序相融合的方案12.2.22N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程12.2.3N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程12.2.4N+M方案:M個(gè)DBMS進(jìn)程對(duì)應(yīng)N個(gè)用戶進(jìn)程12.2.5多線索(Multi_Threaded)DBMS的概念12.2.4N+M方案:M個(gè)DBMS進(jìn)程對(duì)應(yīng)N個(gè)用戶進(jìn)程M個(gè)DBMS進(jìn)程--N個(gè)用戶進(jìn)程(一般M<N)DBMS進(jìn)程不負(fù)責(zé)多任務(wù)調(diào)度,每個(gè)用戶進(jìn)程也不固定地對(duì)應(yīng)于某個(gè)DBMS進(jìn)程用戶的數(shù)據(jù)庫(kù)請(qǐng)求被動(dòng)態(tài)分配給某個(gè)DBMS進(jìn)程來處理DBMS進(jìn)程的分派由分派程序完成12.2.4N+M方案:M個(gè)DBMS進(jìn)程對(duì)應(yīng)N個(gè)用戶進(jìn)程12.2.4N+M方案:M個(gè)DBMS進(jìn)程對(duì)應(yīng)N個(gè)用戶進(jìn)程優(yōu)點(diǎn)改進(jìn)了2N方案,提高了內(nèi)存資源的利用率缺點(diǎn)沒有克服2N方案的本質(zhì)弱點(diǎn)分派程序給系統(tǒng)增加了開銷并可能成為瓶頸DBMS進(jìn)程動(dòng)態(tài)增減的開銷亦很大

實(shí)際系統(tǒng)OracleInformix12.2DBMS進(jìn)程結(jié)構(gòu)和多線索機(jī)制12.2.1N方案:DBMS與應(yīng)用程序相融合的方案12.2.22N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程12.2.3N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程12.2.4N+M方案:M個(gè)DBMS進(jìn)程對(duì)應(yīng)N個(gè)用戶進(jìn)程12.2.5多線索(Multi_Threaded)DBMS的概念一、線程的概念進(jìn)程細(xì)化為“任務(wù)”(Task)、“線程”(Thread)進(jìn)程一分為二Task是申請(qǐng)資源的最小單位Thread是調(diào)度和運(yùn)行的最小單位一個(gè)Task中可有多個(gè)ThreadThread共享Task的所有資源,共同完成一個(gè)任務(wù)線程將進(jìn)程中的程序代碼與進(jìn)程所占資源相分離,從而在一個(gè)地址空間運(yùn)行多個(gè)指令流一、線程的概念(續(xù))二、多線索(Multi_Threaded)DBMSDBMS是一個(gè)Task用戶申請(qǐng)數(shù)據(jù)庫(kù)服務(wù)時(shí),Task分配至少一個(gè)Thread為之服務(wù)多個(gè)Thread并行工作,共享資源三、線索與進(jìn)程的比較線索比進(jìn)程占用較少的資源線索調(diào)度比較靈活,可控制性強(qiáng)線索切換開銷較小線索間通信簡(jiǎn)便

12.3DBMS系統(tǒng)結(jié)構(gòu)12.3.1DBMS的層次結(jié)構(gòu)12.3.2RDBMS的運(yùn)行過程示例12.3.1DBMS的層次結(jié)構(gòu)處理各種各樣的數(shù)據(jù)庫(kù)應(yīng)用是RDBMS與用戶/應(yīng)用程序的界面層處理數(shù)據(jù)庫(kù)語(yǔ)言,如SQL向上提供的數(shù)據(jù)接口是元組的集合處理單個(gè)元組把集合操作化為單記錄操作并執(zhí)行處理數(shù)據(jù)頁(yè)和系統(tǒng)緩沖區(qū)12.3DBMS系統(tǒng)結(jié)構(gòu)12.3.1DBMS的層次結(jié)構(gòu)12.3.2RDBMS的運(yùn)行過程示例12.3.2RDBMS的運(yùn)行過程示例12.4語(yǔ)言處理12.4.1語(yǔ)言處理層的任務(wù)和工作12.4.2解釋方法12.4.3預(yù)編譯方法12.4.1語(yǔ)言處理層的任務(wù)和工作接收DB語(yǔ)句轉(zhuǎn)換對(duì)DBMS內(nèi)層可執(zhí)行的基本存取模塊的調(diào)用序列交互式方式下的SQL語(yǔ)句嵌入3GL中的SQL語(yǔ)句PL/SQL中的SQL語(yǔ)句12.4.1語(yǔ)言處理層的任務(wù)和工作(續(xù))DDL語(yǔ)句處理過程把它翻譯成內(nèi)部表示存儲(chǔ)在系統(tǒng)的數(shù)據(jù)字典中DCL語(yǔ)句處理過程與DDL的處理類似12.4.1語(yǔ)言處理層的任務(wù)和工作(續(xù))DML語(yǔ)句的處理束縛過程束縛時(shí)間DML語(yǔ)句

束縛(Binding)一串可執(zhí)行的存取動(dòng)作(調(diào)用序列)相當(dāng)于一個(gè)小編譯器

其他語(yǔ)句查詢語(yǔ)句DML語(yǔ)句語(yǔ)法分析語(yǔ)義檢查視圖轉(zhuǎn)換數(shù)據(jù)庫(kù)數(shù)據(jù)字典DBMS內(nèi)層基本模塊庫(kù)單元組接口對(duì)可執(zhí)行的DBMS內(nèi)層基本存取模塊的調(diào)用序列多元組接口查詢優(yōu)化代碼生成12.4.1語(yǔ)言處理層的任務(wù)和工作(續(xù))束縛時(shí)間 編程時(shí)------執(zhí)行前------執(zhí)行時(shí)編程時(shí)-----已淘汰執(zhí)行時(shí)----解釋方法執(zhí)行前----預(yù)編譯方法12.4語(yǔ)言處理12.4.1語(yǔ)言處理層的任務(wù)和工作12.4.2解釋方法12.4.3預(yù)編譯方法12.4.2解釋方法特點(diǎn)執(zhí)行前,DML語(yǔ)句都以原始字符串的形式保存執(zhí)行時(shí),解釋程序完成束縛過程,然后予以執(zhí)行優(yōu)點(diǎn)數(shù)據(jù)獨(dú)立性好靈活、應(yīng)變性好缺點(diǎn)效率比較低適用交互式SQL12.4語(yǔ)言處理12.4.1語(yǔ)言處理層的任務(wù)和工作12.4.2解釋方法12.4.3預(yù)編譯方法12.4.3預(yù)編譯方法不同束縛時(shí)間的權(quán)衡早:系統(tǒng)效率高,數(shù)據(jù)獨(dú)立性差晚:數(shù)據(jù)獨(dú)立性高,執(zhí)行效率差預(yù)編譯方法是介于上面二者之間的一個(gè)方案特點(diǎn)用戶提交DML語(yǔ)句后,運(yùn)行前對(duì)它進(jìn)行翻譯處理保存產(chǎn)生的執(zhí)行代碼運(yùn)行時(shí),取出執(zhí)行代碼加以執(zhí)行

預(yù)編譯方法的問題應(yīng)用規(guī)劃失效(數(shù)據(jù)庫(kù)結(jié)構(gòu)改變、存取路徑改變)解決方法重編譯重編譯進(jìn)行時(shí)刻立即重編譯被執(zhí)行時(shí)才進(jìn)行自動(dòng)重編譯自動(dòng)重編譯技術(shù)的優(yōu)點(diǎn)既擁有了編譯時(shí)進(jìn)行束縛所帶來的高效率又具備了執(zhí)行時(shí)束縛帶來的數(shù)據(jù)獨(dú)立性12.4.3預(yù)編譯方法(續(xù))12.5數(shù)據(jù)存取層12.5數(shù)據(jù)存取層12.5.1數(shù)據(jù)存取層的系統(tǒng)結(jié)構(gòu)12.5.2數(shù)據(jù)存取層的功能子功能12.5.1數(shù)據(jù)存取層的系統(tǒng)結(jié)構(gòu)12.5數(shù)據(jù)存取層12.5.1數(shù)據(jù)存取層的系統(tǒng)結(jié)構(gòu)12.5.2數(shù)據(jù)存取層的功能子功能12.5.2數(shù)據(jù)存取層的功能子功能記錄存取、事務(wù)管理子系統(tǒng)日志登記子系統(tǒng)控制信息管理模塊排序\合并子系統(tǒng)存取路徑維護(hù)子系統(tǒng)封鎖子系統(tǒng)一、記錄存取、事務(wù)管理子系統(tǒng)記錄存取子系統(tǒng)在某個(gè)存取路徑上按屬性值找元組(FIND)按相對(duì)位置找元組(NEXT,PRIOR,F(xiàn)IRST,LAST)。給某關(guān)系增加一個(gè)元組(INSERT)從找到的元組中取某個(gè)屬性值(GET)從某關(guān)系中刪去一個(gè)元組(DELETE)把某修改完的元組寫回關(guān)系中(REPLACE)

事務(wù)管理子系統(tǒng)定義事務(wù)開始(BEGINTRANSACTION)事務(wù)提交(COMMIT)事務(wù)回滾(ROLLBACK)二、日志登記子系統(tǒng)寫日志記錄(WRITELOG)讀日志記錄(READLOG)掃描日志文件(SCANLOG)撤消尚未結(jié)束的事務(wù)(UNDO)重做已經(jīng)結(jié)束的事務(wù)(REDO)

三、控制信息管理模塊負(fù)責(zé)在內(nèi)存數(shù)據(jù)區(qū)登記記錄類型、存取路徑的說明信息和控制信息。四、排序/合并子系統(tǒng)輸出有序結(jié)果刪去重復(fù)值支持排序–合并方法的連接操作支持動(dòng)態(tài)建立索引結(jié)構(gòu)減少數(shù)據(jù)塊的存取次數(shù)五、存取路徑維護(hù)子系統(tǒng)對(duì)數(shù)據(jù)執(zhí)行插入、刪除、修改操作的同時(shí)對(duì)相應(yīng)的存取路徑進(jìn)行維護(hù)B+樹的維護(hù)算法

初始建立B+樹索引插入刪除更新7.封鎖子系統(tǒng)12.6緩沖區(qū)管理數(shù)據(jù)存儲(chǔ)層的功能

緩沖區(qū)管理內(nèi)外存交換外存管理系統(tǒng)緩沖區(qū)設(shè)立的原因

提供DBMS的設(shè)備獨(dú)立性

外存設(shè)備的變更不會(huì)對(duì)它們?cè)斐捎绊懱岣叽嫒⌒十惒阶x寫:預(yù)先讀,延遲寫

12.6緩沖區(qū)管理(續(xù))系統(tǒng)緩沖區(qū)的組

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論