數據庫系統原理(一)--數據模型

一、數據庫系統三級模式與二級映像

  

                     層次結構圖

    1、若從數據庫管理員(DBA)的視角來看,數據庫系統可分爲內部系統結構和外部體系結構,其中內部體系結構通常採用三級模式結構。

   (1)模式 也稱爲概念模式或邏輯模式,對應於概念級,它是數據庫中全體數據的邏輯結構和特徵的描述,是所有用戶的公共數據視圖。 不僅要定義數據的邏輯結構,還要定義數據之間的聯繫,定義與數據相關的安全性、完整性等要求。它是由DBMS描述語言(DataDescription Language,DDL)來描述、定義的,體現、反映了數據庫系統的整體觀。

  (2)外模式 也稱爲子模式或用戶模式,對應於用戶級,它是數據庫用戶能夠看見和使用的局部數據的邏輯結構和特徵的描述,是與某一應用有關的數據的邏輯表示。 外模式實際上是用於滿足不同數據庫用戶需求的數據視圖,即用戶視圖。用戶可以通過外模式描述語言來描述、定義對應於用戶的數據記錄(外模式),也可以利用數據操縱語言(DataManipulation Language,DML)對這些數據記錄進行。外模式反映了數據庫的用戶觀。

  (3)內模式 內模式也稱爲存儲模式,對應於物理級,它是對數據庫中數據物理結構和存儲方式的描述,是數據在數據庫內部的表示形式,是數據庫最低一級的邏輯描述,它描述了數據在存儲介質上的存儲方式和物理結構,對應着實際存儲在外存儲介質上的數據庫。 內模式實際上是整個數據庫的最底層表示,它不同於物理層,是數據庫管理員 (DBA)所見到的,特定的 DBMS 所處理的數據庫的內部結構,即內部視圖或存儲視圖。內模式定義了所有內部記錄類型、索引和文件的組織方式,以及所有數據控制方面的細節。內模式由內模式描述語言來描述、定義,它是數據庫的存儲觀。

   2、二級映像

   1、外模式/模式映像:所謂映像,就是一種對應規則,它指出映像雙方是如何進行轉換的。通過外模式一模式映射,定義和建立某個外模式與模式間的對應關係,將外模式與模式聯繫起來,當模式發生改變時,只要改變其映射,就可以使外模式保持不變,對應的應用程序也可保持不變;

   2、模式/內模式映像:定義了數據庫全局邏輯結構與物理存儲之間的對應關係,模式/內模式映像是唯一的。通過模式一內模式映射,定義建立數據的邏輯結構(模式)與存儲結構(內模式)間的對應關係,當數據的存儲結構發生變化時,只需改變模式一內模式映射,就能保持模式不變,因此應用程序也可以保持不變。

     通過外模式-模式映射和模式-內模式映射這兩個映射保證了數據庫系統中的數據具有較高的邏輯獨立性和物理獨立性。

      當數據庫模式發生變化時,例如關係數據庫系統中增加新的關係、改變關係的屬性數據類型等,可以調整外模式/模式間的映像關係,保證面向用戶的各個外模式不變。應用程序是依據數據的外模式編寫的,從而應用程序不必修改,保證了數據與應用程序的邏輯獨立性,簡稱數據的邏輯獨立性。      
      當數據庫中數據物理存儲結構改變時,即內模式發生變化,例如定義和選用了另一種存儲結構,可以調整模式/內模式映像關係,保持數據庫模式不變,從而使數據庫系統的外模式和各個應用程序不必隨之改變。這樣就保證了數據庫中數據與應用程序間的物理獨立性,簡稱數據的物理獨立性。

 

 二、數據模型

1、概念
數據模型:描述的是數據的共性內容,是對現實世界數據特徵的抽象,用於描述一組數據的概念和定義。數據模型是數據庫中數據的存儲方式,是數據庫系統的基礎。在數據庫中,數據的物理結構又稱數據的存儲結構,就是數據元素在計算機存儲器中的表示及其配置;數據的邏輯結構則是指數據元素之間的邏輯關係,它是數據在用戶或程序員面前的表現形式,數據的存儲結構不一定與邏輯結構一致。

  
  
    ·        
層次結構圖
2、數據特徵與數據模型組成要素
數據的特徵:
(1)靜態特徵:包括數據的基本結構、數據間的聯繫以及對數據取值範圍的約束;
(2)動態特徵:
是指對數據可以進行符合一定規則的操作。

組成要素:
  數據模型通常由數據結構、數據操作和數據約束三個要素組成。數據結構描述的是系統的靜態特性,即數據對象的數據類型、內容、屬性以及數據對象之間的聯繫。數據操作描述的是系統的動態特性,是對各種對象的實例允許執行的操作的集合,包括操作以及有關的操作規則。數據約束描述數據結構中數據間的語法和語義關聯,包括相互制約與依存關係以及數據動態變化規則,以保證數據的正確性、有效性與相容性。

  3、數據模型的分類

 數據模型是模型化數據和信息的工具,也是數據庫系統的核心和基礎。
(1)概念層數據模型

  概念層數據模型也稱爲數據的概念模型或信息模型,它用來描述現實世界的事物,與具體的計算機系統無關,且獨立於任何DBMS,但容易向 DBMS 所支持的邏輯數據模型轉換。

  概念模型的表示方法:用 E-R 圖來描述現實世界的概念模型,實體用矩形表 示;屬性用橢圓形表示;聯繫用菱形表示。

  (2)邏輯層數據模型

   邏輯層是數據抽象的中間層,描述數據整體的邏輯結構。 主要的邏輯數據模型有層次模型、網狀模型、關係模型、面向對象模型。

      1)、層次模型:數據庫最早使用的數據模型。特點:有且僅有一個結點沒有父結 點,它稱作根結點;其他結點有且僅有一個父結點。

      2)、網狀模型:以網狀結構表示實體與實體之間的聯繫。

    3)、關係模型:用二維表結構來表示實體及實體間聯繫的模型,並以二維表格的形式組織數據庫中的數據。關係模型是建立在嚴格的數學概念基礎上的;關係模型的概念單一,統一用關係來表示實體以及實體之間的聯繫,對數據的檢索和更新結果同樣也是用關係來表示;關係模型的存取路徑對用戶透明,從而具有更高的數據獨立性、更好的安全保密性,也簡化了程序員的工作和數據庫開發建立的工作。

      4)、面向對象模型:與數據庫相結合所構成的數據模型稱爲面向對象模型。

  (3)物理層數據模型

  物理層數據模型,也稱爲數據的物理模型,其描述數據在存儲介質上的組織結構,是邏輯模型的物理實現,即每一種邏輯模型在實現時都有與其相對的物理模型。從現實世界到概念模型的轉換是由數據庫設計人員完成的;從概念模型到邏輯模型的轉換可以由數據庫設計人員完成,也可以用數據庫設計工具協助設計人員完成;從邏輯模型到物理模型的轉換是由數據庫管理系統完成的。

三、關係數據模型

關係模型包含三個組成要素,分別是關係數據結構、關係操作集合和關係完整性約束。
關係數據庫系統:支持關係模型的數據庫系統。

1、關係數據結構
關係模型只包含單一的數據結構,即關係。在關係模型中,現實世界的實體以及實體間的各種聯繫,均是使用關係來表示。在用戶看來,關係模型是把數據庫表示爲關係的集合,且關係數據庫是以二維表格的形式組織數據。

表:也稱爲關係,是一個二維的數據結構。
    關係:一個關係邏輯上對應一張二維表,可以爲每個關係取一個名稱進行標識。關係可以有三種類型,即基本關係、查詢表和視圖表。

        1)基本關係通常又稱爲基本表或基表,是實際存在的表,它是實際存儲數據的邏輯表示;

     2)查詢表是查詢結果;

     3)視圖表是由基本表或其他視圖表導出的表,是虛表,不對應實際存儲的數據。

   4)參照關係和被參照關係:參照關係也稱爲從關係,被參照關係也稱爲主關係,它們是指以外碼相關聯的兩個關係。以外碼作爲主碼的關係稱爲被參照關係;外碼所在的關係稱爲參照關係。被參照關係與參照關係是通過外碼相聯繫的,這種聯繫通常是一對多的聯繫。

       5)關係模式:同數據模型一樣,數據庫也有型和值之分。在關係數據庫中,關係模式是型,關係是值,即關係模式是對關係的描述。關係模式是靜態的、穩定的,而關係是動態的、隨時間不斷變化的。這是因爲關係操作在不斷地更新着數據庫中的數據。人們常常會把關係模式和關係都籠統地稱爲關係。

  6)關係數據庫

     以關係模式作爲數據的邏輯模型,並採用關係作爲數據組織方式的一類數據庫,其數據庫操作建立在關係代數的基礎上。在一個給定的應用領域中,所有關係的集合構成一個關係數據庫。 關係數據庫對關係是有限定的,具體要求如下: 

    6.1).每一個屬性都是不可分解的。

    6.2).每一個關係僅僅有一種關係模式。 

    6.3).每一個關係模式中的屬性必須命名,在同一個關係模式中,屬性名必須是不同的。

    6.4).同一個關係中不允許出現候選碼或候選鍵值完全相同的元組。 

    6.5).在關係中元組的順序是無關緊要的,可以任意交換。 

    6.6).在關係中屬性的順序是無關緊要的,可以任意交換。

    7)其他概念,如,列、 屬性、表中的行、元組、分量、主碼或主鍵、全碼或全鍵、主屬性和非主屬性、外碼或外鍵、域、數據類型、碼或鍵、超碼或超鍵、候選碼或候選鍵。

 

2、 關係的完整性約束
  數據庫的數據完整性是指數據庫中數據的正確性、相容性和一致性。
  關係模型中有三類完整性約束,分別是實體完整性約束、參照完整性約束和用戶定義完整性約束。

  (1)實體完整性約束 

  實體完整性約束是指關係的主屬性,即主碼的組成不能爲空,也就是關係的主 屬性不能是空值 NULL。

  (2)參照完整性約束

  參照完整性約束就是定義外碼和主碼之間的引用規則,它是對關係間引用數據的一種限制。描述定義:若屬性 F 是基本關係 R 的外碼,它與基本關係 S 的 主碼 K 相對應,則對 R 中每個元組在 F 上的值只允許兩種可能,即要麼取空值, 要麼等於 S 中某個元組的主碼值。

  (3)用戶定義完整性約束

     用戶定義的完整性約束是針對某一應用環境的完整性約束條件,它反映了某一具體應用所涉及的數據應滿足的要求。

  (4)關係模型完整性約束的檢驗

   爲了維護關係數據庫中數據的完整性,在對關係數據庫執行插入、刪除和更新操作時,需要檢驗是否滿足上述三類完整性約束。

 

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