1.資料庫的定義功能。DBMS提供DDL定義資料庫的結構、包括外模式、內模式及其相互之間的映象,定義資料的完整性約束、保密限制等約束條件。定義工作是由DBA完成的。因此在DBMS中包括DDL的編譯程式,它把用DDL編寫的各種源模式編譯成相應的目標模式。這些目標模式是對資料庫的描述,而不是資料本身,它們是資料庫的框架(即結構),並被儲存在資料字典中,供以後進行資料操縱或資料控制時查閱使用。
2.資料庫操縱功能。DBMS提供DML實現對資料庫的操作。基本的資料操作有四種:檢索、插入、刪除和修改。DML有兩類,一類是嵌入在宿主語言中使用,例如嵌入在COBOL、FORTRAN、C等高階語言中,這類DML稱為宿主型DML。另一類是可以獨立性互動使用的DML,稱為自主型或自含型DML。因而DBMS中必須包括DML的編譯程式或解釋程式。
3.資料庫執行控制功能。DBMS對資料庫的控制主要透過四個方面實現:資料安全性控制資料完整性控制、多使用者環境下的併發控制和資料庫的恢復。
(a)資料庫安全性的控制是對資料庫的一種保護。它的作用是防止被未授權的使用者存取資料庫中的資料。要想使用資料的使用者,首先必須向DBMS標識自己,然後系統確定他是否可以對指定的資料進行存取。防止被未授權的使用者蓄謀或無意地修改資料是很重要的,否則會導致資料完整性的破壞,從而使企業蒙受巨大的損失。
(b)資料完整性控制是DBMS對資料庫提供保護的另一個重要方面。完整性是資料的準確性和一致性的測度。當資料加入到資料庫時,對資料的合法性和一致性的檢驗將會提高資料的完整性程度。完整性控制的目的保持進入資料庫中的儲存資料的語義的正確性和有效性,防止任何操作對資料造成違反其語義的改變。因此,DBMS都允許對資料庫中各類資料定義若干語義完整性約束,由DBMS強制實行。
(c)併發控制是DBMS的第三類控制機制。資料庫技術的一個優點是資料的共享性。但多應用程式同時對資料庫進行操作可能會破壞資料的正確性:或者在資料庫記憶體儲了錯誤的資料,或者使用者讀取了不正確的資料(稱為髒資料)。併發控制機構能防止上述情況發生,正確處理好多使用者、多工環境下的併發操作。
(d)資料庫的恢復機構是保護資料庫的又一個重要方面。在資料庫建立後執行中要不斷地對資料庫進行操作,就可能會出現各種故障,例如停電、軟硬體各種錯誤、人為破壞等,從而導致資料庫損壞,或者資料不正確了。此時DBMS的恢復機構就有能力把資料庫從被破壞的、不正確的狀態,恢復至以前某個正確的狀態。為了保證恢復工作的正常進行,系統要經常為資料庫建立若干備份副本(一般放在磁帶上)。
DBMS的其它控制功能還有系統緩衝區的管理以及資料儲存的某些自適應調節機制等。
(4)資料庫的維護功能。這一部分包括資料庫的初始資料的載入、轉換功能、資料庫的轉儲功能、資料庫的重組織功能和性質監視、分析功能等。這些功能大都由各個實用程式來完成。例如裝配程式(裝配資料庫)、重組程式(重新組織資料庫)、日誌程式(用於更新操作和資料庫的恢復)、統計分析程式等。
(5)資料字典(Data Dictionary,記為DD)。DD中存放著資料庫三級結構的描述。對於資料庫的操作都要透過查閱DD進行。現在有的大型系統中,把DD單獨抽出來自成一個系統,成為一個軟體工具,使得DD成為一個比DBMS更高階的使用者和資料庫之間的介面。
上面是一般的DBMS所具備的功能。通常在大、中型機上實現的DBMS功能較強、較全,在微機上實現的DBMS功能較弱。
還應指出,用宿主語言編寫的應用程式並不屬於DBMS的範圍。應用程式是用主語言和DML編寫的。程式中的DML語句是由DBMS解釋執行的,而其餘部分仍由主語言編譯系統去編譯。
為了進一步加深瞭解DBMS的功能,我們考察一個應用程式A如何透過DBMS讀取資料庫中的一個記錄的全過程(圖1.8)。在應用程式A執行時,DBMS開闢一個數據庫的系統緩衝區,用於輸入輸出資料。外模式、模式、內模式的定義存放在資料字典中。
(1) 使用者在其應用程式中安排一條讀記錄的DML語句。該語句給出被涉及的外模式中記錄型別名及欲讀記錄的關鍵碼值。當計算機執行該DML語句時,立即啟動DBMS,並向DBMS發出讀記錄的命令。
(2)DBMS接到命令後,首先訪問該使用者對應的外模式,檢查該操作是否在合法授權範圍內,若不合法則拒絕執行並嚮應用程式狀態返回區發出不成功的狀態資訊;若合法則執行下一步。
(3)DBMS讀取相應的模式描述,並從外模式映象到模式,也就是把外模式的外部記錄格式映象到概念模式的概念記錄格式,決定概念模式應讀入哪些記錄。
(4)DBMS呼叫相應的內模式描述,並從把概念模式映象到內模式,即把概念模式的概念記錄格式映象到內模式的內部記錄格式,確定應讀入哪些物理記錄以及具體的地址資訊。
(5)DBMS向作業系統(OS)發出從指定地址讀物理記錄的命令。
(6)DBMS作業系統執行讀命令,按指定地址從資料庫中把記錄讀入資料庫的系統緩衝區,並在操作結束後向DBMS作出回答。
(7)DBMS收到OS讀操作結束的回答後,參照模式,將讀入系統緩衝區中的內容變換成概念記錄,再參照外模式,變換成使用者要求讀取的外部記錄。
(8)DBMS所匯出的外部記錄從系統緩衝區送到應用程式A的“程式工作區”中。
(9)DBMS向執行日誌資料庫發出讀一條記錄的資訊。以備以後查詢使用資料庫的情況。
(10)DBMS將操作執行成功與否的狀態資訊返回給使用者。
參考:
1.資料庫的定義功能。DBMS提供DDL定義資料庫的結構、包括外模式、內模式及其相互之間的映象,定義資料的完整性約束、保密限制等約束條件。定義工作是由DBA完成的。因此在DBMS中包括DDL的編譯程式,它把用DDL編寫的各種源模式編譯成相應的目標模式。這些目標模式是對資料庫的描述,而不是資料本身,它們是資料庫的框架(即結構),並被儲存在資料字典中,供以後進行資料操縱或資料控制時查閱使用。
2.資料庫操縱功能。DBMS提供DML實現對資料庫的操作。基本的資料操作有四種:檢索、插入、刪除和修改。DML有兩類,一類是嵌入在宿主語言中使用,例如嵌入在COBOL、FORTRAN、C等高階語言中,這類DML稱為宿主型DML。另一類是可以獨立性互動使用的DML,稱為自主型或自含型DML。因而DBMS中必須包括DML的編譯程式或解釋程式。
3.資料庫執行控制功能。DBMS對資料庫的控制主要透過四個方面實現:資料安全性控制資料完整性控制、多使用者環境下的併發控制和資料庫的恢復。
(a)資料庫安全性的控制是對資料庫的一種保護。它的作用是防止被未授權的使用者存取資料庫中的資料。要想使用資料的使用者,首先必須向DBMS標識自己,然後系統確定他是否可以對指定的資料進行存取。防止被未授權的使用者蓄謀或無意地修改資料是很重要的,否則會導致資料完整性的破壞,從而使企業蒙受巨大的損失。
(b)資料完整性控制是DBMS對資料庫提供保護的另一個重要方面。完整性是資料的準確性和一致性的測度。當資料加入到資料庫時,對資料的合法性和一致性的檢驗將會提高資料的完整性程度。完整性控制的目的保持進入資料庫中的儲存資料的語義的正確性和有效性,防止任何操作對資料造成違反其語義的改變。因此,DBMS都允許對資料庫中各類資料定義若干語義完整性約束,由DBMS強制實行。
(c)併發控制是DBMS的第三類控制機制。資料庫技術的一個優點是資料的共享性。但多應用程式同時對資料庫進行操作可能會破壞資料的正確性:或者在資料庫記憶體儲了錯誤的資料,或者使用者讀取了不正確的資料(稱為髒資料)。併發控制機構能防止上述情況發生,正確處理好多使用者、多工環境下的併發操作。
(d)資料庫的恢復機構是保護資料庫的又一個重要方面。在資料庫建立後執行中要不斷地對資料庫進行操作,就可能會出現各種故障,例如停電、軟硬體各種錯誤、人為破壞等,從而導致資料庫損壞,或者資料不正確了。此時DBMS的恢復機構就有能力把資料庫從被破壞的、不正確的狀態,恢復至以前某個正確的狀態。為了保證恢復工作的正常進行,系統要經常為資料庫建立若干備份副本(一般放在磁帶上)。
DBMS的其它控制功能還有系統緩衝區的管理以及資料儲存的某些自適應調節機制等。
(4)資料庫的維護功能。這一部分包括資料庫的初始資料的載入、轉換功能、資料庫的轉儲功能、資料庫的重組織功能和性質監視、分析功能等。這些功能大都由各個實用程式來完成。例如裝配程式(裝配資料庫)、重組程式(重新組織資料庫)、日誌程式(用於更新操作和資料庫的恢復)、統計分析程式等。
(5)資料字典(Data Dictionary,記為DD)。DD中存放著資料庫三級結構的描述。對於資料庫的操作都要透過查閱DD進行。現在有的大型系統中,把DD單獨抽出來自成一個系統,成為一個軟體工具,使得DD成為一個比DBMS更高階的使用者和資料庫之間的介面。
上面是一般的DBMS所具備的功能。通常在大、中型機上實現的DBMS功能較強、較全,在微機上實現的DBMS功能較弱。
還應指出,用宿主語言編寫的應用程式並不屬於DBMS的範圍。應用程式是用主語言和DML編寫的。程式中的DML語句是由DBMS解釋執行的,而其餘部分仍由主語言編譯系統去編譯。
為了進一步加深瞭解DBMS的功能,我們考察一個應用程式A如何透過DBMS讀取資料庫中的一個記錄的全過程(圖1.8)。在應用程式A執行時,DBMS開闢一個數據庫的系統緩衝區,用於輸入輸出資料。外模式、模式、內模式的定義存放在資料字典中。
(1) 使用者在其應用程式中安排一條讀記錄的DML語句。該語句給出被涉及的外模式中記錄型別名及欲讀記錄的關鍵碼值。當計算機執行該DML語句時,立即啟動DBMS,並向DBMS發出讀記錄的命令。
(2)DBMS接到命令後,首先訪問該使用者對應的外模式,檢查該操作是否在合法授權範圍內,若不合法則拒絕執行並嚮應用程式狀態返回區發出不成功的狀態資訊;若合法則執行下一步。
(3)DBMS讀取相應的模式描述,並從外模式映象到模式,也就是把外模式的外部記錄格式映象到概念模式的概念記錄格式,決定概念模式應讀入哪些記錄。
(4)DBMS呼叫相應的內模式描述,並從把概念模式映象到內模式,即把概念模式的概念記錄格式映象到內模式的內部記錄格式,確定應讀入哪些物理記錄以及具體的地址資訊。
(5)DBMS向作業系統(OS)發出從指定地址讀物理記錄的命令。
(6)DBMS作業系統執行讀命令,按指定地址從資料庫中把記錄讀入資料庫的系統緩衝區,並在操作結束後向DBMS作出回答。
(7)DBMS收到OS讀操作結束的回答後,參照模式,將讀入系統緩衝區中的內容變換成概念記錄,再參照外模式,變換成使用者要求讀取的外部記錄。
(8)DBMS所匯出的外部記錄從系統緩衝區送到應用程式A的“程式工作區”中。
(9)DBMS向執行日誌資料庫發出讀一條記錄的資訊。以備以後查詢使用資料庫的情況。
(10)DBMS將操作執行成功與否的狀態資訊返回給使用者。
參考: