【數據庫系統】數據庫系統三級模式和兩層映像

  數據庫系統學習第四篇:數據庫系統三級模式和兩層映像。

前言

  數據庫三層結構隱藏了數據的存儲和維護的細節,降低了數據庫系統的複雜性,方便用戶訪問數據庫。那三層結構具體是怎樣設計的呢?這有賴於數據庫系統三級模式。

三級模式

模式和實例

  在說三級模式之前,先了解一下數據庫模式和數據庫實例是什麼。數據庫模式簡單來說就是數據庫的設計而數據庫實例指的是特定時刻數據的集合數據庫模式不常變化
舉例如下所示:

class A{
//nothing here
}

class B{
  public static void  main(String [] args){
  // demo 即引用變量  代表  數據庫模式
  // 每一次new出來的實際變量則  代表 數據庫實例
  // 數據庫模式不常變化指的是類A不常改變

  A demo =  new  A();
    demo =  new  A();
    demo =  new  A();
  }
}

三級模式

  數據庫系統設計從三層結構層面引出了三級模式,如下對應:

  • 物理(內部)層 ------------------ 物理(內)  模式
  • 邏輯(概念)層 ------------------ 邏輯(概念)模式
  • 視圖(外部)層 ------------------ 子  (外)  模式

  簡單來說 物理模式就是從物理層設計整個數據庫,依次類推。但是需要注意的是,子模式不止一個,因爲不同的用戶對應的視圖不同,那就可以知道子模式應該也就不同,所以不止一個。
  通常情況下,數據庫系統的設計都是由簡到繁,一般是先獲得用戶需求之後在進行設計,那麼可以理解爲是先從子模式設計開始,然後到邏輯模式,再到物理模式。

兩層映像

  兩級映像的提出主要是保證數據的獨立性,數據的獨立性與否是判斷一個數據庫系統是否合格的重要指標。

數據獨立性

  數據獨立性分爲兩種:1.邏輯數據獨立性。2.物理數據獨立性

邏輯數據獨立性

  Logical data independence refers to the immunity of the external schemas to changes in the conceptual schema.Conceptual schema changes (e.g. addition/removal of entities) should not require changes to external schema or rewrites of application programs

  也就是說概念模式的改變不修改外模式。如提出了一個新的功能需求時,需要新增一些信息,那概念模式必然新增屬性或字段,這時候不應該影響外模式,以及修改程序。

物理數據獨立性

  Physical data independence refers to the immunity of the conceptual schema to changes in the internal schema.Internal schema changes (e.g. using different file organizations, storage structures/devices) should not require change to conceptual or external schemas.

  也就是說內模式的改變不影響概念模式。如數據的存儲位置等的修改不應該改變概念模式,當然,更不能改變外模式。

兩層映像

  爲了滿足邏輯數據獨立性和物理數據獨立性,概念層 與 外部層之間設置一層映像,使得概念模式改變,不修改外模式。概念層 與 內部層之間也設立一層印象,使得內模式改變,不修改概念模式。
  注意由於外模式(子模式)不止一個,那麼這兩個模式之間的映射關係也不止一個。具體如下圖:

在這裏插入圖片描述
  額,寫完收工。

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