專業(yè)指導(dǎo):計(jì)算機(jī)考試DBMS的主要功能和組成部分
公務(wù)員考試專用訓(xùn)練軟件《公務(wù)員考試百寶箱》1.0版
1.數(shù)據(jù)庫的定義功能。DBMS提供DDL定義數(shù)據(jù)庫的結(jié)構(gòu)、包括外模式、內(nèi)模式及其相互之間的映象,定義數(shù)據(jù)的完整性約束、保密限制等約束條件。定義工作是由DBA完成的。因此在DBMS中包括DDL的編譯程序,它把用DDL編寫的各種源模式編譯成相應(yīng)的目標(biāo)模式。這些目標(biāo)模式是對數(shù)據(jù)庫的描述,而不是數(shù)據(jù)本身,它們是數(shù)據(jù)庫的框架(即結(jié)構(gòu)),并被保存在數(shù)據(jù)字典中,供以后進(jìn)行數(shù)據(jù)操縱或數(shù)據(jù)控制時(shí)查閱使用。2.數(shù)據(jù)庫操縱功能。DBMS提供DML實(shí)現(xiàn)對數(shù)據(jù)庫的操作;镜臄(shù)據(jù)操作有四種:檢索、插入、刪除和修改。DML有兩類,一類是嵌入在宿主語言中使用,例如嵌入在COBOL、FORTRAN、C等高級語言中,這類DML稱為宿主型DML。另一類是可以獨(dú)立性交互使用的DML,稱為自主型或自含型DML。因而DBMS中必須包括DML的編譯程序或解釋程序。
3.數(shù)據(jù)庫運(yùn)行控制功能。DBMS對數(shù)據(jù)庫的控制主要通過四個(gè)方面實(shí)現(xiàn):數(shù)據(jù)安全性控制數(shù)據(jù)完整性控制、多用戶環(huán)境下的并發(fā)控制和數(shù)據(jù)庫的恢復(fù)。
(a)數(shù)據(jù)庫安全性的控制是對數(shù)據(jù)庫的一種保護(hù)。它的作用是防止被未授權(quán)的用戶存取數(shù)據(jù)庫中的數(shù)據(jù)。要想使用數(shù)據(jù)的用戶,首先必須向DBMS標(biāo)識自己,然后系統(tǒng)確定他是否可以對指定的數(shù)據(jù)進(jìn)行存取。防止被未授權(quán)的用戶蓄謀或無意地修改數(shù)據(jù)是很重要的,否則會(huì)導(dǎo)致數(shù)據(jù)完整性的破壞,從而使企業(yè)蒙受巨大的損失。
(b)數(shù)據(jù)完整性控制是DBMS對數(shù)據(jù)庫提供保護(hù)的另一個(gè)重要方面。完整性是數(shù)據(jù)的準(zhǔn)確性和一致性的測度。當(dāng)數(shù)據(jù)加入到數(shù)據(jù)庫時(shí),對數(shù)據(jù)的合法性和一致性的檢驗(yàn)將會(huì)提高數(shù)據(jù)的完整性程度。完整性控制的目的保持進(jìn)入數(shù)據(jù)庫中的存儲(chǔ)數(shù)據(jù)的語義的正確性和有效性,防止任何操作對數(shù)據(jù)造成違反其語義的改變。因此,DBMS都允許對數(shù)據(jù)庫中各類數(shù)據(jù)定義若干語義完整性約束,由DBMS強(qiáng)制實(shí)行。
(c)并發(fā)控制是DBMS的第三類控制機(jī)制。數(shù)據(jù)庫技術(shù)的一個(gè)優(yōu)點(diǎn)是數(shù)據(jù)的共享性。但多應(yīng)用程序同時(shí)對數(shù)據(jù)庫進(jìn)行操作可能會(huì)破壞數(shù)據(jù)的正確性:或者在數(shù)據(jù)庫內(nèi)存儲(chǔ)了錯(cuò)誤的數(shù)據(jù),或者用戶讀取了不正確的數(shù)據(jù)(稱為臟數(shù)據(jù))。并發(fā)控制機(jī)構(gòu)能防止上述情況發(fā)生,正確處理好多用戶、多任務(wù)環(huán)境下的并發(fā)操作。
(d)數(shù)據(jù)庫的恢復(fù)機(jī)構(gòu)是保護(hù)數(shù)據(jù)庫的又一個(gè)重要方面。在數(shù)據(jù)庫建立后運(yùn)行中要不斷地對數(shù)據(jù)庫進(jìn)行操作,就可能會(huì)出現(xiàn)各種故障,例如停電、軟硬件各種錯(cuò)誤、人為破壞等,從而導(dǎo)致數(shù)據(jù)庫損壞,或者數(shù)據(jù)不正確了。此時(shí)DBMS的恢復(fù)機(jī)構(gòu)就有能力把數(shù)據(jù)庫從被破壞的、不正確的狀態(tài),恢復(fù)至以前某個(gè)正確的狀態(tài)。為了保證恢復(fù)工作的正常進(jìn)行,系統(tǒng)要經(jīng)常為數(shù)據(jù)庫建立若干備份副本(一般放在磁帶上)。
DBMS的其它控制功能還有系統(tǒng)緩沖區(qū)的管理以及數(shù)據(jù)存儲(chǔ)的某些自適應(yīng)調(diào)節(jié)機(jī)制等。
(4)數(shù)據(jù)庫的維護(hù)功能。這一部分包括數(shù)據(jù)庫的初始數(shù)據(jù)的載入、轉(zhuǎn)換功能、數(shù)據(jù)庫的轉(zhuǎn)儲(chǔ)功能、數(shù)據(jù)庫的重組織功能和性質(zhì)監(jiān)視、分析功能等。這些功能大都由各個(gè)實(shí)用程序來完成。例如裝配程序(裝配數(shù)據(jù)庫)、重組程序(重新組織數(shù)據(jù)庫)、日志程序(用于更新操作和數(shù)據(jù)庫的恢復(fù))、統(tǒng)計(jì)分析程序等。
(5)數(shù)據(jù)字典(Data Dictionary,記為DD)。DD中存放著數(shù)據(jù)庫三級結(jié)構(gòu)的描述。對于數(shù)據(jù)庫的操作都要通過查閱DD進(jìn)行,F(xiàn)在有的大型系統(tǒng)中,把DD單獨(dú)抽出來自成一個(gè)系統(tǒng),成為一個(gè)軟件工具,使得DD成為一個(gè)比DBMS更高級的用戶和數(shù)據(jù)庫之間的接口。
上面是一般的DBMS所具備的功能。通常在大、中型機(jī)上實(shí)現(xiàn)的DBMS功能較強(qiáng)、較全,在微機(jī)上實(shí)現(xiàn)的DBMS功能較弱。
還應(yīng)指出,用宿主語言編寫的應(yīng)用程序并不屬于DBMS的范圍。應(yīng)用程序是用主語言和DML編寫的。程序中的DML語句是由DBMS解釋執(zhí)行的,而其余部分仍由主語言編譯系統(tǒng)去編譯。
為了進(jìn)一步加深了解DBMS的功能,我們考察一個(gè)應(yīng)用程序A如何通過DBMS讀取數(shù)據(jù)庫中的一個(gè)記錄的全過程(圖1.8)。在應(yīng)用程序A運(yùn)行時(shí),DBMS開辟一個(gè)數(shù)據(jù)庫的系統(tǒng)緩沖區(qū),用于輸入輸出數(shù)據(jù)。外模式、模式、內(nèi)模式的定義存放在數(shù)據(jù)字典中。
(1) 用戶在其應(yīng)用程序中安排一條讀記錄的DML語句。該語句給出被涉及的外模式中記錄類型名及欲讀記錄的關(guān)鍵碼值。當(dāng)計(jì)算機(jī)執(zhí)行該DML語句時(shí),立即啟動(dòng)DBMS,并向DBMS發(fā)出讀記錄的命令。
(2)DBMS接到命令后,首先訪問該用戶對應(yīng)的外模式,檢查該操作是否在合法授權(quán)范圍內(nèi),若不合法則拒絕執(zhí)行并向應(yīng)用程序狀態(tài)返回區(qū)發(fā)出不成功的狀態(tài)信息;若合法則執(zhí)行下一步。
(3)DBMS讀取相應(yīng)的模式描述,并從外模式映象到模式,也就是把外模式的外部記錄格式映象到概念模式的概念記錄格式,決定概念模式應(yīng)讀入哪些記錄。
(4)DBMS調(diào)用相應(yīng)的內(nèi)模式描述,并從把概念模式映象到內(nèi)模式,即把概念模式的概念記錄格式映象到內(nèi)模式的內(nèi)部記錄格式,確定應(yīng)讀入哪些物理記錄以及具體的地址信息。
(5)DBMS向操作系統(tǒng)(OS)發(fā)出從指定地址讀物理記錄的命令。
(6)DBMS操作系統(tǒng)執(zhí)行讀命令,按指定地址從數(shù)據(jù)庫中把記錄讀入數(shù)據(jù)庫的系統(tǒng)緩沖區(qū),并在操作結(jié)束后向DBMS作出回答。
(7)DBMS收到OS讀操作結(jié)束的回答后,參照模式,將讀入系統(tǒng)緩沖區(qū)中的內(nèi)容變換成概念記錄,再參照外模式,變換成用戶要求讀取的外部記錄。
(8)DBMS所導(dǎo)出的外部記錄從系統(tǒng)緩沖區(qū)送到應(yīng)用程序A的“程序工作區(qū)”中。
(9)DBMS向運(yùn)行日志數(shù)據(jù)庫發(fā)出讀一條記錄的信息。以備以后查詢使用數(shù)據(jù)庫的情況。
(10)DBMS將操作執(zhí)行成功與否的狀態(tài)信息返回給用戶。
公務(wù)員考試專用訓(xùn)練軟件《公務(wù)員考試百寶箱》1.0版
(11)DBMS應(yīng)用程序根據(jù)返回的狀態(tài)信息決定是否使用工作區(qū)中的數(shù)據(jù)。
如果用戶需修改一個(gè)記錄內(nèi)容,其過程與此類似。這時(shí)首先讀出目標(biāo)記錄,并在用戶工作區(qū)中用主語言的語句進(jìn)行修改,然后向DBMS發(fā)出寫回修改記錄的命令。DBMS在系統(tǒng)緩沖區(qū)進(jìn)行必要的轉(zhuǎn)換(轉(zhuǎn)換的過程與讀數(shù)據(jù)時(shí)相反)后向操作系統(tǒng)發(fā)出寫命令,即可達(dá)到修改數(shù)據(jù)的目的。
[1]
輔導(dǎo)課程
圖書推薦
特別聲明
由于各方面情況的不斷調(diào)整與變化,本站所提供的公務(wù)員信息僅供參考,請以官方機(jī)構(gòu)發(fā)布為準(zhǔn),本站對發(fā)布信息的真實(shí)性、準(zhǔn)確性不負(fù)任何職責(zé)。
轉(zhuǎn)載貴州好工作公務(wù)員信息請務(wù)必注明出處(http://www.qdbaoqi.com)。信息版權(quán)歸原始作者所有。
如果本站所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會(huì)及時(shí)修改或刪除處理。
轉(zhuǎn)載貴州好工作公務(wù)員信息請務(wù)必注明出處(http://www.qdbaoqi.com)。信息版權(quán)歸原始作者所有。
如果本站所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會(huì)及時(shí)修改或刪除處理。