使用PowerDesigner设计数据库保姆级教程(1)

3、物理数据模型(PDM)

物理数据模型是在概念数据模型的基础上针对目标数据库管理系统的具体化。

PDM的对象:表(Table),表中的列(Table Column),主外键(Primary,Foreign key),参照(reference),索引(index ),视图(View)等

在PDM中用来表示实体属性的是列(Column)

4、CDM和PDM对比

#CDM概念模型:

描述要存储的实体、属性、时体关系!

#PDM模型:

对概念数据库模型进行升级,将实体转化为数据库特性的模型

实体——》表

属性——》列

5、数据库设计步骤

  1. 设计CDM模型

  2. 生成PDM模型

  3. 生成DBMS脚本

二、powerDesigner项目实战

======================================================================================

1、题目:

用powerDesigner创建学生表和班级表和课程表 的CDM(概念数据模型)模型,然后生成PDM(物理数据)模型DBMS(数据库管理系统)脚本可视化的word数据库文档

2、数据库

  • 学生表**(t_student)**

| 字段 | 类型 | 主键 | 约束 | 备注 |

| — | — | — | — | — |

| s_id | int | 是 | 自增 | 学生id |

| s_name | varchar(20) | | not null | 学生姓名 |

| s_clazz_id | int | | 外键 | 班级id |

  • 班级表(t_clazz)

| 字段 | 类型 | 主键 | 约束 | 备注 |

| — | — | — | — | — |

| clazz_id | int | 是 | 自增 | 班级主键 |

| clazz_name | varchar(20) | | not null | 班级名 |

  • 课程表(t_course)

| 字段 | 类型 | 主键 | 约束 | 备注 |

| — | — | — | — | — |

| c_id | int | 是 | 自增 | 课程主键 |

| c_name | varchar(20) | | not null | 课程名 |

  • 中间关系表(t_s_c_fk)

| 字段 | 类型 | 主键 | 约束 | 备注 |

| — | — | — | — | — |

| c_id | int | 是 | 自增 | 课程主键 |

| s_id | int | 是 | 自增 | 学生主键 |

3、CDM(数据概念模型)创建步骤

(1)第一步,创建概念数据模型CDM,并对其命名。

1、打开PowerDesigner工具,在工具栏点击文件,在打开的菜单栏中,选择第一个选项->建立新模型

2、在建立新模型的窗口,选择第二个模型,在modelname中对模型重新命名,最后点击OK按钮。

modelname是:student_system

(2)第二步,创建域domains,也可以从其他现成的地方拷贝过来。

1、在 CDM模型 数据库设计 上点击鼠标右键,选中list of

2、在出现的列表中选中domains,出现如下窗口:

3、domains(域)

4、 在此窗口,添加name、code,code可以不填,让其自动填充 ,并设置数据类型datatype和长度length,设置数据类型和长度是关键 ,后面的实体属性会继承这里的数据类型和长度,最后点击ok按钮进行保存,如下图所示:

(3)第三步,创建实体entity。

1、在窗口的右上角有一个ToolBox中的conceptual Diagram中有一个四方形的图表,鼠标移上去时会有一个entity的标识,没错,就是它了,

2、点击这个图表,在空白的地方,点击一下就绘出实体entity的图表

3、让鼠标恢复状态,然后双击其中的一个实体,即可对实体进行name和code的命名,命名之后点击应用。点击应用不会关闭当前窗口,点击确定会关闭当前窗口。

  • 学生表

  • 班级表

  • 课程表

(4)第四步,创建实体entity中的属性attribute。

1、接着上一个窗口,在entity窗口中,点击属性attribute,在这一栏目里可进行属性的name和code创建,name对应的是中文描述,code对应的数据库字段名称。

  • 学生表

  • 班级表

  • 课程表

2、 如果此时想添加备注,但是列表中并没有备注,可点击菜单栏下,漏斗下带笔 的小图标勾选出备注comment,这时就可以看到备注一栏了。

3、在上图中有一个细节,就是在备注comment之前,有三个字母,每个字母下面有个复选框,这是什么意思呢,

  1. P是PrimaryIdentifier是否为主键表述的缩写,勾选了P就代表当前被勾选字段是该表的主键。

  2. M是Mandatory的缩写,属性值是否允许为空的意思。

  3. D是displayed的缩写,表示是否在实体图形符号中显示该属性。

还有一个Identifiers标识符,可以把主键的code拷贝过去,设置这个的好处是,可以在关系图中,一下子就能清楚地看到某个表的主键是哪个,是否有设置。

  • 班级表

  • 课程表

(5)创建实体entity之间的多对多、一对多关系的关联relationship。

几种关系:

  1. 一对一

  2. 一对多

  3. 多对一

  4. 多对多

1、 现在有三个实体,一个是班级,一个是学生,一个是课程,

  1. 一个班级存在多名学生,一个学生只能在一个班级上课,这就是一对多的关系,

  2. 一个课程可以有多名学生,一个学生可以选多门课程

2、一对多关系

在右边ToolBox中的conceptual Diagram里有一个提示文字为Raletionship的图标,就是关系的映射,点击这个图标,按住鼠标的左键,从一个实体拖往另一个实体,通常一对多的关系中,从一开始拖这个图标,到多的实体停止这个图标。

然后双击关系这条线,对关系进行编辑,对关系的name和code进行命名。

点击cardinalities栏目,可以对关系重新设置,设置班级和学生的关系是0对N关系,还是1对N关系,最后点击OK按钮保存。

2、多对多关系

从学生开始拖这个图标,到课程的实体停止这个图标。

然后双击关系这条线,对关系进行编辑,对关系的name和code进行命名。

点击cardinalities栏目,可以对关系重新设置,设置课程和学生的关系是1对N关系,还是1对N关系,最后点击OK按钮保存。

(6)第六步,生成PDM模型

1、点击Tools然后点Generate Physical Data Model

2、选择mysql5.0版本

建立mysql版本的关系表

(7)第七步,生成DBMS脚本

在这里插入图片描述

(八)DBMS脚本

/==============================================================/

/* DBMS name: MySQL 5.0 */

/* Created on: 2021/11/8 21:07:31 */

/==============================================================/

drop table if exists s_c_fk;

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

本人也收藏了一份Java面试核心知识点来应付面试,借着这次机会可以送给我的读者朋友们:

目录:

二面蚂蚁金服(交叉面),已拿offer,Java岗定级阿里P6

Java面试核心知识点

一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!

二面蚂蚁金服(交叉面),已拿offer,Java岗定级阿里P6

Java面试核心知识点
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
目、讲解视频,并且会持续更新!**

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后

本人也收藏了一份Java面试核心知识点来应付面试,借着这次机会可以送给我的读者朋友们:

目录:

[外链图片转存中…(img-WVKBSHLb-1713524293401)]

Java面试核心知识点

一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!

[外链图片转存中…(img-RMc2ywXD-1713524293402)]

Java面试核心知识点
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 10
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在CSDN上转悠经常看到有网友寻求PowerDesigner相关资料的帖子,Baidu,Google上找找还真很少;同时也有不少网友发来Email询问相关PowerDesigner问题或索要相关资料的,故下定决心制作本文档。折腾二十多天,终于输出了现在的文档,其中绝大部分内容都是依照PowerDesigner自带的帮助文档翻译过来,乐意啃英文的朋友最好还是看其”原汁”教程,同时本文档仅用于帮助分析设计人员更快熟悉掌握PowerDesigner使用方法,不包含分析设计方面的理论,所以要作好系统的分析设计工作还是需要用户深厚的项目实践功底。 起初想尽量按照PowerDesigner自带帮助文档完整地进行,尝试了一上午的工作之后这种方案马上就被我否决,原因有二:1.内容太多,工作量太多。2.原帮助文档特别周全,个人觉得可以在内容上作很大程度的压缩。姑决定按原帮助文档写,同时加入自己目前正在做的技术论坛分析设计过程以便于理解。 对本文档内容的几点说明: 1. 本文档只包括PowerDesigner部分内容(RQM,Report,CDM,PDM),内容不够全面。 2. 内容尽量简略,一些相同或类似操作过程尽量不再重复。 3. 部分术语参考了飞思科技产品研发中心监制电子工业出版社的《PowerDesigner数据库系统分析设计与应用》。 4. 暂时没有包含OOM,XML,BPM,ILM等模型内容,我将会在后期陆续更新。 版本说明:我使用的是PowerDesigner Trial 11英文版,因此文档中一些菜单,按钮名称也用英文写出(因当心自己译出的名称和中文版上的名称不一致而造成理解不便),若是给使用中文版的朋友带来不便,我在这说声”抱歉”了!同时由于各版本不同部分操作可能会有所区别。 这里要感谢在我进行翻译工作期间给我发送Email关注的网友,感谢一直支持我的朋友们!由于第一次做翻译工作,限于水平有限,文档中肯定存在很多不足和错误之处,衷心欢迎各位网友指点迷津,期望得到您的指导!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值