一個(gè) DBMS 可以被分成若干軟件組件(或者模塊)董饰,每個(gè)組件都被分配了特定的功能。如前所述倦淀,DBMS 的一些功能是由基本的操作系統(tǒng)支持的蒋畜。然而,操作系統(tǒng)一般只提供基本服務(wù)撞叽,DBMS 建立在其上姻成。因此,DBMS 的設(shè)計(jì)必須要考慮 DBMS 與操作系統(tǒng)之間的接口問題愿棋。
下圖描述了 DBMS 環(huán)境中主要的軟件組件科展。這個(gè)圖顯示了 DBMS 如何解決與其他軟件組件(如用戶查詢和訪問方法(即存儲和檢索數(shù)據(jù)記錄的文件管理技術(shù)))的接口問題。
DBMS的主要組件
查詢處理器
這是 DBMS 的一個(gè)主要組件糠雨,它將所有的查詢轉(zhuǎn)換成一系列指導(dǎo)數(shù)據(jù)庫管理器運(yùn)行的底層指令才睹。數(shù)據(jù)庫管理器(DM)
DM 與用戶提交的應(yīng)用程序和查詢處理器的接口。DM 接受查詢并且檢查外部模式和概念模式甘邀,確定需要那些概念記錄才能滿足查詢請求琅攘。然后 DM 會通知文件管理器來執(zhí)行請求。文件管理器
文件管理器操縱基本存儲文件松邪。并管理磁盤存儲空間的分配坞琴。它建立和維護(hù)內(nèi)部模式中定義的結(jié)構(gòu)和索引的列表。如果要使用散列文件测摔,它就會調(diào)用散列函數(shù)置济,產(chǎn)生記錄地址。文件管理器不直接管理數(shù)據(jù)的物理輸入和輸出锋八,而是將請求傳遞給適當(dāng)?shù)牟僮飨到y(tǒng)訪問方法浙于,由它從系統(tǒng)緩沖區(qū)(或高速緩存)中讀出或?qū)懭霐?shù)據(jù)。DML 預(yù)處理器
這個(gè)模塊將嵌入應(yīng)用程序中的 DML 語句轉(zhuǎn)換成宿主語言中標(biāo)準(zhǔn)的函數(shù)調(diào)用挟纱。DML 預(yù)處理器必須與查詢處理器相互作用并產(chǎn)生適當(dāng)?shù)拇a羞酗。DDL 編譯器
DDL 編譯器將 DDL 語句轉(zhuǎn)換成一組包含元數(shù)據(jù)的表格。這些表格存儲在系統(tǒng)的目錄中紊服,控制信息將存儲在數(shù)據(jù)頭文件上檀轨。目錄管理器
目錄管理器控制著對系統(tǒng)目錄的訪問,并且維護(hù)系統(tǒng)目錄欺嗤。系統(tǒng)目錄可以被大多數(shù)的 DBMS 組件訪問参萄。
數(shù)據(jù)庫管理器的組件
授權(quán)控制
這個(gè)模塊檢查用戶是否具有必要的操作權(quán)限。命令處理器
一旦系統(tǒng)檢查確認(rèn)用戶具有進(jìn)行操作的權(quán)限煎饼,控制權(quán)將交給命令管理器讹挎。完整性檢查器
對于每個(gè)修改數(shù)據(jù)庫的操作,完整性檢查器檢查請求的操作是否放滿足所有必要的完整性約束(例如關(guān)鍵字約束)吆玖。查詢優(yōu)化器
這個(gè)模塊確定執(zhí)行查詢的最佳策略筒溃。事務(wù)管理器
這個(gè)模塊執(zhí)行從事務(wù)接受到操作的序列。調(diào)度程序
這個(gè)模塊的任務(wù)是確保當(dāng)前在數(shù)據(jù)庫中并發(fā)運(yùn)行的操作不相互沖突沾乘。它控制著事務(wù)中操作執(zhí)行的相對順序怜奖。恢復(fù)管理器
這個(gè)模塊確保當(dāng)發(fā)生失效時(shí)數(shù)據(jù)庫能夠保持一致的狀態(tài)。它還負(fù)責(zé)事務(wù)提交和終止翅阵。緩沖區(qū)管理器
這個(gè)模塊負(fù)責(zé)主存和輔存之間的數(shù)據(jù)傳輸歪玲,輔存包括磁盤和磁帶等≈澜常恢復(fù)管理器和緩沖區(qū)管理器有時(shí)候被統(tǒng)稱為數(shù)據(jù)管理器读慎。緩沖區(qū)管理器有時(shí)候也被稱為高速緩存管理器。