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

3.1 數(shù)據(jù)庫管理系統(tǒng)概述

3.1.1 關(guān)系數(shù)據(jù)庫的體系結(jié)構(gòu)

關(guān)系模型的數(shù)據(jù)結(jié)構(gòu)簡單,而且有完善的理論支持?jǐn)?shù)據(jù)操作,但在實現(xiàn)可應(yīng)用的數(shù)據(jù)庫管理系統(tǒng)時,必須考慮各類數(shù)據(jù)庫用戶的特點和需求,提供相關(guān)管理功能。美國國家標(biāo)準(zhǔn)協(xié)會提出的數(shù)據(jù)庫的三級模式結(jié)構(gòu),從不同用戶的角度對數(shù)據(jù)模型進(jìn)行抽象,從而指導(dǎo)數(shù)據(jù)庫管理系統(tǒng)的實現(xiàn)。

1.三級模式結(jié)構(gòu)概述

使用數(shù)據(jù)庫的不同人員,例如,應(yīng)用程序員、系統(tǒng)分析員和數(shù)據(jù)庫管理員等,由于工作職責(zé)不同,接觸和使用數(shù)據(jù)庫的范圍各不相同,從而形成了各自的數(shù)據(jù)庫視圖。所謂視圖,是指觀察、認(rèn)識和理解數(shù)據(jù)的范圍、角度和方法。根據(jù)各類人員與數(shù)據(jù)庫的不同關(guān)系,可把視圖分為三種:對應(yīng)于應(yīng)用程序員的外部視圖、對應(yīng)于系統(tǒng)分析員的邏輯視圖和對應(yīng)于數(shù)據(jù)庫管理員的內(nèi)部視圖。關(guān)系數(shù)據(jù)庫以三級模式及三級模式之間的兩級映射關(guān)系形成整體體系結(jié)構(gòu),三級模式分別是外模式、模式和內(nèi)模式(見圖3.1)。

img

圖3.1 數(shù)據(jù)庫的三級模式結(jié)構(gòu)

2.三級模式簡介

(1)模式

模式又稱邏輯模式,對應(yīng)于一個應(yīng)用的所有關(guān)系模式的集合、關(guān)系完整性約束及其所允許的關(guān)系操作就構(gòu)成了關(guān)系數(shù)據(jù)庫的邏輯模式。它是由數(shù)據(jù)庫設(shè)計者綜合所有相關(guān)數(shù)據(jù)對象、按照統(tǒng)一的觀點構(gòu)造的全局邏輯結(jié)構(gòu),是對數(shù)據(jù)庫中全部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的總體描述,是所有用戶的公共數(shù)據(jù)視圖。它是系統(tǒng)分析員所看到的全局?jǐn)?shù)據(jù)庫視圖。一個數(shù)據(jù)庫只有一個邏輯模式。如圖2.6所示為“e學(xué)習(xí)”系統(tǒng)數(shù)據(jù)庫的關(guān)系模型,反映了數(shù)據(jù)庫邏輯模式的概要信息。

(2)外模式

外模式又稱子模式或用戶模式,是某個或某些應(yīng)用程序員所看到的數(shù)據(jù)庫的局部數(shù)據(jù)視圖。外模式可以通過定義“查詢”或“視圖”從“基本關(guān)系模式”中變換導(dǎo)出,是從模式中導(dǎo)出的子模式。一個數(shù)據(jù)庫可以有多個外模式。

“查詢”是根據(jù)指定條件對表進(jìn)行查詢所得的結(jié)果表,是臨時表,一般不再使用,因此具有一次性和冗余性的特點。“視圖”是為了方便查詢和處理而設(shè)計的數(shù)據(jù)虛表,在數(shù)據(jù)庫中只存儲結(jié)構(gòu)的定義,而不存儲數(shù)據(jù),數(shù)據(jù)來自基本表。

【例3.1】從學(xué)生表、課程表和選課表變換得到學(xué)生成績視圖。

以圖2.6中的數(shù)據(jù)庫關(guān)系模型為基礎(chǔ),從學(xué)生表、課程表和選課表分別選取相關(guān)屬性,得到外模式:學(xué)生成績(姓名,課程名,成績),學(xué)生成績視圖如圖3.2所示。

img

圖3.2 學(xué)生成績視圖的定義

(3)內(nèi)模式

內(nèi)模式又稱存儲模式,是數(shù)據(jù)庫全體數(shù)據(jù)的機(jī)器內(nèi)部表示或存儲結(jié)構(gòu)描述,是真正存放在外存儲器中的物理數(shù)據(jù)庫,它描述數(shù)據(jù)記錄、索引、文件的組織方式和在存儲介質(zhì)上的物理結(jié)構(gòu)。內(nèi)模式是數(shù)據(jù)庫管理員創(chuàng)建和維護(hù)數(shù)據(jù)庫的視圖。一個數(shù)據(jù)庫只有一個內(nèi)模式。內(nèi)模式主要關(guān)注以下問題。

① 關(guān)系存儲結(jié)構(gòu)。數(shù)據(jù)庫的邏輯結(jié)構(gòu)與系統(tǒng)平臺無關(guān),但數(shù)據(jù)庫的物理結(jié)構(gòu)存儲必須考慮具體的計算機(jī)系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng),采用它們所支持的數(shù)據(jù)庫文件結(jié)構(gòu)存儲方法,設(shè)計數(shù)據(jù)庫文件的存儲位置,選用它們所支持的數(shù)據(jù)類型描述和完整性約束規(guī)則來定義數(shù)據(jù)表。

② 關(guān)系存取方法。在數(shù)據(jù)庫管理系統(tǒng)中,關(guān)系表中的數(shù)據(jù)按記錄存儲。為了提高對數(shù)據(jù)記錄的查詢效率,通常采用索引方法來建立數(shù)據(jù)記錄的存取順序。索引與書的目錄或字典檢字索引的原理是一樣的。數(shù)據(jù)庫管理系統(tǒng)一般集成多種快速查找算法,但這些算法基本上都是以數(shù)據(jù)記錄排序為前提的。

3.模式間的映射關(guān)系

數(shù)據(jù)庫的三級模式是數(shù)據(jù)模型在三個層次上的抽象表示。為了實現(xiàn)這三個抽象層次間的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫管理系統(tǒng)在三級模式之間提供兩級映射關(guān)系(見圖3.1)。

(1)外模式與模式之間的映射關(guān)系

外模式與模式之間的映射關(guān)系保證了數(shù)據(jù)的邏輯獨立性,即當(dāng)數(shù)據(jù)庫的邏輯結(jié)構(gòu)發(fā)生變化時,可通過調(diào)節(jié)“外模式/模式”之間的映射關(guān)系保證外模式不變,那么建立在外模式基礎(chǔ)上的應(yīng)用程序也不需要改變。

【例3.2】學(xué)生年齡視圖的定義。

基于關(guān)系模式:學(xué)生(學(xué)號,姓名,性別,年齡)建立外模式:學(xué)生年齡(學(xué)號,年齡),如圖3.3(a)所示。應(yīng)用程序根據(jù)外模式學(xué)生年齡編寫。

在后續(xù)應(yīng)用中發(fā)現(xiàn),“年齡”值會由于時間變化變得不準(zhǔn)確,因此需要將學(xué)生表的“年齡”屬性修改為“出生日期”。這時我們只要調(diào)整“模式/外模式”之間的映射關(guān)系,即原來外模式中“年齡”是直接從學(xué)生表中的“年齡”屬性獲得的,現(xiàn)在改為通過當(dāng)前日期和學(xué)生表的“出生日期”計算得到,如圖3.3(b)所示。外模式不變,建立在外模式上的應(yīng)用程序也不用修改,實現(xiàn)了數(shù)據(jù)的邏輯獨立性。

img

圖3.3 學(xué)生年齡視圖的定義

(2)模式與內(nèi)模式之間的映射關(guān)系

模式與內(nèi)模式之間的映射關(guān)系保證了數(shù)據(jù)的物理獨立性,即:當(dāng)數(shù)據(jù)的存儲結(jié)構(gòu)發(fā)生變化時,可以通過調(diào)節(jié)“模式/內(nèi)模式”之間的映射關(guān)系保證模式不變。例如,當(dāng)學(xué)生表的存儲位置、存取方式發(fā)生變化時,數(shù)據(jù)庫管理系統(tǒng)通過調(diào)整“模式/內(nèi)模式”之間的映射關(guān)系保證模式不變。

3.1.2 關(guān)系數(shù)據(jù)庫管理系統(tǒng)

1.?dāng)?shù)據(jù)庫管理系統(tǒng)的概念

數(shù)據(jù)庫管理系統(tǒng)(DataBase Management System,DBMS)是以數(shù)據(jù)庫的三級模式結(jié)構(gòu)為指導(dǎo)實現(xiàn)的數(shù)據(jù)庫管理軟件。它位于應(yīng)用程序與操作系統(tǒng)之間,是數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)必不可少的一個系統(tǒng)軟件。如圖3.4所示,數(shù)據(jù)庫應(yīng)用程序提出數(shù)據(jù)操作要求,需要通過數(shù)據(jù)庫管理系統(tǒng)訪問數(shù)據(jù)庫,數(shù)據(jù)庫管理員也要通過數(shù)據(jù)庫管理系統(tǒng)對數(shù)據(jù)庫實施管理。

數(shù)據(jù)庫管理系統(tǒng)一般由商業(yè)軟件公司或開源社區(qū)開發(fā)。流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)有很多,如SQL Server、Oracle、MySQL等,它們的基本原理和主要功能相似。

img

圖3.4 數(shù)據(jù)庫管理系統(tǒng)的作用

2.?dāng)?shù)據(jù)庫管理系統(tǒng)的功能

數(shù)據(jù)庫管理系統(tǒng)的主要功能如下。

(1)數(shù)據(jù)定義:支持建立數(shù)據(jù)庫,定義數(shù)據(jù)庫的模式結(jié)構(gòu)、數(shù)據(jù)庫的完整性約束規(guī)則和安全性控制方式等。

(2)數(shù)據(jù)操作:支持對數(shù)據(jù)庫中數(shù)據(jù)的檢索及更新(包括插入、刪除和修改)操作。

(3)數(shù)據(jù)庫的運行管理:完成數(shù)據(jù)庫運行時的控制和管理,包括并發(fā)控制、安全性檢查、完整性約束規(guī)則的檢查、數(shù)據(jù)庫的內(nèi)部管理和維護(hù)(如索引維護(hù)等)。

(4)數(shù)據(jù)庫的維護(hù):提供包括數(shù)據(jù)庫初始數(shù)據(jù)輸入、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)庫備份和恢復(fù)、數(shù)據(jù)導(dǎo)入和導(dǎo)出、數(shù)據(jù)庫重組、性能監(jiān)視和分析等功能。

(5)數(shù)據(jù)庫語言的支持:支持用數(shù)據(jù)庫語言(如SQL語言)來使用和管理數(shù)據(jù)庫。

主站蜘蛛池模板: 平阴县| 贡觉县| 昌乐县| 闸北区| 蒙阴县| 孟州市| 江油市| 海晏县| 禄丰县| 滦南县| 孟村| 旬阳县| 盐山县| 云南省| 钟山县| 成都市| 东光县| 香港 | 吴桥县| 当雄县| 扎兰屯市| 阜城县| 阿图什市| 满洲里市| 壤塘县| 长宁县| 商洛市| 开江县| 红安县| 育儿| 韶山市| 奎屯市| 穆棱市| 修文县| 锡林浩特市| 个旧市| 通河县| 新邵县| 墨脱县| 秦皇岛市| 武夷山市|