PowerDesigner设计数据库使用规范.docx

上传人:wj 文档编号:1223796 上传时间:2023-04-30 格式:DOCX 页数:15 大小:586.23KB
下载 相关 举报
PowerDesigner设计数据库使用规范.docx_第1页
第1页 / 共15页
PowerDesigner设计数据库使用规范.docx_第2页
第2页 / 共15页
PowerDesigner设计数据库使用规范.docx_第3页
第3页 / 共15页
PowerDesigner设计数据库使用规范.docx_第4页
第4页 / 共15页
PowerDesigner设计数据库使用规范.docx_第5页
第5页 / 共15页
PowerDesigner设计数据库使用规范.docx_第6页
第6页 / 共15页
PowerDesigner设计数据库使用规范.docx_第7页
第7页 / 共15页
PowerDesigner设计数据库使用规范.docx_第8页
第8页 / 共15页
PowerDesigner设计数据库使用规范.docx_第9页
第9页 / 共15页
PowerDesigner设计数据库使用规范.docx_第10页
第10页 / 共15页
PowerDesigner设计数据库使用规范.docx_第11页
第11页 / 共15页
PowerDesigner设计数据库使用规范.docx_第12页
第12页 / 共15页
PowerDesigner设计数据库使用规范.docx_第13页
第13页 / 共15页
PowerDesigner设计数据库使用规范.docx_第14页
第14页 / 共15页
PowerDesigner设计数据库使用规范.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

PowerDesigner设计数据库使用规范.docx

《PowerDesigner设计数据库使用规范.docx》由会员分享,可在线阅读,更多相关《PowerDesigner设计数据库使用规范.docx(15页珍藏版)》请在冰点文库上搜索。

PowerDesigner设计数据库使用规范.docx

PowerDesigner设计数据库使用步骤及规范

使用PowerDesigner可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。

它可以制作多种数据模型,也能对团队设计模型进行控制。

还可以与许多流行的软件开发工具,例如PowerBuilder、Delphi、VB等相配合使系统设计更优化并缩短开发时间。

并不是每个设计都需要用到PD,对于比较大型的项目,它是很好的,对于短平快类型的项目,例如时间要求一周左右的系统,没有必要使用,直接维护数据库即可,对于表的数量超过10个的系统,建议使用PD进行设计和交流。

1.创建概念数据模型(CDM)

1.1创建CDM步骤

选择文件à建立新模型,弹出如图所示对话框,选择ConceptualDataModel模型(即概念数据模型),单击OK,即确认创建。

双击资源浏览窗口中新创建的CDM名称图标,打开CDM模型属性窗口,进行相关属性信息设置。

如下图:

1.2对象命名通用规范

以下三种规范属于基本规范,适用于本文所有数据库对象命名规范。

1、长度规范:

凡是需要命名的对象其标识符均不能超过3个英文单词长度(30个字符),也即:

Oracle中的表名、字段名,函数名,过程名,触发器名,序列名,视图名的长度均不能超过3个英文单词长度(30个字符);

2、构成规范:

数据库各种名称必须以字母开头,但严禁使用SYS开头;名称只能含有字母,数字和下划线“_”三类字符,“_”用于间隔名称中的各语义字段;不要使用DUAL作表名;

3、大小写规范:

构成Oracle数据库中的各种名称(表明,字段名,过程名,视图名等等)的所有字符,必须使用大写,也就是不能在脚本中,对任何名称添加双引号“”来设定字符的大小写形式,只要不采用“”限制,Oracle自动会将各名称转化成大写。

2.进行ER设计的准备工作

2.1实体命名不相同检查

PowerDesigner默认不能存在相同名称的实体属性,这也是考虑到可能产生的一些如主键外键等名称冲突问题,但当进行实际数据库设计时,可能会多次使用相同数据项(DataItem)便于理解各实体。

为此需要对更改PowerDesigner相关设置。

软件默认DataItem不能重复使用,需要进行以下操作:

选择工具àModelOptions,在ModelSetting设置目录中,将DataItem下的UniqueCode取消选中即可,系统默认将UniqueCode和AllowReuse均选中。

同时该设置均是面向特定模型的,即针对当前模型有效,若希望在其它模型中也有此命名设置,则需要重新进行设置。

不过在CheckModel时,如果选择全部Check,则依旧会报DataItem重名的错误信息,这时需要我们在人为检查确认数据项无误时,可以在选择不对DataItem不检查,如下图示:

3.定义实体

3.1创建entity

3.1.1创建entity步骤

1、在CDM的图形窗口中,单击工具选项版上的Entity工具,再单击图形窗口的空白处,在单击的位置就出现一个实体符号。

点击Pointer工具或右击鼠标,释放Entity工具。

如图所示:

2、双击刚创建的实体符号,打开下列图标窗口,在此窗口“General”标签中可以输入实体的名称、代码、描述等信息。

Name:

是用来在模型中标识一个实体,一般用于模型在界面中的显示(这个可以通过更改选项设置进行改变)。

在一个模型当中,实体的名字不能重复。

Code:

在模型转化时一般作为对象的物理名称,比如把实体属性的Code转化为数据库中的列名,一般采取与Name一致。

Generate:

默认是选择状态,如果取消,则在转化为其他模型时,会忽略这个实体。

3.1.2entity命名规范

CDM中的实体等价于PDM中的表。

1、表的命名只能使用英文字母,数字和下划线。

2、命名以是名词的复数形式,如cities,categories,friends等。

3、命名名尽量用全名。

4、若库中有多个系统,表名采用系统名称+单词或多个单词,系统名是开发系统的缩写,系统名称全部采用小写英文字符,如bbs_title,bbs_torum_type。

若库中只含有一个系统,那么表名仅用一个单词或多个单词。

5、单词选择能够概括表内容的一个或多个英文单词,单词间用下划线"_"分割,如user_info,user_type。

6、关连表命名规则为“表A_表B”,如:

user_articletype,user_formtype。

3.2添加entity属性

3.2.1添加entity属性步骤

1)在上述窗口的“Attribute”选项标签上可以添加属性,如下图所示。

注意:

数据项中的“添加属性”和“重用已有数据项”这两项功能与模型中DataItem的Uniquecode和Allowreuse选项有关。

P列表示该属性是否为主标识符;D列表示该属性是否在图形窗口中显示;M列表示该属性是否为强制的,即该列是否为空值。

如果一个实体属性为强制的,那这个属性在每条记录中都必须被赋值,不能为空。

按“Crtl+U”呼出“定制列过滤器”的窗口,可以根据自己的喜好和实际需要选择那些列出现在窗口中,那些隐藏。

使用快捷键“Crtl+E”可以允许或者禁止当前过滤器。

2)在上图所示窗口中,点击属性按钮,弹出属性对话框,如下图所示。

3.2.2添加entity属性规范

3.1.2.1字段设计规范

1、表名的name为汉字,code为字母;表中字段的name为汉字,并与备注是相同的;code为字母;

2、一个表中的字段不要太多,理论上不要超过80个。

3、一个表中的各字段的访问频繁度应该基本一致。

4、一个表中的所有字段,应当能存储在一个数据块中(BLOCK),也即:

表的单行字段总长度

5、每个字段必须有注释,说明其含义,对于冗余字段还要特别说明其维护方法,外键字段说明参照与哪个表。

6、字段尽可能有默认值,字符型的默认值为一个空字符值串,数字型的默认值为数值0。

7、存储图片,视频,音频,文件,500字节以上文本等占用太多空间的字段(大对象字段),不能和其他字段存储在一个表中。

3.1.2.2字段命名规范

1、字段名为有意义的单词,或单词的缩写。

2、如果字段由几个单词组成,则单词间用下划线("_")分割,如client_id,st_code等。

3、不要使用数据库关键字,如:

name,time,datetime,password等。

3.1.2.3字段类型及长度规范

1、对于数值类型固定使用number。

number是最基本的数值类型,其他都是number的衍生,底层都是number,比如integer/int完全映射到number(38)。

如果需要对number做复杂的运算,建议先用cast内置函数转换number为浮点数类型。

number是变长类型,在计算表存储空间的时候要切记。

2、char和varchar2的选择:

从空间上考虑,用varchar2合适;从效率上考虑,用char合适,关键是根据实际情况找到权衡点。

如果预期某列中的数据范围变化很大,但变化并不频繁,那末对这样的列使用varchar2最为适宜。

3、如果使用char,在数据迁移等出现以上情况,则必须使用trim()函数截去字串后的空格。

4、决定行长时,既不能太浪费,又不能太吝惜。

考虑到将来的需要,并且意识到,如果增加行长而没有改变一页中容纳的行数,那末增加的空间就等于免费使用。

5、能够用数字类型的字段尽量选择数字类型而不用字符串类型的,这会降低查询和连接的性能,并会增加存储开销。

这是因为引擎在处理查询和连接回逐个比较字符串中每一个字符,而对于数字型而言只需要比较一次就够了。

6、尽可能把字段定义为notnull。

所有字段在设计时,除以下数据类型timestamp、image、datetime、smalldatetime、uniqueidentifier、binary、sql_variant、binary、varbinary外,必须有默认值,因为在数据库查询中,有null值会影响查询的性能。

7、如无特别需要,避免使用大字段(BLOB、CLOB、LONG等),如使用必须使用BLOB或CLOB类型。

8、由数据库产生的系统时间首选数据库的日期型,如DATE类型。

3.3属性的检查约束

3.3.1定义属性检查约束操作

在实体属性的特性窗口,打开如图所示的检查选项卡:

在这个选项卡可以定义属性的标准检查约束,通过check约束可限制字段的取值。

窗口中每项的参数的含义,如下:

3.3.2约束命名规范

主键约束:

pk_表名_字段名

外键约束:

fk_表名_字段名

唯一约束:

un_表名_字段名

非空约束:

nn_表名_字段名

检查约束:

ck.....

3.4标示符

3.4.1标示符添加步骤

CDM中的标识符等价于PDM中的主键。

如果实体只有一个标识符,则它为主标识符。

如果实体有多个标识符,则其中一个被指定为主标识符,其余的标识符为次标识符。

1、定义主、次标识符

1)选择某个实体双击弹出实体的属性对话框。

在Identifiers选项卡上可以进行实体标识符的定义。

如下图所示

2)选择第一行“主标识符”,点击属性按钮或双击第一行“主标识符”,弹出属性对话框,如图所示:

3)选择"Attributes"选项卡,再点击“AddAttributes”工具,弹出如图所示窗口,选择某个属性作为标识符。

3.4.2标示符添加规范

3.4.2.1主/外键规范

1、除临时表和外部表,以及流水表外,其他表都要建立主键。

2、所有表的主键都设为表的ID,为int型,取值来自序列sequence自增;

3、主键应当是对用户没有意义的。

如果用户看到了一个表示多对多关系的连接表中的数据,并抱怨它没有什么用处,那就证明它的主键设计地很好。

4、对于500万以上的表,采用先建唯一索引再添加主键约束的方式来创建主键。

5、主键永远不能修改,也不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。

6、尽量不用复合主键。

7、为了提高性能,对于数据量比较大的标要求对外健建立索引。

对于有要求级联删除属性的外键,必须指定ondeletecascade。

8、pd中外键是通过关系Relationship自动来建立的,不需要手动建立。

不然会产生多余的键。

所以设计时,关注实体本身的字段,以及实体间的关系,特别是多对多和依赖关系。

3.4.2.2索引规范

1、主健字段或组合字段必须满足非空属性和唯一性要求。

2、表建好后数据库自动为表生成一个索引(为自动增长的列生成唯一索引),如果在对这列添加索引,数据库会给一个警告,内容大概是,已经为这列添加了索引,建议修改索引名称和自动增长列名保持一致,为了方便使用。

3、如果字段是与其它表的关键字相关联而设计为外键引用,需建索引。

4、无论表的大小,外键列都要建立索引。

一是为了子父表关联查询的性能考虑,二是为了避免父子表修改而发生死锁。

5、如果字段需做模糊查询之外的条件查询,需建索引。

6、如果一列出现在表达式或函数中,该列上的索引将失效。

7、除了主关键字允许建立簇索引外,其它字段所建索引必须为非簇索引。

8、设计索引时,不要索引宽度大的字段。

索引的宽度不是由字段的多少决定的,而是由字段的长度来决定。

对于窄索引关键字,在每一索引页上放置更多的关键字和指针,这样就能花销更少的I/O找到数据。

9、由于使用形式需和创建形式一致,尽量避免使用函数索引。

如果想要使用函数索引,请尽量进行转化。

10、静态表中的低基数列可以使用位图索引。

在事务型数据库(OLTP)中禁止使用位图(bitmap)索引,在报表型数据库(OLAP)中的静态表,可适当使用。

11、对分区表的索引,需要做分区维护的,必须使用局部索引。

12、重建索引使用alterindexrebuild方式,禁止采用dropindex&createindex方式。

4.生成物理模型

进行完数据实体的录入之后,可以生成物理模型。

4.1配置RDBMS

工具àResourcesàDBMSàOracle10gà根据需求进行设置。

建议在这里将生成的数据库的脚本中表和子段的引号去掉。

在ScriptàSqlàformatàCaseSensitivityUsingQuoteà选择“No”。

在这里还可以设置,哪些是无效字符,脚本的大小写,前缀的生成等等。

4.2产生物理数据模型

工具àGeneratePhysicalDataModelà选择数据库类型à物理数据模型已经完成。

4.3产生数据库脚本

数据库àGenerateDatabaseà选择脚本存储路径,文件名及类型à产生脚本完成。

点击Edit以后可以在记事本中打开此脚本,最后就可以去运行此脚本了。

从CDM到PDM的转换需要注意:

不能改变Diagram的名称,在树状图中,如果钩选红色标出的Symbol表示覆盖修改,不钩选表示保护修改。

还可以在产生物理模型之前设置好脚本比如说,外键,联系名,索引的命名格式。

GeneratePhysicalDataModel->Details中设置。

生成数据库之前需要进行连接的配置。

DatabaseE->configureconnection->一般进行的是ODBC配置,最后测试连接。

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2