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