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