【PowerDesigner】一款超好用的E-R图工具,快速构建出高质量的数据库结构,提高开发效率和代码质量

news2025/1/11 0:30:28

在这里插入图片描述

  • 博主简介:努力学习的大一在校计算机专业学生,热爱学习和创作。目前在学习和分享:数据结构、Go,Java等相关知识。
  • 博主主页: @是瑶瑶子啦
  • 所属专栏: Mysql从入门到精通
  • 近期目标:写好专栏的每一篇文章

在这里插入图片描述

文章目录

  • 一、什么是E-R图?
  • 二、强大的powerDesigner工具
    • 2.1:它的创始人
    • 2.2:工具介绍
  • 三、使用教程:
    • 3.1:概念数据模型(CDM):conceptual data model
    • 3.2:物理数据模型(PDM):pyshical data model
    • 3.3:CDM和PDM对比
    • 3.4:自动生成SQL语句
    • 3.5:一对多的关系
  • 四、总结

一、什么是E-R图?

E-R图,也称ERD(Entity-Relationship diagram),实体关系图(这里的实体其实就是指数据库中的表table)。用于设计数据库结构,来设计系统范围内的实体,以及之间的关系。

下面是一张用powerDesigner设计的ERD:
在这里插入图片描述

二、强大的powerDesigner工具

2.1:它的创始人

powerDesigner虽然是德国的SAP公司1开发的数据建模元数据管理工具。但是它的创始人是中国人:王晓昀。源于他自己毕业后从事软件开发工作,想找到一个很好的建模工具,于是他自己开发了一款,也就是PowerDesigner
在这里插入图片描述

2.2:工具介绍

百度百科:PowerDesigner是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程。 利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型,可以生成多种客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设备模型进行控制。 它可与许多流行的数据库设计软件,例如:PowerBuilder,Delphi,VB等相配合使用来缩短开发时间和使系统设计更优化。

三、使用教程:

file->new model:创建模型
在这里插入图片描述

  • 说明
    • 对于数据库模型设计,我们主要用到以上两个模型;
    • 概念数据模型,是我们主要使用的模型设计功能。
    • 物理数据模型,可以由概念数据模型直接转换而来。为什么叫物理数据模型呢?因为它是有实际意义的,对于不同数据库,我们的概念模型几乎是一样的,但是落到实际,不同数据库的模型定义又稍有不同,这个实际的数据模型,就是物理数据模型,它是依附于具体数据库的。

3.1:概念数据模型(CDM):conceptual data model

上面步骤完成后,创建了概念数据模型文件,我们就可以绘制ER图啦!

  • 认识页面
    在这里插入图片描述在这里插入图片描述
  • 创建一个实体
    在这里插入图片描述
  • 双击这个实体,对它进行编辑
    • General:命名+是否生成物理模型
      在这里插入图片描述

    • Arributes: 向该实体中添加属性:
      在这里插入图片描述
      在这里插入图片描述

    • 修改主键名:
      在这里插入图片描述

    • 点击save,就会生成一个后缀为.cdm(concenptual data model)的文件

3.2:物理数据模型(PDM):pyshical data model

  • 根据概念数据模型自动生成物理数据模型:tools->generate physical data model
    在这里插入图片描述

  • 给该物理模型命名
    在这里插入图片描述

在这里插入图片描述

该物理模型图是基于数据库的,可以和前面生成的概念模型图对比一下,还是有不同的

3.3:CDM和PDM对比

  • CDM:概念数据模型,本质就是ERD(实体关系图),和数据无关
  • PDM:物理数据模型。由概念数据模型产生,和数据库紧密相关

3.4:自动生成SQL语句

根据上面,物理数据模型是和数据库紧密相关的,它反映了实体及其关系。

如果能根据物理数据模型生成SQL语句,即把这物理数据模型映射到实实在在的数据库,岂不是更爽!

YES( •̀ ω •́ )y,强大的poweDesigner提供了该功能:

注意,在这之前需要把生成的物理模型.pdm文件保存

  • database->generate database

在这里插入图片描述

  • 点击确定和应用即可生成sql文件:
    在这里插入图片描述
    在这里插入图片描述

3.5:一对多的关系

我们再创建一个用户实体:

一个用户,可以发表多篇笔记,那么从用户到笔记,这就是一对多的关系。如何标识这种关系呢?

注意,下面操作还是基于概念模型,置于对应的物理模型和sql代码?上面已经详细讲过,这里不再赘述

  • 选择palette面板上电relationship,从用户指向笔记
    在这里插入图片描述
  • 双击关系,即可进行编辑:
    • 给关系命名:
      在这里插入图片描述
    • 设置基数:cardinality
      在这里插入图片描述
      • 概念模型:
        在这里插入图片描述
      • 物理模型
        在这里插入图片描述

四、总结

以上就是关于PowerDesigner这款工具的介绍和简单使用教程。

可以看到,使用PowerDesigner,我们可以轻松的绘制ER图(概念数据模型),并且生成对应的物理概念模型和对应的SQL脚本。大大提高数据库结构设计的效率。

如果对你有用,还请:💭评论+👍🏻点赞+⭐收藏+➕关注

在这里插入图片描述

  • Java岛冒险记【从小白到大佬之路】

  • GORM框架学习

  • Mysql从入门到精通

  • Go语言核心编程

  • LeetCode每日一题–进击大厂

  • 算法

  • C/C++

  • 数据结构


  1. SAP指的是德国SAP公司,全称为Systems, Applications, and Products in Data Processing,即数据处理中的系统、应用和产品。SAP是全球领先的企业管理软件公司之一,提供一系列的企业应用软件解决方案,包括企业资源规划(ERP)、供应链管理(SCM)、客户关系管理(CRM)、人力资源管理(HRM)等。SAP公司的软件产品广泛应用于全球各个行业和领域,包括制造业、零售业、金融业、能源业、医疗保健等。SAP公司总部位于德国沃尔多夫市,是欧洲最大的软件公司之一,同时也是全球最大的企业管理软件供应商之一。
    PowerDesigner的历史比较复杂,最初是由法国软件公司SILVERRUN开发的,后来被Sybase公司收购。随着Sybase公司被SAP收购,PowerDesigner也成为了SAP公司旗下的产品。因此,PowerDesigner既有Sybase公司的历史,也有SAP公司的归属。但是,从现在的角度来看,PowerDesigner已经是SAP公司的产品了,它是SAP PowerDesigner的一部分,由SAP公司负责开发和维护。
    欢迎在评论区交流和留下你的想法和建议 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/482682.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IPsec IKE第一阶段主模式和野蛮模式

国密标准GMT 0022-2014 IPSec VPN 技术规范,IPsec IKE过程中交换类型的定义将主模式Main mode分配值为2,快速模式-quick mode分配值为32。标准中并没有提现分配值为4的交换类型。在实际应用中,IKE第一阶段经常会出现交换类型为4的情况&#x…

留守儿童爱心网站

摘要 随着留守儿童爱心管理的不断发展,留守儿童爱心网站在现实生活中的使用和普及,留守儿童爱心管理成为近年内出现的一个热门话题,并且能够成为大众广为认可和接受的行为和选择。设计留守儿童爱心网站的目的就是借助计算机让复杂的管理操作…

【C++】-关于类和对象的默认成员函数(中)-拷贝构造函数和赋值运算符重载函数

💖作者:小树苗渴望变成参天大树 ❤️‍🩹作者宣言:认真写好每一篇博客 💨作者gitee:gitee 💞作者专栏:C语言,数据结构初阶,Linux,C 如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点…

带你玩转单向链表(学习必备)

本文概要 本篇文章主要介绍数据结构中单向链表各种操作,适合有C语言基础的同学,文中描述和代码示例很详细,干货满满,感兴趣的小伙伴快来一起学习吧! 🌟🌟🌟个人简介🌟&…

Redis入门到实战(实战篇)

Redis基础篇 实战篇Redis 开篇导读 亲爱的小伙伴们大家好,马上咱们就开始实战篇的内容了,相信通过本章的学习,小伙伴们就能理解各种redis的使用啦,接下来咱们来一起看看实战篇我们要学习一些什么样的内容 短信登录 这一块我们会使…

携程:一个被严重低估了的在线旅游平台?

来源:猛兽财经 作者:猛兽财经 携程和旅游行业面临的不利因素依然存在 在疫情期间,由于全球范围内的旅行受到了限制,所以整个旅游行业都受到了巨大打击。休闲旅游和商务旅行也陷入了停顿,此后一直在缓慢恢复。 而当疫情…

Java8流式操作——最终操作

什么是最终操作? 当我们通过最终方法对流对象进行操作,说明stream流操作也完成,最后我们将对象汇总成一个结果(总数、对象、集合……) 方法 collect:将Stream中的元素汇总(转化)成…

探索三维世界【2】:Three.js 的 Texture 纹理

缤纷三维世界大揭秘:探索 Three.js 的 Texture 纹理 1、Texture纹理2、TextureLoader 纹理加载器2.1、创建纹理加载器2.2、纹理属性设置2.3、设置纹理渲染2.4、打光 3、完整代码与展示 1、Texture纹理 Texture 是 three.js 中的“纹理”概念。纹理是指将一张图像映…

ESP8266基于Lua开发使用U8g2模块驱动 i2c ssd1306 OLED显示

ESP8266基于Lua开发使用U8g2模块驱动 i2c ssd1306 OLED显示 📍相关篇《ESP8266基于Lua开发点灯示例》 📖U8g2对应的API接口函数:https://nodemcu.readthedocs.io/en/release/modules/u8g2/ 📺驱动显示效果: &#…

Winform从入门到精通(38)——StatusStrip(史上最全)更新中

一、属性 1、Name 获取StatusStrip控件对象 2、AllowDrop 允许用户拖拽数据到控件上 3、AllowItemReorder 当用于按下alt键时,是否允许对项进行排列,如下图: 4、AllowMerge 5、Anchor 6、AutoSize 7、BackColor 设置StatusStrip的背景色 8、BackgroundImage 设置背…

解决wordpress 没有“add new“按钮

文章目录 问题描述解决方案两个参数的详细解释DISALLOW_FILE_EDITDISALLOW_FILE_MODS 问题描述 新安装的wordpress发现没有“add new“按钮,很奇怪。 解决方案 修改wp-config.php文件,增加如下两行即可修复问题: define(‘DISALLOW_FILE_E…

【实战详解】如何快速搭建接口自动化测试框架?:Python + Requests

摘要: 本篇文章将介绍如何基于Python和Requests库快速搭建一个简单而高效的接口自动化测试框架。您将会了解到设计测试用例、准备测试数据、编写自动化脚本等步骤,以及如何使用断言来检查测试结果,并最终构建一个可重用、易扩展的自动化测试…

【前端每日一问002】jquery中each与data方法的用法与概念

在 jQuery 中,.each() 方法和 .data() 方法都是常用的工具。这两个方法的用法和概念如下: 🌙一、.each() 方法: .each() 方法是 jQuery 对象的方法,用于遍历匹配元素集合中的所有元素,并对每个元素执行一个…

【LeetCode】1000题挑战(225/1000)

1000题挑战 没有废话,直接开刷! 目录 1000题挑战 没有废话,直接开刷! 第一题:202. 快乐数 - 力扣(Leetcode) 题目接口: 解题思路: 代码: 过过过过啦…

基于W1R3S的渗透测试

您被雇来对W1R3S做渗透测试,他们要求您获得root权限并找到标志(位于/root目录中)。 目标:得到root权限&找到flag.txt 目录 1、信息收集 (1)定位靶机IP (2)端口扫描 (3)脚本…

【HTMLCSSJS】写实验发现的一些注意点

🎊专栏【 前端易错合集】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【如愿】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 目录 🚥innerHtml和innerText的区别 &#x1f3f…

28-Servlet API

1.HttpServlet 我们写 Servlet 代码的时候,⾸先第⼀步就是先创建类,继承⾃ HttpServlet,并重写其中的某些⽅法。 1.1.核心方法 实际开发的时候主要重写 doXXX ⽅法,很少会重写 init / destory / service。 这些⽅法的调⽤时机&…

c++基础-运算符

目录 1关系运算符 2运算符优先级 3关系表达式的书写 代码实例&#xff1a; 下面是面试中可能遇到的问题&#xff1a; 1关系运算符 C中有6个关系运算符&#xff0c;用于比较两个值的大小关系&#xff0c;它们分别是&#xff1a; 运算符描述等于!不等于<小于>大于<…

2 异或位运算大厂必刷题

文章目录 如何不用额外变量交换两个数一个数组中有一种数出现了奇数次&#xff0c;其他数都出现了偶数次&#xff0c;怎么找到并打印这种数怎么把一个int类型的数&#xff0c;提取出最右侧的1来怎么把一个int类型的数,获取位数为1的数量一个数组中有两种数出现了奇数次&#xf…

开发问题记录20230502

4 Docker普通用户无权限 普通用户执行docker命令提示信息&#xff1a; docker images docker ps -adocker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post “http://%2Fvar%2Frun%2Fdocker.sock/v1.24/c…