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