數據模型
出自 MBA智库百科(https://wiki.mbalib.com/)
數據模型(data model)
目錄 |
數據模型是現實世界數據特征的抽象,用於描述一組數據的概念和定義。數據模型是資料庫中數據的存儲方式,是資料庫系統的基礎。在資料庫中,數據的物理結構又稱數據的存儲結構,就是數據元素在電腦存儲器中的表示及其配置;數據的邏輯結構則是指數據元素之間的邏輯關係,它是數據在用戶或程式員面前的表現形式,數據的存儲結構不一定與邏輯結構一致。
數據模型的主要包括[1]
數據模型的研究包括以下三個方面:
- 1.概念數據模型
這是面向資料庫用戶的現實世界的數據模型,主要用來描述世界的概念化結構,它使資料庫的設計人員在設計的初始階段,擺脫電腦系統及資料庫管理系統的具體技術問題,集中精力分析數據以及數據之間的聯繫等,與具體的資料庫管理系統無關。概念數據模型必須換成邏輯數據模型,才能在資料庫管理系統中實現。
- 2.邏輯數據模型
這是用戶在資料庫中看到的數據模型,是具體的資料庫管理系統所支持的數據模型,主要有網狀數據模型、層次數據模型和關係數據模型三種類型。此模型既要面向用戶,又要面向系統,主要用於資料庫管理系統的實現。在資料庫中用數據模型來抽象、表示和處理現實世界中的數據和信息,主要是研究數據的邏輯結構。
- 3.物理數據模型
這是描述數據在存儲介質上的組織結構的數據模型,它不但與具體的資料庫管理系統有關,而且還與操作系統和硬體有關。每一種邏輯數據模型在實現時都有與其相對應的物理數據模型。資料庫管理系統為了保證其獨立性與可移植性,將大部分物理數據模型的實現工作交由系統自動完成,而設計者只設計索引、聚集等特殊結構。
數據模型基本概念[2]
- 1.三個世界的劃分
數據的加工是一個逐步轉化的過程,經歷了現實世界、信息世界和電腦世界這3個不同的世界,經歷了兩級抽象和轉換,如圖所示。
- (1)現實世界
現實世界是指客觀存在的事物及其相互間的聯繫。現實世界中的事物有著眾多的特征和千絲萬縷的聯繫,但人們只選擇感興趣的一部分來描述,如學生,人們通常用學號、姓名、班級、成績等特征來描述和區分,而對身高、體重、長相不太關心;而如果對象是演員,則可能正好截然相反。事物可以是具體的、可見的實物,也可以是抽象的事物。
- (2)信息世界
信息世界是人們把現實世界的信息和聯繫,通過“符號”記錄下來,然後用規範化的資料庫定義語言來定義描述而構成的一個抽象世界。信息世界實際上是對現實世界的一種抽象描述。在信息世界中,不是簡單地對現實世界進行符號化,而是要通過篩選、歸納、總結、命名等抽象過程產生出概念模型,用以表示對現實世界的抽象與描述。
- (3)電腦世界
電腦世界是將信息世界的內容數據化後的產物。將信息世界中的概念模型,進一步的轉換成數據模型,形成便於電腦處理的數據表現形式。
- 2.數據模型的三要素
數據模型所描述的內容有3個部分,分別是數據結構、數據操作和數據約束。
- (1)數據結構
數據結構用於描述系統的靜態特征,包括數據的類型、內容、性質及數據之間的聯繫等。它是數據模型的基礎,也是刻畫一個數據模型性質最重要的方面。在資料庫系統中,人們通常按照其數據結構的類型來命名數據模型。例如,層次模型和關係模型的數據結構就分別是層次結構和關係結構。
- (2)數據操作
數據操作用於描述系統的動態特征,包括數據的插入、修改、刪除和查詢等。數據模型必須定義這些操作的確切含義、操作符號、操作規則及實現操作的語言。
- (3)數據約束
數據的約束條件實際上是一組完整性規則的集合。完整性規則是指給定數據模型中的數據及其聯繫所具有的制約和存儲規則,用以限定符合數據模型的資料庫及其狀態的變化,以保證數據的正確性、有效性和相容性。例如,限制一個表中學號不能重覆,或者年齡的取值不能為負,都屬於完整性規則。
數據模型的分類[3]
資料庫的類型是根據數據模型來劃分的,而任何一個DBMS也是根據數據模型有針對性地設計出來的,這就意味著必須把資料庫組織成符合DBMS規定的數據模型。目前成熟地應用在資料庫系統中的數據模型有:層次模型、網狀模型和關係模型。它們之間的根本區別在於數據之間聯繫的表示方式不同(即記錄型之間的聯繫方式不同)。層次模型以“樹結構”表示數據之間的聯繫。網狀模型是以“圖結構”來表示數據之間的聯繫。關係模型是用“二維表”(或稱為關係)來表示數據之間的聯繫的。
- 1.層次模型(Hierchical)
層次模型是資料庫系統最早使用的一種模型,它的數據結構是一棵“有向樹”。根結點在最上端,層次最高,子結點在下,逐層排列。層次模型的特征是:
- 有且僅有一個結點沒有父結點,它就是根結點;
- 其他結點有且僅有一個父結點。圖所示為一個系教務管理層次數據模型,圖(a)所示的是實體之間的聯繫,圖(b)所示的是實體型之間的聯繫。
最有影響的層次模型的DBS是20世紀60年代末,IBM公司推出的IMS層次模型資料庫系統。
- 2.網狀模型(Network)
網狀模型以網狀結構表示實體與實體之間的聯繫。網中的每一個結點代表一個記錄類型,聯繫用鏈接指針來實現。網狀模型可以表示多個從屬關係的聯繫,也可以表示數據間的交叉關係,即數據間的橫向關係與縱向關係,它是層次模型的擴展。網狀模型可以方便地表示各種類型的聯繫,但結構複雜,實現的演算法難以規範化。其特征是:
- 允許結點有多於一個父結點;
- 可以有一個以上的結點沒有父結點。
下圖所示為一個系教務管理網狀數據模型。
- 3.關係模型(Relation)
關係模型以二維表結構來表示實體與實體之間的聯繫,它是以關係數學理論為基礎的。關係模型的數據結構是一個“二維表框架”組成的集合。每個二維表又可稱為關係。在關係模型中,操作的對象和結果都是二維表。關係模型是目前最流行的資料庫模型。支持關係模型的資料庫管理系統稱為關係資料庫管理系統,Access就是一種關係資料庫管理系統。圖所示為一個簡單的關係模型,其中圖(a)所示為關係模式,圖(b)所示為這兩個關係模型的關係,關係名稱分別為教師關係和課程關係,每個關係均含3個元組,其主碼均為“教師編號”。
- 描述的一致性,不僅用關係描述實體本身,而且也用關係描述實體之間的聯繫;
- 可直接表示多對多的聯繫;
- 關係必須是規範化的關係,即每個屬性是不可分的數據項,不許表中有表;
- 關係模型是建立在數學概念基礎上的,有較強的理論依據。
在關係模型中基本數據結構就是二維表,不用像層次或網狀那樣的鏈接指針。記錄之間的聯繫是通過不同關係中同名屬性來體現的。例如,要查找“劉晉”老師所上的課程,可以先在教師關係中根據姓名找到教師編號“1984030”,然後在課程關係中找到“1984030”任課教師編號對應的課程名即可。通過上述查詢過程,同名屬性教師編號起到了連接兩個關係的紐帶作用。由此可見,關係模型中的各個關係模式不應當是孤立的,也不是隨意拼湊的一堆二維表,它必須滿足相應的要求。
關係是一個二維表,即元組的集合。關係框架是一個關係的屬性名錶。形式化表示為:
其中,R為關係名,Ai(i=1,2,…,n)為關係的屬性名。
關係之間通過公共屬性實現聯繫。例如,圖所示為兩個關係,通過“教師編號”公共屬性實現兩個關係之間的聯繫。
關係資料庫是指對應於一個關係模型的所有關係的集合。例如,在一個教務管理關係資料庫中,包含教師關係、課程關係、學生關係、任課關係、成績關係等。
比百度寫的好