數(shù)據(jù)庫管理系統(tǒng)是對數(shù)據(jù)進行管理的網(wǎng)站制作軟件系統(tǒng)。它是數(shù)據(jù)庫系統(tǒng)的核心組成部分。用戶在數(shù)據(jù)庫系統(tǒng)中的所有操作,包括數(shù)據(jù)定義、查詢、更新和各種控制,都是通過DBMS進行的。 DBMS 的工作圖如圖1.24 所示。
DBMS的工作模式如下:
(1) 接受應(yīng)用程序的數(shù)據(jù)請求和處理請求;
(2)將用戶數(shù)據(jù)請求(高級指令)轉(zhuǎn)換成復(fù)雜的機器碼(低級指令);
(3)實現(xiàn)對數(shù)據(jù)庫的操作;
(4) 接受對數(shù)據(jù)庫操作的查詢結(jié)果;
(5) 處理查詢結(jié)果;
(6) 將處理結(jié)果返回給用戶。
DBMS總是基于一定的數(shù)據(jù)模型,所以DBMS可以看作是某種數(shù)據(jù)模型在計算機系統(tǒng)上的具體實現(xiàn)。根據(jù)不同的數(shù)據(jù)模型,DBMS可以分為層次型、網(wǎng)絡(luò)型、關(guān)系型、面向?qū)ο笮偷取?
在不同的計算機系統(tǒng)中,由于缺乏統(tǒng)一的標準,即使是具有相同數(shù)據(jù)模型的DBMS,在用戶界面和系統(tǒng)功能方面也往往存在差異。
為了使讀者對數(shù)據(jù)庫系統(tǒng)有一個整體的概念,現(xiàn)以查詢?yōu)槔榻B訪問數(shù)據(jù)庫的主要步驟。該過程如圖1.25 所示。
(1) 在應(yīng)用程序中執(zhí)行查詢數(shù)據(jù)庫記錄時,向DBMS發(fā)送讀取相應(yīng)記錄的命令,并指定外部模式名。
(2) DBMS收到命令后調(diào)出需要的外部模式,并進行權(quán)限校驗。如果合法,繼續(xù)執(zhí)行;
否則向應(yīng)用程序返回一條錯誤消息。
(3)DBMS訪問模式,根據(jù)外部模式/模式映像,確定所需數(shù)據(jù)在模式上的相關(guān)信息(邏輯記錄類型)。
(4) DBMS訪問內(nèi)部模式,根據(jù)模式/內(nèi)部模式圖像,確定所需數(shù)據(jù)的內(nèi)部模式的相關(guān)信息(需要讀取的物理記錄和訪問方式)。
(5) DBMS向操作系統(tǒng)發(fā)送請求讀取相應(yīng)的數(shù)據(jù)(讀取記錄)。
(6) 操作系統(tǒng)執(zhí)行讀取命令,將相關(guān)數(shù)據(jù)從外部存儲器傳輸?shù)较到y(tǒng)緩沖區(qū)。
(7) DBMS以外部方式將數(shù)據(jù)發(fā)送到用戶的工作區(qū),并返回正常執(zhí)行的信息。這樣用戶程序就可以使用數(shù)據(jù)了。當然,這些只是幾個大步驟,不贅述。由上可知,DBMS是數(shù)據(jù)庫系統(tǒng)的核心,與操作系統(tǒng)相關(guān)。DBMS的主要功能有以下幾個方面:1.數(shù)據(jù)庫定義功能
DBMS提供數(shù)據(jù)定義語言DDL,定義了數(shù)據(jù)模式、外部模式和內(nèi)部模式的三級模式結(jié)構(gòu),定義了模式/內(nèi)部模式和外部模式/模式副像,并定義了相關(guān)約束。例如,定義用戶密碼和訪問權(quán)限以確保數(shù)據(jù)庫安全,定義完整性規(guī)則以確保正確的語義。2.數(shù)據(jù)操縱功能
DBMS提供數(shù)據(jù)操作語言DML來實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的基本操作,如檢索、插入、修改、刪除和排序。有兩種類型的DML:
(1) 嵌入式DML。包括嵌入在高級語言(稱為宿主語言)中的DML,例如C++ 或PowerBuilder。
(2) 非嵌入式DML。包括交互式命令語言和結(jié)構(gòu)化語言,其語法簡單,可以獨立使用,由單獨的解釋或編譯系統(tǒng)執(zhí)行,因此一般稱為自治或自包含的DML。命令語言是行結(jié)構(gòu)語言,單行執(zhí)行;結(jié)構(gòu)化語言是命令語言的擴展和發(fā)展,增加了程序結(jié)構(gòu)描述或過程控制功能,如循環(huán)和分支。命令語言一般都是一一解釋執(zhí)行。結(jié)構(gòu)化語言可以解釋執(zhí)行,也可以編譯執(zhí)行?,F(xiàn)在DBMS普遍支持命令語言交互環(huán)境和結(jié)構(gòu)化語言環(huán)境兩種運行模式供用戶選擇。3.數(shù)據(jù)庫的保護功能
數(shù)據(jù)庫中的數(shù)據(jù)是信息社會的戰(zhàn)略資源,對數(shù)據(jù)的保護是至關(guān)重要的。 DBMS對數(shù)據(jù)庫的保護是通過四個方面來實現(xiàn)的,所以DBMS中包括以下四個子系統(tǒng):
(1) 數(shù)據(jù)庫的恢復(fù)。當數(shù)據(jù)庫損壞或數(shù)據(jù)不正確時,系統(tǒng)有能力將數(shù)據(jù)庫恢復(fù)到正確的狀態(tài)。
(2)數(shù)據(jù)庫的并發(fā)控制。當多個用戶同時對同一個數(shù)據(jù)進行操作時,系統(tǒng)應(yīng)該能夠?qū)ζ溥M行控制,以防止對數(shù)據(jù)庫中的數(shù)據(jù)造成破壞。
(3) 數(shù)據(jù)完整性控制。確保數(shù)據(jù)庫中數(shù)據(jù)和語義的正確性和有效性,防止任何導(dǎo)致數(shù)據(jù)錯誤的操作。
(4) 數(shù)據(jù)安全控制。防止未經(jīng)授權(quán)的用戶訪問數(shù)據(jù)庫中的數(shù)據(jù),以避免數(shù)據(jù)泄露、更改或破壞
。DBMS的其他保護功能還有系統(tǒng)緩沖區(qū)的管理以及數(shù)據(jù)存儲的某些自適應(yīng)調(diào)節(jié)機制等。
4.數(shù)據(jù)庫的維護功能
它包括數(shù)據(jù)庫的初始數(shù)據(jù)的裝人,數(shù)據(jù)庫的轉(zhuǎn)儲、恢復(fù)、重組織,系統(tǒng)性能監(jiān)視和分析等功能。這些功能分別由各個實用程序(utilties)完成。
5.數(shù)據(jù)字典
數(shù)據(jù)庫系統(tǒng)中存放三層結(jié)構(gòu)定義的數(shù)據(jù)庫稱為數(shù)據(jù)字典(data dictionary, DD)。對數(shù)據(jù)庫的操作都要通過DD才能實現(xiàn).DD中到底應(yīng)包括哪些信息,并沒有明確的規(guī)定,一般由DBMS的功能強弱而定。其數(shù)據(jù)主要有兩類:一類是來自用戶的信息,如表、視圖(用戶所使用的虛表)和索引的定義以及用戶的權(quán)限等;另一類是來自系統(tǒng)狀態(tài)和數(shù)據(jù)庫的統(tǒng)計信息,如通信系統(tǒng)用的協(xié)議、數(shù)據(jù)庫和磁盤的映射關(guān)系、數(shù)據(jù)使用的頻率統(tǒng)計等。上面是一般的DBMS所具備的功能,通常在大、中型計算機上實現(xiàn)的DBMS功能較強、較全,在微型計算機上實現(xiàn)的DBMS功能較弱。
我們專注高端建站,小程序開發(fā)、軟件系統(tǒng)定制開發(fā)、BUG修復(fù)、物聯(lián)網(wǎng)開發(fā)、各類API接口對接開發(fā)等。十余年開發(fā)經(jīng)驗,每一個項目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!