1. 程式人生 > >數據庫設計(一)——數據庫設計

數據庫設計(一)——數據庫設計

數據庫設計

數據庫設計(一)——數據庫設計

一、數據庫設計簡介

按照規範設計,將數據庫的設計過程分為六個階段:
A、系統需求分析階段
B、概念結構設計階段
C、邏輯結構設計階段
D、物理結構設計階段
E、數據庫實施階段
F、數據庫運行與維護階段
需求分析和概念結構設計獨立於任何數據庫管理系統。

二、系統需求分析

1、需求分析的任務

需求分析的任務:對現實世界要處理的對象進行詳細的調查,通過對原系統的了解,收集支持新系統的基礎數據並對其進行處理,在此基礎上確定新系統的功能。
A、調查分析用戶活動
B、收集和分析需求數據,確定系統邊界信息需求,處理需求,安全性和完整性需求
C、編寫系統分析報告

2、需求分析的方法

需求分析有兩種方法:自頂向下、自底向上

A、自頂向下
自頂向下方法從最上層的系統組織機構入手,采用逐層分解的方式分析系統。
用數據流圖和數據字典描述系統
數據流圖:描述輸入數據到輸出數據的變換過程
數據流:由一組固定成分的數據組成,代表數據的流動方向
處理:描述了輸入數據到輸出數據的變換
文件:用於存儲數據
源或宿:存在於系統之外的人員或組織,表示系統輸入數據的來源和輸出數據的去向
B、自底向上

3、實例

教學管理系統
基本需求:
某學校設計學校教學管理系統,學生實體包括學號、姓名、性別、生日、民族、籍貫、簡歷、入學日期,每名學生選擇一個主修專業,專業包括專業編號、名稱、類別,一個專業屬於一個學院,一個學院可以有多個專業。學院信息要存儲學院號、學院名、院長。教學管理要管理課程表、學生成績表。課程包括課程號、課程名、學分,每門課程由一個學院開設。學生選修的每門課程獲得一個成績。

三、概念結構設計

1、概念結構設計簡介

概念結構設計的目標是設計數據庫的E-R模型圖,確認需求信息的正確和完整。具體來說就是從需求分析中找到實體,確認實體的屬性、確認實體的關系,畫出ER圖。

2、概念結構設計的步驟

技術分享圖片
技術分享圖片
第一步,數據抽象與局部E-R模型設計
A、數據抽象
在多層數據流中選擇一個適當層次作為設計E-R圖的出發點。
確定每個局部應用包含哪些實體,實體包含哪些屬性,實體之間的聯系
劃分實體和屬性的方法
分類:將一組具有某些共同特性和行為的對象抽象為一個實體。
聚合:將對象類型的組成成分抽象為屬性。
B、局部E-R模型設計
局部E-R模型設計的原則是屬性必須是不可分的數據項,不能再由放棄其他屬性組成;屬性不能與其他實體具有聯系,聯系只能發生在實體之間。

為簡化E-R圖,凡是能作為屬性對待的,盡量作為屬性。
第二步,全局E-R模型設計
集成各局部E-R模型,形成全局模型。視圖集成的方法有兩種:
A、多元集成法:一次性將多個局部E-R圖合並為一個全局E-R圖。
B、二元集成法:首先集成兩個重要的局部E-R圖,然後用累加的方法逐步將一個新的E-R圖集成進來。
合並:
合並局部E-R圖,消除沖突,初步生成E-R圖。合並的關鍵是合理消除各局部E-R圖的沖突。
沖突分類如下:
技術分享圖片
優化:
消除初步E-R圖中不必要的冗余,生成基本的E-R圖。
冗余數據:可由基本的數據導出的數據。
冗余聯系:可由基本的聯系導出的聯系。
技術分享圖片

3、實例

教學管理系統的E-R圖
實體:學生、專業、學院、課程
實體表要記錄的屬性:
學生(學號、姓名、性別、生日、籍貫、民族、簡歷、入學日期)
技術分享圖片
專業(專業號、專業名稱、類別)
學院(學院號、學院名稱、院長)
課程(課程號、課程名稱、學分)
技術分享圖片
教學管理ER圖:
技術分享圖片

四、邏輯結構設計

1、邏輯結構設計簡介

邏輯結構設計的任務是將概念結構設計階段完成的實體模型轉換成特定的DBMS所支持的數據模型的過程。邏輯結構設計的目的是將E-R圖中的實體、屬性和聯系轉換成為關系模式。
技術分享圖片

2、初始關系模型設計

(1)實體間關系轉換遵循的原則:
一個實體轉換為一個關系模式,實體的屬性就是關系的屬性,實體的鍵就是關系的鍵。
一個聯系轉換為一個關系模式,與該聯系相連的各實體的鍵以及聯系的屬性均轉換為該關系的屬性。
聯系關系的鍵有三種情況:
如果聯系為1:1,則每個實體的鍵都是關系的候選鍵
如果聯系為1:n,zen端實體的見識關系的鍵
如果聯系為n:m,則各實體的鍵的組合是關系的鍵
特殊情況:多元聯系
多元聯系在轉換為關系模式時,與該多元聯系相連的各實體的主鍵及聯系本身的屬性均轉換為關系的屬性,轉換後所得到的的關系的主鍵為各實體鍵的組合
(2)實體間關系的轉換規則:
A、一個1:1關系可以轉換為一個獨立的關系模式,也可以與任意一端所對應的關系模式合並。
技術分享圖片
原實體對應關系模式分別為:
班級(班號,專業,人數)
班長(學號,姓名,專長)
將關系“管理”合並到實體“班級”對應的模式後為:
班級(班號,專業,人數,班長學號)
班長(學號,姓名,專長)
關系“管理”也可以合並到實體“班長”對應的模式,將關系“管理”合並到實體“班級”對應的模式後為:
班級(班號,專業,人數)
班長(學號,姓名,專長,班號)
B、一個1:n關系可以轉換為一個獨立的關系模式,也可以與n端所對應的關系模式合並。
技術分享圖片
實體對應的關系模式
系(系號,系名,系主任,電話)
教師(教師號,姓名,專業,職稱,性別,年齡)
關系對應的關系模式
管理(教師號,系號)
合並到實體“教師”後(只能合並到“多”的一端的關系模型):
教師(教師號,姓名,專業,職稱,性別,年齡,系號)
C、一個m:n關系轉換為一個關系模式。轉換的方法為:與該關系相連的各實體的碼以及關系本身的屬性均轉換為關系的屬性,新關系的碼為兩個相連實體碼的組合。
關系只能轉換為獨立模式,模式的屬性由關系本身的屬性及兩個實體的鍵構成;主鍵由兩端實體的鍵組合而成。
技術分享圖片
課程(課程號,課程名,學時,類別) 實體表
學生(學號,姓名,性別,專業,出生日期,照片) 實體表
選修(學號,課程號,分數) 關系表
D、三個或三個以上實體間的多元關系轉換為一個關系模式。
關系的屬性:與該多元關系相連的各實體的碼以及關系本身的屬性
關系的碼:各實體碼的組合
“講授”關系是一個三元關系,可以轉換為如下關系模式,其中課程號、職工號和書號為關系的組合碼:
  講授(課程號,職工號,書號)

3、關系模式規範化

應用數據庫設計的範式理論對初始關系模型進行優化。數據庫設計的三大範式如下:
第一範式 每一個分類必須是一個不可分的數據項。屬性不可再分,確保每列的原子性。
第二範式 要求每個表只描述一件事情,每條記錄有唯一標識列。
第三範式 數據庫表中不包含已在其它表中已包含的非主關鍵字信息。
關系模式的規範化過程如下:
A、確定範式級別
考察關系模式的函數依賴關系,確定範式等級。
B、實施規範化處理
利用規範化方法和理論將關系模式規範化。
C、模式改進
合並:
將用於關聯查詢的具有相同主鍵的各表合並可提高查詢效率
分解:
水平分解,將關系的元組分為若幹子集,提高查詢效率;垂直分解,把關系中經常一起使用的屬性分解出來,形成一個子關系,提高執行效率。分解時要保持無損連接和函數依賴。

4、實例

教學管理系統
由ER模型轉化為的關系模型:
學生(學號、姓名、性別、生日、籍貫、民族、入學日期、專業號)實體表
專業(專業號、專業名稱、類別、學院號)實體表
學院(學院號、學院名稱、院長)實體表
課程(課程號、課程名稱、學分、學院號)實體表
成績表(學號、課程號、成績)關系表
在轉換為關系模型時,一對多的聯系都在相應的多方實體的關系中增加一個外鍵。
需求的增加:
如果教學管理系統還要管理教師教學安排,教師包括編號、姓名、年齡、職稱,一個教師只能屬於一個學院,一名教師可以上若幹門課程,一門課程可以有多名老師來上,每個教師所上的每門課都有一個課堂號和課時數。
教師實體的ER圖:
技術分享圖片
教學管理系統ER圖:
技術分享圖片
關系表 多對多
成績表 (學號,課程號,成績,時間,地點)

五、物理結構設計

1、物理結構設計簡介

物理結構設計:對於給定的邏輯數據模型,選取一個最適合應用環境的物理結構。數據庫的物理結構設計分為兩步:
A、確定物理結構:存取方法和存儲結構
B、評價物理結構:評價重點是時間和空間效率
根據具體的數據庫管理系統所提供的多種存儲結構和存取方法等依賴於具體計算機結構的各項物理設計措施,對具體的應用任務選定最合適的物理存儲結構(數據類型 索引 主鍵)。

2、確定物理結構

(1)存儲結構的設計
物理結構中,數據的基本存取單位是存儲記錄。
某一類型的所有存儲記錄的集合稱為文件。
確定數據庫存儲結構時要綜合考慮存取時間、存儲空間利用率和維護代價三方面的因素。例如消除一切冗余數據雖然能夠節約存儲空間,但往往會導致檢索代價的增加,因此必須進行權衡,選擇一個折中方案。
(2)數據存取路徑的設計
在關系數據庫中,選擇存取路徑主要是指確定如何建立索引。例如,應把哪些域作為次碼建立次索引,建立單碼索引還是組合索引,建立多少個為合適,是否建立聚集索引等。
(3)數據存放位置的設計
為了提高性能,可將數據的易變部分、穩定部分、經常存取部分和存儲頻率較低部分分開存放。
(4)系統配置的設計
DBMS產品一般都提供了一些存儲分配參數,供設計人員和DBA對數據庫進行物理優化。初始情況下,系統都為這些變量賦予了合理的缺省值,但是這些值不一定適合每一種應用環境,在進行物理設計時,需要重新對這些變量賦值以改善系統的性能。

3、評價物理結構

物理結構設計過程中需要對時間效率、空間效率、維護代價和各種用戶要求進行權衡,其結果可以產生多種方案,數據庫設計人員必須對方案進行細致的評價,從中選擇一個較優的方案作為數據庫的物理結構。
評價物理數據庫的方法完全依賴於所選用的DBMS,主要是從定量估算各種方案的存儲空間、存取時間和維護代價入手,對估算結果進行權衡、比較,選擇出一個較優的合理的物理結構。

4、實例

教學管理系統
表1-1 學院
技術分享圖片
表1-2 專業
技術分享圖片
表1-3 學生
技術分享圖片
表1-4 課程
技術分享圖片
表1-5 成績單
技術分享圖片

六、數據庫實施

1、數據庫實施的過程

數據庫實施:指根據邏輯設計和物理設計的結果,在計算機上建立起實際的數據庫結構、裝入數據、進行測試和試運行的過程。
技術分享圖片

2、實例

學生表:
技術分享圖片
課程表:
技術分享圖片
專業表:
技術分享圖片
學院表:
技術分享圖片
成績表:
技術分享圖片

七、數據庫運行與維護

數據庫運行與維護的主要任務包括:
A、維護數據庫的安全性與完整性
B、監測並改善數據庫性能
C、重新組織和構造數據庫
只有數據庫系統在運行,就需要不斷地進行修改、調整和維護。

數據庫設計(一)——數據庫設計