实验1使用PowerDesigner进行概念模型设计资料.docx
- 文档编号:2227160
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:15
- 大小:941KB
实验1使用PowerDesigner进行概念模型设计资料.docx
《实验1使用PowerDesigner进行概念模型设计资料.docx》由会员分享,可在线阅读,更多相关《实验1使用PowerDesigner进行概念模型设计资料.docx(15页珍藏版)》请在冰点文库上搜索。
实验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如下图所示。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 使用 PowerDesigner 进行 概念 模型 设计 资料