天天看點

02_資料庫系統資料模型&資料庫系統結構

資料模型

資料模型也是一種模型,是對現實世界資料特征的抽象, 也就是說資料模型是用來描述資料,組織資料以及操作資料的.通俗的講, 資料模型就是對現實世界的模拟. 資料模型是資料庫系統的核心和基礎.

資料模型的組成要素

資料模型通常由資料結構,資料操作和完整性限制條件三部分組成.

資料結構

資料結構描述資料庫的組成對象以及資料對象之間的關系.

資料操作

資料操作是指對資料庫中的對象或者資料的允許的操作的集合, 包括操作以及有關操作的規則.

完整性限制條件

資料的完整性限制條件是一組完整的規則. 比如字段的類型及長度等.

兩類資料模型

資料模型應當遵循三方面要求, 一是能真實的模拟世界, 二是容易被人了解, 三是便于在計算機中進行實作.

根據應用的不同目的, 可以将這些模型劃分為兩大類, 分别從屬于兩個不同的層次 :

  • 概念模型 : 也稱為資訊模型, 他是按照使用者的觀點對資料和資訊模組化, 主要用于資料庫設計.
  • 邏輯模型和實體模型 :
    • 邏輯模型 : 按照計算機系統的觀點對資料模組化, 主要用于資料庫管理系統的實作. 包括層次模型, 網狀模型, 關系模型, 面向對象的資料模型, 對象關系資料模型, 半結構化資料模型 等.
    • 實體模型 : 描述資料在計算機系統内部的表示方式和存儲方式, 或者在磁盤上的存取方式, 對資料最底層進行抽象.

概念模型

概念模型用于資訊世界的模組化, 是現實世界到機器世界的第一層抽象, 是資料庫設計人員進行資料庫設計的有力工具, 也是資料庫設計人員和使用者之間進行交流的語言.

資訊世界的基本概念 :

  • 實體 :

    客觀存在且可以互相區分的事物稱為實體, 例如一個人, 一間教室, 一個部門, 一門課 等.

  • 屬性

    實體具有的某一特性稱為一個屬性, 一個實體可以由多個屬性來刻畫, 例如學生可以由 學号, 姓名, 性别等屬性組成.

  • 唯一辨別實體的屬性集稱為碼. 例如學号是學生實體的碼.

  • 實體型

    具有相同屬性的實體必然具有共同的特征和性質, 用實體名及其屬性的集合來抽象和刻畫同類實體, 稱為實體型. 例如 學生(學号, 姓名, 性别…)

  • 實體集

    同一類型實體的集合稱為實體集. 比如: 全體學生

  • 聯系

    不同實體之間的聯系. 有 一對一 一對多 多對多 的聯系.

邏輯模型

層次模型

描述 : 層次模型時資料庫系統中最早出現的資料模型, 層次資料庫系統采用層次模型作為資料的組織方式.

産品 : 典型的産品有 : IBM 的 IMS

資料結構 : 要滿足兩個條件

​ 1) 有且隻有一個節點, 沒有雙親節點, 這個節點稱為根節點 .

​ 2) 根節點以外其他節點有且隻有一個雙親節點.

02_資料庫系統資料模型&資料庫系統結構

資料操縱和完整性限制 :

​ 資料操作 : 增删改查

​ 限制 : 進行增删改時要滿足完整性限制, 插入時如果沒有雙親節點則不能插入, 再删除時要删除雙親節點則其子 節點也需要删除.

優缺點 :

​ 優點 : ① 結構簡單清晰 ② 查詢效率高 ③ 層次資料模型提供了良好的完整性支援.

​ 缺點 : ① 現實世界很多不是層次關系, 例如多對多關系不能表示 ② 如果一個節點有多個雙親節點, 隻能通過備援資料的方式或建立非自然的資料結構來進行表示. ③ 查詢位元組點必須通過雙親節點 ④ 結構嚴密, 層次指令區域程式化.

層次模型的實體存儲 :

​ 層次模型的實體存儲有兩種實作方法:

  • 順序法:按照層次順序把所有的記錄鄰接存放,即通過實體空間的位置相鄰來實作層次順序。
  • 指針法:各個記錄存放時不是按層次順序,而是用指針按層次順序把它們連結起來。
網狀模型

描述 : 現實世界中多數的資料是非層次結構的, 是以網狀模型可以消除這一弊病.

産品 : 典型的資料庫是 OBTG 系統 亦稱為 CODASYL 系統.

資料結構 : 滿足下列兩個條件

  1. 允許一個以上節點無雙親
  2. 一個節點可以由多個雙親

每一個節點代表一個實體, 每個實體包含若幹個字段, 節點間的連線表示一對多的父子關系.

02_資料庫系統資料模型&資料庫系統結構

由于子節點與雙親節點之間的聯系不是唯一的, 是以每個關系都需要進行記錄.

資料操作以及限制 :

​ 操作 : 增删改查

​ 限制 :

優缺點 :

​ 優點 : ① 能夠直接描述現實世界, 例如一個節點可以有多個雙親, 節點之間可以有多種聯系. ② 具有良好的性能, 存取效率高

​ 缺點 : ① 結構太複雜, 随着項目的擴大, 結構越來越複雜 ② 網狀模型的 DDL DML 複雜, 并且要嵌入一種進階語言, 例如 C COBOL, 使用者不容易掌握. ③ 記錄之間聯系通過存取路徑實作, 是以通路資料時必須選擇适當的存取路徑,是以使用者必須熟悉系統結構的細節, 加重了編寫應用程式的負擔.

關系模型

描述 : 關系模型是最重要的一種資料模型, 關系資料庫系統采用關系模式作為資料的組織方式.

産品 : MSYQL ORACLE SQLSERVER DB2…

資料結構 : 關系模式與以往的模式不相同, 他是建立在嚴格的數學概念上. 從使用者的角度來看, 關系模式是由一組關系組成, 每個關系的資料結構時一張規範化的二維表. 例如 : 學生表

學号 姓名 性别
10001 張三
10002 李四
10003 王五

關系模型中的術語 :

  • 關系 : 一個關系就對應一張表.
  • 元組 : 表中的一行就是一個元組.
  • 屬性 : 表中的一列就是一個屬性, 給每個屬性起一個名字叫做屬性名.
  • 碼 : 表中的某個屬性組, 可以唯一确定一個元組. 如學生表的學号.
  • 域 : 域是一組相同資料類型的值得集合, 屬性的取值範圍來自某個域. 比如大學生的年齡屬性的域為 (15-45歲).
  • 分量 : 元組中的一個屬性值.
  • 關系模式 : 對關系的描述, 一般表示為 : 學生(學号,姓名,年齡,性别)

關系模型要求關系必須是規範化的, 最基本的一條就是一個分量必須是一個不可分的資料項, 即不能表中有表.

資料操作與完整性限制 :

​ 資料操作 : 增删改查

​ 完整性限制 : 實體完整性 使用者完整性 參照完整性

優缺點 :

​ 優點 :

​ 關系模型建立在嚴格的數學概念基礎之上.

​ 關系模型的概念單一, 無論實體或者實體之間的關系都用關系表示.

​ 關系模型的存取路徑對使用者透明, 進而具有更高的資料獨立性, 更好的安全保密性.

​ 缺點 :

​ 由于存儲路徑對使用者透明, 查詢效率不如格式化資料模型, 為了提高性能, 資料庫管理系統必須對查詢請求進行優化, 是以增加了資料庫管理系統的難度, 不過使用者不需要對系統内部進行優化.

資料庫系統的結構

資料庫系統結構可以有多種不同層次不同角度.

資料庫開發人員角度 : 資料庫系統有三級結構模式.

使用者角度 : 單使用者結構 主從式結構 分布式結構 等.

資料庫系統的模式概念

在資料模型中有型和值得概念 :

​ 型 : 型是對一類資料的結構和屬性的說明.

​ 值 : 值時型的一個具體指派.

模式 :

​ 模式是資料庫中全體資料的邏輯結構和特征的描述, 他隻涉及型的描述, 不涉及具體的值.

執行個體 :

​ 模式的一個具體值稱為執行個體, 同一個模式有很多執行個體.

例如 :

​ 模式 : 學生選課模式中包含學生記錄, 課程記錄, 學生選課記錄

​ 執行個體1 : 2018 級所有學生的記錄, 課程記錄, 以及學生的選課記錄 并且執行個體時不斷變化的, 比如學生退學時學生記錄也會改變…

​ 執行個體2 : 2019 級所有學生的記錄, 課程記錄以及學生的選課記錄, 與執行個體 1 資料是不同的.

模式是相對穩定的, 執行個體是變動的, 因為資料庫中的資料是不斷變動的, 模式反映的是資料的結構及其聯系, 而執行個體反映的是資料庫某一個時刻的狀态.

資料庫系統的三級模式結構

資料庫系統的三級模式結構是指資料庫系統是由外模式, 模式 和 内模式三級組成.

02_資料庫系統資料模型&資料庫系統結構

内模式 :

内模式也稱為存儲模式, 一個資料庫隻有一個内模式, 他是實體存儲結構和存儲方式的描述, 是資料在資料庫内部的組織方式. 例如記錄的存儲方式是堆存儲, 還是按照某個屬性的升序存儲.

模式 :

模式也稱為邏輯模式, 是資料庫全體資料的邏輯結構和特征的描述, 是所有使用者公共資料視圖. 是資料庫模式的中間層, 既不涉及實體存儲, 有不涉及應用程式, 一個資料庫隻有一個模式.

外模式 :

外模式也稱為子模式或者使用者模式, 是資料庫使用者(程式員或者最終使用者)所能看見和使用的局部資料的邏輯結構和特征的描述, 與某一個應用有關的資料的邏輯表示.

一般因為權限的問題不同的使用者看到的外模式有時候是不同的, 是以一個模式可以對應多個外模式.

資料庫的二級影像功能和資料獨立性

資料庫系統的三級映像是對資料的三個抽象級别, 他把資料的具體組織留給資料庫管理系統管理, 使使用者能邏輯的, 抽象的使用資料, 而不必關系資料在計算機中的具體表示方法與存儲方式, 為了能夠在系統内部實作三個抽象層次的聯系和轉換, 資料庫管理系統在這三級映像之間提供了兩層映像: 外模式/模式映像 以及 模式/内模式映像. 進而保證了資料具有較高的邏輯獨立性和實體獨立性.

外模式/模式映像

模式描述的是資料的全局邏輯結構, 外模式描述的是局部的邏輯結構, 對于同一個模式可以有多個外模式, 對于每一個外模式, 資料庫系統都有一個外模式/模式映像,他定義了外模式與模式之間的對應關系.

映象定義通常包含在各自外模式的描述中.

保證資料的邏輯獨立性 當模式改變時,資料庫管理者對外模式/模式映象作相應改變,使外模式保持不變.

應用程式是依據資料的外模式編寫的,應用程式不必修改,保證了資料與程式的邏輯獨立性,簡稱資料的邏輯獨立性.

比如 : DBA 把 Student 表拆分成兩個表 StudentX 和 StudentY, 是以以前應用程式如果查詢 Student 表就會查詢不到, 但是我們可以通過外模式/模式映像進行處理, 我們可以建立一個視圖将 StudentX 和 StudentY 連接配接名為 Student, 這樣應用程式就可以不用改動, 進而保證了邏輯獨立性.

模式/内模式映像

當資料庫的存儲結構改變時(例如選用了另一種存儲結構), 由資料庫管理者對模式/内模式進行修改, 可以使模式保持不變, 進而應用程式也不會改變, 保證了程式和資料的實體獨立性, 簡稱資料的實體獨立性.

繼續閱讀