王桃群
(長江大學計算機科學學院,湖北 荊州 434023)
數據庫設計的基本步驟可分為五個階段:需求分析、概念結構設計、邏輯結構設計、物理結構設計、數據庫的實施、運行與維護。其中,需求分析的主要任務是收集和分析用戶的需求,利用數據流圖(DFD)和數據字典(DD)來描述用戶的處理需求和數據需求;概念結構設計是對需求進行綜合歸納與抽象,形成獨立于具體DBMS的概念模型;邏輯結構設計是將概念模型轉換為某個DBMS所支持的數據模型。
Sybase公司的PowerDesigner是一款開發人員常用的數據庫建模工具,利用它可以制作數據流圖、概念數據模型和物理數據模型等。本文以一個簡易的教學管理系統的數據庫設計為例,演示PowerDesigner在數據庫設計中的運用。
概念數據模型CDM(Conceptual Data Model)是現實世界的抽象反映,它表示實體以及實體間的聯系,即E-R圖,是數據庫設計人員與用戶之間交流的語言。該教學管理系統包括的實體有學生、教師、課程和管理員。利用PowerDesigner建立該系統的概念數據模型,如圖1所示,從實體屬性的數據類型采用標準數據類型來看,可知概念模型與具體的DBMS是無關的。

圖1 概念數據模型
其中,為描述“學生”實體集與“課程”實體集之間的M:N聯系,可增加一個“Association”(即圖1中的“選課”,同時該Association擁有一個屬性:成績),然后,增加兩個“Association Link”將 Association“選課”分別與“學生”和“課程”實體連接起來。
為描述“教師”與“課程”之間的1:N聯系,如圖2所示,可將“教師”與“課程”之間的聯系“授課”的Cardinalities設置為One-Many,同時,將“教師 to課程”的Cardinality設置為“0,n”,含義是每個教師可講授多門課或者不授課,將“課程 to教師”的Cardinality設置為“1,1”,含義是每門課程必須且只能由一名教師講授,當轉化為關系模式時,“課程”關系中的外鍵“教師號”將不能取空值。觀察圖2可見,分岔線代表“多”,非分岔線代表“1”,空心圓圈代表無強制約束,小豎線代表強制約束。

圖2 “教師”與“課程”之間1:N聯系
此外,在為實體及實體的屬性命名時,建議“Name”或“Comment”的值采用中文,“Code”的值采用英文。比如,“學生”實體的Name值為學生、Code值為Student,其屬性“學號”的Name值為學號、Code值為Sno,這樣當E-R圖轉為關系模式時,關系名及字段名采用英文,備注說明則采用中文。
物理數據模型PDM(Physical Data Model)對應于數據庫設計階段中的邏輯結構設計,將CDM轉換為某個具體DBMS所支持的數據模型,這里以選擇SQL Server 2008為例,生成的PDM如圖3所示。

圖3 物理數據模型

圖4 生成的SQL腳本
由圖3可見,每個實體型均轉換為一個關系模式;1:n聯系采用與n端對應的關系模式合并,在n端關系中加入1端關系的碼,例如,針對“教師”與“課程”間的“授課”聯系,在轉換為關系模式時,將“教師”關系的碼“教師號”加入到“課程”關系中,并作為該關系的外碼;m:n聯系轉換為一個關系模式,屬性由與該聯系相連的各實體的碼以及聯系本身的屬性組成,碼是與該聯系相連的各實體的碼的組合,例如,針對“學生”與“課程”間的“選課”聯系,在轉換為一個獨立的關系模式時,屬性由“學生”關系的碼“學號”、“課程”關系的碼“課程號”以及“選課”聯系的屬性“成績”組成。
利用物理數據模型,生成數據庫腳本,最后將物理模型生成關系數據庫。在PowerDesigner環境中,選擇菜單項“Database——Configure Connections…”,建立一個SQL Server的ODBC數據源,然后,選擇菜單項“Database——Generate Database…”,生成SQL腳本或根據ODBC數據源直接導出到數據庫中。此外,若選中 “Format”選項卡中的“Generate name in empty comment”復選框時,將會為表中的字段添加擴展屬性。生成的SQL腳本如圖4所示,單擊“Run”按鈕即可執行SQL腳本,生成的數據庫及表如圖5所示,可見,表名與CDM中實體的“Code”命名一致,字段名與實體屬性的“Code”命名一致,字段的“說明”與實體屬性的“Name”命名一致。

圖5 生成的數據庫
利用PowerDesigner進行數據庫設計,既可幫助我們理解數據庫相關理論知識,又可提升軟件開發效率。當然,數據庫建模的輔助工具很多,如Rational公司的Rational Rose、CA公司的Erwin等,可結合自身的習慣或需要,選擇合適的建模工具。
[1]尹志宇,郭晴,等.數據庫原理與應用教程——SQL Server[M].清華大學出版社,2010.
[2]從 PowerDesigner概念設計模型(CDM)中的 3種實體關系說起[OL].http://blog.csdn.net/shanliwa/article/details/1834117,2007.
[3]肖海蓉.Power Designer在數據庫設計中的應用[J].電腦學習,2010,10(5).