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