PowerDesigner12.5(以后统称PD)是一款数据库建模软件,利用此软件可以方便的完成数据库建模操作(所谓建模,个人理解就是为系统所要使用的所有表建立一个模型,方便以后维护与使用).费话少说,现在我就直接说一下此款软件的常用功能.

以一个例子来说明他的用法:

例子:假设有一个选课系统,选课系统所需要的表有:课程表course,学生表student,选课表SC,其对应关系为:一个课程可以被多个学生选择,一个学生也可以选择多门课程.下面以这个小练习为例,通过PowerDesigner建立数据库模型.

一.准备工作:

1.下载并安装oracle 10g.(服务器端)

2.下载并安装PowerDesigner12.5.

3.最好安装一个PL/SQL Developer软件(经软件有无均可,只是为了以后操作oralce数据库方便).

二.开始数据库建模:

在具体操作之前,我先说一下从建模到生成最后的数据表所要经历的步骤.CDM(概念数据模型)->PDM(物理数据模型)->table(数据库表).

1.打开已安装好的PD.

2.首页显示如下:

3.选择WorkSpace或者菜单栏File中的New->Conceptual Data Model新建一个CDM.如下图:

在MOdel name中可以为CDM重新起个名字.确定.如下图.

4.点击Palette工具栏中的Entity,之后在操作区域空白外点击三下,绘制出三个实体模型.右键对选中模型进行释放.如下:

5.双击Entity_1图标,对其属性进行设置:

在General选项卡中的Code对应数据库中的表名,Comment对应数据库中的描述内容.Name可以取汉字,也可以与表名相同,此外随自己喜好.

在Attribute中对应的是数据表中各个字段.Name与General选项卡中相同,Code对应于数据库表中的字段名,DataType代表数据类型,Length代表该字段的长度,Precision当有小数位时代表精度,M代表为此列是否为必填项,P代表为此列是否为主键.其他不用管.填写完所有的属性后,点击确定.

注意:因为student和course表是通过SC表的多对多关系,但是在建立student,course,SC的概念模型时,不需要建立相应表中的主键,比如:SC和Student表应该有关联,在SC表里面有Student表的主键和Course的主键,而SC表中利用Student和Course表中的主键来建立联合主键.在此SC表中就不需要再重复建立sid与cid,因为在生成PDM时,会根据两个表间的关系自动创建.

6.建立完所需要的实体之后,点击右侧工具栏中的RelationShip按钮进行关联映射(点击一个实体拖到另一个实体).连接完之后,双击关系连接线(Relationship),对关系映射进行设置,如图:

在此选项卡中可以对两个关系模型设置对应关系(一对一,一对多,多对一,多对多).选择后点击确定.

7.设置完所有的关系模型与关联关系后,CDM结果图如下:

8.选择Tools->Model Options...->Model Settions->Data Item中的Unique code前面的对号去掉(让其忽略掉多个表中有相同字段的情况).

9.选择Tools->Check Model...->直接确定.执行对此CDM的语法检查.当语法检查没有错误后,继续向下执行.

10.选择Tools->Generate Physical Data Model出现如下对话框(生成PDM):

对上面对话框的解释:DBMS代表要生成的数据库和版本号,其他不用改默认即可,点击确定后,生成PDM模型.

11.选择Database->Generate Database...,在弹出的对话框中Directory代表导出的脚本存在哪个文件夹中,File name表示以什么文件名导出.其他默认即可导出.

PowerDesigne实用小例子(适合初学者)相关推荐

  1. 42个Python实用小例子[内附200+代码地址]

    经常有同学苦恼,学了python基础之后找不到合适的练手机会.为此,有位热心人创建了一个项目,搜集整理了一堆实用的python代码小例子.这些小例子包括但不限于:Python基础.Web开发.数据科学 ...

  2. 用Python自动化管理邮件简直太方便了,三个实用小例子带你体会!

    ‍‍ 大家好,我是早起. 在之前的文章中我们已经了解如何对自己的邮箱做一些代码操作前的基础配置,以及通过 Python 代码收发.读取邮件.本文将简单复习之前的部分重点内容,并通过 3 个小案例进一步 ...

  3. Android中ListView结合网络请求开发小案例(适合初学者必看的一篇详细实例)

    本文旨在对Android基础项目,ListView项目实际小应用(更多的结合小版块完成对用户需求的完整代码体现) 首先在这里,说说CSDN这个平台... 相信大家一定也不陌生,个人之前在学习中遇到的各 ...

  4. 微信小程序期末大作业 记单词小程序 适合初学者学习使用

    微信小程序期末大作业 记单词小程序 小程序如下图所示:(下载链接在文末) 点我下载资源 https://download.csdn.net/download/weixin_43474701/59677 ...

  5. main java game,playgame 一个JAVA编写的飞行小游戏,有基本完整的 框架,适合初学者参照学习 Other s 其他 238万源代码下载- www.pudn.com...

    文件名称: playgame下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 7050 KB 上传时间: 2013-06-06 下载次数: 3 提 供 者: Lyq ...

  6. mui与java开发实例_mui开发的app例子,非常好资源,适合初学者

    [实例简介] mui开发的app例子,非常好资源,适合初学者,整套代码,基本上拷贝过来就能用 [实例截图] [核心代码] b7f332e5-0c35-4865-84bf-961d5aafdc04 ├─ ...

  7. 小程序开发(适合初学者)

    小程序开发(适合初学者) 1.开发小程序的步骤 注册小程序账号 激活邮箱 信息登录 登录小程序管理后台 完善小程序信息 绑定开发者 2.环境搭建以及开发工具介绍 3.小程序的版本 预览版本--手机本地 ...

  8. 一个适合初学者的C++推箱子小游戏

    一个适合初学者的C++推箱子小游戏 博主最近在学习关于C++的一些基础,这是本人突发奇想做的一个小游戏,编程其实并不难,重要的是,你的思路,以及优化,当然,这个小游戏,本人也是基于一个学习者编写的 本 ...

  9. 告别刷抖音!30秒一个Python小例子,总有一款适合你

    小编每天上班坐地铁,不是刷抖音就是煲电视剧,不是我不想学习,主要是短视频太好看了,30秒一个,刷刷刷的不停啊.如果Python也有30秒学习的小例子,我也一定会看呢. 于是小编收录整理了一些30秒一个 ...

最新文章

  1. 深入理解JVM——(三)为什么JVM新生代需要两个Survivor区
  2. 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
  3. 通讯线路物理层编码类型总结(NRZ,MLT-3,4B/5B,8B/10B,64B/66B...)
  4. Json字符串转对象,使用ObjectMapper方式报错:no String-argument constructor/factory method
  5. python子类分配
  6. python getcwd 与dirname_Python中获取路径os.getcwd()和os.path.dirname(os.path.realpath(__file__))的区别和对比...
  7. vs2008 sp1补丁安装到最后一点点的时候,就无法安装下去了 解决方法
  8. ExtJs - grid 合并单元格 跨行跨列
  9. 借Java EE守护者联盟之力拯救Java EE
  10. c语言实现统计过程控制,SPC统计过程控制的课程
  11. 密封橡胶圈尺寸缺陷视觉检测系统
  12. github+gitee上传源码 git工具的安装和使用
  13. Spark面试近300题初始版本
  14. Apache 网页与安全优化
  15. aspack(工具+手动)脱壳
  16. 从哪些方面评价一款在线客服系统产品
  17. esxi安装威联通_威联通TS-453Bmini NAS加装内存,轻松玩转虚拟机安装win10系统
  18. Java性能优化从20s优化到500ms,我用了这三招,内容知识满满
  19. Android 融云单聊与群聊消息免打扰功能设置与消息删除功能实现
  20. 香港 - 寻找轻鬆攻略游(蒲台岛)

热门文章

  1. 一篇文章简单的盘点下 Vue3 与 Vue2 的差异性,让你更加理解 Vue
  2. 7035. 2021.03.30【2021省赛模拟】神奇纸牌(uno)题解
  3. python查数据维度分析行业_Python数据分析之路(一)查询和统计
  4. 机器学习框架_编写生产级机器学习框架的经验教训
  5. Kali安装Nessus完整版教程
  6. java 判断实体类是否为空_如何判断一个实体类是否为空
  7. Java实现大鱼吃小鱼游戏(开源)
  8. VMware12 kali 安装、VMware tools安装、源更新和dvwa相关配置以及此过程中遇到的问题解决方式
  9. P2P原理的解释与实现
  10. WhiteHoleV0.7界面预览