數據庫系統#2——數據庫系統的模式與模型

數據庫系統的標準結構

數據庫系統的分層抽象

DBMS管理數據的三個層次mysql

  • User Level:用戶層次。某一用戶可以看到、處理數據,全局數據中的某一部分;
  • Logic Level:邏輯/概念層次。從全局角度理解/管理的數據。含相關的關聯約束;
  • Physical Level:物理層次。存儲在介質上的數據,含存儲路徑、存儲方式、索引方式。

數據(視圖)與模式

模式

對數據庫中數據所進行的一種結構型的描述。sql

以mysql爲例,輸入desc citizen查看到的表結構就是模式數據庫

image-20200718203624750

image-20200718203624750數據結構

視圖/數據

某一種表示形式下表現出來的數據庫中的數據,也就是模式的具象化app

image-20200718203822444

image-20200718203822444spa

三級模式兩層映像

三級模式(三級視圖)

  • External Schema——(External) View:外部模式(視圖)。某一用戶可以看到與處理的數據的結構描述。做用於應用程序(表的抽象)。通常狀況下咱們說的視圖就是這一層面;
  • (Conceptual) Schema——Conceptual View:概念模式(視圖)。從全局角度理解/管理數據的結構描述,含相應的關聯約束,體如今數據之間的內在本質聯繫。做用於DBMS層面(表的管理)。通常狀況下咱們說的模式就是這一層面;
  • Internal Schema——Internal VIew:內部模式(視圖)。存儲在介質上的數據的結構描述,含存儲路徑、存儲方式、索引方式等。做用與數據庫(表的存儲)

兩層映像

模式之間結構是不相同的,是沒法簡單關聯在一塊兒的。所以咱們須要引入新的概念:映像(Mapping)設計

由上文可知,咱們須要兩個映像將三個模式關聯起來:code

  • E-C Mapping: 將外模式映射爲概念模式,從而支持實現數據概念視圖向外部視圖的轉換,便於用戶觀察和使用。
  • C-I Mapping:將概念模式映射爲內模式,從而支持是實現數據概念視圖向內部視圖的轉換,便於計算機進行存儲和處理

爲何須要這麼設計?

三級模式與兩層映像組成了咱們數據庫的標準結構。用戶本身定義三層視圖,由DBMS幫助咱們完成兩層映射的實現。在實際應用中,應用程序實際上只對外部視圖進行操做。blog

那爲何須要這麼設計呢?索引

其實是遵循「兩個獨立性」

  • 邏輯數據獨立性

    當概念模式變化時,能夠不改變外部模式(只須要改變E-C Mapping),從而無需改變應用程序,減小耦合度。

  • 物理數據獨立性

    當內部模式變化時,一樣只需改變C-I Mapping,從而不改變概念模式,也不須要改變外部模式。

數據模型

概念

數據模型是規定模式統一描述方式的模型,包括數據結構操做約束。模型是對模式自己的抽象,而模式是對數據的抽象。

例如:關係模型就是對「一類」數據有聯繫的抽象表形式的模式。關係模型中就是對模型中包含的模式作出要求:每個具體的模式都擁有不一樣列名的具體的表,規定了對這類表能夠進行哪些操做和約束。

三大經典數據模型

  • 關係模型:表的形式組織數據;
  • 層次模型:樹的形式組織數據。一般用來表示兩個節點(實體型)之間的聯繫(系型)。查詢效率高,可是結構不夠靈活;
  • 網狀模型:圖的形式組織數據。多個節點之間的聯繫。表示現實中的關係很清晰明瞭,可是實現太過複雜,維護不易。
相關文章
相關標籤/搜索