PowerDesigner数据库建模入门
.jpg)
南京航空航天大学计算机技术研究生,曾前往德国交流,多年高校及软件开发公司工作经验。
S1阶段,我们强调数据库的使用,结业项目强调最基本的增删改查,而S2阶段我们需要从更高处着手,首先着眼于数据库的设计。在此,我们给学生补充建模工具PowerDesigner的使用。
本文中,我主要结合实例介绍CDM、PDM的设计方法,最后生成对应的sql代码。
一、设计CDM
CDM,概念数据模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。
CDM的关键点:与具体数据库无关。
以经典的学生选课数据库设计为例,下图为使用PowerDesigner 15设计的CDM。
其中,学生、课程为实体,选课为联系。
.jpg)
二、生成PDM
设计好CDM后,我们需要将CDM转换为计算机上某个具体DBMS所支持的数据模型,这样的模型就是物理数据模型,即PDM。生成方法如下图:
.jpg)
PDM的关键点:选择具体数据库,为了配合课本中应用,我这里选择的是sql server 2005。 生成PDM如下图:
.jpg)
三、生成sql代码
生成方法如下图:
.jpg)
执行后,生成sql代码: /*========================================================*/ /* DBMS name: Microsoft SQL Server 2005 */ /* Created on: 2010-3-11 11:04:46 */ /*========================================================*/
if exists (select 1 from sysobjects where id = object_id(’course’) and type = ’U’) drop table course go
if exists (select 1 from sysindexes where id = object_id(’sc’) and name = ’sc2_FK’ and indid > 0 and indid < 255) drop index sc.sc2_FK go
if exists (select 1 from sysindexes where id = object_id(’sc’) and name = ’sc_FK’ and indid > 0 and indid < 255) drop index sc.sc_FK go
if exists (select 1 from sysobjects where id = object_id(’sc’) and type = ’U’) drop table sc go
显然,表、主外键关系等均已成功建立。
希望同学们能通过本文,增强自己的学习能力,更为重要的是能够举一反三。
|