數據庫原理與統計筆記-1.2數據模型

前言

有關數據庫原理與統計的筆記,內容爲書本的原文概括。

數據模型是對現實世界數據特徵的抽象。數據模型是用來描述數據、組織數據和對數據進行操作的。
現有的數據庫系統均是基於某種數據模型的,數據模型模型是數據庫系統的核心和基礎。

一、兩類數據模型

數據模型應該滿足三方面要求:

一是能比較真實地模擬現實世界
二是容易爲人所理解
三是便於在計算機上實現

根據模型應用的目的不同可以分爲兩大類:

第一類是概念模型
第二類是邏輯模型和物理模型

模型 介紹
概念模型 也稱信息模型,是按用戶的觀點來對數據和信息建模,主要用於數據庫設計。
邏輯模型 主要包括層次模型、網狀模型、關係模型、面向對象數據模型和對象關係數據模型、半結構化數據模型等。是按計算機系統的觀點對數據建模,主要用於數據庫管理系統的實現。
物理模型 它是對數據最底層的抽象,描述數據在系統內部的表示方式和存取方法,或在磁盤或磁帶上的存儲方式和存取方法,是面向計算機系統的。物理模型的具體實現是數據庫管理系統的任務。

爲了把現實世界中的具體事物抽象、組織爲某一數據庫管理系統支持的數據模型,常常將現實世界抽象爲信息世界,然後將信息世界轉換爲機器世界。(先把現實世界中的客觀對象抽象爲某一種信息結構,然後再把概念模型轉換爲計算機上某一數據庫管理系統支持的數據模型)

二、概念模型

概念模型用於信息世界的建模,是現實世界到信息世界的第一層抽象。
概念模型一方面應該具有較強的語義表達能力,能夠方便、直接地表達應用中的各種語義知識,另一方面它還應該簡單、清晰易於用戶理解。

[1]. 信息世界中的基本概念

概念 介紹
實體(entity) 客觀存在並可相互區別的事物稱爲實體。實體可以是具體的人、事、物,也可以是抽象的概念或聯繫。
屬性(attribute) 實體所具有的某一特性稱爲屬性。一個實體可以由若干個屬性來刻畫。
碼(key) 唯一標示實體的屬性集稱爲碼。
實體型(entity type) 具有仙童屬性的實體必然具有共同的特徵和性質。用實體名及其屬性名集合來抽象和刻畫同類的實體,稱爲實體型。
實體集(entity set) 同一類型實體的集合稱爲實體集。
聯繫(relationship) 現實世界中,事物內部及其事物之間是有聯繫的,這些聯繫在信息世界中反映爲實體(型)內部的聯繫和實體(型)之間的聯繫。實體內部的聯繫通常是指組成實體的各屬性之間的聯繫,實體之間的聯繫通常是指不同實體集之間的聯繫。實體之間的聯繫有一對一、一對多和多對多等多種類型。

[2]. 概念模型的一種表示方法:實體-聯繫方法

概念模型的表示方法很多,其中最爲常用的是P.P.S.Chen於1976年提出的實體-聯繫方法。該方法用E-R圖來描述現實世界的概念模型,E-R方法也稱爲E-R模型

三、數據模型的組成要素

數據模型通常由數據結構、數據操作和數據的完整性約束條件三部分組成。

[1]. 數據結構

數據結構描述數據庫的組成對象以及對象之間的聯繫。數據結構描述的內容有兩類:一類是與對象的類型、內容、性質有關的,一類是與數據之間聯繫有關的對象。
數據結構是刻畫一個數據模型性質最重要的方面。因此在數據庫系統中,人們通常按照其數據結構的類型來命名數據模型。數據結構是所描述的對象類型的集合,是對系統靜態特性的描述。

[2]. 數據操作

數據操作是指對數據庫中各種對象(型)的實例(值)允許執行的操作的集合,包括操作及有關的操作規則。數據庫主要有查詢和更新兩大列操作。數據模型必須定義這些操作的確切含義、操作符號、操作規則以及實現操作的語言。數據操作是對系統動態特性的描述。

[3].數據的完整性約束條件

數據的完整性約束條件是一組完整性規則。完整性規則是給定的數據模型中數據及其聯繫所具有的制約和依存規則,用以限定符合數據模型的數據庫狀態以及狀態的變化,以保證數據的正確、有效和相容。
數據模型應該反映和規定其必須遵守的基本的和通用的完整性約束條件。
此外,數據模型還應該提供定義完整性約束條件的機制,以反映具體應用所涉及的數據必須遵守的特定的語義約束條件。

四、常用的數據模型

其中層次模型和網狀模型稱爲格式化模型。

主要的邏輯數據模型
層次模型
網狀模型
關係模型
面向對象數據模型
對象關係數據模型
半結構化數據模型

在格式化模型中實體用記錄表示,實體的屬性對應記錄的數據項(或字段)。實體之間的聯繫在格式化模型中轉換成記錄之間的兩兩聯繫。
在格式化模型中數據結構的單位是基本層次聯繫。所謂基本層次聯繫是指兩個記錄以及它們之間的一對多(包括一對一)的聯繫。

五、層次模型

層次模型是數據庫系統中最早出現的數據模型,層次數據庫系統採用層次模型作爲數據的組織方式。層次數據庫系統的典型代表是IBM公司的IMS。
層次模型用樹形結構來表示各類實體以及實體之間的聯繫。

[1]. 層次模型的數據結構

在數據庫中定義滿足下面兩個條件的基本層次聯繫的集合爲層次模型

(1)有且只有一個結點沒有雙親結點,這個結點稱爲根結點。
(2)根以外的其他結點有且只有一個雙親結點。

在層次模型中,每個結點表示一個記錄類型,記錄類型之間的聯繫用結點之間的連線表示,這種聯繫是父子之間的一對多的聯繫。這就使得層次數據庫系統只能處理一對多的實體聯繫。
每個記錄類型可包含若干個字段,這裏記錄類型描述的是實體,字段描述實體的屬性。各個記錄類型及其字段都必須命名。各個記錄類型、同一記錄類型中各個字段不能同名。每個記錄類型可以定義一個排序字段,也稱爲碼字段,如果定義該排序字段的值是唯一的,則它能唯一地標識一個記錄值。
一個層次模型在理論上可以包含任意有限個記錄類型和字段,但任何實際的系統都會因爲存儲容量或實現複雜度而限制層次模型中包含的記錄類型個數和字段的個數。
在層次模型中,同一雙親的子女結點稱爲兄弟結點,沒有子女結點的結點稱爲葉結點。
層次模型像一顆倒立的樹,結點的雙親是唯一的。層次模型的一個基本的特點是,任何一個給定的記錄值只能按其層次路徑查看,沒有一個子女記錄能夠脫離雙親記錄值而獨立存在。

[2]. 層次模型的數據操縱與完整性約束

層次模型的數據操縱主要有查詢、插入、刪除和更新。進行插入、刪除、更新操作時要滿足層次模型的完整性約束條件。
進行插入操作時,如果沒有相應的雙親結點值就不能插入它的子女結點值。
進行刪除操作時,如果刪除雙親結點值,則相應的子女結點值也將被同時刪除。

[3]. 層次模型的優缺點

優點
層次模型的數據結構比較簡單清晰
層次數據庫的查詢效率高
層次數據模型提供了良好的完整性支持
缺點
現實世界中很多聯繫是非層次性的,如結點之間具有多對多聯繫,不適合用層次模型表示
如果一個結點具有多個雙親結點等,用層次模型表示這類聯繫就很笨拙
查詢子女結點必須通過雙親結點
由於結構嚴密,層次命令趨於程序化

六、網狀模型

網狀數據庫系統採用網狀模型作爲數據的組織方式。網狀數據模型的典型代表是DBTG系統,亦稱CODASYL系統。這是20世紀70年代數據系統語言研究會下屬的數據庫任務組提出的一個系統方案。

[1]. 網狀模型的數據結構

在數據庫中,把滿足以下兩個條件的基本層次聯繫集合稱爲網狀模型

(1)允許一個以上的結點無雙親
(2)一個結點可以有多於一個的雙親

網狀模型是一種比層次模型更具普遍性的結構,它去掉了層次模型的兩個限制,允許多個結點沒有雙親結點,允許結點有多個雙親結點;此外它還允許兩個結點之間有多個聯繫。因此網狀模型可以更直接地描述現實世界。而層次模型實際上是網狀模型的一個特例。
與層次模型一樣,網狀模型中每個結點表示一個記錄類型(實體),每個記錄類型可包含若干個字段(實體的屬性),結點間的連線表示記錄類型(實體)之間一對多的父子聯繫。
層次模型中子女結點與雙親結點的聯繫是唯一的,而在網狀模型中這種聯繫可以不唯一。

[2]. 網狀模型的數據操縱與完整性約束

網狀模型一般來說沒有層次模型那樣嚴格的完整性約束條件,但具體的網狀數據庫系統對數據操縱都加了一些限制,提供了一定的完整性約束。
DBTG在模式數據定義語言中提供了定義DBTG數據完整性的若干概念和語句,如下:

(1)支持記錄碼的概念,碼即唯一標識記錄的數據項的集合
(2)保證一個聯繫中雙親記錄和子女記錄之間是一對多的聯繫
(3)可以支持雙親記錄和子女記錄之間的某些約束條件

[3]. 網狀模型的優缺點:

優點
能夠更爲直接地描述現實世界,如一個結點可以有多個雙親,結點之間可以有多種聯繫。
具有良好的性能,存取效率較高
缺點
結構比較複雜,而且隨着應用環境的擴大,數據庫的結構就變得越來越複雜,不利於最終用戶掌握。
網狀模型的DDL、DML複雜,並且要嵌入某一種高級語言中,用戶不容易掌握,不容易使用。
由於記錄之間的聯繫是通過存取路徑實現的,應用程序在訪問數據時必須選擇適當的存取路徑,因此用戶必須瞭解系統結構的細節,加重了編寫應用程序的負擔。

七、關係模型

關係模型是最重要的一種數據模型,關係數據庫系統採用關係模型作爲數據的組織方式。
1970年,美國IBM公司San Jose研究室的研究員E.F.Codd首次提出了數據庫系統的關係模型,開創了數據庫關係方法和關係數據理論的研究,爲數據庫技術奠定了理論基礎。

[1]. 關係模型的數據結構

關係模型是建立在嚴格的數據概念的基礎上,從用戶觀點看,關係模型由一組關係組成,每個關係的數據結構是一張規範化的二維表。

術語 介紹
關係 一個關係對應通常說的一張表
元組 表中的一行稱爲元組
屬性 表中的一列即爲一個屬性,給每一個屬性起一個名字即屬性名。
碼(key) 也稱爲碼鍵,表中的某個屬性組,它可以唯一確定一個元組。
域(domain) 域是一組具有相同數據類型的值的集合,屬性的取值範圍來自某個域。
分量 元組中的一個屬性值
關係模式 對關係的描述,關係模型要求關係必須是規範化的,即要求關係必須滿足一定的規範條件,這些規範條件中最基本的一條就是關係的每一個分量必須是一個不可分的數據項。也就是說,不允許表中還有表。

[2]. 關係模型的數據操縱與完整性約束

關係模型的數據操縱主要包括查詢、插入、刪除和更新數據。這些操作必須滿足關係的完整性約束條件。
關係的完整性約束條件包括三大類:實體完整性、參照完整性和用戶定義的完整性。
關係模型中的數據操作是集合操作,操作對象和操作結果都是關係。關係模型把存取路徑向用戶隱蔽起來,用戶只需要指出需求,不必說明如何做、如何找。這樣提高了數據的獨立性,提高了用戶生產率

[3]. 關係模型的優缺點

優點
關係模型與格式化模型不同,是建立在嚴格的數學概念的基礎上
關係模型的概念單一,無論是實體還是實體之間的聯繫都用關係來表示,對數據的檢索和更新結果也是關係(表),所以其結構簡單、清晰,用戶易懂易用。
關係模型的存取路徑對用戶透明,從而具有更高的數據獨立性、更好的安全保密性,簡化了程序員的工作和數據庫開發建立的工作。

缺點

存取路徑對用戶隱蔽,查詢效率往往不如格式化數據模型。
爲了提高性能,數據庫管理系統必須對用戶的查詢請求進行優化,因此增加了開發數據庫管理系統難度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章