- SQL Server 2016 從入門到實戰(視頻教學版)
- 孫亞男
- 1559字
- 2019-12-12 17:28:40
1.2 數據庫體系結構
人們為數據庫設計了一個嚴謹的體系結構,數據庫領域公認的標準結構是三級模式結構,包括外模式、概念模式和內模式。數據庫體系結構能夠有效組織、管理數據,提高數據庫的邏輯獨立性和物理獨立性。
1.2.1 什么是模式
雖然實際的數據庫管理系統產品種類很多,支持不同的數據模式,使用不同的數據庫語言,建立在不同的操作系統之上,數據的存儲結構也各不相同,但它們在體系結構上通常具有相同的特征,即采用三級模式結構并提供兩級映像功能。
模式是數據庫中全體數據的邏輯結構和特征的描述,僅僅涉及型的描述,不涉及具體的值。模式的一個具體值稱為一個實例,同一個模式可以有很多實例。模式是相對穩定的,而實例是相對變動的,因為數據庫中的數據是在不斷更新的。模式反映的是數據的結構及其聯系,而實例反映的是數據庫某一時刻的狀態。
1.2.2 三級模式結構
美國國家標準協會(American National Standard Institute, ANSI)的數據庫管理系統研究小組于1978年提出了標準化的建議,將數據庫結構分為3級:面向用戶或應用程序員的用戶級、面向建立和維護數據庫人員的概念級、面向系統程序員的物理級。
其中,用戶級對應外模式,概念級對應概念模式,物理級對應內模式,不同級別的用戶對數據庫形成不同的視圖。所謂視圖,就是指觀察、認識和理解數據的范圍、角度和方法,是數據庫在用戶眼中的反映。很顯然,不同層次(級別)的用戶所看到的數據庫是不同的。數據庫系統結構層次如圖1.1所示。

圖1.1 數據庫系統結構層次圖
1.分類
(1)外模式
外模式又稱子模式或用戶模式,對應用戶級。它是某個或某幾個用戶所看到的數據庫的數據視圖,是與某一應用有關的數據的邏輯表示。外模式是從模式導出的一個子集,包含模式中允許特定用戶使用的那部分數據。用戶可以通過外模式描述語言來描述、定義對應用戶的數據記錄(外模式),也可以利用數據操縱語言(Data Manipulation Language, DML)對這些數據記錄進行操作。總的來說,外模式反映了數據庫的用戶觀。
外模式規定了數據的添加、刪除、顯示、維護、打印、查找、選擇、排序和更新等操作。
(2)概念模式
模式又稱概念模式或邏輯模式,對應概念級。它是由數據庫設計者綜合所有用戶的數據,按照統一的觀點構造的全局邏輯結構,是對數據庫中全部數據的邏輯結構和特征的總體描述,是所有用戶的公共數據視圖(全局視圖)。它是由數據庫管理系統提供的數據模式描述語言(Data Description Language, DDL)來描述、定義的,體現、反映了數據庫系統的整體觀。
(3)內模式
內模式又稱存儲模式,對應物理級。它是數據庫中全體數據的內部表示或底層描述,是數據庫最低一級的邏輯描述,它描述了數據在存儲介質上的存儲方式和物理結構,對應著實際存儲在外存儲介質上的數據庫。
在一個數據庫系統中只有唯一的數據庫,因而作為定義、描述數據庫存儲結構的內模式和定義、描述數據庫邏輯結構的模式也是唯一的,但建立在數據庫系統之上的應用則是非常廣泛、多樣的,所以對應的外模式不是唯一的,也不可能是唯一的。
2.工作原理
數據庫的三級模式是數據庫在3個級別(層次)上的抽象,使用戶能夠邏輯地、抽象地處理數據而不必關心數據在計算機中的物理表示和存儲。實際上,對于一個數據庫系統而言,物理級數據庫是客觀存在的,是進行數據庫操作的基礎;概念級數據庫不過是物理數據庫的一種邏輯、抽象的描述(模式);用戶級數據庫則是用戶與數據庫的接口,是概念級數據庫的一個子集(外模式)。
用戶應用程序根據外模式進行數據操作,通過外模式—模式映射定義和建立某個外模式與模式間的對應關系,將外模式與模式聯系起來,當模式發生改變時,只要改變其映射,就可以使外模式保持不變,對應的應用程序也保持不變;另一方面,通過模式—內模式映射定義建立數據的邏輯結構(模式)與存儲結構(內模式)間的對應關系,當數據的存儲結構發生變化時,只需改變模式—內模式映射,就能保持模式不變,因此應用程序也可以保持不變。
- C及C++程序設計(第4版)
- Vue 3移動Web開發與性能調優實戰
- 精通搜索分析
- Mastering Kali Linux for Web Penetration Testing
- Learn WebAssembly
- Java 11 Cookbook
- 精通網絡視頻核心開發技術
- Flutter跨平臺開發入門與實戰
- Swift語言實戰精講
- Mastering Linux Security and Hardening
- 深入剖析Java虛擬機:源碼剖析與實例詳解(基礎卷)
- 持續集成與持續交付實戰:用Jenkins、Travis CI和CircleCI構建和發布大規模高質量軟件
- ExtJS Web應用程序開發指南第2版
- Principles of Strategic Data Science
- Python語言科研繪圖與學術圖表繪制從入門到精通