將需求分析得到的用戶需求抽象為信息結構的過程就是概念結構設計。
概念結構設計階段的目標是通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型。概念結構的設計方法有兩種:
(1)集中式模式設計法:這種方法是根據需求由一個統(tǒng)一機構或人員設計一個綜合的全局模式。這種方法簡單方便,適用于小型或不復雜的系統(tǒng)設計,由于該方法很難描述復雜的語義關聯(lián),而不適于大型的或復雜的系統(tǒng)設計。
(2)視圖集成設計法:這種方法是將一個系統(tǒng)分解成若干個子系統(tǒng),首先對每一個子系統(tǒng)進行模式設計,建立各個局部視圖,然后將這些局部視圖進行集成,最終形成整個系統(tǒng)的全局模式。
數據庫概念設計是使用E-R模型和視圖集成設計法進行設計的。它的設計過程是:首先設計局部應用,再進行局部視圖(局部E-R圖)設計,然后進行視圖集成得到概念模型(全局E-R圖)。
視圖設計一般有三種方法:
(1)自頂向下。這種方法是從總體概念結構開始逐層細化。如教師這個視圖可以從一般教師開始,分解成高級教師、普通教師等。進一步再由高級教師細化為青年高級教師與中年高級教師等。
(2)自底向上。這種方法是從具體的對象逐層抽象,最后形成總體概念結構。
(3)由內向外。這種方法是從核心的對象著手,然后向四周逐步擴充,直到最終形成總體概念結構。如教師視圖可從教師開始擴展至教師所擔任的課程,上課的教室與學生等。
視圖集成的實質是將所有的局部視圖合并,形成一個完整的數據概念結構。在這一過程中最重要的任務是解決各個E-R圖設計中的沖突。
常見的沖突有以下幾類:
(1)命名沖突。命名沖突有同名異義和同義異名兩種。如教師屬性何時參加工作與參加工作時間屬于同義異名。
(2)概念沖突。同一概念在一處為實體而在另一處為屬性或聯(lián)系。
(3)域沖突。相同屬性在不同視圖中有不同的域。
(4)約束沖突。不同的視圖可能有不同的約束。
視圖經過合并形成初步E-R圖,再進行修改和重構,才能生成最后基本E-R圖,作為進一步設計數據庫的依據。
【例6.9】設計學生管理系統(tǒng)。包括學生的學籍管理子系統(tǒng)和課程管理子系統(tǒng)兩個系統(tǒng)。
(1)學籍管理子系統(tǒng)包括學生、宿舍、班級、教室、輔導員。這些實體之間的聯(lián)系有:一個宿舍可以住多個學生,一個學生只能住在一個宿舍中。
① 一個班級有若干學生,一個學生只能屬于一個班。
② 一個輔導員帶若干個學生,一個學生只屬于一個輔導員。一個輔導員帶多個班級。
③ 一個班級在多個教室上課,一個教室有多個班級來上課。
(2)課程管理子系統(tǒng)包括學生、課程、教師、教室、教科書。這些實體之間的聯(lián)系有:
① 一個學生選修多門課程,一門課程有若干學生選修。
② 一個學生有多個教師授課,一個教師教授若干學生。
③ 一門課程由若干個教師講授,一個教室只講一門課程。
④ 一個教室開設多門課,一門課只能在一個教室上。
針對兩個子系統(tǒng)分別設計出它們的E-R圖。在E-R圖中省去屬性。學籍管理子系統(tǒng)的
E-R圖如圖6.20所示。課程管理子系統(tǒng)的E-R圖如圖6.21所示。
學生{學號,姓名,性別,出生日期,系別,何時入校,平均成績}
班級{班級號,學生人數}
輔導員{職工號,姓名,性別,工作時間}
宿舍{宿舍編號,地址,人數}
教室{教室編號,地址,容量}
對應各個實體的屬性分別為:
學生{學號,姓名,性別,年齡,入學時間 }
課程{課程號,課程名,學分}
教科書{書號,書名,作者,出版日期,關鍵字}
教室{教室編號,地址,容量}
教師{職工號,姓名,性別,職稱}
其中有下劃線的屬性為實體的碼。
下面將學籍管理子系統(tǒng)E-R圖和課程管理子系統(tǒng)E-R圖集成學生管理系統(tǒng)E-R圖。集成過程如下:
(1)消除沖突。這兩個子E-R圖存在著多方面的沖突:
①輔導員屬于教師,學籍管理中的輔導員與課程管理中的教師可以統(tǒng)一為教師。
②將輔導員改為教師后,教師與學生之間有兩種不同的聯(lián)系:指導聯(lián)系和教學聯(lián)系,
將兩種聯(lián)系綜合為教學聯(lián)系。
③調整學生屬性組成,調解結果為:
學生{學號,姓名,出生日期,年齡,系別,平均成績}
(2)消除冗余。
1) 學生實體的屬性中的年齡可由初涉概念日期計算出來,屬于數據冗余。調整為:學生{學號,姓名,出生日期,系別,平均成績}
2)教室實體與班級實體之間的上課聯(lián)系可以由教室與課程之間的開設聯(lián)系、課程與學
生之間的選修聯(lián)系、學生與班級之間的組成聯(lián)系三者推導出來,因此屬于數據冗余,可以消去。
3)學生的平均成績可以從選修聯(lián)系中的成績屬性推算出來。但如果學生的平均成績經常查詢,可以保留該數據冗余來提高效率。
這樣,集成后的學生管理系統(tǒng)的E-R圖見圖6.22。
聯(lián)系客服