`
simon1118
  • 浏览: 11631 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
最近访客 更多访客>>
社区版块
存档分类
最新评论

Powerdesign杂记(转)

阅读更多
PowerDesign:PowerDesign是Sybase推出的主打数据库设计工具。PowerDesign致力于采用基于Entiry-Relation的数据模型,分别从概念数据模型(Conceptual Data Model)和物理数据模型(Physical Data Model)两个层次对数据库进行设计。概念数据模型描述的是独立于数据库管理系统(DBMS)的实体定义和实体关系定义。物理数据模型是在概念数据模型的基础上针对目标数据库管理系统的具体化。

     ERWin:这个是CA公司的拳头产品,它有一个兄弟是BPWin,这个是CASE工具的一个里程碑似的产品。ERWin界面相当简洁漂亮,也是采用ER模型,如果你是开发中小型数据库,极力推荐ERWin,它的Diagram给人的感觉十分清晰。在一个实体中,不同的属性类型采用可定制的图标显示,实体与实体的关系也一目了然。ERWin不适合非常大的数据库的设计,因为它对Diagram欠缺更多层次的组织。

如何一次性将表结构的脚本导出来?
     Database --->Generate Database ---> Genarate Script 就可实现。

Name用中文英文以便查询、写程序的时候方便, Code才是最终产生的Table Name

PowerDesigner中建了模型,如何把它作为文档导出?
     利用REPORT。选择一个模板,然后就生成了RTF或是HTM格式的文档

如何将已经存在的数据库所有表,导入到PowerDesign中?
     用PD里的反向工程file--->reverse engineering ===> and go on

概念数据模型(CDM)
     CDM表现数据库的全部逻辑的结构,与任何的软件或数据储藏结构无关。一个概念模型经常包括在物理数据库中仍然不实现的数据对象。它给运行计划或业务活动的数据一个正式表现方式。不考虑物理实现细节,只考虑实体之间的关系。

物理数据模型 (PDM)
     PDM叙述数据库的物理实现。主要目的是把CDM中建立的现实世界模型生成特定的DBMS脚本,产生数据库中保存信息的储存结构,保证数据在数据库中的完整性和一致性。

面向对象模型 (OOM)
     一个OOM包含一系列包,类,接口和他们的关系。这些对象一起形成所有的(或部份)一个软件系统的逻辑的设计视图的类结构。一个OOM本质上是软件系统的一个静态的概念模型。

业务程序模型(BPM)
     BPM描述业务的各种不同内在任务和内在流程,而且客户如何以这些任务和流程互相影响。BPM是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述程序,流程,信息和合作协议之间的交互作用。

正向工程
     你能直接地从PDM产生一个数据库, 或产生一个能在你的数据库管理系统环境中运行的数据库脚本。可以生成数据库脚本,如果选择ODBC方式,则可以直接连接到数据库,从而直接产生数据库表以及其他数据库对象。

逆向工程
     将已存在的数据库产生进新的PDM 之内。数据来源可能是从脚本文件或一个开放数据库连接数据来源。

     并不是每个设计都需要用到Power Designer。 例如:小的系统,或Table数比较少的情况下就没有必要采用Power Designer了。

设计步骤

 

CDM PDM OOM三者转换关系

 

2004-08-22更新

PowerDesigner仅仅是实现的工具
     不要以为Power能帮你把关系什么的全部建立好,很多数据库理论只是还是需要的,设计数据库的时候,那些范式什么的,一定要掌握。
     设计一个好的数据库,最好的工具不是必须的,但是基础理论是一定要的。

PowerDesigner用途不局限于数据建模
     还可以用PowerDweigner设计web service

并不是每个设计都需要用到PD
     用Powerdesigner对付比较大型的项目,是很好的,对于短平快类型的项目,如果时间要求你1个星期完成一个程序,那么完全没有必要用PowerDesigner,直接维护数据库就可以了,当表的数量超过10个(一个小系统的表在10个左右)的时候,建议还是用用Powerdesigner 。
     我的看法:如果想做成一个比较规范的数据库,小项目也可以用。毕竟生成报表和正反向工程很有用。

零碎

     PD中的CDM设计时,可以将所有需要的字段都定义好。然后在设计实体是直接取出来。PD提供了这样的统一管理的工具。在PD菜单栏-Model-Data Item下。

     为了使自己设计的CDM看起来象样一点,可以从工具栏中,拖动一个Title。其显示的信息,是当前CDM的属性值。

     为了使实体等Symbol看起来显眼和舒服。可以根据个人喜好进行外观上的调整。当前设计界面中,右键-Display Perferences中进行设置。还可以增加shadow效果。选中Symbol后,Ctrl+W。或者右键菜单。

     为了使布局整齐。选中需要调整的Symbol后,菜单-Symbol-Align进行设置。快捷键:ctrl+UP,ctrl+Down,ctrl+Left,ctrl+Right即为上下左右对齐。

     设计实体属性时注意的细节:M:表示强制非空;P:是否为主键;D:是否在模型中显示。gerenate:表示是否作为表生成。

     默认情况下,CDM的实体会显示Identifier一栏。如果不想其显示出来,在右键-Display Perferences中ObjectView-Entity中设置。

     关系的命名方法是:实体名1 实体名2。

     关系中的角色(Role)表示联系线上一个方向上的含义。用一个动词来描述。Role只是起一个描述作用。

     依赖(Dependency):表示在联系中一个实体的存在是否依赖于另一个实体。寄生实体(Dependent Entity)是一种部分地被另一实体确定的实体。在依赖联系中,一个实体与另一实体通过标识符相联系,当一个实体的存在没有另一个实体的存在作为参考就 不能唯一确定时,两个实体间就存在依赖联系。
     主从表就是典型的依赖关系。

     中间实体(Associative Entity):是为了解决多对多联系而产生的一个人工实体,能够为中间实体定义属性。用鼠标右键单击多对多联系线,在弹出的菜单中选择“Change to entity”,能够把这个联系转换成连接两个实体的中间实体。
     善于利用自动生成的中间实体,可以简化设计工作,提高数据库设计的正确性。
     中间实体一般不用再加入新的字段。

     牢记:外键是通过关系Relationship自动来建立的,不需要手动建立。不然会产生多余的键。所以设计时,关注实体本身的字段,以及实体间的关系,特别是多对多和依赖关系。

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


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

    数据库为了保证数据完整性和一致性,提出了约束。即表约束,列约束以及参照完整性约束。通常数据库设计和程序开发不是绝对的分离的。所以前两者在实际开发过程中逐渐的完善。需要注意的还是参照完整性约束。
     在PD中前两者的设定是对字段,后者是对关系。

     参照完整性约束


限制(Restrict)。不允许进行修改或删除操作。若修改或删除主表的主键时,如果子表中存在子记录,系统将产生一个错误提示。这是缺省的参照完整性设置。
置空(Set Null)。如果外键列允许为空,若修改或删除主表的主键时,把子表中参照的外键列设置为空值(NULL)。
置为缺省(Set Default)。如果指定了缺省值,若修改或删除主表的主键时,把子表中参照的外键设置为缺省值(Default)。
级联(Cascade)。把主表中主键修改为一个新的值时,相应修改子表中外键的值;或者删除主表中主键的记录时,要相应删除子表中外键的记录。

     注意理解以上的约束时,抓住操作的都是主表。子表的操作都是相对主表来说的。操作方式就是Update和Delete。

     引用基础数据表的数据时,可以建立对应的视图。选中需要作为视图的表,菜单栏-Tools-Create View

     PD支持对已有数据的表更新表结构。不过需要谨慎操作,检查生成的SQL脚本。

     PD也可以生成随机的测试数据。

     触发器就是DBMS中提供的事件驱动机制。发生在表的Insert,Update和Delete。执行SQL语句或存储过程。

     在PD中可以完成存储过程的编写,也便于管理

     逆向工程可以通过数据库脚本或者通过ODBC数据源来实现。

分享到:
评论
2 楼 Lyishuai 2010-05-20  
不知道楼上为什么这个表情,不过这个对我这个新手来说还是有用的,谢谢LZ分享!
1 楼 zorro 2007-11-17  
 

相关推荐

    【数据驱动】复杂网络的数据驱动控制附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    (源码)基于Qt框架的智能家居管理系统.zip

    # 基于Qt框架的智能家居管理系统 ## 项目简介 本项目是一个基于Qt框架开发的智能家居管理系统,旨在提供一个集成的平台来监控和管理家庭环境中的各种传感器数据,如温度、湿度、烟雾状态、红外状态等。系统通过图形界面实时展示数据,并提供警报功能以应对异常情况。 ## 项目的主要特性和功能 1. 实时数据监控通过Qt和Qwt库创建的曲线图,实时显示温度和湿度数据。 2. 多传感器支持支持温度、湿度、烟雾、红外等多种传感器的监控。 3. 警报系统当传感器数据超过设定阈值时,系统会触发警报,并通过界面显示警告信息。 4. 用户交互提供滑动条和复选框,允许用户调整警报阈值或关闭警报。 5. 网络通信通过TCP套接字与服务器通信,获取和发送传感器数据及网络拓扑信息。 6. 蓝牙数据读取支持通过蓝牙读取传感器数据并更新界面显示。 ## 安装使用步骤 1. 环境准备 确保已安装Qt开发环境。 安装Qwt库以支持曲线图功能。

    【路径规划】一种考虑拥塞的改进路径规划算法CCPF-RRT附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于springboot高性能计算中心的高性能集群共享平台源码数据库文档.zip

    基于springboot高性能计算中心的高性能集群共享平台源码数据库文档.zip

    (源码)基于JavaFX的图片管理系统.zip

    # 基于JavaFX的图片管理系统 ## 项目简介 本项目是一个基于JavaFX的图片管理系统,旨在提供一个用户友好的界面来管理和浏览图片。系统支持图片的预览、重命名、删除、复制、粘贴等操作,并提供了多种排序和展示方式。 ## 项目的主要特性和功能 1. 预览窗口 目录树展示 缩略图预览 单选、多选(Ctrl+左键)、框选功能 图片信息显示(如文件名、大小、最后修改时间等) 2. 右键菜单 复制粘贴图片 单选和多选重命名 删除图片 3. 展示窗口 图片放大缩小 左右切换图片 幻灯片播放功能 4. 排序功能 按文件名排序 按文件大小排序 按最后修改时间排序 5. 其他功能 图片信息封装(ImageBean) 文件树节点管理(FileTreeItem)

    (源码)基于Windows窗体的披萨店厨房管理系统.zip

    # 基于Windows窗体的披萨店厨房管理系统 ## 项目简介 这是一个基于Windows窗体的应用程序,主要用于披萨店的厨房管理。该系统通过WebSocket与服务器进行实时通信,显示从服务器接收到的订单信息。用户界面简洁明了,易于操作。 ## 项目的主要特性和功能 1. 实时通信: 通过WebSocket与服务器进行实时数据交换,获取订单信息。 2. 订单显示: 在窗体上实时显示订单信息,包括订单号和菜品等。 3. 界面简洁: 用户界面设计简洁,易于操作。 4. 定时刷新: 定时器用于定时从服务器获取消息,确保数据的实时性。 5. 错误处理: 在连接过程中遇到技术问题时会显示错误消息框。 6. 退出功能: 提供退出按钮,点击后程序会退出。 ## 安装和使用步骤 1. 下载项目源码文件: 从相关仓库或网站下载此项目的源码文件。 2. 准备开发环境: 确保你的开发环境已经安装了必要的软件和工具,如Visual Studio等。

    基于springboot高校创新创业课程体系源码数据库文档.zip

    基于springboot高校创新创业课程体系源码数据库文档.zip

    基于springboot汽车美容与保养网站源码数据库文档.zip

    基于springboot汽车美容与保养网站源码数据库文档.zip

    基于springboot校友录管理系统源码数据库文档.zip

    基于springboot校友录管理系统源码数据库文档.zip

    Cocos2d-x教程视频使用Eclipse在Ubuntu下搭建Cocos2d-x 3集成开发环境

    Cocos2d-x教程视频使用Eclipse在Ubuntu下搭建Cocos2d-x 3集成开发环境提取方式是百度网盘分享地址

    毕业设计&课设_基于 vue.js 与 node.js 的毕业设计项目,含多模块功能,用于大学信息交流平台开发 .zip

    该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

    基于springboot服装生产管理信息系统源码数据库文档.zip

    基于springboot服装生产管理信息系统源码数据库文档.zip

    (源码)基于Spring Boot和Redis的高并发秒杀系统.zip

    # 基于Spring Boot和Redis的高并发秒杀系统 ## 项目简介 本项目是一个基于Spring Boot框架开发的高并发限时抢购秒杀系统。系统实现了基本的登录、查看商品列表、秒杀、下单等功能,并针对高并发场景进行了优化,包括系统缓存、降级和限流等措施。通过Redis、RabbitMQ等中间件技术,确保系统在高并发情况下的稳定性和性能。 ## 项目的主要特性和功能 ### 核心功能 用户登录用户可以通过手机号和密码进行登录,系统支持两次MD5加密确保密码安全。 商品列表展示用户可以查看所有商品的列表,包括商品的详细信息、库存数量、秒杀价格等。 商品详情展示用户可以查看单个商品的详细信息,包括秒杀状态和剩余时间。 秒杀下单用户可以参与秒杀活动,系统通过本地标记、Redis预处理、RabbitMQ异步下单等技术确保高并发下的系统稳定。 订单详情用户可以查看自己的订单详情,包括订单状态、商品信息等。 ### 技术优化

    基于springboot校园论坛系统源码数据库文档.zip

    基于springboot校园论坛系统源码数据库文档.zip

    飞利浦CT机自动推送配置

    飞利浦CT机自动推送配置

    PHP 学习教程(入门到实践)

    本教程介绍了 PHP 的基础语法、函数与面向对象编程、文件操作、以及与 MySQL 的交互。通过实例与练习,帮助您快速入门 PHP 开发,为动态网站和 Web 应用打下坚实基础。

    (源码)基于Android的玩具租赁系统.zip

    # 基于Android的玩具租赁系统 ## 项目简介 本项目是一个基于Android平台的玩具租赁系统,旨在为用户提供一个便捷的玩具租赁服务。系统涵盖了用户注册、登录、玩具浏览、租赁、个人信息管理等功能,通过前后端分离的架构实现。 ## 项目的主要特性和功能 1. 用户管理 用户注册与登录支持通过昵称、手机号等多种方式进行注册和登录。 找回密码用户可以通过手机验证码找回密码。 个人信息管理用户可以修改个人信息,包括姓名、密码等。 2. 玩具租赁 玩具浏览用户可以浏览不同分类的玩具,查看玩具详情。 租赁功能用户可以选择玩具进行租赁,并查看租赁订单。 3. 搜索与推荐 搜索功能用户可以通过关键词搜索玩具。 推荐系统根据用户的历史行为推荐相关玩具。 4. 测试与集成 单元测试确保基础功能的正确性。 集成测试测试Spring Boot应用的上下文加载情况。

    65-MarkdownEditorsPart1-Code.zip

    6个免费的所见即所得Markdown桌面编辑器的实用指南,用于在Windows平台上编写GitHub Readme.md文件(截至2024年9月)。

    【路径规划】基于深度学习DQN的机器人路径规划附Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    (源码)基于Arduino IDE和Flutter的电动汽车充电监控系统.zip

    # 基于Arduino IDE和Flutter的电动汽车充电监控系统 ## 一、项目简介 这是一个电动汽车充电监控项目,旨在通过Arduino IDE创建一个HTTP Web服务器,结合ESP32芯片、电源管理集成电路(IC)、电流和电压传感器,实现对电动汽车充电过程的实时监控和管理。同时,该项目还包括一个基于Flutter开发的移动应用,方便用户通过移动设备查看和控制充电过程。 ## 二、项目的主要特性和功能 1. HTTP Web服务器通过Arduino IDE创建HTTP Web服务器,实现与ESP32芯片的通信。 2. ESP32芯片连接WiFi,并作为中间设备连接电源管理集成电路(IC)、电流和电压传感器。 3. 远程监控与控制用户可以通过移动设备访问特定的网页,输入充电瓦数并提交,实现远程监控和控制充电过程。 4. Flutter应用项目中的Flutter应用提供了用户友好的界面,方便用户查看充电状态、调整充电参数等。

Global site tag (gtag.js) - Google Analytics