官术网_书友最值得收藏!

2.3.2 數據庫管理系統

數據庫管理系統(DBMS)是對數據庫進行定義、管理、維護和檢索的一個軟件系統。數據庫管理系統總是基于某種數據模型的,因此,可以把它看作是某種數據模型在計算機系統上的具體實現。數據庫管理系統的任務之一就是在保證數據安全可靠的同時提高數據庫應用的簡明性和方便性。

1.數據庫管理系統的功能

用戶使用的各種數據庫命令以及應用程序的執行都要通過數據庫管理系統。另外,數據庫管理系統還承擔著數據庫的維護工作,故必須按照數據庫管理員所規定的要求,保證數據庫的安全性和完整性。具體來說,數據庫管理系統所做的工作通常歸納為以下幾個方面。

(1)數據庫的定義。

數據庫管理系統總是提供數據定義語言(DDL)用于描述模式、子模式和存儲模式及其模式之間的映射,描述的內容包括數據的結構、數據的完整性約束條件和訪問控制條件等,并負責將這些模式轉換成目標形式,存在系統的數據字典中,以供以后操作或控制數據時查用。

(2)數據庫的操作及查詢優化。

數據庫管理系統通過提供數據操作語言實現對數據庫的操作,基本操作包括檢索、插入、刪除和修改。用戶只需根據子模式給出操作要求,而其處理過程的確定和優化則由數據庫管理系統完成,并且查詢處理和優化機制的好壞直接反映數據庫管理系統的性能。

(3)數據庫的控制運行。

數據庫管理系統提供并發訪問控制機制和數據完整性約束機制,從而避免多個讀寫操作并發執行可能引起的沖突、數據失密或安全性、完整性被破壞等一系列問題。

(4)數據庫的恢復和保護。

數據庫管理系統一般都要保存工作日志、運行記錄等若干恢復用數據,一旦出現故障,使用這些歷史信息和維護信息可將數據庫恢復到一致狀態。此外,當數據庫性能下降或系統軟、硬件設備發生變化時也能重新組織或更新數據庫。

(5)數據庫的數據管理。

數據庫中物理存在的數據包括兩部分。一部分是元數據,即描述數據的數據,主要是上述的三級模式結構(即用戶級、概念級和物理級數據庫)描述。它們構成數據字典的主體,數據字典由數據庫管理系統管理和使用。另一部分是原始數據,它們構成物理存在的數據庫,數據庫管理系統一般提供多種文件組織方法,供數據庫設計人員使用。數據按照某種組織方法裝入數據庫后,對它的檢索和更新都由數據庫管理系統的專門程序完成。

除了上述核心功能以外,當代數據庫管理系統還提供了許多基于圖形用戶界面(Graphical User Interface, GUI)的用戶接口軟件,如查詢管理器、報表生成器、統計圖形生成器等。這些軟件的規模甚至超過了核心數據庫管理系統軟件,它們極大地方便了用戶對數據庫的操作。

2.數據庫管理系統的工作過程

當數據庫建立后,即數據庫的各級目標模式已建立,數據庫的初始數據已裝入后,用戶就可以通過終端操作命令或應用程序在數據庫管理系統的支持下使用數據庫。那么,在執行用戶的請求存取數據時,數據庫管理系統是如何工作的呢?下面以用戶從數據庫中提取一條外部記錄(用戶記錄)為例,看看數據庫管理系統是如何工作的,以便進一步了解數據庫管理系統的工作過程及其與操作系統的關系(如圖2.13所示)。

圖2.13 數據庫存取的過程

(1)應用程序A用相應的數據操作語言命令向數據庫管理系統發出請求并遞交必要的參數,控制轉入數據庫管理系統。

(2)數據庫管理系統分析應用程序A提交的命令及參數,按照應用程序A所用的外模式名,確定其對應的概念模式名,同時還可能需要進行合法性檢查,若通不過,則拒絕執行該操作,并向應用程序A送回出錯信息。

(3)數據庫管理系統根據概念模式名,調用相應的目標模式,根據外模式/概念模式的映射確定應讀取的概念記錄類型和記錄,再根據從概念模式到內模式的映射找到其對應的存儲記錄類型和存儲記錄。同時還要進一步檢查操作的有效性,如通不過,則拒絕執行該操作,返回出錯狀態信息。

(4)數據庫管理系統查閱存儲模式,確定所要讀取的存取記錄所在的文件。

(5)數據庫管理系統向操作系統發出讀指定文件中指定記錄的請求,把控制交給操作系統。

(6)操作系統接到命令后,分析命令參數確定該文件記錄所在存儲設備及存儲區,啟動I/O讀出相應的物理記錄,從中分解出數據庫管理系統所需要的存儲記錄送入系統緩沖區,把控制返回給數據庫管理系統。

(7)數據庫管理系統根據概念模式/外模式之間的映射,將系統緩沖區內的內容映射為應用程序所需的外部記錄,并控制系統緩沖區與用戶工作區之間的數據傳輸,把所需要的外部記錄送往應用程序工作區。

(8)數據庫管理系統向應用程序A送回狀態信息,說明此次請求的執行情況,如“執行成功”“數據找不到”等。記載系統工作日志,啟動應用程序A繼續執行。

(9)應用程序A查看“狀態信息”,了解它的請求是否得到滿足,根據狀態信息決定其后續處理。

3.數據庫管理系統的選擇

數據庫設計就是在數據庫管理系統之上建立數據庫的過程。但通常一個計算機系統中往往不止一個數據庫管理系統,因此,數據庫設計的任務之一就是正確地評價數據庫管理系統,以便選擇一個合適的數據庫管理系統,這是非常重要的工作。

選擇數據庫管理系統也是一項非常復雜的工作,只有明確用戶的功能要求和操作要求后,選擇數據庫管理系統才能完成。因此,選擇數據庫管理系統之前,數據庫設計者需要先確定數據庫應用系統對數據庫管理系統的要求,這些要求包括以下幾個方面。

(1)數據庫管理系統的類型,如是專用數據庫管理系統還是通用數據庫管理系統等。

(2)數據庫管理系統所支持的數據庫的規模以及數據量。

(3)數據庫的安全性、完整性、恢復及并發控制的能力。

(4)數據獨立性程度。

(5)數據庫終端用戶的類型、聯機處理特性、數據處理特性以及對數據語言的要求。

(6)系統開發和數據庫利用的難易,如提供哪些開發工具、主語言、數據操作語言的功能、終端語言等。

(7)監測數據庫性能的能力。

(8)提供數據庫管理系統的廠商所能提供的支持。

選擇的過程是對各種候選數據庫管理系統的技術特性和操作特性進行評價的過程。如果一個數據庫管理系統能滿足其中的主要要求,則認為這個數據庫管理系統達到了技術指標,可以考慮選用。在選擇數據庫管理系統時必須注意以下幾個因素。

(1)數據庫管理系統的性能。其性能通常用每秒鐘運行的事務總數來表示。用戶應該自己設計測試方案及進行測試,而不是簡單地依據開發商所提供的測試指標、測試數據和測試方法進行測試。

(2)開發新數據庫和新應用程序的代價。

(3)是否有利于應用程序未來的發展,即系統易擴充、易轉換,從而滿足未來的新的應用要求。

主站蜘蛛池模板: 明溪县| 安泽县| 伊宁县| 厦门市| 海阳市| 乐安县| 奉节县| 乡城县| 晴隆县| 南宁市| 西平县| 德庆县| 嘉祥县| 平南县| 仪陇县| 交城县| 内丘县| 黔江区| 双流县| 东山县| 平武县| 大兴区| 禄劝| 工布江达县| 根河市| 梓潼县| 宜兰县| 安丘市| 长武县| 壶关县| 丘北县| 汤原县| 临湘市| 都兰县| 西乌珠穆沁旗| 乌海市| 邳州市| 庐江县| 临朐县| 信宜市| 封丘县|