DBMS管理數據的三個層次mysql
對數據庫中數據所進行的一種結構型的描述。sql
以mysql爲例,輸入desc citizen
查看到的表結構就是模式數據庫
image-20200718203624750數據結構
某一種表示形式下表現出來的數據庫中的數據,也就是模式的具象化app
image-20200718203822444spa
模式之間結構是不相同的,是沒法簡單關聯在一塊兒的。所以咱們須要引入新的概念:映像(Mapping)
。設計
由上文可知,咱們須要兩個映像將三個模式關聯起來:code
E-C Mapping
: 將外模式映射爲概念模式,從而支持實現數據概念視圖向外部視圖的轉換,便於用戶觀察和使用。C-I Mapping
:將概念模式映射爲內模式,從而支持是實現數據概念視圖向內部視圖的轉換,便於計算機進行存儲和處理三級模式與兩層映像組成了咱們數據庫的標準結構。用戶本身定義三層視圖,由DBMS幫助咱們完成兩層映射的實現。在實際應用中,應用程序實際上只對外部視圖進行操做。blog
那爲何須要這麼設計呢?索引
其實是遵循「兩個獨立性」:
當概念模式變化時,能夠不改變外部模式(只須要改變E-C Mapping),從而無需改變應用程序,減小耦合度。
當內部模式變化時,一樣只需改變C-I Mapping,從而不改變概念模式,也不須要改變外部模式。
數據模型是規定模式統一描述方式的模型,包括數據結構
、操做
和約束
。模型是對模式自己的抽象,而模式是對數據的抽象。
例如:關係模型就是對「一類」數據有聯繫的抽象表形式的模式。關係模型中就是對模型中包含的模式作出要求:每個具體的模式都擁有不一樣列名的具體的表,規定了對這類表能夠進行哪些操做和約束。