zoukankan      html  css  js  c++  java
  • PowerDesigner 物理数据模型(PDM) 说明

    一.     PDM 介绍

    物理数据模型(Physical Data Model)PDM,提供了系统初始设计所需要的基础元素,以及相关元素之间的关系;数据库的物理设计阶段必须在此基础上进行详细的后台设计,包括数据库的存储过程、操作、触发、视图和索引表等;

    PowerDesigner能够用于创建多种不同类型的DBMS(数据库管理系统),每种类型的DBMS都包含一个标准定义的文件用于在PD和DBMS中确定彼此的关联而提供一套接口;创建不同的DBMS可以生成不同的数据库脚本。

    物理数据模型(PDM)的主要功能:

    1、可以将数据库的物理设计结果从一种数据库移植到另一种数据库;

    2、可以通过反向工程将已经存在的数据库物理结构重新生成物理模型或概念模型;

    3、可以定制生成标准的模型报告;

    4、可以转换为OOM;

    5、完成多种数据库的详细物理设计(涵盖常用的各种数据库的DBMS),并生成数据库对象的.sql脚本;

    1.1 PDM中的基本概念:

    1)  表

    2)  列

    3)  视图

    4)  主键

    5)  候选键

    6)  外键

    7)  存储过程

    8)  触发器

    9)  索引

    10)完整性检查约束

    1.2 创建PDM对象:

    1)  创建表

    2)  创建列

    3)  创建创建域

    4)  创建视图

    5)  创建主键

    6)  创建候选键

    7)  创建外键

    8)  创建索引

    9)  创建完整性检查约束

    10)创建存储过程

    11)创建触发器

    1.3 管理PDM对象:

    1)  创建用户

    2)  设置表的用户

    3)  设置表的物理属性

    1.4 检查PDM:

    1)  检查选项设置

    (1)Package(包)

    (2)Table(表)

    (3)Column(列)

    (4)Index(索引)

    (5)Key(键)

    (6)Domain(域)

    (7)View(视图)

    (8)Reference(参照)

    (9)Trigger(触发器)

    (10)    Procedure(存储过程)

    (11)    User(用户)

    (12)    File(文件)

    2)更正错误/警告

    1.5 触发器和存储过程/函数:

    1)创建触发器

    设定触发器类型(Insert、Update、Delete)

    2)创建存储过程/函数

    1.6 生成数据库

    1)选择Database→GenerateDatabase菜单项

    2)选项设置

    (1)数据库

    (2)用户

    (3)域

    (4)表和列

    主键、候选键

    外键

    索引

    触发器

    (5)存储过程

    3)格式设置

    4)选择对象

    (1)查看包

    (2)全选/全部取消选择

    (3)使用图中选中的对象

    1.7 创建PDM:

    1)新建PDM

    (1)选择File→New Model菜单项

    (2)在左侧模型类型列表中选择Physical  Data Model

    (3)在右侧输入模型名称、在DBMS下拉列表中选择DBMS类型、在First diagram下拉列表中选择Physical Diagram

    2)正向工程:从CDM/LDM生成PDM

    3)逆向工程:从现有DB 逆向生成PDM

    正向工程和逆向工程生成PDM会单独整理成一片文章,这篇不做说明。

    1.8 PDM 生成脚本:

           PDM我们最终是需要导入我们的数据库中去。 PDM 可以生成不同数据库对应的sql语句,或者直接讲脚本部署到数据库中,这个在generate database 的时候可以进行选择。

           一般是先生成sql 脚本,然后到数据库里执行sql脚本。

    二.     PDM 使用示例

    2.1 创建新的PDM

    2.2 设置PDM的显示参数

    Tools --> Display Preferences

     

    2.3 设置PDM的模型属性(一般在发布资源或者提交设计的时候需要设置)

    Model –> Model Properties

     

    2.4 设置PDM模型选项

    Tools--> Model Options

     

    2.5 创建表

    使用PD 的工具面板,选中表后,在工作区创建一个表,右击释放表,在双击表,进行编辑工作。

    2.6 表列以及其设置

    2.7 详情设置

    2.8 标准检查约束

    2.9 完成了一个表的设计

    创建参照完整性(参照是父表和子表间的连接,定义了两个表中对应列间的参照完整性约束,外键联系主键,两者之间建立参照)

     

    根据参照连接的对应性质的差别,可将连接分成键连接和用户指定的列连接:

    1)键连接:把父表中的主键或候选键连接到子表中的外键上;

    2)用户指定的列连接:把父表中的一个或多个列连接到子表中相应的列上;(比较少用)

    2.10 设置两个表之间的关系(设置两个表之间的参照)

    2.11 连接主键、候选键和外键,或者在用户指定的列之间建立连接

    2.12 定义参照完整性

     

    2.13 域设置(有助于识别信息的类型,使得不同表中列的山上特性标准化,通过域可以将数据类型、检查规则、强制性等信息关联到域上)

    Model --> Domains

     

    2.14 重建表中的键

    Tools --> Rebuild Objects

     

    2.15 创建索引

    双击表,打开编辑,选中对应的列,在点属性(第二步)。

     

    2.16 创建视图

    Oracle 视图(View) 说明

    http://blog.csdn.net/tianlesoftware/article/details/5530618

    在工具面板选中视图后,创建一个视图。双击视图,打开配置。

     

    在SQL Query页面,定义视图的SQL语句

    1、Union合并两个或多个Select语句,数据不重复;

    2、Union All合并两个或多个Select语句,数据可重复;

    3、Intersect合并两个或多个Select语句,数据显示交集;

    4、Minus合并两个或多个Select语句,数据显示补集;

    单击Query栏右边Edit编辑SQL

    完成实例

     

    三.     生成sql脚本

    一般来说都是先画出CDM的E-R,然后将CDM 转成PDM。 PDM 中的对象与我们库中的对象一致。

           对于PDM 的部署有两种方法:

    (1) 生成SQL 脚本

    (2) 直接将脚本部署到数据库上,即直接在库上把我们的对象创建好

    Database --> Generate Database, 弹出如下窗口:

     

    Script generation: 是生成SQL 脚本,one file on是否需要按照表生成许多个sql(默认选上,即不需要)

    Direct generation: 是直接在数据库中执行脚本,这2者只能选一个。 一般直接生成SQL 脚本。

    Automatic archive:   生成sql同时生成apm文件。

    Check model:powerdesigner有定义每种数据库的表名、字段名等名字的最大长度的,该长度用于powerdesigner作check model的,但是该定义的长度和数据库实际允许的长度不一定相同,如果你希望能通过pd的检查,可以修改pd中的设置(pd对不同数据库的这种约定实际是在保存在一个xml文件中,扩展名为.xdb)!或者你可以直接在生成数据库时选择不check model.

  • 相关阅读:
    测试数据不会造?Fake Data!
    Go面试题汇总
    数据存储的 timestamp 时间正确 但是 Laravel 取出来的时间慢的 8 小时(Lumen timezone 时区设置方法(慢了8个小时))
    nginx php和html伪静态
    laravel DB操作
    深度学习_tensorflow-gpu安装:Win10-64bit+ NVIDIA GeForce MX150
    clickhouse SQL查询语句 【译自Github 英文文档】
    ELK(ElasticSearch, Logstash, Kibana)搭建实时日志分析平台
    elasticsearch max virtual memory areas vm.max_map_count [65530] is too low, increase to at le
    Pycharm 一键加引号
  • 原文地址:https://www.cnblogs.com/dead-trap-ramble/p/3585746.html
Copyright © 2011-2022 走看看