從數據庫管理系統角度看,數據庫系統通常采用三級模式結構,是數據庫系統內部的系統結構
從數據庫最終用戶角度看(數據庫系統外部的體系結構) ,數據庫系統的結構分為:
單用戶結構
分布式結構
客戶/服務器
浏覽器/應用服務器/數據庫服務器多層結構等
“型” 和“值” 的概念
型(Type)
對某一類數據的結構和屬性的說明
值(Value)
是型的一個具體賦值
例如
學生記錄型:
(學號,姓名,性別,系別,年齡,籍貫)
一個記錄值:
(900201,李明,男,計算機,22,江蘇)
模式(Schema)
數據庫邏輯結構和特征的描述
是型的描述
反映的是數據的結構及其聯系
模式是相對穩定的
實例(Instance)
模式的一個具體值
反映數據庫某一時刻的狀態
同一個模式可以有很多實例
實例隨數據庫中的數據的更新而變動
模式(也稱邏輯模式)
數據庫中全體數據的邏輯結構和特征的描述
所有用戶的公共數據視圖,綜合了所有用戶的需求
一個數據庫只有一個模式
模式的地位:是數據庫系統模式結構的中間層
與數據的物理存儲細節和硬件環境無關
與具體的應用程序、開發工具及高級程序設計語言無關
模式的定義
數據的邏輯結構(數據項的名字、類型、取值范圍等)
數據之間的聯系
數據有關的安全性、完整性要求
教學數據庫模式(前面的第二個實例)
教師(教師號,姓名,職稱)
主鍵:教師號
課程(課程號,課程名稱,教師號,教材)
主鍵:課程號 外鍵:教師號
學生(學號,姓名,性別,教師號)
主鍵:學號 外鍵:教師號
選課(學號,課程號, 成績)
主鍵:(學號,課程號)
外鍵1:學號,外鍵2:課程號
[例] 創建學生Student表
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY,
Sname CHAR(20) NOT NULL,
Ssex CHAR(2) ,
Sage NUMBER,
Sdept CHAR(20))
TABLESPACE USERS;
[例] 創建課程Course表
CREATE TABLE Course
(Cno CHAR(4) PRIMARY KEY,
Cname CHAR(40) NOT NULL,
Cpno CHAR(4) ,
Ccredit NUMBER,
FOREIGN KEY Cpno REFERENCES Course( Cno))
TABLESPACE USERS;
[例] 創建選修課程SC表
CREATE TABLE SC
(Sno CHAR(9) NOT NULL,
Cno CHAR(4) NOT NULL,
Grade Grade,
PRIMARY KEY (Sno,Cno),
FOREIGN KEY (Sno) REFERENCES Student(Sno),
FOREIGN KEY (Cno) REFERENCES Course(Cno))
TABLESPACE USERS;
外模式(也稱子模式或用戶模式)
數據庫用戶(包括應用程序員和最終用戶)使用的局部數據的邏輯結構和特征的描述
數據庫用戶的數據視圖,是與某一應用有關的數據的邏輯表示
外模式的地位:介於模式與應用之間
模式與外模式的關系:一對多
外模式通常是模式的子集
一個數據庫可以有多個外模式。反映了不同的用戶的應用需求、看待數據的方式、對數據保密的要求
對模式中同一數據,在外模式中的結構、類型、長度、保密級別等都可以不同
外模式與應用的關系:一對多
同一外模式也可以為某一用戶的多個應用系統所使用
但一個應用程序只能使用一個外模式
外模式的用途
保證數據庫安全性的一個有力措施
每個用戶只能看見和訪問所對應的外模式中的數據
建立計算機系學生的視圖 CS_Student
CREATE VIEW CS_Student
AS
SELECT *
FROM Student
WHERE Sdept='CS';
內模式(也稱存儲模式)
是數據物理結構和存儲方式的描述
是數據在數據庫內部的表示方式
記錄的存儲方式(順序存儲,按照B樹結構存儲,
按hash方法存儲)
索引的組織方式
數據是否壓縮存儲
數據是否加密
數據存儲記錄結構的規定
一個數據庫只有一個內模式
模式/內模式映象定義了數據全局邏輯結構與存儲結構之間的對應關系。
數據庫中模式/內模式映象是唯一的。
該映象定義通常包含在模式描述中。
保證數據的物理獨立性
當數據庫的存儲結構改變了(例如選用了另一種存儲結構),數據庫管理員修改模式/內模式映象,使模式保持不變
應用程序不受影響。保證了數據與程序的物理獨立性,簡稱數據的物理獨立性。
數據庫模式
即全局邏輯結構是數據庫的中心與關鍵
獨立於數據庫的其他層次
設計數據庫模式結構時應首先確定數據庫的邏輯模式
數據庫的內模式
依賴於它的全局邏輯結構
獨立於數據庫的用戶視圖,即外模式
獨立於具體的存儲設備
將全局邏輯結構中所定義的數據結構及其聯系按照一定的物理存儲策略進行組織,以達到較好的時間與空間效率
數據庫的外模式
面向具體的應用程序
定義在邏輯模式之上
獨立於存儲模式和存儲設備
當應用需求發生較大變化,相應外模式不能滿足其視圖要求時,該外模式就得做相應改動
特定的應用程序
在外模式描述的數據結構上編制的
依賴於特定的外模式
與數據庫的模式和存儲結構獨立
不同的應用程序有時可以共用同一個外模式
數據庫的二級映像
保證了數據庫外模式的穩定性
從底層保證了應用程序的穩定性,除非應用需求本身發生變化,否則應用程序一般不需要修改
數據與程序之間的獨立性,使得數據的定義和描述可以從應用程序中分離出去
數據的存取由DBMS管理
用戶不必考慮存取路徑等細節
簡化了應用程序的編制
大大減少了應用程序的維護和修改
具體職責:
1.決定數據庫中的信息內容和結構
2.決定數據庫的存儲結構和存取策略
3.定義數據的安全性要求和完整性約束條件
4.監控數據庫的使用和運行
周期性轉儲數據庫
數據文件
日志文件
系統故障恢復
介質故障恢復
監視審計文件
5. 數據庫的改進和重組
性能監控和調優
定期對數據庫進行重組織,以提高系統的性能
需求增加和改變時,數據庫須需要重構造