物理数据模型PDM

物理数据模型(Physical Data Model,PDM):在数据库的逻辑结构设计好之后,就需要完成其物理设计,PDM就是为实现这一目的而设计的。

物理数据模型是以常用的DBMS(数据库管理系统)理论为基础,将CDM/LDM中所建立的现实世界模型生成相应的DBMS的SQL语言脚本。利用该SQL脚本在数据库中产生现实世界信息的存储结构(表,约束等),并保证数据在数据库中的完整性和一致性。

  1.基本概念

1.1表,列,视图,主键,候选键,外部键

1.2存储过程和触发器

1.3默认与规则

当用户没有为某一个列赋值是,数据库服务器为该列自动插入的值即为默认。规则就是在数据库的管理中指定的允许或不允许那些值插入某些列。默认和规则共同帮助系统维护数据的完整性。默认和规则能够与列和用户定义的数据联系在一起。

1.4 完整性检查约束(唯一性和主键约束,参照完整性约束,检查约束等)

完整性是指数据库中数据的正确性和一致性。通过对数据库插入,删除和修改数据值进行限制和约束来实现数据的完整性,数据库提供两种保持数据完整性的方法:一是在定义时定义完整性约束,二是定义规则,约束,索引和触发器。

1.5索引(组合索引,唯一索引,聚簇索引和非聚簇索引)

  2.创建PDM

2.1建立PDM

建立PDM有4种方法:

  • 使用设计环境直接建立PDM
  • 从现存数据或数据库SQL脚本逆向工程建立PDM
  • 从CDM采用内部模型生成方法建立PDM
  • 从面向对象模型中类图采用模型的内部生成方法建立PDM

这里使用第一种方法。

(1)选择File-New Model命令,在打开的窗口左侧选择Physical Data Model选项,如图6.1所示。

图6-1

(2)在右侧输入模型名称,从DBMS下拉列表框中选择一个目标DBMS。

(3) 选择Extended Model Definitions选项卡,如果利用PowerBuilder来开发应用程序,当PowerBuilder连接数据库时将表和列的扩展属性保存到其Catalog表中,选中PowerBuilder复选框,生成PDM可以从Catalog表中获取表和列的扩展属性。如图6-2所示。

图6-2

(4)单击“确定”按钮,打开新建的PDM设计窗口,如图7-3所示。工作区包括左侧浏览器窗口,右侧的设计窗口,下侧的输出窗口和浮动的工具窗口,可以利用工具窗口中的图标在设计窗口中设计PDM

(5)利用工具栏中的Table图标创建表,利用Reference图标创建参照关系,利用View图标创建视图,Proceduce图标创建存储过程。其他工具与CDM中的工具栏使用方法一样。

(6)创建表,列,序列,参照及参照完整性,域,索引,视图,存储过程等。效果如图6-3所示(只创建了表和列)。

图6-3

3.PDM逆向工程

PowerDesigner的逆向工程包括从处理语言(Process Language)逆向生成业务处理模型,从对象语言(Object language)逆向生成面向对象模型,从数据库后数据库脚本逆向生成物理数据模型从XML定义(XML Difinition)逆向生成XML模型。这里介绍PDM逆向工程,从现有DBMS的用户数据库或现有数据库SQL脚本中生成PDM的过程,即实现由现有数据库的物理结构导出其物理设计的过程。

(1)选择File-Reverse Engineer-Database命令,打开New Physical Data Model窗口,输入模型名称并选择DBMS,单击“确定”按钮,如图6-4所示。

图6-4

(2)打开Database Reverse Engineering Options窗口,选择Options选项卡,如图6-5所示。

图6-5

(3)选择Selection选项卡,选择逆向工程的方式,Using script files(SQL脚本)或者Using a data source(ODBC中定义的数据源)。

(4)如果选中Using script files单选按钮,在图6-7所示窗口中单击Add Files图标,打开选择SQL文件窗口,选择一个或多个SQL文件即可。

图6-7

(5)如果选中Using a data source单选按钮,单击Database Reverse Engineering Options窗口右下角的Connect to a Data Source图标,打开Connect to a Data Source窗口如图6-8所示,在该窗口中选择一个ODBC数据源或选择单击Configure进入Connection Profilre Definition窗口配置数据源并输入用户名和密码,单击Connect按钮,如图6-9所示。

图6-8

图6-9

(6)选择Target Models选项卡,单击Add Models图标选择已存在的PDM文件,则将逆向工程的结果与之合并为一个PDM。如果不选择PDM文件,则重新生成一个新的PDM。

(7)单击Database Reverse Engineering Options窗口中的“确定”按钮,打开如图如图6-10所示窗口,选择要逆向工程的数据库中的全部或部分对象。效果如图6-11所示。

图6-10

图6-11

注:在连接数据时,如果遇到com.MySQL.jdbc.Driver clas not find错误时,请查看环境变量中是否配置了数据库连接jar的路径。如图6-12所示。

图6-12

小结: PMD逆向工程可以保证现有物理数据库与PDM同步,同时也为系统设计人员分析,改进现有数据库提供了方便,这也是PowerDesigner的精彩之处。

六、物理数据模型(PDM逆向工程)的更多相关文章

  1. PowerDesigner(六)-物理数据模型(PDM逆向工程)(转)

    物理数据模型PDM 物理数据模型(Physical Data Model,PDM):在数据库的逻辑结构设计好之后,就需要完成其物理设计,PDM就是为实现这一目的而设计的. 物理数据模型是以常用的DBM ...

  2. 物理数据模型(PDM)->概念数据模型 (CDM)->面向对象模型 (OOM):适用于已经设计好数据库表结构了。

    物理数据模型(PDM)->概念数据模型 (CDM)->面向对象模型 (OOM):适用于已经设计好数据库表结构了.   步骤如下: 一.反向生成物理数据模型PDM 开发环境 PowerDes ...

  3. powerdesigner 实体关系模型CDM与物理数据模型PDM互转

    1.创建CDM 2.CDM转换PDM 3.PDM转CDM 环境 powerdesigner15.1 1.创建CDM File --> new Model-->Conceptual data ...

  4. 在powerdesigner中创建物理数据模型

    物理数据模型(PDM)是以常用的DBMS(数据库管理系统)理论为基础,将CDM/LDM中所建立的现实世界模型生成相应的DBMS的SQL语言脚本.PDM叙述数据库的物理实现,是对真实数据库的描述 PDM ...

  5. PowerDesigner 物理数据模型(PDM)

    PowerDesigner 物理数据模型(PDM) 说明 数据库脚本sqldatabasegeneration存储   目录(?)[+]   一.     PDM 介绍 物理数据模型(Physical ...

  6. PowerDesigner 物理数据模型(PDM) 说明

    ref: https://blog.csdn.net/tianlesoftware/article/details/6874067 一.     PDM 介绍 物理数据模型(Physical Data ...

  7. PowerDesigner 16.5 使用VBScript脚本从Excel导入物理数据模型

    本文使用的数据库类型是Oracle 11g 最近在工作中遇到一个问题:数据的设计以表格的形式保存在Excel文件中.(由于保密原因,我只能看到数据库设计文档,无法访问数据库.=_=!) 其中包括Nam ...

  8. PowerDesigner反向生成物理数据模型

    什么是PowerDesigner Power Designer 是Sybase公司的CASE工具集,使用它可以方便地对管理信息系统进行分析设计,它几乎包括了数据库模型设计的全过程.利用Power De ...

  9. powerdesigner反向SQLServer2008数据库生成物理数据模型

    方法一:通过数据库脚本生成物理数据模型 具体步骤如下图所示:

随机推荐

  1. Java 访问控制关键字

    public, private, protected 在控制上有什么区别和不同请参考下面的说明. 请参考下图的说明. 和下面的一个说明: │ Class │ Package │ Subclass │ ...

  2. Java基础-this关键字和构造方法(10)

    this关键字 方法被哪个对象调用,this就代表那个对象当局部变量隐藏成员变量时,使用this关键字(例如构造方法和访问器). 构造方法 构造方法作用概述 给对象的数据进行初始化 构造方法格式 方法 ...

  3. 使用与不使用@RequestBody注解的区别

    1. 如果使用@RequestBody接受页面参数: public Map<String,Object> insertBudget(@ApiParam(required = true,na ...

  4. OC description和sel

    一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) (一)基本知识 -description(对象方法) 使用NSLog和@%输出某个对象时, ...

  5. dubbo provider如何对invoker进行export

    如何把provider的invoker export出去:1)为原始对象加wrapper,生成invoker:2)给invoker加各种filter,启动监听服务:3)注册服务地址 以HelloSer ...

  6. zk键值数据结构

    首先看一张zk官网上的图: zk为我们提供了一种类似于文件存储的树形数据结构,那么它是如何实现的呢? 先假定我们有一个map,以路径名作为键,以节点作为值,如下: “/” -> 节点1,“/ap ...

  7. Python - Learn Note (3)

    Python之模块 包就是文件夹:包可以有多级: 模块就是 xxx.py文件:可以创建自己的模块,并且导入它们,模块的名字就和文件的名字相同: Python使用import语句导入一个模块. impo ...

  8. cocos2d-x安装教程

    cocos2d-x安装教程 cocos的安装方法有多种,今天讲的是其中一种,使用cocos的源代码直接进行编译. 下载cocos2d-x的源代码,提供两种方式给大家 -- 中文官网下载 -- 英文官网 ...

  9. harbor私有镜像仓库的搭建与使用与主从复制

    harbor私有镜像仓库,私有仓库有两种,一种是harbor,一种是小型的私有仓库,harbor有两种模式,一种是主 从,一种是高可用仓库,项目需求,需要两台服务器,都有docker.ldap权限统一 ...

  10. Graph

    题目: [问题描述] 给你一个有向图,有 N 个点,标号为 0 到 N -1,图中的每条边有个权值,每次你经过一条边,它的权值将被记入你的得分,如果同样的边被经过多次,它的权值每次都将被记入总分,权值 ...