數據庫設計之數據模型

數據模型:是一個描述數據,數據聯繫,數據語義以及數據一致性約束的概念工具的集合。應包含:
數據結構:由一組創建數據庫的規則(定義數據庫的結構)組成。
數據操作:定義對數據進行的操作類型(包括更新和查找數據庫中的數據以及修改數據庫的結構)
約束條件:一組數據完整性定義規則,確保數據的正確性。
數據模型包括:層次模型,網狀模型,關係模型。

層次數據模型

層次模型:利用“記錄”(包含多個“屬性”)和雙親子女關係(PCR)來描述應用的數據結構。

利用層次模型描述一個應用的數據結構,稱爲一個層次模式,爲“樹”結構。
在這裏插入圖片描述
層次模型對於非層次的數據結構的描述:
1.採用副本(缺點是數據冗餘,一致性維護難)
比如學生選擇課程,學生和課程是多對多的關係:
在這裏插入圖片描述
通過建立副本的方式解決非層次:
在這裏插入圖片描述
對於多雙親的情況:
在這裏插入圖片描述
同樣可通過建立副本來表示
在這裏插入圖片描述

2.虛擬記錄(不足是指針操作增加開銷)
增加的副本用虛線來聯繫,有多個重複的這些數據在物理上只有一份,而其它的僅僅是一個連接或指針來指向它。
上面的例子可表示爲:
在這裏插入圖片描述
在這裏插入圖片描述
層次模式在物理上的存放
鄰接法:按照層次樹前序遍歷的順序,把所有記錄值(字段定長,定長記錄)依次存放。即通過物理空間的位置相鄰來實現層次順序。
在這裏插入圖片描述
層次模式的優缺點
優點:
1.數據模型簡單,操作簡單
2.對於實體間聯繫是固定的,且預先定義好的應用系統,性能較高。
3.提供良好的完整性支持。
缺點:
1.不適合於表示非層次性的聯繫。
2.對插入和刪除操作的限制比較多。
3.查詢子女結點必須通過雙親結點。

網狀模型

網狀模型指:用網絡結構表示實體類型及其實體之間聯繫的模型。

相比層次模型,網狀模型的特點:
1.網狀模型去掉了層次模型的兩個限制:
1.1允許多個結點沒有雙親結點
1.2允許結點有多個雙親結點。
2.網狀模型還允許兩個結點之間有多種聯繫
在這裏插入圖片描述
網狀模型數據物理上的存放
依具系統不同而不同,常用的方法是鏈接法包括:單項連接,雙向連接,環狀連接,向首鏈拉等。

網狀模型的優缺點
優點:
1.能夠更爲直接地描述現實世界。
2.具有良好的性能,存取效率較高。
缺點:
其DDL語言及其複雜。

關係模型

關係模型是用二維表的形式表示實體和實體間聯繫的數據類型。關係模型中無論是實體還是實體間的聯繫均由單一的結構類型–關係(table)來表示。

在這裏插入圖片描述
關係模型的一些基本概念
鍵:由一個或幾個屬性組成;
超鍵:在關係中能唯一標識 元組的屬性集稱爲關係模式的超鍵。
補選鍵:不含多餘屬性的超鍵稱爲候選鍵。
主鍵:用戶選作元組標識的一個候選鍵稱爲主鍵。
外鍵:保持數據一致性,完整性,控制存儲在外鍵表中的數據,使兩張表形成關聯。

關係模型的優點:
1.關係模型與非關係模型不同,它有嚴格的數學理論根據。
2.數據結構簡單、清晰,用戶易懂易用,不僅用關係描述實體,而且用關係描述實體間的聯繫,此外,對數據的操作結果也是關係。
3.關係模型的存取路徑對用戶透明,從而具有更高的數據獨立性、更好的安全保密性,也簡化了程序員的工作和數據庫建立和開發的工作。

關係模型的缺點:
查詢效率不如非關係模型。因此,爲了提高性能,必須對用戶的查詢進行優化,增加了開發數據庫管理系統的負擔。尤其是在數據量大,而且涉及多表查詢時,速度很慢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章