現實世界中的事物及其聯繫,經過兩級抽象和轉換後形成了計算機世界中的數據及其聯繫,而數據模型就是用來描述數據及其聯繫的。
數據庫中存放數據的結構是由數據模型決定的,數據模型是數據庫的框架,是數據庫系統的核心和基礎
數據模型是描述數據、數據聯繫、數據的語義和完整性約束的概念集合,由數據結構、數據操作和完整性約束三要素組成。
數據模型的組成要素
數據結構
即數據組織的結構,用於描述系統的靜態特徵,描述數據庫的組成對象以及對象間的聯繫。即:
一是描述數據對象的類型、內容、性質等;
二是描述數據對象間的聯繫。
常用的數據結構
數據操作
對數據庫中的數據允許執行的操作的集合,包括操作及相應的操作規則(優先級)等,描述了數據庫的動態特性。
一類是查詢操作
一類是更新操作(含插入、刪除和修改)
數據的完整性約束
一組完整性規則的集合。
完整性規則是數據模型中數據及其聯繫所具有的制約和依存規則。用以限定符合數據模型的數據庫狀態以及狀態的變化,以保證數據的正確、有效、相容。
常用的數據模型
層次模型
層次模型是採用樹型結構(有根樹)來表示實體及其實體間的聯繫的模型。樹形結構中的結點表示實體型,實體型間的聯繫用指針表示。
採用層次模型的數據庫的典型代表是IBM公司1968年推出的IMS數據庫管理系統
特點
1.有且僅有一個結點沒有雙親,根結點
2.根以外的其他結點有且僅有一個雙親結點
3.父子結點之間的聯繫是一對多(1:n)的聯繫
4.任何一個給定的記錄值只有按其路徑查看時,才能顯出它的全部意義
層次模型的數據操縱與數據完整性約束
1.進行插入操作時,如果沒有相應的雙親結點值就不能插入子女結點值 。
2.進行刪除操作時,如果刪除雙親結點值,則相應的子女結點值也被同時刪除。
3.修改操作時,應修改所有相應的記錄,以保證數據的一致性。
優點
1.結構簡單,層次分明
2.查詢效率高 ,從根結點到樹中任一結點均存在一條唯一的層次路徑
3.提供良好的數據完整性支持
缺點
1.不能直接表示多對多聯繫
2.插入和刪除數據限制太多
3.查詢子女結點必須通過雙親結點
網狀模型
1.網狀模型是採用有向圖結構表示實體以及實體之間聯繫的數據模型 。
2.每個結點表示一個實體型。
3.結點間的帶箭頭的連線(或有向邊)表示記錄型間的1:n的父子聯繫。
比較有代表性的系統是,20世紀70年代,數據系統語言研究會CODASYL提出的DBTG系統
特點
1.有一個以上的結點沒有雙親結點
2.允許結點有多個雙親結點
3.允許兩個結點之間有多種聯繫(複合聯繫)
網狀模型的數據操縱與完整性約束
1.插入數據時,允許插入尚未確定雙親結點值的子女結點值。
2.刪除數據時,允許只刪除雙親結點值。
3.修改數據時,只需更新指定記錄即可。
優點
1.可表示實體間的多種複雜聯繫
2.具有良好的性能和存儲效率
缺點
1.數據結構複雜
2.數據定義語言、數據操縱語言複雜
3.用戶需要了解網狀模型的實現細節
關係模型
以二維表(關係)的形式表示實體和實體之間聯繫的數據模型。
1970年美國IBM公司的研究員E.F.Codd提出,1977年IBM公司研製的關係數據庫的代表System R。
關係模型的數據結構是一張規範化的二維表,它由表名、表頭和表體三部分構成
分量 每一行對應的列的屬性值,即爲元組中的一個屬性值。
候選碼 可惟一標識一個元組的屬性或屬性集。如S表中學號可以惟一確定一個學生,爲學生關係的主碼。
關係模式 關係模式是對關係的描述,是關係模型的“型” 。一般表示爲:關係名(屬性1,屬性2,……屬性n)。
如:學生(學號,姓名,性別,年齡,系別)
關係模型的數據操縱與完整性約束
關係模型的數據操縱主要包括查詢、插入、刪除和修改
關係模型中的數據操作是集合操作,操作對象和操作結果都是關係,即若干元組的集合。
關係模型把對數據的存取路徑隱蔽起來,用戶只要指出“幹什麼”,而不必詳細說明“怎麼幹”, 從而大大地提高了數據的獨立性,提高了用戶操作效率。
優點
1.有嚴格的數學理論根據
2.數據結構簡單、清晰,用關係描述實體及其聯繫
3.具有更高的數據獨立性、更好的安全保密性
缺點
查詢效率不如非關係模型