官术网_书友最值得收藏!

1.4 概念結構設計和邏輯結構設計

通常將使用數據庫的應用系統稱為數據庫應用系統,例如電子商務系統、電子政務系統、辦公自動化系統、以數據庫為基礎的各類管理信息系統等。數據庫應用系統的設計和開發本質上屬于軟件工程的范疇。

廣義數據庫設計指設計整個數據庫的應用系統。狹義數據庫設計指設計數據庫的各級模式并建立數據庫,它是數據庫應用系統設計的一部分。本節主要介紹狹義數據庫設計。

1.數據庫設計的基本步驟

按照規范設計的方法,考慮數據庫及其應用系統開發的全過程,將數據庫設計分為以下6個階段:需求分析階段、概念結構設計階段、邏輯結構設計階段、物理結構設計階段、數據庫實施階段、數據庫運行和維護階段,如圖1.9所示。

(1)需求分析階段。需求分析是整個數據庫設計的基礎,在數據庫設計中,首先需要準確了解與分析用戶的需求,明確系統的目標和需要實現的功能。

(2)概念結構設計階段。概念結構設計是整個數據庫設計的關鍵,其任務是根據需求分析結果,形成一個獨立于具體數據庫管理系統的概念模型,即系統E-R圖。

(3)邏輯結構設計階段。邏輯結構設計是將概念模型轉換為某個具體的數據庫管理系統所支持的數據模型。

(4)物理結構設計階段。物理結構設計是選取一個適合應用邏輯數據模型的物理結構(包括存儲結構和存取方法等)。

(5)數據庫實施階段。數據庫設計人員運用數據庫管理系統所提供的數據庫語言和宿主語言,根據邏輯結構和物理結構的設計結果建立數據庫,編寫和調試應用程序,并組織數據入庫和試運行。

(6)數據庫運行和維護階段。數據庫通過試運行后即可投入正式運行。在數據庫運行過程中,還須不斷地對其進行評估、調整和修改。

圖1.9 數據庫設計的基本步驟

下面僅介紹數據庫設計基本步驟中的概念結構設計和邏輯結構設計。

2.概念結構設計

將需求分析階段得到的用戶需求抽象為信息結構(概念模型)的過程就是概念結構設計。

需求分析階段得到的數據,其描述是無結構的。概念設計是在需求分析的基礎上將其描述轉換為有結構的、易于理解的精確描述。概念結構設計階段的目標是形成整個數據庫的概念模型,它獨立于數據庫邏輯結構和具體的數據庫管理系統。概念結構設計是整個數據庫設計的關鍵。

概念結構設計的結果為系統E-R圖。

【例1.4】設教學管理系統中專業、學生、課程、教師實體如下所示。

專業:專業代碼,專業名稱
學生:學號,姓名,性別,出生日期,總學分
課程:課程號,課程名,學分
教師:教師編號,姓名,性別,出生日期,職稱,學院

上述實體中存在如下聯系。

(1)一個學生可選修多門課程,一門課程可被多個學生選修。

(2)一個教師可講授多門課程,一門課程可被多個教師講授。

(3)一個專業可擁有多個學生,一個學生只屬于一個專業。

(4)假設學生只能選修本專業的課程,教師只能為本學院的學生講課。

要求設計該系統的E-R圖。

設計的教學管理系統E-R圖如圖1.10所示。

圖1.10 教學管理系統E-R圖

3.邏輯結構設計

邏輯結構設計的任務是將概念結構設計階段設計好的E-R圖,轉換為與選用的數據庫管理系統所支持的數據模型相符合的邏輯結構,即由概念結構導出特定數據庫管理系統可以處理的邏輯結構。

由于當前主流的數據庫管理系統是關系數據庫管理系統,所以邏輯結構設計是將E-R圖轉換為關系模型,即將E-R圖轉換為一組關系模式。

E-R圖向關系模型轉換有以下兩個規則。

(1)一個實體轉換為一個關系模式。

實體的屬性就是關系的屬性,實體的鍵就是關系的鍵。

(2)實體間的聯系轉換為關系模式有以下不同的情況。

① 一個1:1聯系可以轉換為一個獨立的關系模式,也可以與任意一端所對應的關系模式合并。

如果轉換為一個獨立的關系模式,則與該聯系相連的各實體的鍵以及聯系本身的屬性都會轉換為關系的屬性,每個實體的鍵都是該關系的候選鍵。

如果與某一端實體對應的關系模式合并,則須在該關系模式的屬性中加入另一個關系模式的鍵和聯系本身的屬性。

② 一個1:n聯系可以轉換為一個獨立的關系模式,也可以與n端所對應的關系模式合并。

如果轉換為一個獨立的關系模式,則與該聯系相連的各實體的鍵以及聯系本身的屬性都會轉換為關系的屬性,且關系的鍵為n端實體的鍵。

如果與n端實體對應的關系模式合并,則須在該關系模式的屬性中加入一端實體的鍵和聯系本身的屬性。

③ 一個m:n聯系轉換為一個獨立的關系模式。

與該聯系相連的各實體的鍵以及聯系本身的屬性都轉換為關系的屬性,各實體的鍵組成該關系的鍵或關系鍵的一部分。

④ 3個或3個以上實體間的一個多元聯系可以轉換為一個獨立的關系模式。

與該多元聯系相連的各實體的鍵以及聯系本身的屬性都轉換為關系的屬性,各實體的鍵組成該關系的鍵或關系鍵的一部分。

⑤ 具有相同鍵的關系模式可以合并。

【例1.5】將例1.4中教學管理系統E-R圖轉換為關系模式。

將“專業”實體、“學生”實體、“課程”實體、“教師”實體分別轉換成關系模式,將“擁有”聯系(1:n聯系)合并到“學生”實體(n端實體)對應的關系模式中,將“選課”聯系和“講課”聯系(m:n聯系)轉換為獨立的關系模式。

專業:專業代碼,專業名稱

學生:學號,姓名,性別,出生日期,總學分,專業代碼

課程:課程號,課程名,學分

教師:教師編號,姓名,性別,出生日期,職稱,學院

選課:學生,課程號,成績

講課:教師編號,課程號,上課地點

主站蜘蛛池模板: 山丹县| 蒙自县| 万载县| 五华县| 大悟县| 永福县| 浏阳市| 赣州市| 赤峰市| 南投县| 江油市| 海林市| 庄河市| 板桥市| 五华县| 巨鹿县| 乐业县| 卢湾区| 清新县| 顺昌县| 武定县| 沧州市| 靖安县| 资兴市| 鸡泽县| 郎溪县| 临沧市| 吐鲁番市| 信阳市| 景洪市| 锦屏县| 威信县| 孟连| 都匀市| 荣昌县| 广宁县| 西充县| 哈巴河县| 东辽县| 阿拉善盟| 根河市|