目标:使用PowerDesigner12,实现数据库从逻辑模型到物理模型的设计,最后生成sql脚本。
一、创建概念模型
打开PowerDesigner12后,File—>New,弹出:
填写Model Name:ContractManage。点击确定。
二、设计逻辑模型。
(一)Domains的创建。Domains是用户自定义的数据类型,如下图。
按照,下表内容建立新的Domains:
Domains名称 | Code | Data Type | Length |
D | D | DATE | / |
VA5 | VA5 | D(是否在显示) | 5 |
VA15 | VA15 | VARIABLE CHARACTERS(15) | 15 |
VA50 | VA50 | VARIABLE CHARACTERS(50) | 50 |
VA255 | VA255 | VARIABLE CHARACTERS(255) | 255 |
VA2000 | VA2000 | VARIABLE CHARACTERS(2000) | 2000 |
(二)实体的创建。
使用palette面板里的entity对象,在白板上新建对象。
1、首先创建实体名:
2、新建属性:点击Attribute选项卡。
3、设置主标识符。点击Identifiers选项卡。
通过以上步骤,我们新建3个实体。
实体甲方:
(1)General选项卡 Name:甲方 Code:PartyA
(2)Attributes选项卡 M(是否为空)P(是否为主标识符)D(是否在显示)
Name | Code | Data Type | Domain | M | P | D |
甲方编号 | PartyAID | VARIABLE CHARACTERS(15) | VA15 | V | V | V |
甲方名称 | PartyAName | VARIABLE CHARACTERS(50) | VA50 | V |
(3)Identifiers选项卡 P(是否为主标识符)
Name | Code | P |
ID | ID | V |
实体甲方代理人:
(1)General选项卡 Name:甲方代理人 Code:PartyAAgent
(2)Attributes选项卡 M(是否为空)P(是否为主标识符)D(是否在显示)
Name | Code | Data Type | Domain | M | P | D |
甲方代理人编号 | PartyAAgentID | VARIABLE CHARACTERS(15) | VA15 | V | V | V |
甲方代理人名称 | PartyAAgentName | VARIABLE CHARACTERS(50) | VA50 | V |
Name | Code | P |
ID | ID | V |
实体合同:
(1)General选项卡 Name:合同 Code:Contract
(2)Attributes选项卡 M(是否为空)P(是否为主标识符)D(是否在显示)
Name | Code | Data Type | Domain | M | P | D |
合同编号 | ContractID | VARIABLE CHARACTERS(15) | VA15 | V | V | V |
签约地点 | Place | VARIABLE CHARACTERS(50) | VA50 | V | ||
乙方 | PartyB | VARIABLE CHARACTERS(50) | VA50 | V | ||
乙方代理人 | PartyBAgent | VARIABLE CHARACTERS(5) | VA5 | V | ||
甲方签约时间 | PartyASignDate | Date | D | V | ||
乙方签约时间 | PartyBSignDate | Date | D | V | ||
项目名称 | ProjectName | VARIABLE CHARACTERS(255) | VA255 | V | ||
合同内容 | ContractContent | VARIABLE CHARACTERS(2000) | VA2000 | V |
(3)Identifiers选项卡 P(是否为主标识符)
Name | Code | P |
ID | ID | V |
(三)创建关系。
使用Palette面板中的Relationship,如图,分别联系甲方和合同(从甲方连到合同),甲方代理人和合同(从甲方代理人连到合同):
最后得到下列实体关系图:
三、将逻辑模式转换成物理模型。
选择Tools—>Generate Physical Data Model,生成物理模型。
生成如下物理模型,如下:
四、将物理模型转换成sql脚本。
先选中物理模型ContractManage下的ContractManage。选择DataBase—>Generate DataBase
生成ContractManage.sql脚本如下:




















































