posts - 297,  comments - 1618,  trackbacks - 0
文:阿蜜果
日期:2015-6-25
请勿转载

6.1物理数据模型简介

6.1.1 PDM的概念

     PDM模型依赖于使用者想要使用的数据库管理系统(DBMS)的类型,使用者可以在Power Designer中使用不同的DBMS类型。PDM模型的示意图如下图所示:


PDM模型的示意图

   在上图中:

  (1)可操作的PDM:可以使用PDM模型设计一个可操作的数据库,通常情况,在数据建模时,物理模型建模在CDM模型或LDM模型建模之后,它将细化一个实际的数据库实现的细节,以便适应性能和物理限制。

  (2)商业智能PDM:可以使用PDM模型来设计数据环境的结构,包括:

Ø 数据仓库或数据集市数据库:包括可操作的数据库中填入的数据,以及可能需要在联机分析处理数据库中使用的所有信息。可以使用PDM模型来设计数据仓库或数据集市数据库,这些数据库通常包括存储了非常大型的数据,可以为OLAP数据库中多重结构的预览的数据库表定义类型。

Ø 多维的OLAP数据库:这通常是封装了数据,首先被聚集在数据仓库和数据集市(虽然有时是直接从操作数据库传输),并促进组织的信息查询通过不同的工具。业务分析师使用OLAP数据库发送查询,并从数据库中现有的不同维度的信息检索业务,使用者可以使用PDM多维图表来设计OLAP数据库中不同维度和不同web的内容。

Power Designer支持DBMS,超过50种,例如OracleMySQLMicrosoft SQL ServerDB2Informix等常见的DBMSPower Designer支持的DBMS如下图所示:



Power Designer支持的DBMS列表

6.1.2 PDM的作用

       PDM模型的主要作用:

   (1)可以完成多种常用数据库的物理模型设计;

   (2)可以根据当前的PDM模型设计生成SQL脚本或数据库;

   (3)可以逆向从SQL脚本或连接数据库生成PDM模型;

   (4)可以转换为XML模型、OOM模型、CDM模型或LDM模型;

   (5)可以简便的从一个数据库移植到另一个数据库;

   (6)可以方便的从一种DBMS类型变更为另一种DBMS类型;

   (7)可以预估数据库的规模;

   (8)可以定义测试数据;

   (9)可以定制生成标准的模型报告。

6.1.3 PDM的基本术语

CDM模型的实体、属性、主标识符、候选标识符、联系和域等基本术语相对应,PDM模型中包括表、字段、主键、候选键、外键和域等基本术语。另外,PDM模型还具有与数据库管理系统相关的索引、视图、存储过程、存储函数、触发器、参照和序列等。

1、表

       表是存储数据库信息的基本单位,它以行和列的方式表示数据,它主要包括如下对象:

     1)列:某个表的命名属性,用于描述表的特征。

2)索引:基于表的一种特殊的数据结构,它在逻辑上基于键的值排序,常用于提高查询速度。

3)键:可以是列或列的组合,用来唯一标识表的唯一行。每个键将创建一个唯一索引或者一个目标库的唯一约束。

4触发器:表的一个SQL代码段,存储在数据库中,当尝试对相关的表视图做修改或查询操作时触发器被自动被调用。

2、列

       列通常被称为字段,它用于表示一行数据中特别的一个数据项。当定义一列时,必须指定namecode属性,而且需要选择数据类型,可以从众多数据类型中选择,也可将某列绑定到域。

3、主键、候选键和外键

       一个键可以是某一个列或列的组合,它唯一的标识表中的一行。每个键会创建一个唯一索引,或者到指定数据库的一个唯一的约束。

       PDM模型支持如下三种键:

   (1)主键:可以由某一个列或多个列组成主键,在表中主键能唯一标识某行。需要注意的是,一个表只能有一个主键。

   (2)候选键:可以由某列或多个列组成候选键,在表中候选键能唯一标识某行。可以包括多个候选键,而且不能与主键列一致。

   (3)外键:可以由某列或多个列组成外键键,外键的值需要是另一个表的主键或候选键。

4、索引

   基于表的一种特殊的数据结构,它在逻辑上基于键的值排序,常用于提高查询速度。一般在一些访问有规律,而且对时间要求高的列上创建索引,索引在包含唯一值的一到多个列上最为高效。

   索引分为如下三种类型:

   (1)唯一索引:不会有两条索引具有相同键值。

   (2)非唯一索引:可能有多条索引具有相同键值,不对索引列的属性值进行唯一性约束。

   (3)复合索引:在多个列上创建的索引。

5、默认值

       默认值指的是数据库系统中某个列或某个域的默认值。例如为会员表的“state”(状态)字段设定默认值为0

6、域

       域帮助识别模型中信息的类型。它定义某个列或实体属性的有效值。使用域有利于列或实体属性的标准化,它提取不同表中某些相同列的共性。

   在PDM模型中,域定义时可以包括如下信息:

   (1)数据类型、数据长度和精度;

   (2)检查参数;

   (3)业务规则;

   (4)强制性约束。    

7、视图

       视图是从查询一个表或多个表数据的一种特定方式,它是一个表或多个表的列的集合。

视图又被称为虚拟表,视图并不在数据库中以存储的数据值集形式存在,数据库中仅仅只有存储视图的定义,从数据库系统内部来看,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改和删除操作等。

   视图的优点:

   (1)安全性:通过视图用户只能查看和修改其所能看到的数据,其它数据库或表既不可见也不可以访问。如果某一用户想要访问视图的结果集,必须为其授予访问权限。视图所引用表的访问权限与视图权限的设置互不影响。

   (2)简化用户对数据的操作:在定义视图时,视图本身就是一个复杂查询的结果集,这样在每一次执行相同的查询时,不必重新写这些复杂的查询语句,只要一条简单的查询视图语句即可。可见视图向用户隐藏了表与表之间的复杂的连接操作。

3)定制数据视图能够实现让不同的用户以不同的方式看到不同或相同的数据集。因此,当有许多不同水平的用户共用同一数据库时,这显得极为重要。

4)合并切分数据:在有些情况下,由于表中数据量太大,故在表的设计时常将表进行水平切分或垂直切分,但表的结构的变化却对应用程序产生不良的影响。如果使用视图就可以重新保持原有的表结构关系,从而使外模式保持不变,原有的应用程序仍可以通过视图来重载数据。

8、存储过程

       存储过程是在大型数据库管理系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库管理系统中,用户通过指定存储过程的名字并给出输入参数(如果该存储过程带有参数)来执行存储过程。存储过程是数据库中的一个重要对象,一个设计良好的数据库应用程序可以用到存储过程。

   存储过程的优点:

      1)安全性:参数化的存储过程可以防止SQL注入式攻击,而且可以将GrantDeny以及Revoke权限应用于存储过程。

   (2)重复使用:存储过程可以重复使用,从而可以减少数据库开发人员的工作量。

   (3)提高性能:存储过程在创建的时候在进行了编译,将来使用的时候不再重新翻译。一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率。

   (4)减少网络流量:存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数,因此降低了网络传输的数据量。

   存储过程的缺点:

   (1)调试问题:调试比较麻烦,但是某些工具软件可以弥补这个缺点。

   (2)移植问题:存储过程代码可能与相应数据库系统和版本相关,如果存在换数据库系统类型的可能性,可能造成移植工作量的大幅增加。

   (3)重新编译问题:因为存储过程代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时自动编译)。

9、存储函数

       存储函数与存储函数类似,两者的唯一区别是存储函数总是向调用者返回数据,而存储过程则不返回数据。

10、触发器

       触发器与存储过程类似,触发器是存储在数据库管理系统中为完成某个特定功能而编写的程序块。触发器与存储过程的区别在于,存储过程需要显式调用,而触发器可以由特定事件自动触发,它是隐式调用。

       触发器一般分为以下几类:

       1DML触发器:由DML语句触发,例如INSERTUPDATEDELETE语句。按照触发时间,DML触发器又被分为BEFORE触发器和AFTER触发器,分别表示在DML事件发生之前还是发生之后调用触发器。又可分为语句触发器和行级触发器,前者针对某一条语句触发一次,而后者针对语句所影响的每一行都触发一次。例如某条DELETE语句删除某个表的50行数据,针对该DELETE事件的语句级触发器将被触发一次,而行级触发器将被触发50次。

       2DDL触发器:由DDL语句触发,例如CREATEALTERDROP语句。按照触发时间,DDL触发器又被分为BEFORE触发器和AFTER触发器。

   (3)替代触发器:用于执行一个替代操作来代替触发事件的操作。例如针对INSERT事件的INSTEAD OF触发器,当出现INSERT语句时,该语句不会被执行,而是执行INSTEAD OF触发器中定义的语句。该类触发器只能创建在视图上,而且不能指定BEFOREAFTER处罚时间选项。

       4)系统事件触发器:发生在数据库启动或关闭等系统事件时触发器,例如数据库服务器的启动或关闭、用户的登录和退出,或者数据库服务错误等。

11、检查参数

       检查参数是对数据保证有效性的一系列条件的集合。

有三种类型的检查参数:

   (1)标准检查参数:可用在列和实体属性中,指定数据列的范围,例如指定数据的最大值和最小值等。

   (2)附加检查参数:可用在列和实体属性中,使用SQL表达式来限制,可使用具化的标准参数值,例如%MINMAX%%LISTVAL%%RULES%等变量。

       3)验证规则:可用在表、实体、列或实体属性中,用于指定业务规则。

12、业务规则

       业务规则是具体业务的规则,可以按照政府约定、客户需求或内部指导文件进行指定。例如客户等级分为6个等级。在设计的过程中,可以将这些约定细化,例如约定1表示普通客户……6表示高级大客户等。

       业务规则指引或文档化模型的创建过程。例如“会员只能属于一个区域”的规则能够帮助设计人员创建会员和区域的关联关系。

       业务规则不好被图形化,Power Designer中的业务规则使用信息对图形模型进行补充。例如某些规则指定表格公式或有效性规则,这些技术表达式无法使用图形表示出来。

13、完整性约束

   数据库完整性是指数据库中数据的正确性、有效性和相容性。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。数据库完整性约束可以通过DBMS应用程序来实现,基于DBMS的完整性约束作为模式的一部分存入数据库中。

   完整性约束分为如下三类:

  (1)实体完整性:指表中行的完整性。主要用于保证操作的记录非空、唯一且不重复。即实体完整性要求每个表有且仅有一个主键,每一个主键值必须唯一,而且不允许为NULL或重复。

  (2)参照完整性:若属性组F是关系模式R1的主键,同时F也是关系模式R2的外键,则在R2的关系中,F的取值只允许两种可能:空值或等于R1关系中某个主键值。

  (3)用户自定义完整性:包括列的值域、列类型和列有效规则(如小数位数)等约束,是由确定关系结构时所定义的字段的属性决定的。例如,百分制成绩的取值范围在0~100之间等。

14、用户

   为了保护数据库中各类数据的安全,不同的数据库管理系统提供了不同的安全管理措施。例如:用户(Usser)、用户组(Group)、角色(Role)、系统权限(System Privilege)和对象权限(Object Premission)等,以此保障数据库管理系统的安全。

   用户(User)是指能连接到数据库的一个用户。用户可以归属于一个特定的用户组(Group)或角色(Role),也可以归属于一个公共用户组。

   用户可以同时拥有系统权限(System Privilege)和对象权限(Object Premission),用户的权限是这两类权限的合集。系统权限指的是用户针对某一类数据库对象或数据库管理的操作权利,例如创建表、创建数据库、连接数据库和删除数据库等。对象权限是指用户对某个数据库对象的操作权利,例如对“会员表”的查询、插入、删除和更新操作权限等。

15、同义词

  同义词(Synonyms)又称为数据库对象的别名(Alias),同义词与其源对象具有相同的对象属性,一个数据库对象可以有多个同义词。
posted on 2015-06-24 14:57 阿蜜果 阅读(2669) 评论(0)  编辑  收藏 所属分类: database架构师之路

只有注册用户登录后才能发表评论。


网站导航:
 
<2015年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

      生活将我们磨圆,是为了让我们滚得更远——“圆”来如此。
      我的作品:
      玩转Axure RP  (2015年12月出版)
      

      Power Designer系统分析与建模实战  (2015年7月出版)
      
     Struts2+Hibernate3+Spring2   (2010年5月出版)
     

留言簿(262)

随笔分类

随笔档案

文章分类

相册

关注blog

积分与排名

  • 积分 - 2280228
  • 排名 - 3

最新评论

阅读排行榜

评论排行榜