《數據庫管理之數據庫模型.ppt》由會員分享,可在線閱讀,更多相關《數據庫管理之數據庫模型.ppt(63頁珍藏版)》請在裝配圖網上搜索。
1、數據庫管理 之二 常用的數據模型 常用的數據模型 在數據庫中用數據模型這個工具來抽象、 表示和處理現實世界中的數據和信息。 通俗地講數據模型就是現實世界的模擬。 數據模型應滿足三方面要求 能比較真實地模擬現實世界 容易為人所理解 便于在計算機上實現 一、層次數據模型 二、網狀數據模型 三、關系數據模型 常用的數據模型 層次數據模型 非關系模型 種類 層次模型 ( Hierarchical Model) 網狀模型 (Network Model ) 數據結構:以 基本層次聯系 為基本單位 基本層次聯系:兩個記錄以及它們之間的一對多 ( 包括一對一 )的聯系 數據模型 (續(xù) ) 關系模型 (Rela
2、tional Model) 數據結構: 表 面向對象模型 (Object Oriented Model) 數據結構: 對象 一、層次模型 1. 層次數據模型的數據結構 2. 層次數據模型的數據操縱 3. 層次數據模型的完整性約束 4. 層次數據模型的存儲結構 5. 層次數據模型的優(yōu)缺點 6. 典型的層次數據庫系統(tǒng) 1. 層次數據模型的數據結構 層次模型 滿足下面兩個條件的基本層次聯系的集合為 層次模型 。 1. 有且只有一個結點沒有雙親結點 , 這個結 點稱為根結點 2. 根以外的其它結點有且只有一個雙親結點 層次模型中的幾個術語 根結點 , 雙親結點 , 兄弟結點 , 葉結點 層次數據模型的
3、數據結構 (續(xù)) 1 根結點 2 兄弟結點 3 葉結點 4 兄弟結點 5 葉結點 葉結點 層次數據模型的數據結構 (續(xù)) 表示方法 實體型 :用記錄類型描述 。 每個結點表示一 個記錄類型 。 屬性 :用字段描述 。 每個記錄類型可包含若 干個字段 。 聯系 :用結點之間的連線表示記錄 ( 類 ) 型 之間的一對多的聯系 。 層次數據模型的數據結構 (續(xù)) 特點 結點的雙親是唯一的 只能直接處理一對多的實體聯系 每個記錄類型定義一個排序字段 , 也稱為碼 字段 任何記錄值只有按其路徑查看時 , 才能顯出 它的全部意義 沒有一個子女記錄值能夠脫離雙親記錄值而 獨立存在 層次數據模型的數據結構 (
4、續(xù)) 多對多聯系在層次模型中的表示 用層次模型間接表示多對多聯系 表示方法 將多對多聯系分解成一對多聯系 分解方法 冗余結點法 虛擬結點法 2. 層次模型的數據操縱 查詢 插入 刪除 更新 3. 層次模型的完整性約束 無相應的雙親結點值就不能插入子女結 點值 如果刪除雙親結點值,則相應的子女結 點值也被同時刪除 更新操作時,應更新所有相應記錄,以 保證數據的一致性 4.層次數據模型的存儲結構 鄰接法 按照層次樹前序遍歷的順序把所有記錄值依次鄰接 存放,即通過物理空間的位置相鄰來實現層次順序。 鏈接法 用指引元來反映數據之間的層次聯系 子女兄弟鏈接法 P18 層次序列鏈接法 P18 D02 R0
5、1 E2101 E1709 E3501 R02 R03 E1101 E3102 S63871 S63874 S63876 5. 層次模型的優(yōu)缺點 優(yōu)點 層次數據模型簡單 , 對具有一對多的層次關 系的部門描述自然 、 直觀 , 容易理解 性能優(yōu)于關系模型 , 不低于網狀模型 層次數據模型提供了良好的完整性支持 層次模型的優(yōu)缺點(續(xù)) 缺點 多對多聯系表示不自然 對插入和刪除操作的限制多 查詢子女結點必須通過雙親結點 層次命令趨于程序化 6. 典型的層次數據庫系統(tǒng) IMS數據庫管理系統(tǒng) 第一個大型商用 DBMS 1968年推出 IBM公司研制 網狀數據模型 網狀模型 1. 網狀數據模型的數據結構
6、 2. 網狀數據模型的數據操縱 3. 網狀數據模型的完整性約束 4. 網狀數據模型的存儲結構 5. 網狀數據模型的優(yōu)缺點 6. 典型的網狀數據庫系統(tǒng) 1.網狀數據模型的數據結構 網狀模型 滿足下面兩個條件的基本層次聯系的集合為 網狀模型 。 1. 允許一個以上的結點無雙親; 2. 一個結點可以有多于一個的雙親 。 網狀數據模型的數據結構 (續(xù)) 表示方法 ( 與層次數據模型相同 ) 實體型 :用記錄類型描述 。 每個結點表示一 個記錄類型 。 屬性 :用字段描述 。 每個記錄類型可包含若 干個字段 。 聯系 :用結點之間的連線表示記錄 ( 類 ) 型 之間的一對多的父子聯系 。 網狀數據模型的
7、數據結構 (續(xù)) 特點 只能直接處理一對多的實體聯系 每個記錄類型定義一個排序字段 , 也稱為碼 字段 任何記錄值只有按其路徑查看時 , 才能顯出 它的全部意義 網狀數據模型的數據結構 (續(xù)) 網狀模型與層次模型的區(qū)別 網狀模型允許多個結點沒有雙親結點 網狀模型允許結點有多個雙親結點 網狀模型允許兩個結點之間有多種聯系(復 合聯系) 網狀模型可以更直接地去描述現實世界 層次模型實際上是網狀模型的一個特例 網狀數據模型的數據結構 (續(xù)) 1 2 R3 L1 L2 R1 R2 L3 L1 L2 R3 L4 R4 R5 網狀數據模型的數據結構 (續(xù)) 1 L1 L2 R2 網狀數據模型的數據結構 (
8、續(xù)) 學生宿舍 學生 教研室 系 教師 網狀數據模型的數據結構 (續(xù)) 父親 人 獨生子女 樹 種 植 砍伐 養(yǎng) 育 贍 養(yǎng) 網狀數據模型的數據結構 (續(xù)) 父 親 關 系 男人 網狀數據模型的數據結構 (續(xù)) 多對多聯系在網狀模型中的表示 用網狀模型間接表示多對多聯系 表示方法 將多對多聯系 直接 分解成一對多聯系 2. 網狀模型的數據操縱 查詢 插入 刪除 更新 3. 網狀數據模型的完整性約束 完整性約束條件不嚴格 允許插入尚未確定雙親結點值的子女結點值 允許只刪除雙親結點值 網狀數據模型的完整性約束 (續(xù) ) 具體的網狀數據庫系統(tǒng)(如 DBTG)對數 據操縱加了一些限制,提供了一定的完整
9、 性約束。 碼 屬籍類別 加入類別 (自動的,手工的 ) 移出類別 (固定的,必須的,隨意的 ) 4.網狀數據模型的存儲結構 關鍵 實現記錄之間的聯系 常用方法 單向鏈接 雙向鏈接 環(huán)狀鏈接 向首鏈接 例: P29 5.網狀模型的優(yōu)缺點 優(yōu)點 能夠更為直接地描述現實世界 , 如一個結點 可以有多個雙親 具有良好的性能 , 存取效率較高 網狀模型的優(yōu)缺點(續(xù)) 缺點 結構比較復雜 , 而且隨著應用環(huán)境的擴大 , 數據庫的結構就變得越來越復雜 , 不利于最 終用戶掌握 DDL、 DML語言復雜 , 用戶不容易使用 6. 典型的網狀數據庫系統(tǒng) DBTG系統(tǒng),亦稱 CODASYL系統(tǒng) 由 DBTG提出
10、的一個系統(tǒng)方案 奠定了數據庫系統(tǒng)的基本概念 、 方法和技術 70年代推出 實際系統(tǒng) Cullinet Software Inc.公司的 IDMS Univac公司的 DMS1100 Honeywell公司的 IDS/2 HP公司的 IMAGE 1.2.3 數據模型 一、層次數據模型 二、網狀數據模型 三、關系數據模型 關系數據模型 關系模型 1. 關系數據模型的數據結構 2. 關系數據模型的操縱 3. 關系數據模型的完整性約束 4. 關系數據模型的存儲結構 5. 關系數據模型的優(yōu)缺點 6. 典型的關系數據庫系統(tǒng) 關系模型 最重要的一種數據模型 。 也是目前主要 采用的數據模型 1970年由美國
11、 IBM公司 San Jose研究室的 研究員 E.F.Codd提出 本課程的重點 1.關系數據模型的數據結構 關系模型的基本數據結構 關系模型的基本概念 實體及實體間的聯系的表示方法 關系必須是規(guī)范化的 關系數據模型的數據結構 (續(xù) ) 關系模型的基本數據結構 在用戶觀點下 , 關系模型中數據的邏輯結構 是一張二維表 , 它由行和列組成 。 學生登記表 學 號 姓 名 年 令 性 別 系 名 年 級 95004 王小明 19 女 社會學 95 95006 黃大鵬 20 男 商品學 95 95008 張文斌 18 女 法律學 95 關系數據模型的數據結構 (續(xù)) 關系模型的基本概念 關系 (
12、Relation) : 一個關系對應通常說的一張表 。 元組 ( Tuple) 表中的一行即為一個元組 。 屬性 ( Attribute) 表中的一列即為一個屬性 , 給每一個屬性起一個 名稱即屬性名 。 關系數據模型的數據結構 (續(xù)) 關系模型的基本概念 ( 續(xù) ) 主碼 ( Key) 表中的某個屬性組 , 它可以唯一確定一個元組 。 域 ( Domain) 屬性的取值范圍 。 分量 元組中的一個屬性值 。 關系數據模型的數據結構 (續(xù)) 關系模型的基本概念 ( 續(xù) ) 關系模式 對關系的描述 表示方法 關系名 ( 屬性 1, 屬性 2, , 屬性 n) 例如: 學生 ( 學號 , 姓名 ,
13、 年齡 , 性別 , 系 , 年級 ) 關系數據模型的數據結構 (續(xù)) 實體及實體間的聯系的表示方法 實體型 :直接用關系(表)表示。 屬性 :用屬性名表示。 一對一聯系 :隱含在實體對應的關系中。 一對多聯系 :隱含在實體對應的關系中。 多對多聯系 :直接用關系表示。 關系數據模型的數據結構 (續(xù)) 例 1 學生 、 系 、 系與學生之間的一對多聯系: 學生 ( 學號 , 姓名 , 年齡 , 性別 , 系號 , 年級 ) 系 (系號 , 系名 , 辦公地點 ) 例 2 系 、 系主任 、 系與系主任間的一對一聯系 關系數據模型的數據結構 (續(xù)) 例 3 學生 、 課程 、 學生與課程之間的多
14、對多聯系: 學生 ( 學號 , 姓名 , 年齡 , 性別 , 系號 , 年 級 ) 課程 ( 課程號 , 課程名 , 學分 ) 選修 ( 學號 , 課程號 , 成績 ) 關系數據模型的數據結構 (續(xù)) 關系必須是規(guī)范化的 , 即必須滿足一定 的規(guī)范條件 最基本的規(guī)范條件:關系的每一個分量必須 是一個不可分的數據項 。 工 資 扣 除職 工 號 姓 名 職 稱 基 本 工 齡 職 務 房 租 水 電 實 發(fā) 86051 陳 平 講 師 105 9 5 15 6 12 115 5 工 資 扣 除職 工 號 姓 名 職 稱 基 本 工 齡 職 務 房 租 水 電 實 發(fā) 86051 陳 平 講 師
15、105 9 5 15 6 12 115 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.關系模型的數據操縱 查詢 、 插入 、 刪除 、 更新 數據操作是集合操作 , 操作對象和操作 結果都是關系 , 即若干元組的集合 存取路徑對用戶隱蔽 , 用戶只要指出 “ 干什么 ” , 不必詳細說明 “ 怎么干 ” 3.關系模型的完整性約束 實體完整性 參照完整性 用戶定義的完整性 4.關系數據模型的存儲結構 表以文件形式存儲 有的 DBMS一個表對應一個操作系統(tǒng)文 件 , 有的 DBMS自己設計文件結構 5.關系模型的優(yōu)缺點 優(yōu)點 建
16、立在嚴格的數學概念的基礎上 概念單一 。 數據結構簡單 、 清晰 , 用戶易懂 易用 實體和各類聯系都用關系來表示 。 對數據的檢索結果也是關系 。 關系模型的存取路徑對用戶透明 具有更高的數據獨立性 , 更好的安全保密性 簡化了程序員的工作和數據庫開發(fā)建立的工作 關系模型的優(yōu)缺點(續(xù)) 缺點 存取路徑對用戶透明導致查詢效率往往不如 非關系數據模型 為提高性能 , 必須對用戶的查詢請求進行優(yōu)化 增加了開發(fā)數據庫管理系統(tǒng)的難度 6. 典型的關系數據庫系統(tǒng) ORACLE SYBASE DB/2 SQL Server INFORMIX COBASE PBASE EasyBase KingBase 小金靈 DM/4 OpenBase