第三章 、數據庫結構設計


第三章 、數據庫結構設計

版權來源233網校,若有侵權聯系shaoyayu0419@qq.com刪除
版權地址:www.233.com

1、掌握數據庫概念設計

2、掌握數據庫邏輯設計

3、掌握數據庫物理設計

(選擇題、設計與應用題)

第一節、數據庫的概念設計

一個良好的數據庫,在很大程度上決定了系統的成功與否。

一般分為:數據庫概念設計、數據庫邏輯設計、數據庫物理設計

概念設計是數據庫設計的核心環節。通常對用戶需求進行綜合、歸納與抽象,形成一個獨立具體DBMS的概念模型。

1、數據庫概念設計目標

  • 定義和描述應用領域設計數據范圍
  • 獲取信息模型
  • 描述數據屬性特征
  • 描述數據之間的關系
  • 定義和描述數據的約束
  • 說明數據的安全性要求
  • 支持用戶的各種數據處理需求
  • 保證信息模型能轉化成數據庫的邏輯結構(即數據庫模式)

2、概念設計的依據及過程

  • 依據

數據庫概念設計以需求分析的結果為依據,即需求說明書、DFD圖以及在需求階段收集的應用領域中的各類報表等。

  • 結果

概念設計的結果是概念模型(ER)與概念設計說明書。

  • 過程
    • 明確建模目標(模型覆蓋范圍)
    • 定義實體集(自底向上標識和定義實體集)
    • 定義聯系(實體之間的聯系)
    • 建立信息模型(構建ER模型)
    • 確定實體屬性(屬性描述一個實體的特征或性質)
    • 對信息模型進行集成與優化(檢查和消除命名不一致、結構不一致等)

概念設計是DB設計的核心環節,概念數據模型是對現實世界的抽象模擬

3、概念模型設計

  • 概念設計目前采用最廣泛的是ER建模方法。將現實世界抽象為具有屬性的實體及聯系

  • 1976年,Peter.Chen提出E-R模型(Entity Relationship Model),即實體聯系模型,用E-R圖來描述數據庫的概念模型。

  • 觀點:世界是由一組稱作實體的基本對象之間的聯系構成的。

3.1、與E-R模型有關的概念

  • 實體(Entity)或實例(Instance)

客觀存在並可相互區分的事物叫做實體。

  • 實體集(Entity Set)

同型實體的集和稱為實體集。如全體學生、

  • 屬性(Attribute)

實體所具有的某一特性。一個實體可以由若干個屬性來刻畫,每個屬性的取值范圍稱為“域”

例如:學生可以由學號、姓名、年齡、系部等屬性組成。

  • 碼(Key) 【鍵】

實體集中唯一標識每一個實體的屬性或屬性組合。

用來區別同一個實體集中不同實體的屬性稱為“主碼”,【主鍵】

一個實體集中任意兩個實體存在主碼上取值不能相同,例如:學生的學號,公民的身份證號碼

  • 聯系(Relationship)

描述實體之間的相互關系,如學生與老師之間的授課關系

聯系也可以有屬性,如學生與課程之間有選課聯系,每個選課聯系都有一個成績作為其屬性

通類聯系的集和稱為“聯系集

  • 實體之間的聯系有三種

實體之間的聯系數量,即一個實體通過一個聯系集能與另一個實體集相關聯的實體數目。

一對一聯系【1:1】

一對多聯系【1:n】

多對多聯系【n:n】

  • E-R模型的表示:

【主碼下面的屬性名有下划線】

4、IDEF1X建模方法

  • IDEF1x與第二章介紹的IDEF0是一系列的建模工具,
    • IDEF0是功能建模方法
    • IDEF1X是數據建模方法

5、概念設計

1、建立目標

2、定義實體集

3、定義聯系

4、定義聯系

5、建立信息模型

6、確定實體屬性

7、對信息模型進行集成與優化

第二節、 數據庫的邏輯設計

1、邏輯設計的任務:

將概念模型【E-R圖】轉化為DBMS支持的數據模型(如關系模型),並對其進行優化

2、路徑設計的依據和階段目標

注:把DBMS的優化改成DBMS的信息

3、相關概念

  • 關系模型
  • 數據依賴
  • 候選碼、主碼、外碼
  • 數據規范化
  • 范式

3.1、關系模型

有三種主要的數據模型:層次模型、網狀模型、關系模型。其中的關系模型簡單靈活,並堅實的理論基礎,已成為當前最流行的數據模型

關系模型就是用二維表格結構來表示實體及實體之間聯系的模型。

關系的描述稱為關系模型(Relation Scheme)。關系模式由五部分組成,即它是一個五元組:R(U,D,DOM,F)

R:關系名,

U:組成該關系的屬性名集和,

D:屬性U中屬性來自的域

DOM:屬性到域的映射

F:屬性組成U上的一組數據依賴

由於D、DOM對模式設計關系不大,這里把關系模式簡化為一個三元組:

R<U,F>,當且僅當U上的一個關系R滿足F時候,R稱為關系模式R<U,F>的一個關系。

1、關系數據庫設計的核心:關系模式的設計

2、關系模式的設計目標:按照一定的原則從數量眾多而又相互關聯的數據中,構建出一組既能較好地反映現實世界,而又有良好的操作性能的關系模式。

新奧爾良法,數據庫設計步驟:

需求分析-->>概念結構設計[E-R圖]-->>邏輯結構設計[關系模式設計]--->>物理結構設計

3.2、有關的概念

  • 數據依賴

定義:設R(U)是一個屬性集U上的關系模式,X和Y是U的子集,若對於R(U)的任意一個可能關系r,r中不能存在兩個元組在x上的屬性值相等,而在Y上的屬性值不等,則稱“X函數確定Y”或“Y函數依賴於X”,記作x->Y

關系內部屬性之間的一種約束關系,是現實世界屬性間相互聯系的抽象,數據的內在性質,語義的體現。

完整性約束的表現形式:

限定屬性的取值范圍,如年齡<60,

定義屬性間的相互關聯(主要體現於值相等與否),這就是依賴

  • 數據依賴的類型

函數依賴(functional dependency,FD)

普遍存在生活中,這種依賴關系類似於數學中的函數y=f(x),自變量x確定后,相應的函數值y也就唯一地確定了。

如關系:公民(身份證號,姓名,地址,工作單位)

身份證號--確定,則其地址就唯一確定,因此地址依賴身份證號

而姓名--確定,不一定能確定地址。

多值依賴(Multivalued Dependency,MD)

函數就是唯一確定的關系,多值依賴不能唯一確定

3.3、函數依賴的幾種特例

1、平凡函數依賴與非平凡函數依賴

如果x->y,且y不是x的子集,則x-y稱為非平凡函數依賴。

若y是x的子集,則稱x->y為平凡函數依賴

由於y是x的子集時,一定有x->y,平凡函數依賴必然處理,沒有意義,所以一般平凡函數依賴總是指非平凡函數依賴。

例題

2、完全函數依賴和部分函數依賴

3、傳遞函數依賴

/有些符號真滴難畫,我就不寫了/

例題

3.4、候選碼、主碼、外碼

如果每個屬性組的值能唯一確定整個元組的值,則稱該屬性為候選碼候選關鍵字

例如:

(學號,姓名,性別,年齡)中,學號是關鍵字,(學號,姓名)姓名不是關鍵字,性別不是關鍵字。

候選碼如果有多個,可以選其中一個做主碼(Primary key)。

屬性或屬性組x不是關系模式R的碼(既不是主碼,又不是候選碼),但x是另一個關系模式的碼,則稱x是R的外部碼,也稱外碼(Foreign key)

3.5、數據規范化

關系數據庫的設計主要是關系模式設計。關系模式設計的好壞直接影響到數據庫設計的成敗。講關系模式規范化,是設計好的關系模式的唯一途徑。

關系模式的規范化主要是由關系范式來完成。

關系模式的規范化:把一個低一級的關系模式分解為高一級關系模式的過程。

關系數據庫的規范化理論是數據庫邏輯設計的工具

目的是:盡量消除插入、刪除異常、修改復雜、數據冗余的問題

  • 范式

范式:關系模式滿足的約束條件稱為范式,根據滿足規范化的程度不同,范式由低到高分別為:

1NF,2NF,3NF,4NF,5NF,

1NF:如果關系模式R,其所有屬性都是不可分的基本數據項,則稱R屬於第一范式,R屬於1NF。

例題

2NF:如果關系模式R屬於1NF,且每個非主屬性完全函數依賴主碼,則稱R屬於第二范式

例題

判斷R(學號,姓名,年齡,課程名稱,成績,學分)是否屬於第二范式

主碼:(學號,課程名稱)

非主屬性:姓名,年齡,成績,學分,

存在如下決定關系:

(學號,課程名稱)->(姓名,年齡,成績,學分)

但是(課程名稱)->(學分)

(學號)->(姓名,年齡)

3NF:如果關系模式R屬於2NF,並且R中的某個非主屬性不傳遞依賴於R的主碼,則稱關系R屬於第三范式3NF

例題

判斷R(學號,姓名,年齡,所在學院,學院地點,學號電話)是否屬於第三范式?

主碼:(學號)

非主碼:姓名,年齡,所在學院,學院地點,學院電話。

存在非關鍵字段“學院地點”、“學院電話”對關鍵字段“學號”的傳遞函數依賴,

3NF要求實體的屬性不能存在傳遞依賴,R不屬於3NF.

關系模式規范化的基本步驟

消除決定屬性集非碼的非平凡函數依賴

1NF:消除非主屬性對碼的部分依賴

2NF:消除非主屬性對碼的傳遞依賴

3NF:消除主屬性對碼的部分和傳遞函數

BCNF

4NF:消除非平凡函數依賴的多值依賴

例題:

4、數據庫邏輯設計的方法

4.1、設計邏輯結構的三部曲:

  • 將概念結構轉化為一般的關系模型
  • 將轉化的關系模型向特定DBMS支持下的數據模型轉換
  • 對數據模型進行優化

如果是關系型數據庫管理系統,就應將概念模型轉換為關系模型,即E-R圖中的實體和聯系轉換為關系模型。

4.2、數據庫邏輯建模的產生

概念模型按一定規則可以轉換成數據模型。這種轉換原則如下

  • 1、一個實體轉換成一個關系模式
  • 2、一個1:1聯系可以轉換為一個獨立的關系模式。也可以與任意一段對於關系模式合並。
  • 3、一個1:n聯系可以轉換為一個獨立的關系模式。也可以與N端對於的關系模式合並。
  • 4、一個m:n聯系轉換為一個關系模型
  • 5、三個或者三個以上實體的一個多元聯系轉換為一個關系模式
  • 6、同一個實體集的實體間的聯系,也可以按1:1、1:n和m:n三種情況分別處理。

第三節、數據庫物理設計

1、物理設計概述

物理數據庫設計是設計數據庫的存儲結構和物理實現方法。

目的:將數據的邏輯描述轉換為實現技術規范,設計數據存儲方案,以便提供足夠好的性能並確保數據庫數據的完整性、安全性、可靠性。

2、數據的物理結構

物理設備上的存儲結構與存取方法稱為數據庫的物理設計,

數據庫中的數據以文件形式存儲在外設存儲的介質上。

一個文件在物理上可看作是存放記錄的一系列磁盤塊組成,成為物理文件

數據庫的物理結構需要解決的如下問題:

文件組織、文件結構、文件存取、索引技術。

3、索引

索引(index)是數據庫中獨立的存儲結構,其作用是提供一種無須掃描每個頁面(存儲表格數據的物理塊)而快速訪問數據頁的方案,索引技術(indexing)是一種快速數據訪問的技術。

索引技術的關鍵:建立記錄域取值(如圖書術語)到記錄的物理地址(如頁碼)間的映射關系,即索引。

索引能提高性能,但是有代價的。(內存,時間,維護)

設計和創建索引時,應確保對性能的提高程度大於在存儲空間和處理資源方面的代價。

3.1、索引的分類

  • 有序索引

索引文件機制,利用索引文件(索引記錄做成)實現記錄域(查找碼,排序域)取值到記錄物理地址間的映射關系。

數據文件(主文件)和索引文件(索引記錄或索引項的集和)是有序索引技術中的兩個主體,數據文件常采用順序文件結構。

幾種重要的有序索引:

1、聚集索引(索引項與數據記錄排序一致,索引順序文件)和非聚集索引,但可建立多個非聚集索引。

2、稠密索引(數據文件中每個查找碼都對於索引記錄)和稀疏索引(部分查找碼的值對應索引記錄)。

3、主索引(主碼屬性集上建立索引)與輔索引(非主屬性上建立索引)。

4、唯一索引(索引列不包含重復值)

5、單層索引(線性索引,每個索引項順序排列直接指向文件中的數據記錄)和多層索引(大數據量文件中的采用多層樹形[B,B+數]索引快速定位)

  • 散列索引

哈希索引機制,利用散列函數實現記錄域取值到記錄物理地址間的直接映射關系。

4、目標

目標是得到存儲空間占用少,數據訪問效率高和維護代價低的數據庫物理模式。數據庫底層物理存儲於存取,與DBS所依賴的硬件環境、操作系統和DBMS密切相關。目前絕大部分DBS都是關系型數據庫系統。

4.1、環節

數據庫物理設計主要的五個環節

4.1.1、數據庫邏輯模式描述:

根據數據庫邏輯結構信息設計目標DBMS可支持的關系表(這里稱為基本表)的模式信息,這個過程稱為數據庫邏輯模式描述。

關系模式及其他視圖轉換成基本表和視圖,利用完整性機制(如觸發器)設計面向業務規則。

SQL Server采用T-SQL語言。

為基本表選擇合適的文件結構(堆文件、順序文件、聚集文件、索引文件和散列文件)。

4.1.2、文件組織與存取設計

基本原則,根據應用情況將易變部分和穩定部分、存取頻率較高部分和存取頻率較低部分分開存放,以提高系統性能。

分析連接數據庫事務訪問特性:使用事務-基本表交叉引用矩陣;估計各事務執行頻率;匯總每張表基本表各事務操作頻率信息;根據結果設計文件結構。

可以考慮將表和索引分別放在不同的磁盤上,在查詢的時,由兩個磁盤驅動器分別在工作,因而可以保證物理讀寫速度比較快。

----我個人在這部分保持質疑,有時時間我參閱材料求證一下。

影響數據文件存儲的因素:

  1. 存取時間
  2. 存儲空間利用率
  3. 維護代價

這三個方面常常是相互矛盾的

解決辦法:

  1. 適當冗余
  2. 增加聚簇功能

必須進行權衡,選擇一個折中的方案

  • 什么是存取路徑

在關系數據庫中,選擇存取路勁主要指確定如何建立索引。

對同個關系要建立多條存取路徑才能滿足多個用戶的多種應用要求

物理設計的第一個任務就是確定選擇那些的存取方法。

DBMS常用的存取方法:

  1. 索引方法,目前主要是B+數索引方法(大數據),
  2. 聚簇方法( 在主鍵上建立索引)
  3. HASH方法(散列方式)

建立索引的原則:

  1. 一個(組)屬性經常在操作條件中出現
  2. 一個(組)屬性經常在連接操作的連接條件上
  3. 一個(組)屬性經常作為聚集函數的參數

建立聚集索引(聚簇索引)原則

  1. 檢索數據時,常以每個(組)屬性作為排序,分組條件。
  2. 檢索數據時,常以每個(組)屬性作為檢索限定條件,並返回大量數據
  3. 表中某個(組)的值重要性較大。
4.1.3、數據分布設計
  • 不同類型數據的物理分布

將應用數據(基本表)、索引、日志、數據庫備份數據等合理安排在不同的介質中。

  • 應用數據的划分與分布
  1. 根據數據的使用特征划分(頻繁使用分區和非頻繁使用)
  2. 根據時間、地點(時間地點相同的屬於同一部分)
  3. 分布式數據庫系統(DDBS)中的數據划分(水平划分或垂直划分)
  4. 派生屬性數據分布(增加派生列或不定義派生屬性)
  5. 關系模式的去規范化(降低規范化提高查詢效率)
  • 水平划分

將基本表分為多張具有相同屬性、結構完全相同的子表,子表包含的元組是基本表中的元組的子集

例如:對商品按照上平的生產年份進行划分就屬於水平划分

  • 垂直划分

將基本表划分為多張子表,每張子表包含的屬性是基本表的子集。

例如:商品表(商品編號,品名,單價,庫存量,銷售單價,備注)

可以垂直划分為兩張表

商品表(商品編號,品名,銷售單價)

商品表(商品編號,單價,庫存量,備注)

4.1.4、確定系統配置
  • DBMS產品一般都提供了一些存儲分配參數

同時使用數據庫的用戶數

同時打開數據庫對象數

使用的緩沖區長度、個數

時間片大小

數據庫的大小

填裝因子

鎖的數目......

4.1.5、物理模式評估

對數據庫物理設計結果從存取時間、存儲空間、維護代價等方面進行評估,重點是時間和空間的利用率。

如果評價結果滿足原設計要求則可以進入物理實施階段,否則,就需要重新設計或修改物理結構,有時甚至要返回邏輯階段修改模型。

例題:

1、

SQL Service 中索引類型包括的兩種類型分別是聚集索引和(散列索引)

2、

3、

D、存儲及處理特征是物理階段

4、

5、

6、設計與應用題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM