实验1使用PowerDesigner进行概念模型设计说明.docx

上传人:b****7 文档编号:11202693 上传时间:2023-02-25 格式:DOCX 页数:15 大小:940.35KB
下载 相关 举报
实验1使用PowerDesigner进行概念模型设计说明.docx_第1页
第1页 / 共15页
实验1使用PowerDesigner进行概念模型设计说明.docx_第2页
第2页 / 共15页
实验1使用PowerDesigner进行概念模型设计说明.docx_第3页
第3页 / 共15页
实验1使用PowerDesigner进行概念模型设计说明.docx_第4页
第4页 / 共15页
实验1使用PowerDesigner进行概念模型设计说明.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

实验1使用PowerDesigner进行概念模型设计说明.docx

《实验1使用PowerDesigner进行概念模型设计说明.docx》由会员分享,可在线阅读,更多相关《实验1使用PowerDesigner进行概念模型设计说明.docx(15页珍藏版)》请在冰豆网上搜索。

实验1使用PowerDesigner进行概念模型设计说明.docx

实验1使用PowerDesigner进行概念模型设计说明

实验1使用PowerDesigner进行概念模型设计

实验内容

学生信息管理中有如下实体型:

●学生(student),包括的属性有学号(Sno),姓名(Sname),性别(Ssex),年龄(Sage),身份证号(Sid)

●课程(course),包括的属性有课程号(Cno),课程名(Cname),学分(Ccredit)

●学院(department),包括的属性有学院编号(Dno),学院名称(Dname)

●教师(teacher),包括的属性有教师编号(Tno),姓名(Tname),性别(Tsex),年龄(Tage),参加工作时间(Tworktime)

●一个学生选修多门课程,一门课程由多个学生选修

●一个学院有多名学生,一个学生只属于一个学院

●一门课程可以由多个教师讲授,一个教师可以讲授多门课程

●一个学院有多名教师,一个教师只属于一个学院

●一个学院至多有一个正院长,一个正院长只能在一个学院担任正院长职务

●某课程可以是其他多门课程的先修课程,一门课程至多有一门先修课程

student实体

General选项卡设置通用属性,Attributes选项卡设置实体包含的属性,Identifiers选项卡设置实体的码,Notes选项卡记录备注信息,Rules选项卡设置规则。

General和Attributes选项卡中的内容必须设置,其他内容可以根据需要设置。

选择General选项卡,设置该实体的Name属性为student,Code属性与Name属性一致即可。

选择Attributes选项卡,设置该实体所包含的属性。

Name列设置属性的名称,Code列设置属性的代码,DataType列设置属性的数据类型,Domain列设置属性的域。

M和P列设置属性的约束。

M列设置属性是强制非空的,属性Sname要求强制非空。

P列设置该属性是主键中的属性,属性Sno设置为主键。

D列表示该属性被显示。

一般在设置实体的属性时,一定要设置实体的主键,如果某个属性被设置为主键中的属性则自动强制非空。

Name与Code的区别是:

Name供显示使用,Code是之后物理数据模型中表(或字段)的代码。

单击Identifiers选项卡,设置实体主、次标识符的定义界面。

主标识符指主键,只能有一个,次标识符指其他候选键,可以有多个。

主标识符后面的P为选中状态,由于前面已经指定属性Sno为主键,系统会自动创建主标识符并自动命名为Identifier_1。

设置属性Sid为候选键。

单击工具栏上的AddaRow(添加)按钮

,出现一行,系统自动命名为Identifier_2,修改为Sid_u,Name和Code相同即可。

设置规则,要求属性Ssex只能取“女”或“男”。

在General选项卡中输入规则名为Ssex_r,单击Expression选项卡,输入规则内容。

创建course实体

按照上面的方法创建course实体。

在General选项卡中,设置该实体的Name属性为course,Code属性与Name属性一致即可。

Cno为主键,即主标识符。

Cname强制非空。

创建department实体

按照上面的方法创建department实体。

在General选项卡中,设置该实体的Name属性为department,Code属性与Name属性一致即可。

Dno为主键,即主标识符,Dname为候选键,即次标识符。

创建teacher实体

按照上面的方法创建teacher实体。

在General选项卡中,设置该实体的Name属性为teacher,Code属性与Name属性一致即可。

Tno为主键,Tname强制非空,创建规则Tsex_r要求Tsex取值只能是“女”或“男”。

设置student和course之间的联系

在PowerDesigner中,有Association(实体间的联系)与Relationship(实体间的关系),二者之间的区别是:

前者用于m:

n联系、多个实体型之间的联系,在转换为PDM(物理数据模型)时对应一个表(另外,也用于自身带有属性的1:

n和1:

1联系,但在转换为PDM时不对应一个表,而是附加属性);后者用于不带属性的1:

n和1:

1联系,在转换为PDM时附加属性(1:

n在n方附加1方的主键,1:

1由DominantRole决定在其中一方附加对方的主键)。

student和course之间应该使用Association。

单击设计元素面板上的代表Association的图标

,将鼠标指针指向设计区域的合适位置,单击鼠标左键,在设计区域中创建一个Association,自动命名为Association_1。

双击Association_1,出现Association_1的属性设置界面。

在General选项卡中设置Name为sc,code与Name相同即可。

选择Attributes选项卡,添加Grade属性。

单击设计元素面板上的代表AssociationLine的图标

,然后将实体student和联系sc连接起来,同样将实体course和联系sc连接起来。

设置teacher和course之间的联系

参照student和course之间的联系设置teacher和course之间的联系tc,联系自身有两个属性:

Location(授课地点)、Term(授课学期)。

设置student和department之间的关系

在设计元素面板上单击代表Relationship的图标

,光标置于department实体,按下左键并从department实体拖动到student实体,此时,在两个实体间创建了一个Relationship。

双击student和department之间的关系,在General选项卡设置关系的Name为ds,Code与Name一致即可。

在Cardinalities选项卡中设置关系类型和每个方向上的基数(Cardinality)。

设置关系类型为One-Many,意思是由Entity1到Entity2为One-Many。

由于创建该关系时,鼠标是由department拖动到student,因此,Entity1指department,Entity2指student,也可以在General选项卡中重新设置。

在Cardinalities选项卡中,关系的每个方向都包含一个分组框,每个分组框中包括下列属性:

Rolename:

用来描述该方向关系的作用,例如,在departmenttostudent分组框中可以填写have,而在studenttodepartment分组框中可以填写belongto。

Dependent:

用来表示该方向两个实体之间的依赖关系,只有子实体依赖于父实体。

Mandatory:

表示该方向具有强制特性。

Cardinality:

表示该方向上关系的基数。

例如,对于departmenttostudent,基数指对于department中的一个院系在student中可能存在的最大与最小实例数。

现实世界中,一个院系可以拥有多个学生,也可以没有任何学生,所以departmenttostudent方向的基数应选择“0,n”,不设置Mandatory;而一个学生必须属于一个院系,并且只能属于一个院系,所以studenttodepartment方向的基数应选择“1,1”,设置Mandatory。

Dominantrole只在一对一联系中才进行设置。

设置teacher和department之间的关系td_belongto

参照student和department之间的关系,创建teacher和department之间的关系td_belongto,由department到teacher是“1:

n”关系。

在General选项卡设置关系的Name为td_belongto,Code与Name一致即可。

Rolename:

在departmenttoteacher分组框中可以填写have,在teachertodepartment分组框中可以填写belongto。

Cardinality:

现实世界中,一个院系可以拥有多个教师,也可以没有任何教师,所以departmenttoteacher方向的基数应选择“0,n”,不设置Mandatory;而一个教师必须属于一个院系,并且只能属于一个院系,所以teachertodepartment方向的基数应选择“1,1”,设置Mandatory。

设置teacher和department之间的td_manage关系

创建teacher和department之间的关系td_manage,是“1:

1”关系。

在General选项卡设置关系的Name为td_manage,Code与Name一致即可。

Rolename:

在departmenttoteacher分组框中可以填写managedby,在teachertodepartment分组框中可以填写manage。

Cardinality:

现实世界中,一个院系只能而且必须有一个院长,所以departmenttoteacher方向的基数应选择“1,1”,设置Mandatory;而一个教师可以不是院长,如果是则只能担任一个院系的院长职务,所以teachertodepartment方向的基数应选择0,1,不设置Mandatory。

Dominantrole:

只有在一对一联系中出现,表示支配方向。

所选择的支配方向在生成PDM时产生一个参照。

例如,选择teacher->department,在生成PDM时,将在department表中增加tno属性,存储某院系的院长编号,而这个属性是department表的一个外键,参考teacher表,结合Cardinality中departmenttoteacher方向的基数“1,1”,意味着该外键不能接受空值。

设置course实体集的自反联系course_self

假设某门课可以是其他多门课的先行课,而一门课如果有先行课则只能有一门先行课,这样course实体集内部存在“1:

n”关系。

在设计元素面板上单击代表Relationship的图标

,光标置于course实体,按下左键并在course实体上拖动一段距离,此时,在course实体上创建了一个Relationship。

右击鼠标,进入对象编辑状态。

双击course自身的关系,在General选项卡设置关系的Name为course_self,Code与Name一致即可。

Rolename:

在上面的coursetocourse分组框中可以填写pioneer,在下面的coursetocourse分组框中可以填写succeed。

Cardinality:

现实世界中,某门课可能不是先行课,也可能是多门课的先行课,所以,上面的coursetocourse方向的基数应选择“0,n”;而一门课可以没有先行课,如果有先行课则只能有一门,所以,下面的coursetocourse方向的基数应选择“0,1”。

至此,根据上面E-R图创建的CDM已经完成。

PowerDesigner自动生成PDM

PowerDesigner的PDM可以描述逻辑结构和物理结构,根据CDM生成PDM。

检查CDM的正确性

在CDM设计界面上,选择Tools|CheckModel,检查CDM的正确性,如果存在错误,请检查并更正。

将CDM转换为PDM

在CDM不存在错误(警告不影响模型转换)的情况下,可以将CDM转换为PDM。

在CDM设计界面上,选择Tools|GeneratePhysicalDataModel,出现模型转换选项设置界面。

在General选项卡中,设置转换生成PDM的基本属性,包括使用哪种DBMS(请选择SQLServer2005),要生成的PDM模型的Name属性(请设置为SIM_PDM),Code属性与Name属性一致即可。

Detail选项卡设置转换过程中的选项,例如转换过程中是否需要检测CDM模型,转换生成表时是否增加前缀,各种约束的命名规则等。

Selection选项卡设置需要转换的实体。

PDM如下图所示。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1