- 數據庫系統原理及應用教程(第4版)
- 劉瑞新等
- 5572字
- 2020-05-28 17:16:17
1.3 數據庫系統的結構
數據庫系統是指帶有數據庫并利用數據庫技術進行數據管理的計算機系統。一個數據庫系統應包括計算機硬件、數據庫、數據庫管理系統、應用程序系統及數據庫管理員。本節介紹數據庫系統的組成結構、數據庫管理系統的功能及數據庫的數據模型結構。
1.3.1 數據庫系統的體系結構
數據庫系統由支持系統的計算機硬件設備、數據庫及相關的計算機軟件系統、開發管理數據庫系統的人員三部分組成。簡單地說,數據庫系統包括硬件、軟件和人員。
1.數據庫系統需要的硬件資源及對硬件的要求
由于數據庫系統建立在計算機硬件基礎之上,它在必需的硬件資源支持下才能工作。因而系統的計算機設備配制情況是影響數據庫運行的重要因素。支持數據庫系統的計算機硬件資源包括計算機(服務器及客戶機)、數據通信設備(計算機網絡和多用戶數據傳輸設備)及其他外圍設備(特殊的數據輸入輸出設備,比如圖形掃描儀、大屏幕的顯示器及激光打印機)。
數據庫系統數據量大、數據結構復雜、軟件內容多,因而要求其硬件設備能夠快速處理它的數據。這就需要硬件的數據存儲容量大、數據處理速度和數據輸入輸出速度快。在進行數據庫系統的硬件配置時,應注意以下3方面的問題。
(1)計算機內存要盡量大
由于數據庫系統的軟件構成復雜,它包括操作系統、數據庫管理系統、應用程序及數據庫,工作時它們都需要一定的內存作為程序工作區或數據緩沖區。所以,數據庫系統與其他計算機系統相比需要更多的內存支持。計算機內存的大小對數據庫系統性能的影響是非常明顯的,內存大就可以建立較多較大的程序工作區或數據緩沖區,以管理更多的數據文件和控制更多的程序過程,進行比較復雜的數據管理和更快地進行數據操作。每種數據庫系統對計算機內存都有最低要求,如果計算機內存達不到其最低要求,系統將不能正常工作。
(2)計算機外存也要盡量大
由于數據庫中的數據量大和軟件種類多,它必然需要較大的外存空間來存儲其數據文件和程序文件。計算機外存主要有軟磁盤、磁帶和硬盤,其中硬盤是最主要的外存設備。數據庫系統要求硬盤的數據容量盡量大些。硬盤大有以下3個優點:①可以為數據文件和數據庫軟件提供足夠的空間,滿足數據和程序的存儲需要。②可以為系統的臨時文件提供存儲空間,保證系統能正常運行。③數據搜索時間會縮短,從而加快數據存取速度。
(3)計算機的數據傳輸速度要快
由于數據庫的數據量大而操作復雜度不大,數據庫工作時需要經常進行內、外存的交換操作,這就要求計算機不僅有較強的通道能力,而且數據存取和數據交換的速度要快。雖然計算機的運行速度由CPU計算速度和數據I/O的傳輸速度兩者決定,但是對于數據庫系統來說,加快數據I/O的傳輸速度是提高運行速度的關鍵,數據傳輸速度是數據庫系統效率的重要指標。
2.數據庫系統的軟件組成
數據庫系統體系結構中的硬件及軟件關系如圖1-3所示。

圖1-3 數據庫系統的系統結構
數據庫系統的軟件中包括操作系統(OS)、數據庫管理系統(DBMS)、主語言編譯系統、數據庫應用開發系統及工具、數據庫應用系統和數據庫,它們的作用如下所述。
(1)操作系統
操作系統是所有計算機軟件的基礎,在數據庫系統中它起著支持DBMS及主語言系統工作的作用。如果管理的信息中有漢字,則需要中文操作系統的支持,以提供漢字的輸入、輸出方法和漢字信息的處理方法。
(2)數據庫管理系統和主語言系統
數據庫管理系統(DBMS)是為定義、建立、維護、使用及控制數據庫而提供的有關數據管理的系統軟件。主語言編譯系統是為應用程序提供的諸如程序控制、數據輸入輸出、功能函數、圖形處理、計算方法等數據處理功能的系統軟件。由于數據庫的應用很廣泛,它涉及的領域很多,其功能DBMS不可能全部提供。因而,應用系統的設計與實現,需要DBMS和主語言編譯系統配合才能完成。
這樣做有3個好處:首先,它使得DBMS只需要考慮如何把有關數據管理和控制的功能做好而不需考慮其他功能,可使其操作便利、功能更好;其次,可使應用系統根據使用要求自由地選擇主語言(常用的主語言有C、COBOL、PL/I、FORTRAN等),給用戶帶來了極大的靈活性;最后,由于DBMS可以與多種語言配合使用,等于使這些主語言都具有了數據庫管理功能,或使DBMS具有其主語言的功能,這顯然拓寬了數據庫及主語言的應用領域,使它們能夠發揮更大的作用。
(3)數據庫應用開發工具軟件
數據庫應用開發工具是DBMS系統為應用開發人員和最終用戶提供的高效率、多功能的應用生成器、第4代計算機語言等各種軟件工具,如報表生成器、表單生成器、查詢和視圖設計器等,它們為數據庫系統的開發和使用提供了良好的環境和幫助。
(4)數據庫應用系統及數據庫
數據庫應用系統包括為特定應用環境建立的數據庫、開發的各類應用程序及編寫的文檔資料,它們是一個有機整體。數據庫應用系統涉及各個方面,例如信息管理系統、人工智能、計算機控制和計算機圖形處理等。通過運行數據庫應用系統,可以實現對數據庫中數據的維護、查詢、管理和處理操作。
3.數據庫系統的人員組成及數據庫管理員的職責
數據庫系統的人員由軟件開發人員、軟件使用人員及軟件管理人員組成。軟件開發人員包括系統分析員、系統設計員及程序設計員,他們主要負責數據庫系統的開發設計工作;軟件使用人員即數據庫最終用戶,他們利用功能選單、表格及圖形用戶界面等實現數據查詢及數據管理工作;軟件管理人員稱為數據庫管理員(Data Base Administrator,DBA),他們負責全面地管理和控制數據庫系統。數據庫管理員(DBA)的職責如下。
(1)數據庫管理員應參與數據庫和應用系統的設計
數據庫管理員只有參與數據庫及應用程序的設計,才能對數據庫結構及程序設計方法了解得更清楚,為以后的管理工作打下基礎。同時,由于數據庫管理員是用戶,他們對系統應用的現實世界非常了解,能夠提出更合理的要求和建議,所以有數據庫管理員參與系統及數據庫的設計,可以使其設計更合理。
(2)數據庫管理員應參與決定數據庫的存儲結構和存取策略的工作
數據庫管理員要綜合各用戶的應用要求,和數據庫設計員共同決定數據的存儲結構和存取策略,使數據的存儲空間利用得更合理,存取效率更高。
(3)數據庫管理員要負責定義數據的安全性要求和完整性條件
數據庫管理員的重要職責是保證數據庫的安全性和數據完整性。數據庫管理員要負責定義各用戶的數據使用權限、數據保密級別和數據完整性的約束條件。
(4)數據庫管理員負責監視和控制數據庫系統的運行,負責系統的維護和數據恢復
數據庫管理員要負責監視系統的運行,及時處理系統運行過程中出現的問題,排除系統故障,保證系統能夠正常工作。在日常工作中,數據庫管理員要負責記錄數據庫使用的“日志文件”,通過日志文件了解數據庫的使用和更改情況。數據庫管理員還要定期對數據作“備份”,為以后的數據使用(即處理歷史數據)和數據恢復做準備。當系統由于故障而造成數據庫破壞時,數據庫管理員要根據日志文件和數據備份進行數據恢復工作,使數據庫能在最短的時間恢復到正確狀態。
(5)數據庫管理員負責數據庫的改進和重組
數據庫管理員負責監視和分析系統的性能,使系統的空間利用率和處理效率總是處于較高的水平。當發現系統出現問題或由于長期的數據插入、刪除操作造成系統性能降低時,數據庫管理員要按一定策略對數據庫進行改造或重組工作。當數據庫的數據模型發生變化時,系統的改造工作也由數據庫管理員負責進行。
1.3.2 數據庫管理系統的功能結構
數據庫管理系統是提供建立、管理、維護和控制數據庫功能的一組計算機軟件。數據庫管理系統的目標是使用戶能夠科學地組織和存儲數據,能夠從數據庫中高效地獲得需要的數據,能夠方便地處理數據。數據庫管理系統能夠提供以下4個方面的主要功能。
1.數據定義功能
數據庫管理系統能夠提供數據定義語言(Data Description Language,DDL),并提供相應的建庫機制。用戶利用DDL可以方便地建立數據庫。當需要時,用戶用DDL描述系統的數據及結構情況,數據庫管理系統能夠根據其描述執行建庫操作。
2.數據操縱功能
實現數據的插入、修改、刪除、查詢、統計等數據存取操作的功能稱為數據操縱功能。數據操縱功能是數據庫的基本操作功能,數據庫管理系統通過提供數據操縱語言(Data Manipulation Language,DML)實現數據操縱功能。DML有以下兩種。
(1)宿主型DML
宿主型DML只能嵌入到其他高級語言中使用,不能單獨使用。被DML嵌入的計算機語言稱為主語言,常用的主語言有C、FORTRAN或COBOL。在由宿主型DML和主語言混合設計的程序中,DML語句只完成有關數據庫的數據存取操作功能,而其他功能由主語言的語句完成。
(2)自主型DML
既可以嵌入到主語言中使用,也可以單獨使用的DML稱為自主型DML。自主型DML可以作為交互式命令與用戶對話,執行其獨立的單條語句功能。自主型DML還為語言的學習提供了方便,使讀者能更了解語句的含義及正確的表達方法。
3.數據庫的建立和維護功能
數據庫的建立功能是指數據的載入、轉儲、重組織功能及數據庫的恢復功能。數據庫的維護功能指數據庫結構的修改、變更及擴充功能。
4.數據庫的運行管理功能
數據庫的運行管理功能是數據庫管理系統的核心功能,它包括并發控制、數據的存取控制、數據完整性條件的檢查和執行、數據庫內部的維護等。所有數據庫的操作都要在這些控制程序的統一管理下進行,以保證計算機事務的正確運行,保證數據庫的正確有效。
1.3.3 數據庫系統的三級數據模式結構
數據模型用數據描述語言給出的精確描述稱為數據模式。數據模式是數據庫的框架。數據庫的數據模式由外模式、模式和內模式三級模式構成,其結構如圖1-4所示。

圖1-4 數據庫系統的三級模式結構
1.數據庫的三級模式結構
數據庫的三級模式是指邏輯模式、外模式、內模式。
(1)邏輯模式及概念數據庫
邏輯模式(Logical Schema)也稱模式(Schema),它是對數據庫中數據的整體邏輯結構和特征的描述。邏輯模式使用模式DDL進行定義,其定義的內容不僅包括對數據庫的記錄型、數據項的型、記錄間的聯系等的描述,同時也包括對數據的安全性定義(保密方式、保密級別和數據使用權)、數據應滿足的完整性條件和數據尋址方式的說明。
邏輯模式是系統為了減小數據冗余、實現數據共享的目標并對所有用戶的數據進行綜合抽象而得到的統一的全局數據視圖。一個數據庫系統只能有一個邏輯模式,以邏輯模式為框架的數據庫為概念數據庫。
(2)外模式及用戶數據庫
外模式(External Schema)也稱子模式(Subschema),它是對各個用戶或程序所涉及的數據的邏輯結構和數據特征的描述。外模式使用子模式DDL(Subschema DDL)進行定義,該定義主要涉及對子模式的數據結構、數據域、數據構造規則及數據的安全性和完整性等屬性的描述。子模式可以在數據組成(數據項的個數及內容)、數據間的聯系、數據項的型(數據類型和數據寬度)、數據名稱上與邏輯模式不同,也可以在數據的安全性和完整性方面與邏輯模式不同。
子模式是完全按用戶自己對數據的需要、站在局部的角度進行設計的。由于一個數據庫系統有多個用戶,所以就可能有多個數據子模式。由于子模式是面向用戶或程序設計的,所以它被稱為用戶數據視圖。從邏輯關系上看,子模式是模式的一個邏輯子集,從一個模式可以推導出多個不同的子模式。以子模式為框架的數據庫為用戶數據庫。顯然,某個用戶數據庫是概念數據庫的部分抽取。
使用子模式有以下優點。
1)由于使用子模式,用戶不必考慮那些與自己無關的數據,也無需了解數據的存儲結構,使用戶使用數據的工作和程序設計的工作都得到了簡化。
2)由于用戶使用的是子模式,使得用戶只能對自己需要的數據進行操作,數據庫的其他數據與用戶是隔離的,這樣有利于數據的安全和保密。
3)由于用戶可以使用子模式,而同一模式又可派生出多個子模式,所以有利于數據的獨立性和共享性。
(3)內模式及物理數據庫
內模式(Internal Schema)也叫存儲模式(Access Schema)或物理模式(Physical Schema)。內模式是對數據的內部表示或底層描述。內模式使用內模式DDL(Internal Schema DDL)定義。內模式DDL不僅能夠定義數據的數據項、記錄、數據集、索引和存取路徑在內的一切物理組織方式等屬性,同時還要規定數據的優化性能、響應時間和存儲空間需求,共規定數據的記錄位置、塊的大小與數據溢出區等。
物理模式的設計目標是將系統的模式(全局邏輯模式)組織成最優的物理模式,以提高數據的存取效率,改善系統的性能指標。
以物理模式為框架的數據庫稱為物理數據庫。在數據庫系統中,只有物理數據庫才是真正存在的,它是存放在外存的實際數據文件;而概念數據庫和用戶數據庫在計算機外存上是不存在的。用戶數據庫、概念數據庫和物理數據庫三者的關系是:概念數據庫是物理數據庫的邏輯抽象形式;物理數據庫是概念數據庫的具體實現;用戶數據庫是概念數據庫的子集,也是物理數據庫子集的邏輯描述。
2.數據庫系統的二級映像技術及作用
數據庫系統的二級映像技術是指外模式與模式之間的映像、模式與內模式之間的映像技術,二級映像技術不僅在三級數據模式之間建立了聯系,同時也保證了數據的獨立性。
(1)外模式/模式的映像及作用
外模式/模式之間的映像,定義并保證了外模式與數據模式之間的對應關系。外模式/模式的映像定義通常保存在外模式中。當模式變化時,DBA可以通過修改映像的方法使外模式不變;由于應用程序是根據外模式進行設計的,只要外模式不改變,應用程序就不需要修改。顯然,數據庫系統中的外模式與模式之間的映像技術不僅建立了用戶數據庫與邏輯數據庫之間的對應關系,使得用戶能夠按子模式進行程序設計,同時也保證了數據的邏輯獨立性。
(2)模式/內模式的映像及作用
模式/內模式之間的映像,定義并保證了數據的邏輯模式與內模式之間的對應關系。它說明數據的記錄、數據項在計算機內部是如何組織和表示的。當數據庫的存儲結構改變時,DBA可以通過修改模式/內模式之間的映像使數據模式不變化。由于用戶或程序是按數據的邏輯模式使用數據的,所以只要數據模式不變,用戶仍可以按原來的方式使用數據,程序也不需要修改。模式/內模式的映像技術不僅使用戶或程序能夠按數據的邏輯結構使用數據,還提供了內模式變化而程序不變的方法,從而保證了數據的物理獨立性。
- 同步:秩序如何從混沌中涌現
- Building Computer Vision Projects with OpenCV 4 and C++
- 復雜性思考:復雜性科學和計算模型(原書第2版)
- 信息系統與數據科學
- MySQL從入門到精通(第3版)
- Hadoop大數據實戰權威指南(第2版)
- 基于OPAC日志的高校圖書館用戶信息需求與檢索行為研究
- 新基建:數據中心創新之路
- SQL Server 2012數據庫管理教程
- 探索新型智庫發展之路:藍迪國際智庫報告·2015(上冊)
- Augmented Reality using Appcelerator Titanium Starter
- Access 2010數據庫程序設計實踐教程
- 數據應用工程:方法論與實踐
- 精通Neo4j
- Visual Studio 2010(C#)Web數據庫項目開發