數(shù)據(jù)模型概念及類型劃分
內(nèi)容
數(shù)據(jù)模型所描述的內(nèi)容包括三個(gè)部分:數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)約束。
1)數(shù)據(jù)結(jié)構(gòu):數(shù)據(jù)模型中的數(shù)據(jù)結(jié)構(gòu)主要描述數(shù)據(jù)的類型、內(nèi)容、性質(zhì)以及數(shù)據(jù)間的聯(lián)系等。數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)模型的基礎(chǔ),數(shù)據(jù)操作和約束都建立在數(shù)據(jù)結(jié)構(gòu)上。不同的數(shù)據(jù)結(jié)構(gòu)具有不同的操作和約束。
2)數(shù)據(jù)操作:數(shù)據(jù)模型中數(shù)據(jù)操作主要描述在相應(yīng)的數(shù)據(jù)結(jié)構(gòu)上的操作類型和操作方式。
3)數(shù)據(jù)約束:數(shù)據(jù)模型中的數(shù)據(jù)約束主要描述數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù)據(jù)間的語法、詞義聯(lián)系、他們之間的制約和依存關(guān)系,以及數(shù)據(jù)動(dòng)態(tài)變化的規(guī)則,以保證數(shù)據(jù)的正確、有效和相容。
類型
數(shù)據(jù)模型按不同的應(yīng)用層次分成三種類型:分別是概念數(shù)據(jù)模型、邏輯數(shù)據(jù)模型、物理數(shù)據(jù)模型。
1、概念數(shù)據(jù)模型(Conceptual Data Model):簡稱概念模型,是面向數(shù)據(jù)庫用戶的實(shí)現(xiàn)世界的模型,主要用來描述世界的概念化結(jié)構(gòu),它使數(shù)據(jù)庫的設(shè)計(jì)人員在設(shè)計(jì)的初始階段,擺脫計(jì)算機(jī)系統(tǒng)及DBMS的具體技術(shù)問題,集中精力分析數(shù)據(jù)以及數(shù)據(jù)之間的聯(lián)系等,與具體的數(shù)據(jù)管理系統(tǒng)(Database Management System,簡稱DBMS)無關(guān)。概念數(shù)據(jù)模型必須換成邏輯數(shù)據(jù)模型,才能在DBMS中實(shí)現(xiàn)。
2、邏輯數(shù)據(jù)模型(Logical Data Model):簡稱數(shù)據(jù)模型,這是用戶從數(shù)據(jù)庫所看到的模型,是具體的DBMS所支持的數(shù)據(jù)模型,如網(wǎng)狀數(shù)據(jù)模型(Network Data Model)、層次數(shù)據(jù)模型(Hierarchical Data Model)等等。此模型既要面向用戶,又要面向系統(tǒng),主要用于數(shù)據(jù)庫管理系統(tǒng)(DBMS)的實(shí)現(xiàn)。
3、物理數(shù)據(jù)模型(Physical Data Model):簡稱物理模型,是面向計(jì)算機(jī)物理表示的模型,描述了數(shù)據(jù)在儲(chǔ)存介質(zhì)上的組織結(jié)構(gòu),它不但與具體的DBMS有關(guān),而且還與操作系統(tǒng)和硬件有關(guān)。每一種邏輯數(shù)據(jù)模型在實(shí)現(xiàn)時(shí)都有起對(duì)應(yīng)的物理數(shù)據(jù)模型。DBMS為了保證其獨(dú)立性與可移植性,大部分物理數(shù)據(jù)模型的實(shí)現(xiàn)工作又系統(tǒng)自動(dòng)完成,而設(shè)計(jì)者只設(shè)計(jì)索引、聚集等特殊結(jié)構(gòu)。
在概念數(shù)據(jù)模型中最常用的是E-R模型、擴(kuò)充的E-R模型、面向?qū)ο竽P图爸^詞模型。在邏輯數(shù)據(jù)類型中最常用的是層次模型、網(wǎng)狀模型、關(guān)系模型。
數(shù)據(jù)庫領(lǐng)域采用的數(shù)據(jù)模型有層次模型、網(wǎng)狀模型和關(guān)系模型,其中應(yīng)用最廣泛的是關(guān)系模型。
層次模型:它的特點(diǎn)是將數(shù)據(jù)組織成一對(duì)多關(guān)系的結(jié)構(gòu)。
層次結(jié)構(gòu)采用關(guān)鍵字來訪問其中每一層次的每一部分。
優(yōu)點(diǎn):
存取方便且速度快
結(jié)構(gòu)清晰,容易理解
數(shù)據(jù)修改和數(shù)據(jù)庫擴(kuò)展容易實(shí)現(xiàn)
檢索關(guān)鍵屬性十分方便
缺陷:
結(jié)構(gòu)呆板,缺乏靈活性
同一屬性數(shù)據(jù)要存儲(chǔ)多次,數(shù)據(jù)冗余大(如公共邊)
不適合于拓?fù)淇臻g數(shù)據(jù)的組織
網(wǎng)狀模型用連接指令或指針來確定數(shù)據(jù)間的顯式連接關(guān)系,是具有多對(duì)多類型的數(shù)據(jù)組織方式
優(yōu)點(diǎn):
能明確而方便地表示數(shù)據(jù)間的復(fù)雜關(guān)系
數(shù)據(jù)冗余小
缺陷:
網(wǎng)狀結(jié)構(gòu)的復(fù)雜,增加了用戶查詢和定位的困難。
需要存儲(chǔ)數(shù)據(jù)間聯(lián)系的指針,使得數(shù)據(jù)量增大
數(shù)據(jù)的修改不方便(指針必須修改)
關(guān)系數(shù)據(jù)庫模型是以記錄組或數(shù)據(jù)表的形式組織數(shù)據(jù),以便于利用各種地理實(shí)體與屬性之間的關(guān)系進(jìn)行存儲(chǔ)和變換,不分層也無指針,是建立空間數(shù)據(jù)和屬性數(shù)據(jù)之間關(guān)系的一種非常有效的數(shù)據(jù)組織方法
優(yōu)點(diǎn):
結(jié)構(gòu)特別靈活,滿足所有布爾邏輯運(yùn)算和數(shù)學(xué)運(yùn)算規(guī)則形成的查詢要求
能搜索、組合和比較不同類型的數(shù)據(jù)
增加和刪除數(shù)據(jù)非常方便
缺陷:
數(shù)據(jù)庫大時(shí),查找滿足特定關(guān)系的數(shù)據(jù)費(fèi)時(shí)
對(duì)空間關(guān)系無法滿足
數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)是目標(biāo)類型的集合。目標(biāo)類型是數(shù)據(jù)庫的組成成分,一般可分為兩類:數(shù)據(jù)類型、數(shù)據(jù)類型之間的聯(lián)系。數(shù)據(jù)類型如DBTG(數(shù)據(jù)庫任務(wù)組)網(wǎng)狀模型中的記錄型、數(shù)據(jù)項(xiàng),關(guān)系模型中的關(guān)系、域等。聯(lián)系部分有DBTG網(wǎng)狀模型中的系型等。數(shù)據(jù)操作部分是操作算符的集合,包括若干操作和推理規(guī)則,用以對(duì)目標(biāo)類型的有效實(shí)例所組成的數(shù)據(jù)庫進(jìn)行操作。數(shù)據(jù)約束條件是完整性規(guī)則的集合,用以限定符合數(shù)據(jù)模型的數(shù)據(jù)庫狀態(tài),以及狀態(tài)的變化。約束條件可以按不同的原則劃分為數(shù)據(jù)值的約束和數(shù)據(jù)間聯(lián)系的約束;靜態(tài)約束和動(dòng)態(tài)約束;實(shí)體約束和實(shí)體間的參照約束等。
概念的發(fā)展
隨著數(shù)據(jù)庫學(xué)科的發(fā)展,數(shù)據(jù)模型的概念也逐漸深入和完善。早期,一般把數(shù)據(jù)模型僅理解為數(shù)據(jù)結(jié)構(gòu)。其后,在一些數(shù)據(jù)庫系統(tǒng)中,則把數(shù)據(jù)模型歸結(jié)為數(shù)據(jù)的邏輯結(jié)構(gòu)、物理配置、存取路徑和完整性約束條件等四個(gè)方面?,F(xiàn)代數(shù)據(jù)模型的概念,則認(rèn)為數(shù)據(jù)結(jié)構(gòu)只是數(shù)據(jù)模型的組成成分之一。數(shù)據(jù)的物理配置和存取路徑是關(guān)于數(shù)據(jù)存儲(chǔ)的概念,不屬于數(shù)據(jù)模型的內(nèi)容。此外,數(shù)據(jù)模型不僅應(yīng)該提供數(shù)據(jù)表示的手段,還應(yīng)該提供數(shù)據(jù)操作的類型和方法,因?yàn)閿?shù)據(jù)庫不是靜態(tài)的而是動(dòng)態(tài)的。因此,數(shù)據(jù)模型還包括數(shù)據(jù)操作部分。
三種重要模型
層次模型、網(wǎng)狀模型和關(guān)系模型是三種重要的數(shù)據(jù)模型。這三種模型是按其數(shù)據(jù)結(jié)構(gòu)而命名的。前兩種采用格式化的結(jié)構(gòu)。在這類結(jié)構(gòu)中實(shí)體用記錄型表示,而記錄型抽象為圖的頂點(diǎn)。記錄型之間的聯(lián)系抽象為頂點(diǎn)間的連接弧。整個(gè)數(shù)據(jù)結(jié)構(gòu)與圖相對(duì)應(yīng)。對(duì)應(yīng)于樹形圖的數(shù)據(jù)模型為層次模型;對(duì)應(yīng)于網(wǎng)狀圖的數(shù)據(jù)模型為網(wǎng)狀模型。關(guān)系模型為非格式化的結(jié)構(gòu),用單一的二維表的結(jié)構(gòu)表示實(shí)體及實(shí)體之間的聯(lián)系。滿足一定條件的二維表,稱為一個(gè)關(guān)系(見關(guān)系數(shù)據(jù)庫)。
格式化模型可以描述復(fù)雜的數(shù)據(jù)結(jié)構(gòu),用存取路徑實(shí)現(xiàn)數(shù)據(jù)間的聯(lián)系。從60年代后期以來,在各種計(jì)算機(jī)系統(tǒng)上建立了許多層次模型和網(wǎng)狀模型的數(shù)據(jù)庫管理系統(tǒng)。這些系統(tǒng)成功地應(yīng)用于數(shù)據(jù)處理。但這類系統(tǒng)具有以下缺點(diǎn)。首先是使用了許多與數(shù)據(jù)操作任務(wù)無關(guān)的概念,如DBTG系統(tǒng)中的系,用戶必須按照存取路徑存取數(shù)據(jù)庫中的數(shù)據(jù)。其次,不支持集合處理,即未提供一次處理多個(gè)記錄的功能。第三,沒有充分認(rèn)識(shí)端點(diǎn)用戶直接與數(shù)據(jù)庫對(duì)話的需求,缺乏為適應(yīng)非預(yù)期查詢而增加系統(tǒng)設(shè)施的能力。這些缺點(diǎn)降低了程序和數(shù)據(jù)的獨(dú)立性,影響應(yīng)用程序員的工作效率,限制端點(diǎn)用戶對(duì)數(shù)據(jù)庫的使用。
關(guān)系模型嚴(yán)格符合現(xiàn)代數(shù)據(jù)模型的定義。數(shù)據(jù)結(jié)構(gòu)簡單清晰。存取路徑完全向用戶隱蔽,使程序和數(shù)據(jù)具有高度的獨(dú)立性。關(guān)系模型的數(shù)據(jù)語言非過程化程度較高,用戶性能好,具有集合處理能力,并有定義、操縱、控制一體化的優(yōu)點(diǎn)。關(guān)系模型中,結(jié)構(gòu)、操作和完整性規(guī)則三部分聯(lián)系緊密。關(guān)系數(shù)據(jù)庫系統(tǒng)為提高程序員的生產(chǎn)率,以及端點(diǎn)用戶直接使用數(shù)據(jù)庫提供了一個(gè)現(xiàn)實(shí)基礎(chǔ)。
關(guān)系模型研究的一個(gè)課題,是擴(kuò)展關(guān)系模型和把數(shù)據(jù)模型形式化。1981年提出可把數(shù)據(jù)模型看成是抽象的程序設(shè)計(jì)語言。數(shù)據(jù)庫是變量,數(shù)據(jù)庫模式是變量的類型。數(shù)據(jù)庫狀態(tài)是某類變量所取的值。數(shù)據(jù)定義語言給出說明數(shù)據(jù)庫變量的語法,數(shù)據(jù)操縱語言是數(shù)據(jù)模型中操作類型的具體實(shí)現(xiàn),而數(shù)據(jù)庫管理系統(tǒng)是某個(gè)數(shù)據(jù)定義語言和數(shù)據(jù)操縱語言的具體實(shí)現(xiàn)。這樣,就可以用程序設(shè)計(jì)語言的形式概念和方法來研究數(shù)據(jù)模型。
評(píng)論