- 浏览: 844473 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (530)
- Java编程 (64)
- C/C++/D (6)
- .Net/C# (9)
- Ruby (12)
- JavaScript (77)
- XML (1)
- JSON (1)
- Ajax (17)
- ExtJs (81)
- YUI (1)
- JQuery (7)
- DWR (1)
- HTML (7)
- CSS (7)
- Database (6)
- PowerDesigner (23)
- DB2 (2)
- Oracle (57)
- MS SQL Server (8)
- MySQL (6)
- JSP/Servlet/JSTL/TagLib (3)
- Spring (1)
- Hibernate (0)
- iText (0)
- Struts (0)
- Struts2 (0)
- iReport (0)
- FreeMarker (0)
- HttpClient (1)
- POI (6)
- FckEditor (15)
- Eclipse / MyEclipse (10)
- IntelliJ IDEA (0)
- NetBeans (0)
- Tomcat (11)
- WebLogic (1)
- Jboss (3)
- jetty (4)
- IIS (2)
- CVS/VSS (1)
- FTP (1)
- Windows/DOS (6)
- Linux/Unix (0)
- 软件建模 UML (0)
- Design Pattern & Thinking In Programming (10)
- 数据结构与算法 (12)
- 软件项目管理 (9)
- 行业应用解决方案 (3)
- 电脑软件与故障解决 (13)
- 编程语言 (1)
- 十万个为什么 (3)
- JBPM (2)
- sysbase (2)
- JDBC (8)
- Ant (2)
- Case-计算机辅助软件工程 (1)
- WebService (4)
- 浏览器 (1)
最新评论
-
gaoqiangjava:
同一楼,还请大手帮解决
JAVA读取word文件 -
hyl523:
// 判断数组中的第一个值是否未定义,如果未定义,便定义为空对 ...
javascript面向对象之二 命名空间 -
ping12132200:
ping12132200 写道我抱着个错不是因为:body标签 ...
extjs在IE报对象不支持此属性或方法 -
ping12132200:
我抱着个错不是因为:body标签内的第一个元素不能为文本tex ...
extjs在IE报对象不支持此属性或方法 -
fireinjava:
呀,不错,转走了,谢谢啦~
利用OpenOffice将word转换成PDF
本文档不讲述如何使用PowerDesigner ,而是讲述如何将PowerDesigner 的特点结合数据库设计 的方法更好的设计一个数据库系统 。
采用PowerDesigner 设计数据库
PowerDesigner
作为数据库建模和设计的CASE工具之一,在数据库系统开发中发挥着重要作用。
运用PowerDesigner
进行数据库设计,不但给人直观地理解模型,而且充分运用数据库的技术,优化数据库的设计。PowerDesigner
支持Sybase
、Oracle
、Informix、SQL
Server
等多种数据库系统,在应用系统做数据库迁移时不必维护多个数据库脚本。
对于采用结构化分析(SA
),E-R图、数据流图直至最后的数据库物理图都是系统设计时不可缺少的一个部分,当数据库物理图完成后,应该产生系统的数据字典。运用PowerDesigner
完全能够完成这一设计流程。
对于采用面向对象 的分析(OOA ),由于数据库采用的是RDBMS,因此存在对象 和关系数据库之间的映射,也需要进行数据库设计。
两种数据库模型
PowerDesigner
可以设计两种数据库模型图:数据库逻辑图(即E-R图或概念模型
)和数据库物理图(物理模型),并且这两种数据库图是互逆的。
数据库逻辑图是对现实世界的一种抽象,体现实体之间的关系,可以有1对1、1对多、多对多等关系。特别说一点,在扩充E-R图中有概括这种关系,体现类型
之间的一种子集联系,它定义了超类
和子类。在PowerDesigner
设计的E-R图中,不具备这种关系,但在E-RWin设计的模型中支持这种关系,因此在用E-RWin图设计的模型转化为PowerDesigner
的模型时注意这种关系。
数据库物理图中是逻辑模型的物理实现,体现了表间的参照关系。在物理模型中不可能存在多对多的关系。在逻辑图向物理图转换时,多对多的关系变成两个1对多的关系。
逻辑模型和物理模型有着紧密的联系,也有本质的区别。逻辑模型的设计遵循数据库设计理论的第三范式
(在一般的数据库应用达到第三范式
即可),逻辑模型要求具有应用系统所表达的所有信息并消除数据冗余。物理模型是在逻辑模型的基础上,为了优化应用系统的性能而采用增加冗余,创建
索引
等数据库技术,它主要用非规范化的一些理论。
因此逻辑模型和物理模型是相互矛盾又紧密联系的,这点需要设计人员好好把握。
PowerDesigner 设计数据库物理图
用PowerDesigner
设计数据库物理图,包括多个对象,如表(Table)、字段(Column)、域(Domain)等。设计时主要在PowerDesigner
的Dictionary和Database
两个菜单中。
表(Table)
表是数据存储的一个逻辑对象,包括其它对象如字段(Column)、索引
(Index)、触发器(Trigger
)、存储过程(Procedure)等,表的优化设计有分割等技术,对于表的存储,如果访问数据量大,访问频率高则可考虑将表放在不同的存储(Storage)上。
在设计表时,应该估算表的大小和增长量,便于创建数据库时分配数据库空键,这样减少了磁盘碎片的产生。
在关系数据库中设计主键时,采用有意义的主键是致命的错误。如果用户决定改变字段的商业含义,则需要在所有使用到该信息的地方进行修改。主键的作用应是保持唯一性和作为外键使用。任何对主键的修改会导致巨大的数据库维护工作量,显然这是不合适宜的设计。就关系数据库而言,设计主键策略采用的是代理主键的方法。
设计主键时应该避免“热点”现象,但也需要分析具体的应用系统的并发用户而定。
字段(Column)
变长和定长的数据类型在数据库设计中讨论比较多,作为一般原则,如果预期某列中的数据范围变化很大,但变化并不频繁,那末对这样的列使用变长数据类型最为适宜。
决定行长时,既不能太浪费,又不能太吝惜。考虑到将来的需要,并且意识到,如果增加行长而没有改变一页中容纳的行数,那末增加的空间就等于免费使用。
设计时,字段尽量使用域,方便维护字段的类型。每个字段最好将默认
值加上,因为在数据库查询中,有NULL值会影响查询的性能。
通过CHECK约束可限制字段的取值。
域(Domain)
简单地说,是用户自定义类型,但域还可以定义它的取值范围或默认
值,采用域减少了维护字段类型的工作量,也减少数据的不一致性。
参照(Reference)
参照在数据库设计中是一个比较复杂的问题,它是实现数据的完整性主要要素之一,详细论述参考后面数据的约束。
在PowerDesigner
中,可对参照完整性进行各项设置,参照的基数从0到n,对修改和删除约束可分别设置为None、Restrict、Cascade、Set
Null、Set Default。由于INSERT包含在UPDATE操作中,因此没有单独的INSERT约束。
约束的不同设置产生不同的效果,以修改为例(删除相同):
None:父表修改,子表不影响。
Restrict:父表修改,如果子表存在,则出错。
Cascade:父表修改,如果子表存在,则相应的修改。
Set Null:父表修改,如果子表存在,则相应置空。
Set Default:父表修改,如果子表存在,则相应置默认
值。
索引 (Index)
索引
是优化查询时采用一种数据库技术,索引
有簇索引
、非簇索引
、唯一索引
等。
设计索引
时,要注意索引
宽度,尽量减少索引
的宽度。索引
的宽度不是由字段的多少决定的,而是由字段的长度来决定。对于窄索引
关键字,在每一索引
页上放置更多的关键字和指针,这样就能花销更少的I/O找到数据。
对于复合索引
,选择首列相当重要,否则可能不能利用该索引
,当利用复合索引
查询时。必须确保查询从首列开始。
索引
还有一个填充因子(FillFactor),填充因子的大小视表的数据增长量和主键定义的情况而定。
触发器和存储过程(Trigger&&Procedure)
触发器在维护数据完整性起着重要作用,它比参照更具灵活性,
也能实现三层结构中数据层的业务规则。
存储过程是采用SQL
及流程控制语句编写的完成某种业务的脚本。存储过程在数据处理上具有处理速度快、处理灵活等优点。
但是,存储过程极大地增加了与数据库之间的耦合,在数据库迁移时,需要重写存储过程,从而增加了版本维护的工作量。如果数据库要求从迁移性考虑,应尽量避免使用存储过程或者触发器。
如果不人为修改PowerDesigner
的触发器,其迁移性PowerDesigner
自动解决。
存储(Storage)
不同的数据库中有不同的概念,Sybase称为设备(Device),SQL Server称为文件
或文件组(File、FileGroup),而Oracle称为表空间(TableSpace)。
根据系统创建一个或多个存储,按一定的优化规则存放。
数据库的划分
数据库的划分以它的物理分布为原则,而不应数据量、表类型等原则来划分,数据库的多少对数据库的性能影响不大。对于访问数据量大、访问频繁的表来说,I/O操作很容易形成严重的瓶颈,因此减少I/O操作和I/O操作阻塞是数据库设计考虑的主要问题,解决方法将将表放在多个设备上,设备需创建在不同的物理驱动器上,最好能用智能型或阵列。
日志和数据分开存储在不同设备上,如果索引
多且占用空间大,也可以采用如此方式。
数据库数量少的维护成本比数量大少。
因此数据库划分以物理分布为原则。
在PowerDesigner
提供计算数据库或表的方法(Compute
Database Size),可帮助设计者完成数据库的划分。
数据库的完整性
数据库完整性可通过存储过程、声明性参照完整性(DRI)、
数据类型、约束、规则、默认
值,以及触发器来实现。在数据库内,这些功能各以特有的方式发挥作用。综合利用这些完整性功能,可以使数据库灵活,易于管理,而且很安全。
数据完整性概念分为几个方面。
◆ 表域完整性
通过主键来强制表的域完整性。
◆ 引用完整性
利用参照来加强表之间的逻辑关系。
◆ 数值域完整性
任何输入的数据在类型和范围上必须与指定的数据类型相匹配,只有当某列被说明允许NULL值,才允许向该列输入NULL。
数据库的性能测试
生成数据库之后,应进行数据库性能测试,以便优化数据库的设计,因此需要生成测试数据,由于是性能测试,数据的规范性要求不高。通过PowerDesigner
可方便地生成测试数据(Generate
Test Data),完成性能测试。
数据的约束
O-O 约束
对父表的INSERT、UPDATE、DELETE操作没有限制。
M-O 约束
对父表操作的约束:
父表的INSERT操作,对M-O约束,父表中间的记录可以没有任何约束地添加到表中,因为这种约束中不一定必须有子女。
父表的键值修改操作,只有在子表中其所有的子女对应均做修改后,才能修改,即一般采用级联更新的方法。
父表的删除,父亲只有在其所有子女均被删除或重新分配之后该父亲才能被删除。
强制对可选(M-O)约束
发表评论
-
PD12 建模工具的使用
2010-01-12 00:34 1263http://jpkc.zjbti.net.cn/sjkjs/ ... -
从PowerDesigner概念设计模型(CDM)中的3种实体关系说起
2010-01-12 00:02 1799转自:http://tech.it168.com/m/2007 ... -
PD的CDM模型中的三种实体关系
2010-01-12 00:00 2011转:http://www.cnblogs.com/xingyu ... -
PowerDesigner学习--概要介绍
2010-01-12 00:00 2282定义实体 用鼠标双击实体的符号,可以进入 ... -
PowerDesigner学习--基本步骤
2010-01-11 23:59 20061、设计 数据库 ... -
PownerDesigner学习--内部机制
2010-01-11 23:58 13681、pd中复制一列是,实际上是一个链接。源列的变动同时体现在复 ... -
PowerDesingner学习--常见问题解决
2010-01-11 23:57 21461、由pdm生成建表脚本时 ... -
用POWERDESIGNER生成ACCESS2000类型数据库文件
2010-01-11 23:56 1907POWERDESIGNER是设计数据库著名工具由SyBase公 ... -
如何用Powerdesigner的PDM(物理数据模型)生成数据库
2010-01-11 23:55 2709pdm做好后,最终是要将其转化为数据库实体的。 1.确认当前 ... -
PowerDesigner 11 使用心得
2010-01-11 23:55 13131、安装PD v11.0版 2、由pdm生成建表脚本时, ... -
PowerDesigner 的常用方法
2010-01-11 23:53 1639修改外键命名规则 选 ... -
powerdesigner中外建问题
2010-01-11 23:52 1045在PD中建立外键碰到一个问题,如: forum(id,na ... -
Powerdesigner中不能定义主键的解决方案
2010-01-11 23:52 1791如遇“This data item is already us ... -
Powerdesigner 逆向工程 sql/DataBase-PDM-CDM转换
2010-01-11 23:49 2761在【file】菜单中 从数据库或者sql脚本文件生成PDM ... -
PowerDesigner加速IQ数据仓库设计与实现
2010-01-11 23:45 1942一、 数据仓库设计概况 数据仓库的作用在 ... -
PowerDesigner教程系列(六)概念数据模型
2010-01-11 23:43 1671目标:本文主要介绍联系的定义及使用。 一、 联系联系(Re ... -
PowerDesigner教程系列(五)概念数据模型
2010-01-11 23:43 1665目标:本文主要介绍数 ... -
PowerDesigner教程系列(四)概念数据模型
2010-01-11 23:38 1651目标:本文主要介绍如何定义实体的主、次标识符。一、标识符标识符 ... -
PowerDesigner教程系列(三)概念数据模型
2010-01-11 23:37 1790目标: 本文主要介绍属性的标准检查约束、如何定义属性的附加检 ... -
PowerDesigner教程系列(二)概念数据模型
2010-01-11 23:37 2498目标:本文主要介绍PowerDesigner概念数据模型以及实 ...
相关推荐
**PowerDesigner 设计数据库表** PowerDesigner 是一款强大的数据库建模工具,被广泛应用于系统分析、数据库设计和数据仓库建设中。它提供了直观的图形化界面,使得数据库设计过程更为简单高效。本篇文章将深入探讨...
数据库设计案例分析与PowerDesigner设计数据库案例 数据库设计案例分析 本文档主要讲述了PowerDesigner设计数据库案例,通过对数据库设计案例的分析,掌握数据库设计的基本原则和方法。 数据库设计的重要性 ...
### 使用PowerDesigner进行数据库设计详解 #### 一、PowerDesigner简介 PowerDesigner是一款强大的数据库建模工具,由SAP公司开发。它可以帮助开发者快速高效地完成数据库的设计与维护工作,支持概念模型、逻辑模型...
【使用PowerDesigner设计数据库】 PowerDesigner是一款强大的数据库建模工具,它提供了数据库结构的图形化表示,使得数据库设计过程更为直观和便捷。数据库模式,包括表、关系、视图和触发器等,是数据库的核心组成...
一个叫新手如何使用powerdesigner设计数据库的小例子。具体教程请大家参阅我的博客上的相关文章:http://www.cnblogs.com/finallyliuyu《新手学习数据库之一使用powerdesigner)》。 同时也可以用文件中的sql语句...
### 使用PowerDesigner设计数据库 #### 一、PowerDesigner概述 PowerDesigner是一款强大的数据建模工具,广泛应用于数据库设计与管理领域。它可以帮助开发者快速高效地完成数据库的设计工作,并且能够支持多种...
《PowerDesigner设计数据库使用规范》 PowerDesigner是一款强大的数据库建模工具,广泛应用于管理信息系统的分析和设计。它涵盖了从概念数据模型(CDM)到物理数据模型(PDM)的全过程,支持多种数据模型,并能与...
在IT行业中,数据库设计是系统开发的关键环节,而PowerDesigner是一款强大的数据库建模工具,能够帮助我们高效地完成这一任务。本篇文章将详细介绍如何利用PowerDesigner来生成数据库设计文档,解决手动编写文档带来...
PowerDesigner是一个功能强大的数据库设计工具,能够快速生成数据库说明文档。本文将分三个部分介绍:配置数据库的ODBC数据源、使用PowerDesigner生成pdm文件、使用PDMReader生成说明文档。 配置数据库的ODBC数据源...
PowerDesigner是一款强大的数据库建模工具,它在IT行业中被广泛用于设计复杂的数据库系统。这款工具提供了数据建模、业务流程建模、系统架构设计等多种功能,使得数据库的设计和实现过程更为高效和规范。 首先,...
PowerDesigner是一款强大的数据库建模工具,它在IT行业中被广泛应用于数据库设计阶段,尤其是在系统分析和设计中。这款工具能够帮助我们创建概念数据模型(CDM)、逻辑数据模型(LDM)以及物理数据模型(PDM),从而...
### 使用PowerDesigner进行数据库设计详解 #### 一、引言 在进行数据库设计时,PowerDesigner 是一款功能强大的工具,能够帮助用户从概念设计到物理实现的整个过程。本篇文章将基于“使用PowerDesigner做数据库...
在设计数据库模型时,确保每个表的存储引擎设置为InnoDB至关重要,因为InnoDB支持外键约束。外键是保持数据库数据完整性的关键机制,它们定义了表之间的参照完整性。在PowerDesigner中,双击表选择"Physical ...
### PowerDesigner导出数据库设计文档知识点详解 #### 一、PowerDesigner简介 PowerDesigner是一款功能强大的数据建模工具,能够帮助开发人员和架构师轻松地创建、管理和维护复杂的数据库模型。它支持多种数据库...
PowerDesigner是一款强大的数据库设计和数据建模工具,它在IT行业中被广泛应用于数据库系统的前期规划和设计阶段。相比于Office Visio等其他简单绘图工具,PowerDesigner提供了更为专业和全面的功能,使得数据库建模...
powerdesigner 导出数据库模板