Data Base学习记录:PowerDesigner

PowerDesigner概述

  • PowerDesigner是Sybase公司推出的一个集成了企业架构分析、UML(统一建模语句)和数据建模的工具。它不仅可以用于系统设计和开发的不同阶段(即业务分析、概念模型设计、逻辑模型设计、物理模型设计以及面向对象开发阶段)。
  • PowerDesigner包含9个模型,其中概念数据模型(Conceptual Data Model,CDM)、逻辑数据模型(Logical Data Mode,LDM)、物理数据模型(Physical Data Model,PDM)常用于数据库建模设计
  • 概念数据模型,主要在系统开发的数据库设计阶段使用,是按用户的观点来对数据和信息进行建模,利用实体关系图(E-R图)来实现。它描述系统中各个实体以及相关实例之间的关系,是系统特性的静态描述。
  • 物理数据模型是以常用的DBMS(数据库管理系统)理论为基础,将CDM中所建立的现实世界模型生成对应的DBMS的SQL语句脚本,利用该SQL脚本在数据库中产生现实世界信息的存储结构(表、约束等),并保证数据在数据库中的完整性和一致性。
  • 面向对象模型,是利用UML(统一建模语言)的图形来描述系统结构的模型,它从不同角度表现系统的工作状态。这些图形有助于用户、管理人员、系统分析员、开发人员、测试人员和其他人员之间进行信息交流。

概念数据模型

什么是概念数据模型

CDM表达的是数据库的整体逻辑结构,该结构独立于任何软件和数据存储结构,即它只是系统分析人员、应用程序设计人员、维护人员和用户之间相互理解的共同语言,并不针对具体的数据库平台(如Oracle或SQL Server)和工具(PowerBuilder)

基本概念

实体及属性

  • 实体是现实世界中可区别于其他对象的“物体”,它可能是有形或无形的,具体或抽象的,有生命或无生命的。
  • 每个实体有一组特征,成为实体的属性,用来描述实体的状态和特征

联系

  • 实体可以通过联系(Relationship)相互关联
  • 按照实体之间的数量对应关系,通常可将联系分为:一对一联系(One to One)、一对多联系(One to Many)、多对多联系(Many to Many)等

域是某个或某些属性的取值范围,定义域后可以被多个实体的属性共享使用,域的定义在模型设计中具有重要意义,使得不同实体中属性标准化更加容易

建立概念模型

创建CDM

  • 选择File-New Model菜单项
  • 在左侧模型类型列表中选择Conceptual Data Model
  • 在右侧输入模型名称

创建CDM对象

  • 创建实体
  • 创建实体属性
  • 创建联系
  • 创建域
  • 定义数据项

定义显示参数和模型选项

  • 定义显示参数。打开CDM模型,选择Tool-Display Preferences命令
  • 定义模型选项。打开CDM模型,选择Tool-Model Options命令

检查CDM

域检查

  • 域名和代码必须唯一
  • 默认值于列表值必须在最大值与最小值之间
  • 数值型数据类型总长度必须大于小数位长度
  • 应定义域的数据类型
  • 不应有无效的数据类型

检查数据项

  • 数据项名称和代码必须唯一
  • 不应存在未使用的数据项
  • 重复使用的数据项特性应一致
  • 默认值与列表值必须在最大值与最小值之间
  • 数值型数据类型总长度必须大于小数位长度
  • 应定义数据项的数据类型
  • 不应有无效的数据类型

检查实体

  • 实体名称和代码必须唯一
  • 实体名称和代码的长度不能超过254个字符
  • 实体必须包含属性
  • 在一个实体中最多只能有一个自增加数据类型
  • 必须存在标识符。一个实体必须有至少一个标识符
  • 不应有多余的继承
  • 多重继承检查

检查实体属性

  • 在实体属性检查过程中,主要检查实体属性名称和代码是否唯一

检查实体标识符

  • 实体标识符名称和代码必须唯一
  • 必须有至少一个属性
  • 一个标识符不能包含另一个标识符

检查Relationship

  • 联系名称和代码必须唯一
  • 不能存在自反依赖联系。自反依赖意味着一个实体集中一个实例与另一个实例相互依赖,这是不允许的
  • 不能存在自反强制联系
  • 两个实体间不能存在双向联系
  • 多对多联系的名称不能与实体的名称相同

检查Association

  • 关联名称和代码必须唯一
  • 一个关联有至少两个连接
  • 一个关联与实体间的关联连接至多能有一个依赖连接
  • 实体间不能存在自反依赖连接
  • 多对多关联和实体不能使用相同的名称

管理CDM

由CDM生成LDM

  • LDM是PowerDesigner15的新增模型,用于完成信息系统的逻辑设计。虽然LDM仍然是独立于DBMS的,但却可以进行外键、索引、视图等对象的设计工作
  • 打开CDM模型,选择Tool-Generate Logical Data Model
  • 在CDM生成PDM之前必须选择一种DBMS作为目标数据库
  • 打开CDM模型,选择Tool-Generate Physical Data Model命令
  • 当从CDM生成OOM时,将CDM中的对象和数据类型转换成UML语言支持的OOM对象和数据类型
  • 打开CDM模型,选择Tool-Generate Object-Oriented Model命令

物理数据模型

什么是物理模型

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

基本概念

  • 表(Table)是数据库中用来保存信息的一种数据结构。在PDM中建立表的过程,就是产生建表的SQL语句的过程。PDM中的表可以由CDM中的实体转换生成

  • 列(Column)是组成表的基本单元,一个表由多个列组成,每个列都有一个数据类型。CDM中的实体属性通过模型内部生成可以转换成PDM中表的列。

主键

  • 主键(Primary Key)是用来唯一标识表中一条记录的一个或多个列的集合,它是由CDM中的主标识符转换产生的,也是CREATE TABLE语句的重要组成部分

候选键

  • 候选键也是用来唯一标识表中一条记录的一个或多个列的集合,它与主键有相同的作用

外键

  • 外键(Foreign Key)是与其他表连接的公共列,这个列通常是其他表的主键。

视图

  • 视图是从一个或多个基本表或其他视图中导出的表。在数据库中通过它可以看到自己感兴趣的内容。但是视图与基本表不同,它是一个虚表,即其对应的数据并不独立地存放在数据库中,数据库中存储的只是视图的定义

索引

  • 数据列和数据类型定义了包括在表中的数据类型,索引则描述了数据在表中是如何组织的,可以创建一个或多个索引来加快数据库的查询速度。索引对用户是透明的,数据库自动确定何时使用表的索引。
  • 组合索引:这类索引牵涉到多个数据列
  • 唯一索引:这类索引不允许在索引列上有重复值
  • 聚簇索引和非聚簇索引:聚簇索引要求数据库服务器按索引列对数据进行排序,使得数据行的物理顺序和逻辑顺序一直,
  • 因此,每个表上只允许一个聚簇索引,非聚簇索引不要求逻辑顺序和物理顺序一直,每一非聚簇索引可以为用户提供不同的数据访问顺序

存储过程

  • 存储过程(Stored Procedure)是由SQL语句和控制流语句构成的集合。存储过程的建立大大提高了SQL的效率和灵活性
  • 存储过程与原始SQL语句的最大区别在于它是预编译好的
    此外在客户/服务器环境下,存储过程经过编译和优化后存储在服务器端而不是客户端,这样在网络上传输的只是一个远程调用和最终的执行结果
  • 存储过程简化了安全机制,它可以简化对某些操作的授权

触发器

  • 触发器(Trigger)是一种特殊的存储过程,它在某特定表的数据被添加、删除或更改时发挥作用。触发器通过维护不同表中逻辑上相关数据的一致性来维护数据的完整性,包括参照完整性。触发器的一个主要优点在于当数据被修改时它自动地进行工作

完整性检查约束

  • 唯一性和主键(Unique和Primary Key)约束。该约束要求同一表中的任意两行在某或某些指定列上不能具有相同的值,另外,主键约束还要求在指定的列上不允许空值。
  • 参照完整性(Reference)约束。该约束要求插入某个或某些指定列的数据必须已存在于被指定表的列中。
  • 检查约束(Check)。该约束限制了能够插入列中的数值。

创建PDM

  • 新建PDM
    选择File-New Mode菜单项,在左侧模型类型列表中选择Physical Data Model在右侧输入模型名称,在DBMS下拉列表中选择DBMS类型,在First diagram下拉列表中选择Physical Diagram
  • 从CDM/LDM生成PDM

创建PDM对象

  • 创建表
  • 创建列
  • 创建域
  • 创建主键
  • 创建候选键
  • 创建外键
  • 创建完整性
  • 检查约束
  • 创建视图
  • 创建索引
  • 创建存储过程
  • 创建触发器

检查PDM

表检查

  • 表名和代码必须唯一
  • 表名和代码不能超过DBMS规定的长度
  • 约束名与索引名不能冲突。约束和索引不能使用同一个名称
  • 一个表中应该存在列、参照、键和索引
  • 一个表中自增益列的数量不能超过1

列检查

  • 列名和代码必须唯一
  • 列代码不能超过DBMS规定的长度
  • 键列或唯一性索引列必须是强制的
  • 默认值与列表值必须在最大值和最小值之间
  • 数字型数据类型的总长度必须大于小数位长度
  • 应该为列定义数据类型
  • 外键列与连接的主键列或候选键列必须有一致的数据类型
  • 约束名必须唯一
  • 序列的列必须是键列
  • 增益的列必须是数字型数据类型
  • 计算列必须有表达式

索引检查

  • 索引名与代码必须唯一
  • 索引代码长度不能超过DBMS规定的长度
  • 一个索引应该至少包含一个列
  • 一个表中应该存在列、参照、键和索引
  • 不能出现索引嵌套,一个索引不能包含另一个索引

键检查

  • 键名和代码必须唯一
  • 键代码长度不能超过DBMS规定的长度
  • 一个键应该至少有一个列
  • 键不能嵌套,一个键不能包含另一个键
  • 序列不能包含在多列组成的键中

域检查

  • 域名和代码必须唯一
  • 域代码长度不能超过DBMS规定的长度
  • 默认值与列表值必须在最大值与最小值之间
  • 数字型数据类型的总长度必须大于小数位长度
  • 应该为域定义数据类型

参照检查

  • 参照名和代码必须唯一
  • 参照代码长度不能超过DBMS规定的长度
  • 一个参照至少有一个参照连接
  • 参照的连接顺序必须与键列的顺序相同

触发器、视图、存储过程检查

  • 触发器名称和代码必须唯一
  • 触发器代码长度不能超过DBMS规定的长度
  • 视图名称和代码必须唯一
  • 视图代码长度不能超过DBMS规定的长度
  • 存储过程必须包含实现功能的程序代码

数据库的生成与修改

  • 利用PDM完成系统的详细设计后,即可直接将设计的结果生成到数据库中从而实现设计与开发的统一
  • PowerDesigner使用ODBC开放式数据库连接性访问不同的DBMS中的数据库。要访问数据库,就必须建立一条通向用户数据库的通道,这条通道称之为ODBC数据源

使用ODBC接口

  • 只有在与用户数据库正确连接后,才能把设计的PDM生成到数据库中。数据结构生成到用户数据库中,用户才能在这些结构中保存信息与检索信息
  • 在PDM窗口中选择Database-Connect命令,打开Connect to a Data Source窗口连接用户数据库
  • 数据库连接成功后,选择Database-Connection Information命令,可以查看有关连接数据库的信息
  • 选择Database-Disconnection命令可以断开当前用户与数据库的连接

生成数据库

  • PowerDesigner设计的PDM模型可以直接生成到数据库中,也可以把PDM生成某个数据库SQL脚本
  • 选择Database-Generate Database命令,打开Database Generation窗口生成数据库

生成测试数据

  • 使用PowerDesigner能够为数据库的表中生成测试用数据
  • 要在数据库中生成测试数据,必须在PDM中设定测试数据的描述文件(Data Profile)。描述文件定义了生成测试的数据类型和生成方式。描述文件可以选择Number, Character和Data/Time 3种数据类型
  • 选择Model-Test Data Profiles命令,打开List of Test Data Profiles窗口,创建描述文件。
  • 在Table Properties(表属性)窗口,选中要定义填充参数的列,在列属性窗口中定义列填充参数。
  • 选择Database-Generate Test Data命令打开Test Data Generation(测试数据生成)窗口,生成测试数据

访问数据库

  • 选择Database-Change Current DBMS命令,打开Change the Target DBMS窗口,改变当前PDM的DBMS
  • 在PDM中右击一个表图形符号,从弹出的快捷菜单中选择View Data命令,打开Execute SQL Query窗口,单击Run按钮即可查询数据库表内的数据
  • 选择Databse-Excute SQL命令,打开SQL语句执行窗口,在其中输入符合当前DBMS语法的SQL语句,单击Run按钮即可查看SQL语句的执行结果

PDM逆向工程

  • PDM中的逆向工程是指从现有的DBMS的用户数据库或现有数据库SQL脚本中生成PDM的过程,即实现由现有数据库的物理结构导出其物理设计的过程
  • 选择File-Reverse Engineer-DataBase命令

猜你喜欢

转载自blog.csdn.net/m0_49564079/article/details/115169329