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

这篇具有很好参考价值的文章主要介绍了使用PowerDesigner设计数据库保姆级教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用PowerDesigner设计数据库

一、前言

  使用PowerDesigner进行数据库设计,学《数据库技术》这门课时,使用它完成了一次小型的数据库设计。这次是第二次使用,中间间隔了一年多,再次打开PowerDesigner时,已经把使用步骤忘记个差不多了,有些还需要再去查找一下资料。为了让自己下次再次使用PowerDesigner时能快速上手,写此笔记便于后面使用时能快速上手!

1、powerDesigner设计软件介绍

  • 数据库设计(DataBase Designe)是根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。

  • PowerDesigner是进行数据库设计的强大软件,是我们开发的人常用的一款数据库设计软件,用来做数据库建模,设计概念模型 物理模型 ,最终都反映到数据库,以及设计的正向和逆向工程导入使用。

  • 使用PowerDesigner做数据库设计,主要用到两个大的模型,第一个是CDM ,第二个是PDM

  • 使用步骤大抵如下:

  1. 先创建CDM

  2. 然后把CDM转化成PDM

  3. 最后把PDM转化成数据库sql执行语句,还可以把PDM转化成word可视化数据库文档。可执行的sql语句和可视化word文档是做设计的最终成果,sql语句用于创建数据库,可视化word文档用于团队成员的沟通、开发及后期维护。 PowerDesigner工具的亮点就是生成可执行的sql语句、可视化的word数据库文档 。能不能快速高效地做出一份数据库设计,关键在于CDM的设计。

2、概念数据模型(CDM)

概念数据模型描述的是独立于数据库管理系统(DBMS)的实体定义和实体关系定义,在CDM中用来标识实体的属性(Attribute)

#第一个是实体entity
#第二个是实体entity中的属性attributes,也就是列
#第三个是域domains
域是对属性attributes的归类,可以提前创建域
在设置实体entity中的属性attributes时,先创建好属性的名称name和编码code,
然后选择合适的域domains,就可以设定属性的数据类型datatype和长度length
#第四个是关系relationship
 也就是两个实体之间的关联关系,是一对一的关系,还是一对多的关系,还是多对多的关系。
 
#第五个是关联association
 关联是实体的多对多关系,在做数据设计时,
 一对多时,可以把一存储在多的表中做外键,
 多对多时,需要另外建一个表进行关联,这就是关联association。
 在CDM中表现为关联association,用于区别一般的实体。
 
 #第六个,标识符identifier就是实体中的主键。

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

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工具,在工具栏点击文件,在打开的菜单栏中,选择第一个选项->建立新模型

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

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

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

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

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

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

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

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

3、domains(域)

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

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

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

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

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

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

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

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

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

  • 学生表

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

  • 班级表

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

  • 课程表

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

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

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

  • 学生表

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

  • 班级表

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

  • 课程表

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

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

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

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

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

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

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

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

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

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

  • 班级表

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

  • 课程表

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

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

几种关系:

1. 一对一 

2. 一对多 

3. 多对一

4.  多对多

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

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

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

2、一对多关系

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

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

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

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

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

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

2、多对多关系

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

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

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

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

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

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

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

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

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

2、选择mysql5.0版本

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

建立mysql版本的关系表

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

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

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

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

(八)DBMS脚本

/*==============================================================*/
/* DBMS name:      MySQL 5.0                                    */
/* Created on:     2021/11/8 21:07:31                           */
/*==============================================================*/


drop table if exists s_c_fk;

drop table if exists t_clazz;

drop table if exists t_course;

drop table if exists t_student;

/*==============================================================*/
/* Table: s_c_fk                                                */
/*==============================================================*/
create table s_c_fk
(
   s_id                 int not null comment '自增',
   c_id                 int not null,
   primary key (s_id, c_id)
);

alter table s_c_fk comment '学生表和课程表多对多关系';

/*==============================================================*/
/* Table: t_clazz                                               */
/*==============================================================*/
create table t_clazz
(
   clazz_id             int not null auto_increment,
   clazz_name           varchar(20),
   primary key (clazz_id)
);

alter table t_clazz comment '这是学生管理系统的班级表';

/*==============================================================*/
/* Table: t_course                                              */
/*==============================================================*/
create table t_course
(
   c_id                 int not null auto_increment,
   c_name               varchar(20),
   primary key (c_id)
);

alter table t_course comment '这是学生管理系统的课程表';

/*==============================================================*/
/* Table: t_student                                             */
/*==============================================================*/
create table t_student
(
   s_id                 int not null  auto_increment comment '自增',
   clazz_id             int,
   s_name               varchar(20),
   primary key (s_id)
);

alter table t_student comment '这是学生管理系统中的student表';

alter table s_c_fk add constraint FK_s_c_fk foreign key (s_id)
      references t_student (s_id) on delete restrict on update restrict;

alter table s_c_fk add constraint FK_s_c_fk2 foreign key (c_id)
      references t_course (c_id) on delete restrict on update restrict;

alter table t_student add constraint FK_clazz_s_fk foreign key (clazz_id)
      references t_clazz (clazz_id) on delete restrict on update restrict;


(8) 第八步, PowerDesigner将PDM导出生成WORD文档(略)

如果需要可以参考:https://blog.csdn.net/tongdengquan/article/details/104615332文章来源地址https://www.toymoban.com/news/detail-429154.html

到了这里,关于使用PowerDesigner设计数据库保姆级教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt连接MySQL数据库(保姆级成功版教程)

    VIP通道可以关注我,私信我,直接给两个动态库,直接起飞。 1、安装Qt时勾选sources 2、配置path环境变量 ① 此电脑-属性-高级系统设置-环境变量 ② 双击path-右上角新建 ③把这两个路径添加进去,最后确定 3、编译mysql驱动(在Qt打开mysql.pro文件) 1)在这条路径中D:QT5.14.25.1

    2024年02月04日
    浏览(45)
  • Linux系统下SQLite创建数据库, 建表, 插入数据保姆级教程

    1,创建数据库: sqlite test.db  我这边是sqlite2版本, 直接使用命令sqlite test.db创建一个名称为test的数据库; test是你自定义是数据库名 , 创建好数据库后, 接下来开始创建表格 2.创建表格, 就是常规的sql建表语句 CREATE TABLE  ids_logs ( english_details TEXT, chinese_details TEXT, event_definition TEXT

    2024年02月08日
    浏览(65)
  • 【入门必看,MySQL从0到1系列- 数据库保姆级图解教程:轻松掌握数据库管理技能】

    MySQL 是全球最流行的用于管理关系数据库的开源数据库软件。除了具有强大的功能外,它还比 Microsoft SQL Server 和 Oracle 数据库快速、可扩展且更易于使用。因此,PHP 脚本通常用于创建功能强大且动态的服务器端/基于 Web 的应用程序。 注意:  数据库是数据的结构化集合 SQL

    2024年02月09日
    浏览(61)
  • 【JaveWeb教程】(18) MySQL数据库开发之 MySQL数据库设计-DDL 如何查询、创建、使用、删除数据库数据表 详细代码示例讲解

    下面我们就正式的进入到SQL语句的学习,在学习之前先给大家介绍一下我们要开发一个项目,整个开发流程是什么样的,以及在流程当中哪些环节会涉及到数据库。 2.1 项目开发流程 需求文档: 在我们开发一个项目或者项目当中的某个模块之前,会先会拿到产品经理给我们提

    2024年01月25日
    浏览(104)
  • .net core .net6 读取数据库 读取配置文件 保姆级教程

    本文环境 Microsoft Visual Studio 2022 .Net6 SQLServer2019 在解决方案管理器右键添加相关的包,如下两个包 Microsoft.Data.SqlClient SQLServer SQLServer数据库 Microsoft.Extensions.Configuration.Json json配置文件 添加配置文件 appsettings.json,选始终复制 添加json配置文件内容如下 DefaultConnection 根据自己的

    2024年02月08日
    浏览(50)
  • 简单搭建一个web api并且连接sql server数据库(保姆教程)

    这里我们创建一个ASP.NET Web应用,使用框架是.NET Framework4.7.2。 点击进入下一步。    点击创建后会出现一些配置类,我们这里创建一个空,并且在添加文件夹和核心引用处勾选WEB API。  然后点击创建,这里我们项目就创建完成了。然后我们开始文件里面的配置,如跨域等。

    2024年02月04日
    浏览(62)
  • 【入门必看,MySQL从0到1系列- 数据库保姆级图解教程:轻松掌握数据库管理技能】+福利网盘分享MySQL从0到1资料+课程教程+视频+源码

    MySQL 是全球最流行的用于管理关系数据库的开源数据库软件。除了具有强大的功能外,它还比 Microsoft SQL Server 和 Oracle 数据库快速、可扩展且更易于使用。因此,PHP 脚本通常用于创建功能强大且动态的服务器端/基于 Web 的应用程序。 注意:  数据库是数据的结构化集合 SQL

    2024年02月08日
    浏览(71)
  • 性能测试工具jmeter对数据库mysql进行性能测试(压测保姆级教程)

    打开mysql官网:MySQL 找到mysql connectors,选择操作系统独立版本,将下载jar包导入到jmeter的lib目录下。 参考文档:https://www.jb51.net/article/190860.htm 1、添加测试计划 2、添加JDBC request 3、添加JDBC connection configuration,并修改配置 1、Cannot create PoolableConnectionFactory (Communications link fai

    2024年02月02日
    浏览(62)
  • 从零实现一套低代码(保姆级教程)【后端服务】 --- 【21】实现数据库的动态建表等接口

    在前面的两篇文章,我们主要是通过Upload组件和Image组件,真正的做到了设计器和后端服务之间的数据传递。 有了这个例子,应该比较清楚,对于低代码项目的服务端,它 主要做的是一个抽象的数据存储 。 因为正常做开发,后端主要是对某个字段的数据进行存储,例如姓名

    2024年02月22日
    浏览(39)
  • 数据库优化系列教程(3)一数据库设计

            数据库设计优化是整个数据库系统性能优化的关键一环,直接影响到数据库系统的稳定性、可扩展性和性能。         数据库设计中的规范化和反规范化是为了在满足特定需求的同时,提高数据库的性能和维护效率。这两个概念之间存在权衡,需要根据具体的

    2024年01月19日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包