一、數據庫系統概述
DBMS的主要特性
- 數據訪問的高效和可擴展性
- 縮短應用開發時間
- 數據獨立性(物理數據獨立性/邏輯數據獨立性)
- 數據完整性和安全性
- 併發訪問和魯棒性(恢復)
文件系統的不足
- 數據冗餘和不一致
- 多種文件格式、信息重複存儲
- 數據訪問困難
- 需要編寫一個新的程序來完成每一個新的任務
- 數據孤立
- 多文件多格式,檢索、共享數據困難
- 完整性問題
- 完整性約束稱爲程序代碼的一部分
- 增加新的約束或更改現有的約束很困難
- 原子性問題
- 在進行數據更新時,一旦發生故障,可能導致數據庫處於不一致的狀態
- 例如,從一個賬戶轉移資金到另一個賬戶,要麼完成,要麼不做
- 併發訪問異常
- 爲了提高系統的總體性能,許多系統允許併發訪問
- 安全性問題
- 並非所有用戶都可以訪問所有數據
- 文件系統的訪問控制不夠靈活
數據抽象
- 物理層:描述數據實際上是怎麼存儲的
- 邏輯層:描述數據庫中存儲什麼數據以及這些數據間存在什麼關係
- 視圖層:應用程序能夠隱藏數據類型的詳細信息
實例和模式
- 模式(Schema):數據庫的總體設計
- 類似程序中變量的類型信息
- 物理模式:在物理層描述數據庫的設計
- 邏輯模式:在邏輯層描述數據庫的設計
- 實例(Instance):特定時刻存儲在數據庫中的信息的集合
- 類似於程序中變量的值
獨立性
修改一層的機構定義不影響更高層的結構定義
- 物理數據獨立性:修改物理結構不需要改變邏輯結構的能力
- 應用程序依賴於邏輯結構
- 應用程序獨立於數據的結構和存儲
- 這是使用DBMS最重要的好處
- 邏輯數據獨立性:數據邏輯結構的改變不影響應用程序
- 邏輯數據獨立性一般難以實現,因爲應用程序嚴重依賴於數據的邏輯結構
數據模型
- 數據模型是一個概念工具的集合,用於描述:
- 數據結構
- 數據關係
- 數據語義
- 數據約束
- 數據抽象的不同層次需要不同的數據模型來描述
- 實體 - 關係模型(概念設計)
- 關係模型(邏輯設計)
- 其他模型
E-R(Entity-Relationship)模型
實體,如客戶、賬戶,實體由屬性描述
聯繫:是幾個實體之間的關聯