1. 資料庫基礎
技術發展
先後經曆 人工管理、檔案系統、資料庫系統 等3個階段
人工管理階段
- 資料 不儲存、不共享、不具有獨立性
- 使用 應用程式管理資料
檔案系統階段
- 資料長期儲存、共享性差、獨立性差
- 資料備援大
- 檔案系統管理資料
資料庫系統階段
- 長期儲存、多使用者、多應用程式共享資料
- 資料庫系統管理資料
系統組成
體系結構
資料庫三級模式結構
模式
- 也稱邏輯模式或概念模式,用于描述全體資料的邏輯結構和特征
- 位于三級結構中間層
- 1 個資料庫隻有 1 個模式
外模式
- 也稱為使用者模式
- 是資料庫使用者能看到的局部資料,是資料庫使用者的資料視圖
- 外模式是模式的子集
- 1個資料庫可有n個外模式
外模式是保護資料安全性的一個有力措施
内模式
- 也稱為存儲模式
- 資料實體結構和存儲方式的描述
- 1個資料庫隻有1個内模式
三級模式之間的映射
外模式 - 模式
同一個模式 任意多個外模式,對于每個外模式,資料庫系統都存在一個 外模式 - 模式 映射
模式 - 内模式
隻有一個模式對應一個内模式,是以模式 - 内模式 是唯一的
資料模型
概念
- 資料模型是資料庫系統的核心與基礎,是描述 資料與資料之間的聯系、資料含義、資料一緻性限制的概念性工具集合
- 資料庫模型由資料結構、資料操作、完整性限制組成
資料結構:對資料庫系統的靜态描述,描述包括資料類型、性質、資料之間的互相關系
資料操作:對資料庫系統的動态描述,是對資料庫各種對象執行個體的操作
完整性限制:定義資料模型中資料及其聯系所具有的制約依存規則
常見的資料模型
常見的資料模型主要有層次模型、網狀模型、關系模型
層次模型
樹型結構表示實體類型及實體之間聯系
- 每棵樹有且僅有一個無雙親節點:根
- 樹中除根外的所有節點有且隻有一個雙親
網狀結構
有向圖結構表示實體類型與實體間聯系
- 用網狀模型編寫應用程式極其複雜,資料獨立性差
關系模型
二維表來描述資料,關系模型資料結構簡單、清晰,很高的資料獨立性
關系模型基本術語
- 關系:一個二維表就是一個關系
- 元祖:二維表的一行,表中的記錄
- 屬性:二維表的一列,用類型和值表示
- 域:每個屬性的取值範圍,例如性别的域為{男、女}
關系模型資料限制
- 實體完整性限制:主鍵屬性不能為空值
- 參照完整性限制:關系之間的基本限制
- 使用者自定義完整性限制:具體屬性的數值要求
關系資料庫的規範化
關系資料庫的規範化理論認為:關系資料庫中的每個關系都要滿足一定的範式。可分為5個等級。
一般情況下,滿足到第三範式即可 (NF 是Normal Form 縮寫)
第一範式 1NF
沒有多餘的重複字段
備援字段
符合第一範式的例子
不符合第一範式的例子
這裡有多個昵稱,不符合第一範式
第二範式 2NF
在第一範式的前提下,每個非主鍵的字段都要依賴主鍵字段
主鍵 -- 非主鍵 關系
符合第二範式但不符合第三範式的例子
第三範式 3NF
主鍵 -- 非主鍵 -- 非主鍵
在第二範式基礎上,主鍵和非主鍵的對應關系:a->b 而不是 a -> b -> c(主鍵 - 非主鍵 - 非主鍵)
第三範式要求,去除傳遞依賴
簡單一點來說,即一個表隻處理一個事情
例子:
關系資料庫的設計原則
- 最大限度的共享、最小的備援度(不是禁止備援,要在業務與資料表中做最好的權衡)
- 新增、修改資料時保證資料的一緻性和正确性
- 保證資料和使用資料的應用程式之間的獨立性
實體與關系
實體是指客觀存在并且可以互相區分的事物,實體即可以是實際事物,也可以是抽象的事物
資料庫中實體的3種關系
一對一
表A中存在1條資料與表B中有且隻有1條資料相比對
一對多
表A存在1條資料與表B中的多條資料比對
多對多
表A的多條資料與表B的多條資料比對,需要建立第3個表(稱為連接配接表)來實作
連接配接表包含兩個表的主鍵列
常見關系資料庫
Access資料庫
Microsoft Office 中包含Access資料庫,核心是Microsoft Jet 資料庫引擎
SQL Server資料庫
微軟開發的大型關系資料庫系統
優勢有2點:
- 統一開發環境:SQL Server2005與VS2005擁有統一的開發環境。高版本未知
- .net架構內建:SQL Server 2005包含.NET Framework 2.0。高版本未知
Oracle資料庫
美國甲骨文公司提供的分布式資料庫為核心的軟體産品
Oracle是全世界使用最為廣泛的關系型資料庫
Oracle在并行處理、實時性、資料處理和速度方面都有較好的性能