PowerDesigner (12.5) 数据库建模遇到的问题和解决办法

来源:互联网 发布:同方软件 编辑:程序博客网 时间:2024/05/21 23:33

PowerDesigner (12.5) 数据库建模遇到的问题和解决办法

 

1. 自增类型

Conceptual Data Model,由于是概念模型,所以字段不能为自增类型。这是因为不同RDBMS,有不同的具体实现的模式(如SQL Server identity,和oracle sequence)。因此不能在概念模型中建立自增类型,SQL Server方法:选中某个字段à属性,选中identity即可.Oracle方法:选中某个字段à属性,新建sequence,选择你想用的sequence即可.注意,Sybase的系列数据库,有的也建立不了,Sybase AS Anywhere X

2.  关于索引

聚合索引:物理索引,可以创建一个唯一的组合(非组合)聚合索引

非聚合索引:可以创建多个非聚合索引

主键索引:Unique的索引

Unique说明索引时,表示某个索引所在的列,值必须唯一

索引一般用于数据字段被频繁查询或设计到排序时经常要使用到,也用于字段值的唯一约束。这样可以大大提高查询的速度和控制数据的输入,但与此同时,也给DBMS带来管理上的更多负担,比如索引的管理和存储等.

参考: http://helpdesk.idcsea.com/article/support_article_552.html

 

3. 数据库设计的命名规则

一般不同的企业都有自己的关于数据库方面的命名规则,说说自己经常用的规则和方法:

表名: tb+实体内容的概述  如用户表: tbUserInfo,也有人命名为tb_User_Info,总之都借用了匈牙利命名法.

视图: vi+实体内容的概述

列名:类型简写 + 属性内容描述,如用户名称列:CUserName,C表示char,或varchar.如用户ID,int类型,则是IUserID

存储过程:sp+存储过程解释,spUpdateUserInfo,更新tbUserInfo内容的存储过程

触发器:tr+触发器说明 如 trInsertUserInfo,插入tbUserInfo之后触发

 

4. 范式的遵循

一般设计用到3NF,由于范式更多的事考虑数据冗余的问题,应用的范式越高级,那么检索时用的表连接等,都会影响到查询的效果.所以,取折中,用到3NF即可.1NF,2NF,3NF做一个个人的理解性的解释和说明

1NF:粒度最小.就是每个列(属性),都要不能再细分

2NF:完全依赖主键.也就是说,不能出现其中有些字段不依赖于其中的主键

3NF:不依赖属性.即字段之间不存在依赖.

参考:http://hibernater.javaeye.com/blog/222791