數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)模型
一、數(shù)據(jù)模型
1.數(shù)據(jù)模型的基本概念
(1)數(shù)據(jù)模型就是對現(xiàn)實世界事物的抽象。
(2)數(shù)據(jù)庫中的模型要滿足三個條件:
?? ①能比較真實的模擬出現(xiàn)實世界
?? ②容易被人所理解
? ③在計算機系統(tǒng)上容易實現(xiàn)
(3)數(shù)據(jù)模型是數(shù)據(jù)庫的核心和基礎
2.數(shù)據(jù)模型的分類
(1)概念模型
概念模型也被稱作信息模型,它是按照用戶的觀點來對數(shù)據(jù)和信息建模,用于數(shù)據(jù)庫的設計。(現(xiàn)實世界到概念模型這部分工作由數(shù)據(jù)庫設計人員來進行完成)
(2)邏輯模型
邏輯模型主要包括層次模型,網(wǎng)狀模型,關系模型,面向對象數(shù)據(jù)模型。它是按照計算機系統(tǒng)的觀點來對數(shù)據(jù)建模,用于DBMS實現(xiàn)(概念模型到邏輯模型這部分也是由數(shù)據(jù)庫設計人員完成,可能會用到一些數(shù)據(jù)庫設計工具)
(3)物理模型
物理模型是對數(shù)據(jù)最底層的抽象,描述數(shù)據(jù)在磁盤上的存取和表示方式(邏輯模型到物理模型這部分是由DBMS完成)
3.常見的邏輯模型
(1)層次模型
層次模型是用樹狀結構來表示各類實體和實體之間的關系。
層次模型具有如下特點
1.有且只有一個結點沒有雙親結點, 這個結點稱為根結點
2.根以外的其它結點有且只有一個雙親結點
3.結點的雙親是唯一的
4.只能直接處理一對多的實體聯(lián)系
5.任何記錄值只有按其路徑查看
6.沒有一個子女記錄值能夠脫離雙親記錄值而獨立存在
層次模型的完整性約束條件
*無相應的雙親結點值就不能插入子女結點值
*如果刪除雙親結點值,則相應的子女結點值也被同時刪除
*更新操作時,應更新所有相應記錄,以保證數(shù)據(jù)的一致性
層次模型的優(yōu)缺點
優(yōu)點
層次模型的數(shù)據(jù)結構比較簡單清晰
查詢效率高, 性能優(yōu)于關系模型, 不低于網(wǎng)狀模型
層次數(shù)據(jù)模型提供了良好的完整性支持
缺點
結點之間的多對多聯(lián)系表示不自然
對插入和刪除操作的限制多,應用程序的編寫比較復雜
查詢子女結點必須通過雙親結點
層次數(shù)據(jù)庫的命令(語言)趨于程序化
(2)網(wǎng)狀模型
網(wǎng)狀數(shù)據(jù)庫系統(tǒng)采用網(wǎng)狀結構來表示各類實體以及實體間的聯(lián)系。
網(wǎng)狀模型具有如下特點:
?允許多個結點沒有雙親結點
?允許一個結點有多個雙親結點
?允許兩個結點之間有多種聯(lián)系
?要為每個聯(lián)系命名并指出與該聯(lián)系有關的雙親記錄和子女記錄
網(wǎng)狀模型的優(yōu)缺點
優(yōu)點
能夠更為直接地描述現(xiàn)實世界, 如一個結點可以有多個雙親;
具有良好的性能, 存取效率較高。
缺點
結構比較復雜,而且隨著應用環(huán)境的擴大,數(shù)據(jù)庫的結構就變得越來越
復雜,不利于最終用戶掌握;DDL、DML語言復雜,用戶不容易使用;
記錄之間聯(lián)系是通過存取路徑實現(xiàn)的,應用程序必須選擇存取路徑,
加重了程序員的負擔
(3)關系數(shù)據(jù)庫模型
關系數(shù)據(jù)庫系統(tǒng)采用關系模型作為數(shù)據(jù)的組織方式。
在用戶觀點下,關系模型中數(shù)據(jù)的邏輯結構是一張二維表。關系數(shù)據(jù)庫不允許表中有表
關系模型的優(yōu)缺點
優(yōu)點
建立在嚴格的數(shù)學概念的基礎上
概念單一
實體和各類聯(lián)系都用關系來表示
對數(shù)據(jù)的檢索結果也是關系關系模型的存取路徑對用戶透明
具有更高的數(shù)據(jù)獨立性, 更好的安全保密性
簡化了程序員的工作和數(shù)據(jù)庫開發(fā)建立的工作
缺點
存取路徑對用戶透明,查詢效率往往不如格式化數(shù)據(jù)模型
為提高性能,必須對用戶的查詢請求進行優(yōu)化,增加了開發(fā)數(shù)據(jù)庫管理系統(tǒng)的難度
《數(shù)據(jù)科學與人工智能》公眾號推薦朋友們學習和使用Python語言,需要加入Python語言群的,請掃碼加我個人微信,備注【姓名-Python群】,我誠邀你入群,大家學習和分享。
