數(shù)據(jù)庫系統(tǒng)概論課件:第12章 數(shù)據(jù)庫管理系統(tǒng)_第1頁
數(shù)據(jù)庫系統(tǒng)概論課件:第12章 數(shù)據(jù)庫管理系統(tǒng)_第2頁
數(shù)據(jù)庫系統(tǒng)概論課件:第12章 數(shù)據(jù)庫管理系統(tǒng)_第3頁
數(shù)據(jù)庫系統(tǒng)概論課件:第12章 數(shù)據(jù)庫管理系統(tǒng)_第4頁
數(shù)據(jù)庫系統(tǒng)概論課件:第12章 數(shù)據(jù)庫管理系統(tǒng)_第5頁
已閱讀5頁,還剩62頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 中國人民大學(xué)信息學(xué)院 數(shù)據(jù)庫系統(tǒng)概論An Introduction to Database System第十二章 數(shù)據(jù)庫管理系統(tǒng)An Introduction to Database System第十二章 數(shù)據(jù)庫管理系統(tǒng)12.1 DBMS的基本功能12.2 DBMS的進(jìn)程結(jié)構(gòu)和多線索機(jī)制12.3 DBMS系統(tǒng)結(jié)構(gòu)12.4 語言處理12.5 數(shù)據(jù)存取層12.6 緩沖區(qū)管理12.7 數(shù)據(jù)庫物理組織12.8 小結(jié)An Introduction to Database System12.1 DBMS的基本功能數(shù)據(jù)庫定義和創(chuàng)建數(shù)據(jù)組織、存儲(chǔ)和管理數(shù)據(jù)存取數(shù)據(jù)庫事務(wù)管理和運(yùn)行管理數(shù)據(jù)庫的建立和維護(hù)其他功

2、能An Introduction to Database System12.1 DBMS的基本功能(續(xù))數(shù)據(jù)庫定義和創(chuàng)建外模式、模式、內(nèi)模式的定義數(shù)據(jù)庫完整性的定義安全保密定義(如用戶口令、級(jí)別、存取權(quán)限)存取路徑(如索引)的定義 數(shù)據(jù)字典(亦稱為系統(tǒng)目錄): 存儲(chǔ)定義 An Introduction to Database System12.1 DBMS的基本功能(續(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í)間效率 An Introduction t

3、o Database System12.1 DBMS的基本功能(續(xù))數(shù)據(jù)存取數(shù)據(jù)操縱語言(DML)檢索插入修改刪除兩類DML宿主型語言自立(獨(dú)立)型語言An Introduction to Database System12.1 DBMS的基本功能(續(xù))數(shù)據(jù)庫事務(wù)管理和運(yùn)行管理多用戶環(huán)境下事務(wù)的管理和自動(dòng)恢復(fù)并發(fā)控制和死鎖檢測(或死鎖防止)安全性檢查和存取控制完整性檢查和執(zhí)行運(yùn)行日志的組織管理An Introduction to Database System12.1 DBMS的基本功能(續(xù))數(shù)據(jù)庫的建立和維護(hù)建立數(shù)據(jù)庫數(shù)據(jù)庫的初始建立數(shù)據(jù)的轉(zhuǎn)換維護(hù)數(shù)據(jù)庫數(shù)據(jù)庫的轉(zhuǎn)儲(chǔ)和恢復(fù)數(shù)據(jù)庫的重組織和重構(gòu)

4、造性能監(jiān)測分析An Introduction to Database System12.1 DBMS的基本功能(續(xù))其他功能DBMS與網(wǎng)絡(luò)中其他軟件系統(tǒng)的通信功能與其他DBMS或文件系統(tǒng)的數(shù)據(jù)轉(zhuǎn)換功能異構(gòu)數(shù)據(jù)庫之間的互訪和互操作功能 An Introduction to Database System12.2 DBMS進(jìn)程結(jié)構(gòu)和多線索機(jī)制12.2.1 N方案:DBMS與應(yīng)用程序相融合的方案12.2.2 2N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程12.2.3 N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程12.2.4 N+M方案:M個(gè)DBMS進(jìn)程對(duì)應(yīng)N個(gè)用戶進(jìn)程12.2.5 多線索(Multi_T

5、hreaded) DBMS的概念A(yù)n Introduction to Database System12.2.1 N方案:DBMS與應(yīng)用程序相融合的方案N個(gè)DB用戶-N個(gè)進(jìn)程連入式方案SGA(Shared Global Area)共享全局區(qū)字典定義信息數(shù)據(jù)和索引緩沖塊日志緩沖塊封鎖控制塊An Introduction to Database System12.2.1 N方案:DBMS與應(yīng)用程序相融合的方案優(yōu)點(diǎn)沒有進(jìn)程切換開銷實(shí)現(xiàn)比較簡單缺點(diǎn)內(nèi)存的需求量比較大:多DBMS副本代碼冗余使系統(tǒng)性能下降適用情況用戶數(shù)少的小型DBMSAn Introduction to Database System1

6、2.2 DBMS進(jìn)程結(jié)構(gòu)和多線索機(jī)制12.2.1 N方案:DBMS與應(yīng)用程序相融合的方案12.2.2 2N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程12.2.3 N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程12.2.4 N+M方案:M個(gè)DBMS進(jìn)程對(duì)應(yīng)N個(gè)用戶進(jìn)程12.2.5 多線索(Multi_Threaded) DBMS的概念A(yù)n Introduction to Database System12.2.2 2N方案:一個(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)程(共

7、2N個(gè)進(jìn)程)An Introduction to Database System12.2.2 2N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程An Introduction to Database System12.2.2 2N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程優(yōu)點(diǎn)DBMS對(duì)各數(shù)據(jù)庫用戶的多任務(wù)調(diào)度由OS完成簡化了用戶進(jìn)程與DBMS的接口實(shí)現(xià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ū)問題(Critical Section)適用情況用戶數(shù)不龐大(非OLTP應(yīng)用):Orac

8、le 7之前版本, Ingres, Informix早期版本An Introduction to Database System12.2 DBMS進(jìn)程結(jié)構(gòu)和多線索機(jī)制12.2.1 N方案:DBMS與應(yīng)用程序相融合的方案12.2.2 2N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程12.2.3 N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程12.2.4 N+M方案:M個(gè)DBMS進(jìn)程對(duì)應(yīng)N個(gè)用戶進(jìn)程12.2.5 多線索(Multi_Threaded) DBMS的概念A(yù)n Introduction to Database System12.2.3 N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程一個(gè)DBMS進(jìn)程

9、對(duì)應(yīng)所有用戶進(jìn)程整個(gè)DBMS僅使用一個(gè)進(jìn)程,類似于一個(gè)服務(wù)器(Server)多個(gè)數(shù)據(jù)庫用戶向Server發(fā)message申請(qǐng)數(shù)據(jù)庫服務(wù)Server用自己的機(jī)制來調(diào)度這些申請(qǐng),以支持一個(gè)多任務(wù)的數(shù)據(jù)庫系統(tǒng) 沒有SGA,DBMS進(jìn)程的數(shù)據(jù)區(qū)=SGA沒有后臺(tái)進(jìn)程用多線索(Multi_Threaded)技術(shù)來實(shí)現(xiàn)N+1方案 An Introduction to Database System12.2.3 N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程An Introduction to Database System12.2.3 N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程優(yōu)點(diǎn)采用多線索(Multi_T

10、hreaded)技術(shù)提高系統(tǒng)性能,降低系統(tǒng)資源的開銷,簡化DBMS許多部分的設(shè)計(jì)缺點(diǎn)DBMS的設(shè)計(jì)整體上較復(fù)雜消息系統(tǒng)過于昂貴 實(shí)際系統(tǒng)SybaseAn Introduction to Database System12.2 DBMS進(jìn)程結(jié)構(gòu)和多線索機(jī)制12.2.1 N方案:DBMS與應(yīng)用程序相融合的方案12.2.2 2N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程12.2.3 N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程12.2.4 N+M方案:M個(gè)DBMS進(jìn)程對(duì)應(yīng)N個(gè)用戶進(jìn)程12.2.5 多線索(Multi_Threaded) DBMS的概念A(yù)n Introduction to Database

11、 System12.2.4 N+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ù)庫請(qǐng)求被動(dòng)態(tài)分配給某個(gè)DBMS進(jìn)程來處理DBMS進(jìn)程的分派由分派程序完成An Introduction to Database System12.2.4 N+M方案:M個(gè)DBMS進(jìn)程對(duì)應(yīng)N個(gè)用戶進(jìn)程An Introduction to Database System12.2.4 N+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)

12、分派程序給系統(tǒng)增加了開銷并可能成為瓶頸DBMS進(jìn)程動(dòng)態(tài)增減的開銷亦很大 實(shí)際系統(tǒng)OracleInformixAn Introduction to Database System12.2 DBMS進(jìn)程結(jié)構(gòu)和多線索機(jī)制12.2.1 N方案:DBMS與應(yīng)用程序相融合的方案12.2.2 2N方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)一個(gè)用戶進(jìn)程12.2.3 N+1方案:一個(gè)DBMS進(jìn)程對(duì)應(yīng)所有用戶進(jìn)程12.2.4 N+M方案:M個(gè)DBMS進(jìn)程對(duì)應(yīng)N個(gè)用戶進(jìn)程12.2.5 多線索(Multi_Threaded) DBMS的概念A(yù)n Introduction to Database System一、 線程的概念進(jìn)程細(xì)化為

13、 “任務(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è)指令流An Introduction to Database System一、 線程的概念(續(xù))An Introduction to Database System二、 多線索(Multi_Threaded)DBMS DBMS是一個(gè)Task用戶申請(qǐng)數(shù)據(jù)庫服務(wù)時(shí),Task分配至少一個(gè)Thread為之服務(wù)多個(gè)Thread并

14、行工作,共享資源 An Introduction to Database System三、 線索與進(jìn)程的比較 線索比進(jìn)程占用較少的資源線索調(diào)度比較靈活,可控制性強(qiáng)線索切換開銷較小線索間通信簡便 An Introduction to Database System12.3 DBMS系統(tǒng)結(jié)構(gòu)12.3.1 DBMS的層次結(jié)構(gòu)12.3.2 RDBMS的運(yùn)行過程示例An Introduction to Database System12.3.1 DBMS的層次結(jié)構(gòu)處理各種各樣的數(shù)據(jù)庫應(yīng)用是RDBMS與用戶/應(yīng)用程序的界面層處理數(shù)據(jù)庫語言,如SQL向上提供的數(shù)據(jù)接口是元組的集合處理單個(gè)元組把集合操作化為單

15、記錄操作并執(zhí)行處理數(shù)據(jù)頁和系統(tǒng)緩沖區(qū)An Introduction to Database System12.3 DBMS系統(tǒng)結(jié)構(gòu)12.3.1 DBMS的層次結(jié)構(gòu)12.3.2 RDBMS的運(yùn)行過程示例An Introduction to Database System12.3.2 RDBMS的運(yùn)行過程示例An Introduction to Database System12.4 語言處理12.4.1 語言處理層的任務(wù)和工作12.4.2 解釋方法12.4.3 預(yù)編譯方法An Introduction to Database System12.4.1 語言處理層的任務(wù)和工作接收DB語句 轉(zhuǎn)換對(duì)D

16、BMS內(nèi)層可執(zhí)行的基本存取模塊的調(diào)用序列交互式方式下的SQL語句嵌入3GL中的SQL語句 PL/SQL中的SQL語句 An Introduction to Database System12.4.1 語言處理層的任務(wù)和工作(續(xù))DDL語句處理過程把它翻譯成內(nèi)部表示存儲(chǔ)在系統(tǒng)的數(shù)據(jù)字典中DCL語句處理過程與DDL的處理類似An Introduction to Database System12.4.1 語言處理層的任務(wù)和工作(續(xù))DML語句的處理束縛過程束縛時(shí)間DML語句 束縛(Binding) 一串可執(zhí)行的存取動(dòng)作(調(diào)用序列)相當(dāng)于一個(gè)小編譯器 An Introduction to Datab

17、ase System其他語句查詢語句DML 語句語法分析語義檢查視圖轉(zhuǎn)換數(shù) 據(jù) 庫數(shù)據(jù)字典DBMS內(nèi)層基本模塊庫單元組接口對(duì)可執(zhí)行的DBMS內(nèi)層基本存取模塊的調(diào)用序列多元組接口查詢優(yōu)化代碼生成An Introduction to Database SystemAn Introduction to Database System12.4.1 語言處理層的任務(wù)和工作(續(xù))束縛時(shí)間編程時(shí)- - -執(zhí)行前- - -執(zhí)行時(shí)編程時(shí)-已淘汰執(zhí)行時(shí)-解釋方法執(zhí)行前-預(yù)編譯方法An Introduction to Database System12.4 語言處理12.4.1 語言處理層的任務(wù)和工作12.4.2

18、解釋方法12.4.3 預(yù)編譯方法An Introduction to Database System12.4.2 解釋方法特點(diǎn)執(zhí)行前,DML語句都以原始字符串的形式保存執(zhí)行時(shí),解釋程序完成束縛過程,然后予以執(zhí)行優(yōu)點(diǎn)數(shù)據(jù)獨(dú)立性好靈活、應(yīng)變性好缺點(diǎn)效率比較低適用交互式SQL An Introduction to Database System12.4 語言處理12.4.1 語言處理層的任務(wù)和工作12.4.2 解釋方法12.4.3 預(yù)編譯方法An Introduction to Database System12.4.3 預(yù)編譯方法不同束縛時(shí)間的權(quán)衡早:系統(tǒng)效率高,數(shù)據(jù)獨(dú)立性差晚:數(shù)據(jù)獨(dú)立性高,執(zhí)行

19、效率差預(yù)編譯方法是介于上面二者之間的一個(gè)方案特點(diǎn)用戶提交DML語句后,運(yùn)行前對(duì)它進(jìn)行翻譯處理保存產(chǎn)生的執(zhí)行代碼運(yùn)行時(shí),取出執(zhí)行代碼加以執(zhí)行 An Introduction to Database SystemAn Introduction to Database System預(yù)編譯方法的問題應(yīng)用規(guī)劃失效(數(shù)據(jù)庫結(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ù))An Introduction to Database System12.5 數(shù)

20、據(jù)存取層An Introduction to Database System12.5 數(shù)據(jù)存取層12.5.1 數(shù)據(jù)存取層的系統(tǒng)結(jié)構(gòu)12.5.2 數(shù)據(jù)存取層的功能子功能An Introduction to Database System12.5.1 數(shù)據(jù)存取層的系統(tǒng)結(jié)構(gòu)An Introduction to Database System12.5 數(shù)據(jù)存取層12.5.1 數(shù)據(jù)存取層的系統(tǒng)結(jié)構(gòu)12.5.2 數(shù)據(jù)存取層的功能子功能An Introduction to Database System12.5.2 數(shù)據(jù)存取層的功能子功能記錄存取、事務(wù)管理子系統(tǒng)日志登記子系統(tǒng)控制信息管理模塊排序合并子系統(tǒng)存

21、取路徑維護(hù)子系統(tǒng)封鎖子系統(tǒng)An Introduction to Database System一、記錄存取、事務(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ù)開始(BEGIN TRANSACTION)事務(wù)提交(COMMIT)事務(wù)回滾(ROLLBACK)An Introduction to Database System二、日志登記子系統(tǒng)

22、寫日志記錄(WRITELOG)讀日志記錄(READLOG)掃描日志文件(SCANLOG)撤消尚未結(jié)束的事務(wù)(UNDO)重做已經(jīng)結(jié)束的事務(wù)(REDO) An Introduction to Database System三、控制信息管理模塊負(fù)責(zé)在內(nèi)存數(shù)據(jù)區(qū)登記記錄類型、存取路徑的說明信息和控制信息。An Introduction to Database System四、排序/合并子系統(tǒng)輸出有序結(jié)果刪去重復(fù)值支持排序 合并方法的連接操作支持動(dòng)態(tài)建立索引結(jié)構(gòu)減少數(shù)據(jù)塊的存取次數(shù)An Introduction to Database System五、存取路徑維護(hù)子系統(tǒng)對(duì)數(shù)據(jù)執(zhí)行插入、刪除、修改操作的同

23、時(shí)對(duì)相應(yīng)的存取路徑進(jìn)行維護(hù)B+樹的維護(hù)算法 初始建立B+樹索引插入刪除更新An Introduction to Database System7. 封鎖子系統(tǒng)An Introduction to Database System12.6 緩沖區(qū)管理數(shù)據(jù)存儲(chǔ)層的功能 緩沖區(qū)管理內(nèi)外存交換外存管理系統(tǒng)緩沖區(qū)設(shè)立的原因 提供DBMS的設(shè)備獨(dú)立性 外存設(shè)備的變更不會(huì)對(duì)它們?cè)斐捎绊懱岣叽嫒⌒十惒阶x寫:預(yù)先讀,延遲寫 An Introduction to Database System12.6 緩沖區(qū)管理(續(xù))系統(tǒng)緩沖區(qū)的組成內(nèi)存虛存緩沖區(qū)管理緩沖區(qū)大小 太大: 占據(jù)內(nèi)存空間太小: 頻頻缺頁調(diào)頁,造成“抖動(dòng)”,影響效率 數(shù)據(jù)庫緩沖區(qū)及上下接口緩沖區(qū)管理示意圖 An

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論