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