powerdesigner物理数据模型Word文件下载.docx
《powerdesigner物理数据模型Word文件下载.docx》由会员分享,可在线阅读,更多相关《powerdesigner物理数据模型Word文件下载.docx(33页珍藏版)》请在冰点文库上搜索。
FewModel
Modeltype-
图3-3扩展属性
如果要制定利用PowerBuilder来开发应用程序,应在此选中PowerBuilder复选框,
这样,当PowerBuilder连接数据库时,会将表和列的扩展属性保存到其Catalog表中,生
成的PDM可以从Catelog表中获取表和列的扩展属性。
步骤4:
单击“确定”按钮,打开新建PDM的操作窗口,如图3-4所示。
图3-4PDM操作窗口
步骤5:
进一步地,利用Palette面板中的Table工具来创建表,利用Referenee工具创建参照关系,利用View工具创建视图,利用Procedure工具创建存储过程等。
其他工具与CDM中的工具栏使用方法一致。
(3)定义PDM的显示参数
在建立PDM前,需要定义PDM的显示参数,以满足不同的显示需求,使PDM能够更准确
地描述系统信息。
定义PDM显示参数的具体方法是:
步骤1:
在tools菜单中单击DisplayPreferences命令,窗口显示如图3-5所示,在
General节点中设置整个模型的现实参数。
其中各个选项的含义是:
Windowscolor:
窗口颜色。
Unit:
长度度量单位。
Grid:
网格线。
Snaptogrid(跳过网格)、Display(显示)、和size(网格线之间的间隔)。
Diagram:
showpagedelimiter(显示分页线)。
DisplayPreferences
Category:
ApplyTo...
UK
Cancel
图3-5定义PDM显示参数
步骤2:
在对话框左侧选择攵,如图3-6所示。
Content节点,设置在PDM图形窗口中每类对象的显示样式
图3-6显示样式参数
在对话框左侧选择Format节点,设置每类对象的显示格式,如大小、边线颜色、填充颜色、阴影、字体等,如图3-7所示。
DisplayPreferences
Table
AppiyTo...
□KCincelHelp
图3-7对象的显示格式
单击右下方的Modify按钮,可以进行更为详细的设置,如图3-8所示。
图3-8对象的符号格式
(4)定义PDM勺模型属性修改PDM模型属性的操作方法是:
在Model菜单中单击ModelProperties命令,或者右键单击图形窗口的背景,在弹出的快捷菜单中选择Properties命令,打开PDM属性窗口,如图3-9所示。
图3-9定义PDM的模型属性
步骤2:
单击Database栏右侧的Create按钮,进入databaseProperties窗口,如图
3-10所示。
在该窗口中可以配置数据库选项。
图3-10数据库属性窗口
2.创建表
PDM中的表与DBM叩存储的数据的表是同一个概念。
表是PDM的基本出发点,表的设
计关系到PDM是否能正确反映客观世界。
创建表的方法是:
在PDM窗口中选择Palette面板中的Table工具,并在窗口的空白区域单击,将在指定位置增加一个表的图形符号。
在空白区域单击右键以释放表形状的光标。
在双击窗口中表的图形符号,打开表属性窗口,如图3-11所示。
■TableFropertice-〔作者J
PhysicalOptionsF^x«
irBuild«
rFf色wiew
GeneralColumnsIndexesKezsTricpersProcedures
图3-11表定义窗口
3.创建列
在PDM中创建的列包括计算列和序列。
(1)创建列
列是试题属性在数据库中的物理表现,PDM中的列等同于数据库表中的列。
需要为每个
列指定名称、代码及数据类型等基本属性。
定义列的方法是:
在表定义窗口中单击选择Column页,在其中键入列的节本属性,如图3-12所
示。
选中某一列(例如“作者编号”),右键单击Properties按钮,打开列属性定义窗口,如图3-13所示,其中定义列的其他属性。
图3-13定义其他属性
在General页中可以定义以下属性:
Display:
是否在图形符号中显示。
Foreignkey:
外部键。
Computed:
计算列。
Identify:
自增效列,即列中的数据是否可以自动增加。
步骤3:
单击选择detail页,在其中可以定义通用的数据约束,如图3-14所示。
其中可以定义的属性包括:
Columnfileparameters:
nullvalues(允许空值列个数的百分比)、distinetvalues
(允许不同值列个数的百分比)和averagelength(列值的平均长度)。
Testdataparameters:
profile(测试数据的取值)。
单击右面的List按钮,可以进
-步定义测试的取值方式,可以是字符型、数值型或日期/时间型
Computedexpression:
定义计算歹U表达式。
步骤4:
定义完毕后,单击0K按钮返回。
图3-14定义通用的数据约束
(2)创建计算列
计算力中存放通过表达是对其他列的值进行运算后得到的结果值,是一种特殊的列。
定义计算列的方法是:
在列属性定义窗口的Details页中单击computedexpression
编辑框右面的Edit按钮,弹出计算列表达式定义窗口,在其中定义计算表达式,如图3-15
所示。
图3-15计算列表达式定义窗口
(3)设置检查约束
在列属性定义窗口中选择Standardchecks页,在其中定义检查约束,如图3-16所示。
图3-16定义检查约束
(4)创建序列(Sequenee)
前面介绍了列的基本属性中有一个Identify(自增效列)选项,含义是当表中增加一
条记录时,列值会自动增加1。
这样的列可以应用在一些特殊系统中,例如物资入库的流水
号、商场的销售号等。
序列则是特殊的自增效列,它允许定义一个复杂的增加方式。
例如,可以定义介于两个数之间的、特定增量的一组数。
序列的数据类型必须是数字型的。
序列的使用过程有两步,首先是定义一个序列,然后把它应用到列上。
前提条件是当前DBMS必须支持序列。
注:
4.创建参照及参照完整性
参照是父表和子表之间的连接,它定义了两个表中对应列之间的参照完整性约束,对应
列是指主键(包括候选键)与外间或两个表中用户指定的两个列。
当参照连接对应列后,子
表中列的每一个值都引用父表中应对列的值。
再参照中,对应列使用Join连接,根据主键、
候选键、外键中包含的列的个数,一个参照可以包含一个或多个Join。
通常在主键或候选键和外键之间建立参照。
根据参照连接对应列性质的不同,可把连接
分成键之间的连接和用户指定列之间的连接。
键之间的连接把父表中的主键或候选键连接到
子表中的外键上;
用户指定列之间的连接把父表中的一个或多个列连接到子表中相应的列上例如,如图3-17中的作品表和出版社表建立了参照联系。
TITLETITLEPUE
书号uhar
出版事号char(12)Vflc?
书名var匚tax(SO^FF
藝卫(2Q)
tl?
xa.-Hnieric(523*
说明I^ile*varejhar
出履吕躺dala
FUEL工SHE常辭曙基占亦
绩.fffw亡(20)
奢怡fbx■匸Lax(2ojii
图3-17建立参照联系
出版社表(父表)中的主键"
出版社编号”作为被参照列(<
pk>
),作品表(子表)中
的外部键“出版社编号”作参照列(<
fk>
).
(1)设置参照相关的模型选项
模型选项决定了参照的特性。
打开PDM在Tools菜单中单击Modeloptions命令,打
开模型选项窗口,如图3-18所示。
图3-18模型选项窗口
其中,Model节点以及其下节点可以用来设置模型的整体选项,包括:
1)Tablet&
View:
ignoreidentifyingowner,不选则表示表或视图建立时,只
有指定的属主(用户)可以修改,否则任何用户都可以修改。
2)Column&
Domain:
enforcenon-divergenee:
列与域是否分离。
与域相关的列
的datatype、cheek、rule、mandatory(强制)和profile(在目标数据库
中生成测试数据的描述文件)也可以随之改变。
3)Defaultdatatype:
表示默认的数据类型。
4)Referenee:
uniquecode:
表示模型中的参照代码唯一。
5)Auto-reuseColumn:
自动重用列。
表示同父表主键拥有相同的代码和列或子表列,但不是其他表的外部键,则该列被当作子表的外部键。
6)Auto-migrateColumns:
自动迁移列。
表示产生参照表,父表的主键将迁移
到子表中成为外部键。
7)Domain:
表示如果选择了Auto-migrateColumns和Domain,在建立参照时,主键的域将迁移到外部键上。
8)Check:
表示如果选择了Auto-migrateColumns和check,在建立参照时,主
键的检查参数将迁移到外部键上。
9)
Rules:
表示如果选择了Auto-migrate
键的业务规则将迁移到外部键上。
Columns和Rules,在建立参照时,主
10)
Defaultlinkoncreationprimarykey
:
表示参照连接主键列到外部键列。
11)
Defaultlinkoncreationuser-defined
表示参照不长生连接。
(2)
创建参照及定义相关属性
步骤
1:
在PDM的Palette面板中,选择Referenee(参照)工具。
在子表的图形符号内单击鼠标,然后拖拽鼠标至父表的图形符号内再释放,在子表和父
表之间建立一个连接。
双击新建立的连接,打开参照属性窗口,在其中可以修改参照的各个属性,如图3-19所示。
ChildTabl«
Fsrent
Stereot^e:
Parenttable:
C3出版社¥
如破I
Parentrole:
Chidtable:
二作品El旦I
Childrole:
Generate:
图3-19定义参照属性
Join(连接)可以用来连接主键、候选键和外部键,或在用户指定的列之间建立连接,如图3-20所示。
连接可以通过设置模型选项自动建立,也可以手工建立。
步骤5:
Integrity页可用来定义参照完整性。
参照完整性是维护主键、候选键和外部
键之间数据一致性的规则集合,表示父表中修改或删除参照列的数据对子表的影响。
具体属
性如图3-21所示。
图3-21参照的属性
Constraintname:
约束名。
Implementation:
实现方式。
Declarative:
把参照完整性约束定义成一种特殊的引用,在相应DBMS中用于维护数
据的有效性。
Trigger:
通过触发器在相应DBMS^维护数据的有效性。
Cardinality:
基数。
表示父表中的每个实例,子表中可能拥有的实例的最少和最多数。
Update/deleteconstraint:
表示修改父表列值后子表列值如何修改。
None:
修改或删除父表,对子表无影响。
Restrict:
如果子表中存在一个或多个对应值存在,不能修改或删除父表中的值。
Cascade:
修改或删除父表中值的同时将子表中对应的值也修改或删除。
Setnull:
修改或删除父表中值的同时将子表中对应的值置为NULL
Setdefault:
修改或删除父表中值的同时将子表中对应的值置为默认值。
Mandatoryparent:
是否强制子表中的外部键列值都必须在父表中有相应的列值。
Checkoncommit:
是否在提交时验证参照完整性。
Changeparentallowed:
是否允许提交时验证参照完整性。
步骤6:
还可以修改参照图形符号上显示的文本信息,以满足不同系统的需求。
方法是
在PDM窗口中,在Tools菜单中单击DisplayReferences命令,打开displayReferenee
对话框,选择Content下的Referenee节点,如图3-22所示。
图3-22设置参照的文本信息
Name是参照的名称;
constraintname参照完整性约束的名称;
join是两个表相同列的联系名称;
Refereneeintegrity为参照完整性;
cardinality为基数;
implementation
为参照完整性实现的方式。
其中,relational,连线的箭头指向父表;
CODASYL连线的箭
头指向子表;
Conceptual,用一对多的方式显示基数。
5.创建域
在PDM中,使用域有助于识别信息的类型易于使用不同表中列的数据特征标准化,域为
列定义了一组有效的值。
可以把Datatype、check、rule、mandatory等信息关联到域上。
创建域的具体方法是:
步骤1打开PDM在model菜单中单击Domain命令,打开listofDomains(显示域列表)窗口。
namecode禾口datatype栏
在该窗口中单击空白行,可以增加一行,分别在中输入名称、代码和数据类型,如图3-23所示。
gLXtofrioniains
图3-23域列表窗口
双击新增加的行,可带开DomainProperties窗口,如图3-24所示。
图3-24域属性定义窗口
其中general页中各个选项的含义是:
name名称;
code代码;
Comment注释,datatype
数据类型,length长度;
precision精度;
mandatory强制。
除此之外,还可以定义standardcheck、additionalcheck和rule等属性。
单击datatype选项右边的“?
”按钮,可打开standarddatatype窗口,
从中选择系统数据类型。
单击ok,返回PDM窗口。
6.创建表中的域
键是表中可以唯一识别一条记录的一个或多个列的集合。
PDM支持3种类型的键:
主键、
候选键、和外部键。
(1)主键
主键是表的主标识符,它可以是一个或多个列,列的值是唯一的。
定义主键的方法是:
双击PDM模型中的某个表,打开tableProperties窗口。
选中作为主键列的P复选框,再单击“确定”按钮即可。
如果利用逆向工程,从已经存在的数据库逆向生成PDM模型,则可能无法生成主键或者
在逆向工程数据库时没有选择重建主键选项,此时需要重建主键。
重建主键的方法是:
在Tools菜单中单击rebuildObject、rebuildprimarykey命令,打开primarykeyrebuild窗口,从中选择需要重建逐渐的复选框,然后单击“确定”按钮。
如图3-25所示。
图3-25重建表主键窗口
(2)外部键
外部键是值与主键匹配的一列或多列的组合。
外部键的值应该是主表的主键值的拷贝,即在外部件中不应该有主键不存在的值。
如果在CDM中定义了联系,在生成PDM时,将转化
为外部键。
根据需要,也可以修改、重建或迁移外部键。
(3)候选键
候选键只是一系列或多列,表中每条记录的列值都是唯一的。
候选键不能是主键,但可
以是外部键。
每个候选键都在数据库中生成唯一索引或唯一约束。
定义候选键的方法与修改外部键地方法相同。
7.创建索引
建立索引可以为查询表提供多种存取途径,从而有效地提升查询速度。
可以为相关的一
列或多列建立索引,也可以为主键、候选键和外部键建立相应的索引。
建立索引的具体方法如下:
步骤1在PDM窗口中,双击要建立索引的表,打开表的属性定义窗口,在其中选择indexes页。
在name列或code列的空白行处单击,则可以增加一个新索引。
系统自动给出索引的名称和代码,可以根据需要进行修改,如图3-26所示。
■T^bleProperties-作品CTitie)
PhysicalOptionsP^vrerBuilderSybaseNotesKulesTrevi
GeneralColumnsIndexesK&
vsTrigearsProcednires
K|R■■
習也肠*ax君x>
®
图3-26表属性定义窗口的Indexes页
单击Properties按钮,打开索引属性定义窗口,如图3-27所示。
General页
中所包含选项的多少与具体的DBMS!
关•
其中主要有:
name索引名称;
code索引代码;
Commen索引注释;
owner索引的数据库属主;
table包含索引的表;
type索引的类型,包括unique(唯一索引)和cluster(聚簇索引)。
唯一索引表示索引列不包含重复值,主键的索引都是唯一索引。
聚簇索引表示索引项的顺序与表中记录的物理顺序相同。
每个表只能建立一个聚簇索引。
建立聚簇索引后,更
新索引列中的数据时,记录的物理顺序需要变更,代价更大,所以聚簇索引适合建立在不常
更新的列上。
Columns
?
hvsicd.Opticnz
FhysicklOptionsCommon〕
Notes
Fr&
vi的
居IndewProperties-TITLE_?
KCTITLEJK)
General
a
作品—圍
0Unique
确走取消飞用|帮助
单击addColumns图标,打开如图3-29所示的选择列窗口。
在窗口中列出了所有表中包含的列,可以从中选择一列或几列作为索引。
■Selection(出版公司信息泵统:
作品〕
Name
□
Ml书号
□3出版社編号
□二书名
□Ml类型
□圍价格
□耳说明
□二出版日期
Selectedobiect(s):
0/7
图3-29索引列选择窗口
单击OK按钮返回,在新增索引的sort列中选择ascending或descending的记录排列方式。
步骤7:
单击“确定”按钮,关闭所有窗口,返回PDM窗口。
打开PDM窗口,在Tools菜单中单击rebuildindexes名令,可以重建索引。
某个索引如果不在需要也可以将其删除。
删除索引有两种方法:
1)从索引列表中删除索引。
在model菜单中单击indexes命令,可以删除模型中包含的索引。
2)从表中删除索引。
在表的属性定义窗口的indexes页中,可以查看该表包含的索引,利用delete图标即可删除索引。
8.创建视图
视图为用户提供了多种观察数据的角度,通过视图用户可以看到其它感兴趣的数据。
视
图是建立在一个或几个基本表或视图之上的虚拟表,实质上就是一个SQL查询语句。
为创建视图,可以先创建一个空视图,然后选择表或直接定义SQL语句。
具体步骤是:
在PDM窗口中,选择palette面板中的View工具,并在窗口的空白区域单击鼠标,增加一个视图图形符号。
双击该视图符号,打开视图属性窗口,在general页中可定
义视图的基本属性,如图3-30所示。
其中general页中主要选项的含义是:
NameB图的名称;
code视图的代码;
usage视图的用途,queryonly表示查询数据;
updateable查询和修改数据;
withcheckoptions在视图插入数据时要受到表中已定义约
束的限制。
根据DBMS勺不同,选项有所不