二、資料庫設計 資料庫設計是將數據對象轉換為數據表等資料庫對象的過程,是資料庫應用系統開發過程中首要的和基本的內容。 按照規範的設計方法,考慮資料庫及其應用系統開發全過程,將關係資料庫的設計分為六個階段:需求分析、概念結構設計、邏輯結構設計、物理結構設計、資料庫實施和數控運行和維護。其中需求分析的任 ...
二、資料庫設計
資料庫設計是將數據對象轉換為數據表等資料庫對象的過程,是資料庫應用系統開發過程中首要的和基本的內容。
按照規範的設計方法,考慮資料庫及其應用系統開發全過程,將關係資料庫的設計分為六個階段:需求分析、概念結構設計、邏輯結構設計、物理結構設計、資料庫實施和數控運行和維護。其中需求分析的任務是通過詳細調查現實世界要處理的對象,明確用戶的各種需求,然後在此基礎上確定系統的功能。資料庫實施、運行與維護的任務是在資料庫的結構設計完成後由資料庫管理員在DBMS上實現設計的結果。在這具體介紹資料庫設計中的概念結構設計、邏輯結構設計和物理結構設計。
1.概念結構設計
通常,把每一類數據對象的個體稱為“實體”,而每一類對象個體的集合稱為“實體集”,例如,在學生成績管理系統中主要涉及“學生”和“課程”兩個實體集。其他非主要的實體可以很多,如班級、班長、任課教師、輔導員等實體。把每個實體集涉及的信息項稱為屬性。就“學生”實體集而言,它的屬性有:學號、姓名、性別、出生時間、專業、總學分和備註。“課程”實體集屬性有:課程號、課程名、開課學期、學時和學分。
實體集“學生”和實體集“課程”之間存在“選課”的關係,通常把這類關係稱為“聯繫”。通常將實體集及實體集之間的聯繫的圖稱為E-R模型。
E-R模型表示方法為:
- 實體集用矩形框表示,矩形框內標註實體名;
- 實體集的屬性用橢圓框表示,框內標註屬性名,並用無向邊與其實體集相連;
- 實體集間的聯繫用菱形框表示,聯繫以適當的含義命名,名字寫在菱形框中,用無向邊將參加聯繫的實體矩形框分別與菱形框相連,併在連線上標明聯繫的類型,即1-1、1-n或m-n;
- 如果一個聯繫有屬性,則這些屬性也要用無向邊與該聯繫連接起來。
因此,E-R模型也稱為E-R圖。通常,關係資料庫的設計者用E-R圖來對信息世界建模。從分析用戶項目涉及的數據對象及數據對象之間的聯繫出發,到獲取E-R圖的這一過程稱為概念結構設計。
(1)一對一的聯繫(1 : 1)
A中的一個實體至多與B中的一個實體相聯繫,B中的一個實體也至多與A中的一個實體相聯繫。例如,“班級”與“正班長”這兩個實體集之間的聯繫是一對一的聯繫,因為一個班只有一個正班長,反過來,一個正班長只屬於一個班。“班級”與“正班長”兩個實體集的E-R模型如圖1.2所示。
圖1.2
(2)一對多的聯繫(1 : n)
A中的一個實體可以與B中的多個實體相聯繫,而B中的一個實體至多與A中的一個實體相聯繫。例如,“班級”與“學生”這兩個實體集之間的聯繫是一對多的聯繫,因為一個班可有若幹學生,反過來,一個學生只能屬於一個班。“班級”與“學生”兩個實體集的E-R模型如圖1.3所示。
圖1.3
(3)多對多的聯繫(m : n)
A中的一個實體可以與B中的多個實體相聯繫,而B中的一個實體也可與A中的多個實體相聯繫。例如,“學生”與“課程”這兩個實體集之間的聯繫是多對多的聯繫,因為,一個學生可選多門課程,反過來,一門課程可被多個學生選修,每個學生選修了一門課以後都有一個成績。“學生”與“課程”兩個實體集的E-R模型如圖1.4所示。
圖1.4
2.邏輯結構設計
用E-R圖描述管理系統中實體集與實體集之間的聯繫,目的是以E-R圖為工具設計關係模式,即確定應用系統所使用的數據應包含的表和表的結構。通常這一設計過程被稱為邏輯結構設計。
(1)(1 : 1)聯繫的E-R圖到關係模式的轉換
1)聯繫單獨對應一個關係模式,則由聯繫屬性、參與聯繫的各實體集的主碼屬性構成關係模式,其主碼可選參與聯繫的實體集的任一方的主碼。
例如,考慮圖1.2描述的“班級(bjb)”與“班長(bzb)”實體集通過屬於(syb)聯繫E-R模型,可設計如下關係模式(下畫線表示該欄位為主碼):
bjb(班級編號,院系,專業,人數)
bzb(學號,姓名)
syb(學號,班級編號)
2)聯繫不單獨對應一個關係模式,聯繫的屬性及一方的主碼加入另一方實體集對應的關係模式中。
例如,考慮圖1.2描述的“班級(bjb)”與“班長(bzb)”實體集通過屬於(syb)聯繫E-R模型,可設計如下關係模式:
bjb(班級編號,院系,專業,人數)
bzb(學號,姓名,班級編號)
或者:
bjb(班級編號,院系,專業,人數,學號)
bzb(學號,姓名)
(2)(1 : n)聯繫的E-R圖到關係模式的轉換
1)聯繫單獨對應一個關係模式,則由聯繫的屬性、參與聯繫的各實體集的主碼屬性構成關係模式,n端的主碼作為該關係模式的主碼。
例如,考慮圖1.3描述的“班級(bjb)”與“學生(xsb)”實體集E-R模型,可設計如下關係模式:
bjb(班級編號,院系,專業,人數)
xsb(學號,姓名,性別,出生時間,專業,總學分,備註)
syb(學號,班級編號)
2)聯繫不單獨對應一個關係模式,則將聯繫的屬性及1端的主碼加入n端實體集對應的關係模式中,主碼仍為n端的主碼。
例如,圖1.3描述的“班級(bjb)”與“學生(xsb)”實體集E-R模型可設計如下關係模式:
bjb(班級編號,院系,專業,人數)
xsb(學號,姓名,性別,出生時間,專業,總學分,備註,班級編號)
(3)(m : n)聯繫的E-R圖到關係模式的轉換
對於(m∶n)的聯繫,單獨對應一個關係模式,該關係模式包括聯繫的屬性、參與聯繫的各實體集的主碼屬性,該關係模式的主碼由各實體集的主碼屬性共同組成。
例如,圖1.4描述的“學生(xsb)”與“課程(kcb)”實體集之間的聯繫可設計如下關係模式:
xsb(學號,姓名,性別,出生時間,專業,總學分,備註)
kcb(課程號,課程名稱,開課學期,學時,學分)
cjb(學號,課程號,成績)
關係模式cjb的主碼是由“學號”和“課程號”兩個屬性組合起來構成的一個主碼,一個關係模式只能有一個主碼。
3.物理結構設計
資料庫在物理設備上的存儲結構與存取方法稱為資料庫的物理結構,它依賴於給定的電腦系統。為一個給定的邏輯數據模型選取一個最合適應用環境的物理結構的過程就稱為資料庫的物理結構設計。
資料庫的物理結構設計通常分為以下兩步:
(1)確定資料庫的物理結構,在關係資料庫中主要指的是存取方法和存儲結構;
(2)對物理結構進行評價,評價的重點是時間和空間效率。
因而,物理數據模型(Physical Data Model)是面向電腦物理表示的模型,描述了數據在儲存介質上的組織結構,它不但與具體的DBMS有關,而且還與操作系統和硬體有關。每一種邏輯數據模型在實現時都有其對應的物理數據模型。DBMS為了保證其獨立性與可移植性,大部分物理數據模型的實現工作由系統自動完成,而設計者只設計索引、聚集等特殊結構。