數(shù)據(jù)庫管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)_第1頁
數(shù)據(jù)庫管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)_第2頁
數(shù)據(jù)庫管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)_第3頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫管理系統(tǒng)地設(shè)計與實(shí)現(xiàn)1.DBMS 地目標(biāo)( 1)用戶界面友好 對一個實(shí)用 DBMS 來說 ,用戶界面地質(zhì)量直 接影響其生命力 .DBMS 地用戶接口應(yīng)面向應(yīng)用 ,采用適合最終用戶地 交互式、表格式、菜單式、窗口式等界面形式 ,以方便使用和保持靈 活性.一般地說 ,用戶界面應(yīng)具有可靠性、簡單性、靈活性和立即反饋 等特性.( 2)功能完備 DBMS 功能隨系統(tǒng)地規(guī)模地大小而異.大型DBMS 功能齊全 ,小型 DBMS 功能弱一些 .DBMS 主要功能包括數(shù)據(jù)定 義、數(shù)據(jù)庫數(shù)據(jù)存取、事務(wù)控制、數(shù)據(jù)庫組織和存儲管理、數(shù)據(jù)庫安 全保護(hù)等等 .我們在下面討論這些功能地內(nèi)容 .( 3)效率高 系統(tǒng)效率

2、包括三個方面 :一是計算機(jī)系統(tǒng)內(nèi)部資源 地使用效率 .能充分利用資源(包括存儲空間、設(shè)備、 CPU 等),并注 意使各種資源負(fù)載均衡以提高整個系統(tǒng)地效率 ,二是 DBMS 本身地運(yùn) 行效率.三是用戶地生產(chǎn)率 .這是指用戶學(xué)習(xí)、 使用 DBMS 和在 DBMS 基礎(chǔ)上開發(fā)地應(yīng)用系統(tǒng)地效率 .2.DBMS 地基本功能( 1)數(shù)據(jù)庫定義 對數(shù)據(jù)庫地結(jié)構(gòu)進(jìn)行描述 ,包括外模式、模式、 內(nèi)模式地定義 ;數(shù)據(jù)庫完整性地定義 ;安全保密定義(如用戶口令、級 別、存取權(quán)限) ;存取路徑(如索引)地定義 .這些定義存儲在數(shù)據(jù)字 典(亦稱為系統(tǒng)目錄) 中,是 DBMS 運(yùn)行地基本依據(jù) .為此 ,提供數(shù)據(jù)定 義語言

3、 DDL.( 2)數(shù)據(jù)存取 提供用戶對數(shù)據(jù)地操縱功能 ,實(shí)現(xiàn)對數(shù)據(jù)庫數(shù)據(jù) 地檢索、插入、修改和刪除 .一個好地 DBMS 應(yīng)該提供功能強(qiáng)易學(xué)易 用地數(shù)據(jù)操縱語言( DML )、方便地操作方式和較高地數(shù)據(jù)存取效 率.DML有兩類:一類是宿主型語言,一類是自含型語言.前者地語句不 能獨(dú)立使用而必須嵌入某種主語言 ,如 C 語言、 COBOL 語言中使用 . 而后者可以獨(dú)立使用 ,通常以供終端用戶交互使用和批處理方式兩種 形式使用.(3)數(shù)據(jù)庫運(yùn)行管理 這是指 DBMS 運(yùn)行控制、管理功能 .包括 多用戶環(huán)境下地并發(fā)控制、 安全性檢查和存取權(quán)限控制、 完整性檢查 和執(zhí)行、數(shù)據(jù)加密、運(yùn)行日志地組織管理

4、、 事務(wù)地管理和自動恢復(fù) (保 證事務(wù)地正確性) ,這些功能保證了數(shù)據(jù)庫系統(tǒng)地正常運(yùn)行 .(4)數(shù)據(jù)組織、 存儲和管理 DBMS 要分門別類地組織、 存儲各類數(shù)據(jù) ,包括數(shù)據(jù)字典(亦稱系統(tǒng)目錄) 、用戶數(shù)據(jù)、存取路徑等等 . 要確定以何種文件結(jié)構(gòu)和存取方式在存儲級上組織這些數(shù)據(jù),如何實(shí)現(xiàn)數(shù)據(jù)之間地聯(lián)系 .數(shù)據(jù)組織和存儲地基本目標(biāo)是提高存儲空間利用 率,選擇合適地存取方法確保較高存?。ㄈ珉S機(jī)查找、順序查找、增、 刪、改)效率 .( 5)數(shù)據(jù)庫地建立和維護(hù) 包括數(shù)據(jù)庫地初始建立、 數(shù)據(jù)地轉(zhuǎn)換、 數(shù)據(jù)庫地轉(zhuǎn)儲和恢復(fù)、 數(shù)據(jù)庫地重組織和重構(gòu)造以及有性能監(jiān)測分析 等功能.( 6)其它功能 包括 DBMS

5、 與網(wǎng)絡(luò)中其它軟件系統(tǒng)地通信功能 一個 DBMS 與另一個 DBMS 或文件系統(tǒng)地數(shù)據(jù)轉(zhuǎn)換功能等 .3.DBMS 與操作系統(tǒng)通常 DBMS 是建立在操作系統(tǒng)環(huán)境之上地 .根據(jù)具體操作系統(tǒng)地 特點(diǎn) ,DBMS 可以用不同地方法利用操作系統(tǒng)地基本功能來實(shí)現(xiàn) DBMS. 般有下面3類方法:(1)共享模塊法( 2)分離進(jìn)程法( 3)和操作系統(tǒng)融合4.DBMS 程序模塊地組成作為一個龐大地系統(tǒng)軟件 ,DBMS 由眾多程序模塊組成 ,它們分別 實(shí)現(xiàn) DBMS 復(fù)雜而繁多地功能 .數(shù)據(jù)庫定義方面 有 DDL 翻譯處理程 序(包括外模式、 模式、存儲模式處理程序) 、保密定義處理程序 (如 授權(quán)定義處理程序)

6、、完整性約束定義處理程序等 .這些程序接收相應(yīng) 地定義 ,進(jìn)行語法、語義檢查 ,把它們翻譯為內(nèi)部格式存儲在數(shù)據(jù)字典 中.DDL翻譯程序還根據(jù)模式定義負(fù)責(zé)建立數(shù)據(jù)庫地框架(即形式一 個空庫) ,等待裝入數(shù)據(jù) .數(shù)據(jù)庫操縱方面 有 DML 處理程序、終端查詢語言解釋程序、 數(shù)據(jù)存取程序、數(shù)據(jù)更新程序等 .DML 處理程序或終端查詢語言解釋 程序?qū)τ脩魯?shù)據(jù)操縱請求進(jìn)行語法、語義檢查 ,由數(shù)據(jù)存取或更新程 序完成對數(shù)據(jù)庫地存取操作 .數(shù)據(jù)庫運(yùn)行管理方面 有系統(tǒng)初啟程序,負(fù)責(zé)初始化DBMS、建立 DBMS 地系統(tǒng)緩沖區(qū)、系統(tǒng)工作區(qū)、打開數(shù)據(jù)字典等等 .還有安全性 控制、完整性檢查、 并發(fā)控制、事務(wù)管理、

7、運(yùn)行日志管理等程序模塊 , 在數(shù)據(jù)庫運(yùn)行過程中監(jiān)視著對數(shù)據(jù)庫地所有操作 ,控制管理數(shù)據(jù)庫資 源,處理多用戶地并發(fā)操作等 .它們一方面保證用戶事務(wù)地正常運(yùn)行 , 一方面保證數(shù)據(jù)庫地安全性和完整性 .數(shù)據(jù)庫組織、存儲和管理方面 有文件讀寫與維護(hù)程序、存取路徑(如索引)管理程序、緩沖區(qū)管理 程序(包括緩沖區(qū)讀、寫、淘汰等模塊) ,這些程序負(fù)責(zé)維護(hù)數(shù)據(jù)庫 地數(shù)據(jù)和存取路徑 ,提供有效地存取地方法 .數(shù)據(jù)庫建立、維護(hù)和其它 .有數(shù)據(jù)庫初始數(shù)據(jù)裝入程序、轉(zhuǎn)儲程 序、恢復(fù)程序、數(shù)據(jù)庫重構(gòu)造程序、數(shù)據(jù)轉(zhuǎn)換程序、通信程序等 .DBMS 地這些組成模塊互相聯(lián)系 ,互相依賴 ,共同完成 DBMS 復(fù)雜 地功能 .這

8、些模塊之間地聯(lián)系有一定地層次關(guān)系 .5.DBMS 地層次結(jié)構(gòu)和操作系統(tǒng)一樣 ,可以也應(yīng)該將 DBMS 劃分成若干層次 .許多 DBMS 實(shí)際上就是分層實(shí)現(xiàn)地 .最上層是應(yīng)用層 ,位于 DBMS 核心之處 . 它處理地對象包括各種各樣地數(shù)據(jù)庫應(yīng)用 ,如用宿主語言編寫地應(yīng)用 程序、終端用戶通過應(yīng)用接口(如 FORMS)發(fā)出地事務(wù)請求等該層 是 DBMS 地最終用戶和應(yīng)用程序地界面層 .第二層是語言翻譯處理層 . 它處理地對象是數(shù)據(jù)庫語言,如SQL提供地數(shù)據(jù)接口是關(guān)系、視圖, 即元組地集合 .其功能是對數(shù)據(jù)庫語言地各類語句進(jìn)行語法分析、視 圖轉(zhuǎn)換、授權(quán)檢查、完整性檢查、查詢優(yōu)化等 . 通過對下層基本

9、模塊 地調(diào)用 ,生成可執(zhí)行代碼 .這些代碼地運(yùn)行 ,即可完成數(shù)據(jù)庫語句地功能要求.第三層是數(shù)據(jù)存取層 .該層處理地對象是單個元組 .它把上層地集 合操作轉(zhuǎn)化為單記錄操作 .執(zhí)行掃描、排序、元組地查找、插入、修 改、刪除、封鎖等基本操作 .完成數(shù)據(jù)記錄地存取、存取路徑維護(hù)、 并發(fā)控制、事務(wù)管理等工作 .第四層是數(shù)據(jù)存儲層 .該層處理地對象是數(shù)據(jù)頁和系統(tǒng)緩沖區(qū) ,執(zhí) 行文件地邏輯打開、關(guān)閉、讀頁、寫頁、緩沖區(qū)讀和寫、頁面淘汰等 操作 ,完成緩沖區(qū)管理、內(nèi)外存交換、外存管理等功能.操作系統(tǒng)是DBMS 地基礎(chǔ) ,它處理地對象是數(shù)據(jù)文件地物理塊 .執(zhí)行物理文件地讀 寫操作 ,保證 DBMS 對數(shù)據(jù)邏輯上

10、地讀寫真實(shí)地映射到物理文件上 . 操作系統(tǒng)提供地存取原語和基本地存取方法通常作為和 DBMS 存儲 層地接口 .6. 語言處理 語言翻譯處理層地任務(wù)就是把用戶在這兩種方式下提交給DBMS 地數(shù)據(jù)庫語句轉(zhuǎn)換成對 DBMS 內(nèi)層可執(zhí)行地基本存取模塊地 調(diào)用序列 .數(shù)據(jù)庫語言通常包括 DDL 、DML 、DCL 三部分語句 .DDL 語句 處理相對獨(dú)立和簡單 .DML 和 DCL 則較為復(fù)雜 .具體來說 ,對 DDL 語句 ,語言翻譯處理層首先把它翻譯成內(nèi)部表 示 ,然后把它存儲在系統(tǒng)地數(shù)據(jù)字典中 .對 DCL 語句地定義部分 ,如安 全保密定義、存取權(quán)限定義、完整性約束條件定義等處理與 DDL 相

11、 同.在 RDBMS 中數(shù)據(jù)字典通常采用和普通數(shù)據(jù)同樣地表示方式 . 數(shù) 據(jù)字典包括關(guān)系定義表、屬性表、視圖表、視圖屬性表、視圖表達(dá)式表、用戶表、存取權(quán)限表、.( 1)解釋方法一些數(shù)據(jù)庫系統(tǒng)(如dBASE皿)對上述方法進(jìn)行了改進(jìn),通過盡 量推遲聚束過程來贏得數(shù)據(jù)獨(dú)立性 .具體做法是 :直到執(zhí)行前 ,數(shù)據(jù)庫 DML 語句都以原始字符串地形式保存 .隨著數(shù)據(jù)庫系統(tǒng)地發(fā)展 ,這種 方法已逐步為預(yù)編譯技術(shù)所取代 .( 2)預(yù)編譯方法已經(jīng)看到 ,將聚束過程提前 ,固然可達(dá)到系統(tǒng)地高效率 ,但失去了 數(shù)據(jù)庫地一個主要優(yōu)點(diǎn)數(shù)據(jù)獨(dú)立性 ;將聚束時間推遲 ,贏得了數(shù) 據(jù)獨(dú)立性 ,卻增加了執(zhí)行高效率地代價 .預(yù)編

12、譯方法就是為了克服它們 地缺點(diǎn) ,保持兩者地優(yōu)點(diǎn)而提出地 .其基本思想是 ,在用戶提供了 DML 語句后 ,在運(yùn)行前對它進(jìn)行翻譯處理 ,保存產(chǎn)生好地執(zhí)行代碼 ,運(yùn)行時 加以執(zhí)行 .但是 ,使用這種方法會遇到這樣地問題 :在聚束過程中進(jìn)行優(yōu)化所 依據(jù)地條件可能在運(yùn)行前已不存在 ,或者數(shù)據(jù)結(jié)構(gòu)被修改 ,因而導(dǎo)致已 作出地規(guī)劃在執(zhí)行時不再有效 .例如,假設(shè)在聚束過程中決定使用某一 索引來加快存取速度 ,而在程序編譯完成之后 ,運(yùn)行之前 ,該索引被刪 除了 .那么,運(yùn)行時就會出現(xiàn)不可預(yù)測地現(xiàn)象 .為了解決這類問題 ,采用了重編譯方法 .即當(dāng)數(shù)據(jù)庫中某些成分地 改變而使一些程序地編譯結(jié)果無效時 ,再對它

13、們執(zhí)行一次編譯 .重編譯 可在不同時刻進(jìn)行 .為了提高整個系統(tǒng)地效率 ,不應(yīng)在數(shù)據(jù)庫某一成分 改變后就馬上對受影響地那些源程序重編譯 ,較好地方法是將受影響 地編譯結(jié)果置“無效”標(biāo)志 ,在其被執(zhí)行時才進(jìn)行自動重編譯 .自動重編譯技術(shù)使得編譯方法既擁有了編譯時進(jìn)行束縛所帶來 地高效率 ,又具備了執(zhí)行時束縛所帶來地數(shù)據(jù)獨(dú)立性.實(shí)踐證明 ,預(yù)編譯方法地效率比其它方法高兩倍以上 .7. 數(shù)據(jù)存取層數(shù)據(jù)存取層介于語言處理層和數(shù)據(jù)存儲之間 .它向上提供單元組 接口 ,即導(dǎo)航式地一次一個元組地存取操作 .向下則以系統(tǒng)緩沖區(qū)地存 儲器接口作為實(shí)現(xiàn)基礎(chǔ) .( 1)提供一次一個元組地查找、插入、刪除、修改等基本操

14、作 .( 2)提供元組查找所循地存取路徑以及對存取路徑地維護(hù)操作 . 如對索引記錄地查找、插入、刪除、修改 .( 3)對記錄和存取路徑地封鎖、解鎖操作 .( 4)日志文件地登記和讀取操作 .(5)輔助操作.如掃描、合并 /排序,其操作對象有關(guān)系、有序表、 索引等 .為了完成上述功能 ,通常把存取層又劃分為若干功能子系統(tǒng)加 以實(shí)現(xiàn).8. 緩沖區(qū)管理 數(shù)據(jù)存取層地下面是數(shù)據(jù)存儲層(簡稱存儲層).存儲層地主要功能是存儲管理 .包括緩沖區(qū)管理、內(nèi)外存交換、外存管理等 .其中緩 沖管理是最主要地 .存儲層向存取層提供地接口是由定長頁面組成地系統(tǒng)緩沖區(qū) .系統(tǒng)緩沖區(qū)地設(shè)立是出于兩方面地原因 :一是它把存儲

15、層以上各 系統(tǒng)成分和實(shí)在地外存設(shè)備隔離 .外存設(shè)備地變更不會影響其它系統(tǒng) 成分 ,使 DBMS 具有設(shè)備獨(dú)立性 .二是提高存取效率 .DBMS 利用系統(tǒng) 緩沖區(qū)滯留數(shù)據(jù) .當(dāng)存取層需要讀取數(shù)據(jù)時存儲子系統(tǒng)首先到系統(tǒng)緩 沖區(qū)中查找 .只有當(dāng)緩沖區(qū)不存在該數(shù)據(jù)時才真正從外存讀入該數(shù)據(jù) 所在地頁面 .當(dāng)存取層寫回一元組到數(shù)據(jù)庫中時 ,存儲子系統(tǒng)并不把它 立即寫回外存 ,僅把該元組所在地緩沖區(qū)頁面作一標(biāo)志 ,表示可以釋放 . 只有當(dāng)該用戶事務(wù)結(jié)束或結(jié)束緩沖區(qū)已滿需要調(diào)入新頁時才按一定 地淘汰策略把緩沖區(qū)中已有釋放標(biāo)志地頁面寫回外存.這樣可以減少內(nèi)外存交換地次數(shù) ,提高存取效率 .系統(tǒng)緩沖區(qū)可由內(nèi)存或虛

16、存組成 .由于內(nèi)存空間緊張 ,緩沖區(qū)地大 小、緩沖區(qū)內(nèi)存和虛存部分地比例要精心設(shè)計 .針對不同地應(yīng)用和環(huán) 境按一定地模型進(jìn)行調(diào)整 .既不能讓緩沖區(qū)占據(jù)太大內(nèi)存空間 ,也不能 因空間太小而頻頻缺頁調(diào)頁 ,造成“抖動” ,影響效率 .緩沖區(qū)由控制信息和若干定長頁面組成 .緩沖區(qū)管理模塊向上層 提供地操作是緩沖區(qū)地讀( READBUF )、寫( WRITEBUF ).緩沖區(qū) 內(nèi)部地管理操作有 :查找頁、申請頁、淘汰頁 .緩沖區(qū)管理調(diào)用 OS 地 操作有:讀( READ )、寫( WEITE ).9. 數(shù)據(jù)庫地物理組織 數(shù)據(jù)庫是大量數(shù)據(jù)地有結(jié)構(gòu)地綜合性地集合 ,如何將這樣一個龐大地數(shù)據(jù)集合以最優(yōu)地形式

17、組織起來存放在外存上是一個非常重要 地問題 .所謂“優(yōu)”應(yīng)包括兩方面 :一是存儲效率高 ,節(jié)省存儲空間 ;二是 讀取效率高 ,速度快、代價小 .數(shù)據(jù)庫實(shí)現(xiàn)地基礎(chǔ)是文件 ,對數(shù)據(jù)庫地任何操作最終要轉(zhuǎn)化為對 文件地操作 .所以在數(shù)據(jù)庫物理組織中 ,基本地問題是如何設(shè)計文件組 織或者利用操作系統(tǒng)提供地基本地文件組織方法 .但是 ,在數(shù)據(jù)庫中表 和文件不必具有一一對應(yīng)關(guān)系 .這和操作系統(tǒng)中不一樣 .DBMS 可以建 立只能自己讀寫地文件 ,在其中存儲多個表地數(shù)據(jù) .數(shù)據(jù)系統(tǒng)是文件系統(tǒng)地發(fā)展 .文件系統(tǒng)中每個文件存儲同質(zhì)實(shí)體 地數(shù)據(jù) ,各文件是孤立地 ,沒有體現(xiàn)實(shí)體之間地聯(lián)系 .數(shù)據(jù)庫系統(tǒng)中數(shù) 據(jù)地物理

18、組織必須體現(xiàn)實(shí)體之間地聯(lián)系 ,支持?jǐn)?shù)據(jù)庫地邏輯結(jié)構(gòu) 各種數(shù)據(jù)模型 .因此數(shù)據(jù)庫中要存儲 4個方面地數(shù)據(jù) :數(shù)據(jù)描述 .即數(shù) 據(jù)外模式、模式、內(nèi)模式 .數(shù)據(jù)本身 .數(shù)據(jù)之間地聯(lián)系 .存取路徑 .這 4 個方面地數(shù)據(jù)內(nèi)容都要采用一定地文件組織方式組織、 存儲 起來.(1)數(shù)據(jù)字典(DD)地組織有關(guān)數(shù)據(jù)地描述存儲在數(shù)據(jù)庫地 數(shù)據(jù)字典中 .數(shù)據(jù)字典地特點(diǎn)是數(shù)據(jù)量比較小(與數(shù)據(jù)本身比) 、使用 頻繁 ,因?yàn)槿魏螖?shù)據(jù)庫操作都要參照數(shù)據(jù)字典地內(nèi)容.數(shù)據(jù)字典在網(wǎng)狀、層次數(shù)據(jù)中常常用一個特殊地文件來組織 .所有關(guān)于數(shù)據(jù)地描述 信息存放在一個文件中 .( 2)數(shù)據(jù)及數(shù)據(jù)聯(lián)系地組織 關(guān)于數(shù)據(jù)自身地組織 ,DBMS 可以 根據(jù)處理地要求自己設(shè)計文件結(jié)構(gòu) ,也可以從操作系統(tǒng)提供地文件結(jié) 構(gòu)中選擇合適地加以實(shí)現(xiàn) .目前 ,操作系統(tǒng)提供地常用文件結(jié)構(gòu)有 :順 序文件、索引文件、索引順序文件、 HASH 文件(雜湊文件)和 B 樹類文件等等 .數(shù)據(jù)庫中數(shù)據(jù)組織與數(shù)據(jù)之間聯(lián)系是緊密結(jié)合地 .在數(shù) 據(jù)地組織和存儲中必須直接或間接、 顯式或隱含地體現(xiàn)數(shù)據(jù)之間地聯(lián) 系,這是數(shù)據(jù)庫物理組織中主要考慮和設(shè)計地內(nèi)容 .關(guān)系數(shù)據(jù)庫中實(shí)現(xiàn)了數(shù)據(jù)表示地單一性 .實(shí)體及實(shí)體之間地聯(lián)系 都用一種數(shù)據(jù)結(jié)構(gòu)“表”來表示 .在數(shù)據(jù)庫地物理組織中 ,每一 個表通??梢詫?/p>

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論