1、数据库建模工具简介Power Designer9.0,华迪实训基地 Version:1.0,内容,课程 授课形式 重点、难点 授课内容 习题思考 信息反馈,受训对象,数据库应用专业实训学生,课程,总课时:180分钟 授课大纲:,重点、难点,一、掌握概念数据模型理论基础中实体、联系和域的概念。 二、利用 Power Designer工具建立具体需求的概念数据模型和物理数据模型。,一、Power Designer 概述,1.1 、 认识Power Designer 过去的软件开发过程往往缺乏规范.开发的软件也没有详细的文档. 为了提高软件质量,降低维护难度,加强重复使用率,让开发人员、分析 人员、
2、测试人员、数据库管理人员、管理人员以及用户相互沟通,使系 统发挥最大综合效率,世界各大数据库厂商和第三方合作开发出了智能 化的计算机辅助软件工程(computer aided software engineering, 简称 CASE)工具. 在此领域中,Rational公司的 Rational Rose 擅 长以UML(Unified Modeling Language) 构造模型,具备严谨的方法 论,但技术偏高.PLATIUM公司的Erwin擅长以E-R(Entity Relationship)建立实体联系模型,并具有版本控制功能.Sybase 公司 的Power Designer 则集U
3、ML与E-R 精华于一体,更能迎合市场潮流.,1.2 、 Power Designer 分析设计过程.分析设计人员利用Power Designer 可建立三类模型,即面向对象模型(Oriented Object Model,简称OOM)、概念数据模型(Conceptual Data Model ,简称CDM) 、物理数据模型(Physical Data Model,简称PDM),期中OOM包括用例图、时序图、及类图.最终产生如下图深色部分的五种结果,即模型仓库(Repository) 、模型报告(Report) 、数据库SQL脚本、用户数据库结构及应用程序代码.程序开发人员利用模型报告(Rep
4、ort) 、数据库SQL脚本、用户数据库结构及应用程序代码.结合应用程序开发工具(如PB 、VB 、c+ 、c# 、java等)和数据库管理系统(Database Management System,简称DBMS)开发出符合要求的软件.完成软件分析设计通常采用三种途径:一条是从面向对象分析设计开始,依次建立用例图、时序图、及类图,由类图转化为CDM及PDM;第二条路径是从结构化分析设计开始依次产生流程分析设计模型(Process Analysis Model ,简称PAM),CDM,PDM及类图,第三条路径是前两种途径的结合.,一、Power Designer 概述,PowerDesigner
5、,用例图,面向对象模型,流程分析模型,概念数据模型,物理数据模型,数据库SQL脚本,程序开发人员,Java,Vb,XML 等应用程序,模型文档,类图,时序图,DBMS (模型仓库),DBMS (用户数据结构),固化,Odbc提取,odbc,一、Power Designer 概述,1.3、Power Designer的三级建模功能. 面向对象建模.UML是一种标准的图形化建模语言,是面向对象分析设计的一种标准表示 ,并为不同领域的人们提供统一的交流标准.UML共有九种图,PD9支持其中重要的三种图形,这三种图形描述了系统的静态结构及内部对象的相互关系.UML中的类图可以转换为概念数据模型(CDM
6、)或物理数据模型(PDM),为信息的存储建立了数据结构,同时,类图还可以转换为C#,C+,IDL-CORBA,JAVA,PB和VB代码框架,为应用程序的编制奠定了良好的基础. 概念数据建模概念数据建模是建模的重要阶段,它把现实世界中的信息抽象成实体 和联系来产生实体联系图(E-R模型).这一阶段为高质量的应用提供坚实 的数据结构基础.,一、Power Designer 概述,概念数据建模通过实体和属性以及这些实体间的关系(E-R模型)表明 系统内部抽象的数据结构,概念数据建模与模型的实现方法无关.物理数据建模物理数据建模把CDM与特定DBMS的特性结合在一起,产生PDM.同一个CDM结合不同的
7、DBMS产生不同的PDM.PDM中包含了DBMS的特征,反映了主键(Primary Key)、外键(Foreign key) 、 候选键(Alternative) 、视图(View) 、索引(Index) 、触发器(Trigger) 、存储过程(Stored Procedure)等特征.物理数据模型是后台数据库应用蓝本,直接针对具体的DBMS( 如Microsoft sql server 2000).PDM可由CDM转换得到,其中实体(Entity) 变为表(table),属性(Attribute)变为列(Column),同时创建主键和索引,CDM中的数据类型映射为具体DBMS中的数据类型.,
8、一、Power Designer 概述,2.1 、概念数据模型的理论基础。Power Designer的概念数据模型以实体联系(Entity-Relationship,简称E-R)理论为基础,并对这种理论进行了扩充,建立了概念数据模型,它与数据库管理系统无关,CDM的建立是一个比较复杂的过程,需要考虑众多因素,使用CDM,可以把主要精力集中在分析设计上,先不考虑很多物理实现的细节,只考虑实体和实体之间的联系,通过模型的内部生成,可把CDM转化为物理模型(PDM),也可转化为面向对象的模型(OOM)的类图。实体实体是现实世界中可区别于其它对象的“事件”或“物体“,它可能是有形的或无形的、具体或抽
9、象的、有生命或无生命的。例如,,二、建立概念数据模型,学校中的每个学生是一个实体,医院中的每个手术也是一个实体。每个实体有一组性质,称为实体的属性,用来描述实体的特征。例如,某个学生,姓名:王丽,性别:女,学号:902801,出生日期:1976年11月30日,这一组具体的性质表示了王丽实体。实体也称实例。实体集(Entity Set)实体集是相同类型及相同性质实体的集合。例如,银行所有客户的集合可定义为实体集“客户”,“客户”实体集中的每个实体具有帐号、户名、密码、余额等性质。实体型( Entity Type )实体型是实体集中每个实体所具有的共同性质的集合。例如,“患者”实体型为:患者门诊号
10、,姓名,性别,年龄,身份证实体是实体型的一个实例,在含义相同的情况下,实体(实例)、实体型通常互换使用。实体型中的每个实体都有用来唯一标识它的一个或一组属性,,二、建立概念数据模型,这些属性称为实体型的标识符(Identifier)。例如,“学号”是学生实体型的标识符;“姓名” 、“出生日期” 、“住址”共同组成“公民”实体型的标识符。有些实体型有几组属性可以充当其标识符,其中选定一组标识符作实体型的主标识符(Primary Identifier),其它的标识符称为次标识符(Secondary Identifier)。例如,“学生”实体型中“学号”或“姓名、班级、出生日期”一般都可作为“学生”
11、实体的标识符,如果选择“学号”作主标识符,那么“姓名、班级、出生日期”就是次标识符。主标识符只能有一个,但次标识符可能有多个。联系 实体可以通过联系(Relationship)相互关联,与实体和实体集对应, 把联系区分为联系和联系集,联系集是实体集之间的联系,联系是实体之间的联系,联系具有方向性。联系和联系集在含义明确的情况下都称为联系。按照实体型中实例之间的数量对应关系,通常可将联系分为四类,即一对一(One to One)联系、一对多(One to Many)联系、多对一(Many to One)联系、多对多(Many to Many)联系。,二、建立概念数据模型,A实体集中的一个实体至多
12、同B实体集中的一个实体相联系,B实体集中的一个实体至多同A实体集中的一个实体相联系,这种联系称为一对一联系。如图a所示。A实体集中的一个实体可以同B实体集中任意数目的实体相联系, 而B实体集中的一个实体至多同A实体集中的一个实体相联系,这种联系称为一对多联系。如图b所示。A实体集中的一个实体至多同B实体集中的一个实体相联系,而B实体集中的一个实体可以同A实体集中任意数目的实体相联系,这种联系称为多对一联系。如图c所示。A实体集中的一个实体可以同B实体集中任意数目的实体相联系,B实体集中的一个实体可以同A实体集中任意数目的实体相联系,这种联系称为多对多联系。如图d所示。多对多联系在现实生活中普偏
13、存在,但在数据库系统中难以实现,所以在实际设计时要把一个多对多联系分解为两个一对多联系。例如,“学生”实,二、建立概念数据模型,a1,a2,a3,a4,A,a1,a2,A,a1,a2,a3,a4,A,b1,b2,B,b1,B,b1,B,B,a1,a2,a3,a4,A,a5,(a)一对 一联系,(b)一对 多联系,(d) 多对 多联系,(c)多对 一联系,二、建立概念数据模型,体集与“课程”实体集之间存在多对多的联系如图e所示。可以把这种联系转化成两个一对多联系。在转化过程中,产生一个“选课”实体集,通常称为“中间实体”,在中间实体上可以增加其他属性,如“成绩”属性,如图f所示。这样,学生”实体
14、集与“选课”实体集是一对多联系,“课程”实体集与“选课”实体集也是一对多联系。,图e 多对多联系,图f 多对多联系转换成两个一对多联系,二、建立概念数据模型,实体集与实体集之间还存在递归联系(Recursive Relationship)、标定联系(Identify Relationship)、非标定联系(Non-identify Relationship).同一实体型中不同实体集之间的联系称为递归联系,有时也称为自反联系。例如,“学生”实体集中的实体隐含地包含“班长”实体集与“普通学生”实体集,这两个实体集之间的联系称为递规联系,如图g所示。每一个实体型都有自己的标识符,如果两个实体集之间发
15、生联系时其中一个实体型的标识符进入另一个实体型并与该实体型中的标识符号共同组成其标识符时,这种联系称为标定联系,也叫依赖联系。一个实体型的标识符进入另一个实体型后充当非其标识符时,这种联系称为非标定联系,也叫非依赖联系。如图h所示,图g递规联系,二、建立概念数据模型,域 域是一个取值范围,定义域后可以被多个实体的属性共享使用,域的定义在模型设计中具有重要意义。例如,可以定义一个Name域,使它的,表示强制,标定联系,图h 联系的表示方法,表示可选,非标定联系,二、建立概念数据模型,数据类型为char(8),在模型设计中,记载“姓名”的属性可能包含在多个实体中,使用了Name域的所有“姓名”属性
16、,一旦修改Name的定义,使用该域的所有“姓名”的定义也会随之改变。 E-R模型的扩展 E-R模型的扩展用来更恰当地表述现实世界中信息之间的另外一些特殊关系。扩展E-R模型的特性: 特殊化、概化和继承。实体集中可能包含一些子集,子集中的实体在某些方面区别于实体集中的其它实体。例如,实体集中的某个实体子集可能具有一些自己独有的属性。因此有必要在实体集内部进行分组。在实体集内部分组并把这些分组存放在不同的实体型中的过程叫实体集的特殊化,从多个实体集的公共属性抽象出一个公共实体型的过程叫实体集的概化。通过特殊化或概化方法产生的实体型之间存在分类关系,这种分类关系叫继承,也叫继承联系(Inherita
17、nce Relationship).继承联系的一端连接具有普遍性的实体集,叫父实体集,简称父实体; .继承联系的另一端连接具有特殊性的一个或多个实体集,称为子实体集,简称子实体。例如,“帐户”为,二、建立概念数据模型,“存款帐户”与“”支票帐户“的父实体,”存款帐户“与”支票帐户“为”帐户“的子实体。如果父实体中的一个实例只能出现在一个子实体中,这种继承称为互斥性继承,如果父实体中的一个实例能同时出现在多个子实体中,这种继承称为非互斥性继承。例如下图,(A)中“帐户”父实体与“个人帐户”子实体、“商业帐户”子实体的继承为互斥性继承,因为“帐户号”为01的实例出现在“个人帐户”中时,“商业帐户”
18、中不会再有“帐户号”为01的实例。(B)中,“职工”是“干部”与“教师”的父实体,“职工号”为01的实例出现在“干部”中时,也同时可以出现在“教师”中,所以“职工”父实体与“干部”、“教师”子实体的继承为非互斥性继承。Power Designer 中把信息的最小单位称为数据项(Data Item).例如,姓名、性别、规格等都可以定义为数据项,如创建一个实体“职工”时,可把姓名、性别等数据项添加到“职工”实体型中,它们变为“职工”实体型的属性。数据项保留在模型中,可在任何时候添加到一个或多个实体型上。如果数据项不存在,可直接在实体型中创建属性,创建的属性自动成为数据项。因此数据项和属性不同,数据
19、项可以重用,但属性不能重用。,二、建立概念数据模型,帐户,职工,个人帐户,商业帐户,干部,教师,(A)互斥性继承,(B)非互斥性继承,二、建立概念数据模型,2.2、Power Designer 中的E-R模型。Power Designer 中的E-R模型有三种表示法,即Entity-Relationships 、Merise和Mixed.在Power Designer 中,实体用长方形表示,长方形分上、中、下三个区域,每个区域用以代表实体的不同特征。上面区域书写实体型的名称,中间区域书写实体型的属性,下面区域显示标识符。中间区域属性名的后面显示属性的标识符和数据类型等特征,pi表示主标识符,a
20、i表示次标识符,M表示强制(Mandatory),表示该属性不能为空值(not null),如图:,属性名,实体名称,强制,实体数据类型,主标识符,次标识符,二、建立概念数据模型,联系用实体间的一条连线表示,在靠近实体的两端标明联系的基数(cardinality),A实体型中的一个实体通过“联系”与B实体型中相联系的实体最小和最大数,称为A实体型到B实体型的基数,这个基数标注在A实体型的旁边。同样, B实体型到A实体型连线的基数标注在B实体型旁,如图:,系到学生联系的基数,学生到系联系的基数,在联系线上,用“乌鸦脚”表示“多”;用小圆圈表示“可选”;用与联系线交叉的短竖线表示“强制”,在上图的
21、E-R模型中,实体型“系”与实体型“学生”之间存在一对多联系,基数0,n表示一个系拥有0个或n个学生,基数1,1表示一个学生属于一个系,并且只能属于一个系。,二、建立概念数据模型,2.3、建立CDM创建CDM首先应该明确模型所描述的业务问题。例如,需要存储那些信息,与业务有关的实体有那些,业务流程如何,了解这些问题后,才可以开始建立CDM.创建新的CDM.打开现存的CDM。定义CDM显示参数和模型选项。CDM的模型选项包括Model和Naming Convention两大类,其中Model用来设置整个模型的选项; Naming Convention用来设置每类对象的命名约定。 定义CDM的基本
22、特性。 2.4 、定义业务规则。业务规则是业务活动中必须遵守的规则,是业务信息之间约束的表达式,二、建立概念数据模型,它反映了业务信息数据之间的一组完整性约束,每当信息实体中包含的信息发生变化时,系统都会检查这些信息是否违反了特定的业务规则。在CDM生成PDM或OOM的过程中,业务规则被直接传递到PDM或OOM中。这些业务规则不会自动转换为可执行的业务规则代码,生成新的模型后,需要进一步细化和形式化这些业务规则。业务规则的类型。 Power Designer可定义五种不同类型的业务规则,其中只有Validation类型的业务规则才能生成数据库中的业务规则和客户端应用程序中的业务规则。,二、建立
23、概念数据模型,业务规则的特性 创建业务规则 使用业务规则的表达式。 2.5、定义CDM中的域域定义了一个标准的数据结构,可以应用到多个数据项或属性中。修改,二、建立概念数据模型,域时,将修改所有使用该域的数据项,这样,修改模型时,将使数据特征标准化和模型一致化。CDM中可在域上定义三类信息,第一类是数据类型、长度及小数点精度,第二类是检查参数,第三类是业务规则。CDM中域的特性创建域为域选择数据类型修改域特性强制域与数据项不分离 2.6 、定义数据项如果把一个数据项(Data item) 联系到实体上,这个数据项就成为实体的属性。也可以只定义一个数据项,但不把它联系到一个实体。一个数据项根据模
24、型选择的不同,可在模型中唯一或者只在部分实体中唯一。,二、建立概念数据模型,数据项特性 创建新的数据项 删除数据项 从数据项列表中拷贝数据项 定义数据项的唯一性代码选项和重用选项 把数据项联接到域上 为数据项选择数据类型 设定数据项列表的显示顺序 2.7、定义实体在设计信息系统时,应能根据业务需求确定出要创建的实体,确定实体属性及实体标识,确定业务规则,并把业务规则联系到实体上。,二、建立概念数据模型,实体特性 创建新实体 修改实体属性 复制实体 创建实体快捷方式 实体的显示选项 定义实体属性 把实体属性关联到域上 为实体属性选择数据类型 实体属性的强制与可选 删除实体属性,二、建立概念数据模
25、型,排列实体属性列表 创建关联实体 指定标识符 把业务规则附加到实体上 2.8、定义联系联系( Relationship)是实体集之间或实体集内部实例之间的连接,定义联系是CDM中最为关键的技术。一个完善的CDM应该有易于理解的名称和代码,还应该有对联系的简要说明,在联系中因该正确的理解角色(Role)和基数(cardinality)的概念。联系的特性创建联系在联系中定义基数,二、建立概念数据模型,联系具有方向性 ,每个方向上都有一个基数(Cardinality).定义角色定义强制联系定义依赖联系定义支配联系显示和排列联系列表修改联系的图形 2.9、定义继承继承用来定义实体之间的分类关系.继承
26、可以互斥.当一个继承是互斥的意味着子实体不能同时拥有同一个实例.继承的特性,二、建立概念数据模型,创建继承关系定义继承的特性定义生成模式选项和定义实体的标识属性定义检查约束参数 检查约束参数是一组确保数据有效的表达式.有三种类型的检查约束参数,即Standard Check参数、Additional Check参数和Validation Rule 参数. Standard Check参数定义数据一般范围的数据约束,如,一个列的最大和最小值,能够联系到实体属性和(或)域上. Additional Check参数,SQL表达式使用%MINMAX%,%LISTVAL%和%Rules%变量来定义标准参
27、数值.从而定义数据约束,能够联系到实体属性和(或)域上. Validation Rule 作为一个服务器端表达式定义的业务规则,并联系到相应的对象、实体、 实体属性和(或)域上.,二、建立概念数据模型,设置标准检查约束参数定义其他检查参数在检查参数中使用有效性规则 2.10、定义模型选项 1、 表示法选项 Power Designer中E-R模型有三种表示方法,即Entity/Relationships,Merise和Mixed,Merise表示法使用关系 (Association)与关连连接(Association Link) 代替Entity/Relationships表示方法中的联系(R
28、elationship).Mixed表示法在同一模型中同时使用Entity/Relationships表示方法与Merise表示法.下面是Merise表示法中关联的定义.关联的作用与符号表示,二、建立概念数据模型,关联与关联连接的特性. 创建关联连接 创建递归关联 定义关联连接的基数 定义依赖关系 把关联转换成关联实体 定义关联的属性 在关联符号中显示文本2、设置数据项选项和联系选项3、域和属性选项. 2.11 、CDM检查选项,二、建立概念数据模型,建立CDM的过程中,任何时候都能检查CDM的正确性.CDM必须遵守的基本准则是:每一个实体的名称和代码必须唯一,每一个实体必须至少包含一个属性,
29、以及每个联系必须连接至少一个实体.检查CDM时可以设置要检查的每个实体参数的问题严重性级别,也可以设置系统检查出问题时采用自动更正还是手工更正这些问题.问题严重性级别,严重级别分为Error和Warning两种.Error 是模型致命的问题,系统会阻止CDM生成PDM或OOM, Warning是模型中不太合理的问题,发现模型中存在这类问题时,系统给出提示信息. 设置问题严重性级别的方法. 选择检查参数. 选择需要检查的对象 2.12、检查CDM中的对象系统对如下CDM对象进行检查: Package,Domain,Data Item,Entity,二、建立概念数据模型,Entity Attrib
30、ute,Entity Identifier,Relationship,Association, Inheritance和File Object包检查包中不能存在循环依赖联系 包中不能存在强制循环联系域检查 域名和代码必须唯一 默认值与列表值必须在最大值与最小值之间 数值型数据类型总长度必须大于小数位长度 应该定义域的数据类型 不应该有无效的数据类型,二、建立概念数据模型,数据项检测 数据项名称和代码必须唯一 不应存在未使用的数据项 重复使用的数据项特性应该一致 数据项和域不应该分离 默认值与列表值必须在最大值与最小值之间 数值型数据类型总长度必须大于小数位长度 应该定义数据项的数据类型 不应该
31、有无效的数据类型 实体检测 实体名称和代码必须唯一,二、建立概念数据模型,实体名称和代码的长度不能超过254个字符 实体必须包含属性 在一个实体中最多只能有一个serial 类型 必须存在标识符 必须存在联系 不应该有多余的继承 多重继承检测 多重继承的父对象检测 实体属性检测 实体标识符检测 实体标识符名称和代码必须唯一,二、建立概念数据模型,必须至少有一个属性 一个标识符不能包含另一个标识符 联系检查 联系名称和代码必须唯一 不能存在自反依赖联系 不能存在自反强制联系 两个实体间不能存在双向联系 多对多联系的名称不能与实体的名称相同 依赖联系不能是支配联系 关联检查 关联名称和代码必须唯一
32、,二、建立概念数据模型,一个关联有至少两个连接 如果一个关联中有依赖连接,连接数只能为2 一个关联与实体间的关联连接至多能有一个依赖连接 关联必须有特性 两个实体之间不能存在双向关联 最大基数检查 实体间不能存在自反依赖连接 多对多关联和实体不能使用相同的名称 继承检查 文件实体嵌入的文件名必须唯一,二、建立概念数据模型,模型中外部文件的路径与名称必须存在 2.12、 检查整个CDM 2.13 、CDM生成PDM在CDM生成PDM过程中,对象之间进行相应的转换.实体属性转换为表 的列时,表中的两列不能重名,如果由于外键迁移发生冲突,系统自动为这些 迁移的列更名,列名由实体名的前三个字母加上属性
33、的代码构成.标识符与联系的转换 主标识符生成PDM中的主键和外键,次标识符生成候选码.CDM中的联 系所定义的依赖类型和基数决定键的类型非依赖的一对多联系在非依赖的(非标定)的一对多联系中,联系连接“一”端实体与“多”端实,二、建立概念数据模型,“一”端实体的主标识符转换成两项,一项是该实体生成的表的主键,另一项是“多”端实体生成的表的外键。 依赖的一对多联系在依赖联系中,非依赖实体的主标识符转换成依赖实体生成的表的主建列和外建列。如果依赖实体本身存在主标识符,则依赖实体的主标识符也将转换成它生成的表的主键列,两个主键列联合用做依赖实体生成表的主键。非依赖多对多联系 在非依赖多对多联系中,两个
34、实体的主标识符迁移到一个新表(中间表)中,同时做该表的主键和外键。 非依赖一对一联系在非依赖一对一联系中,一个实体的主标识符迁移到另一个实体生成另一个实体生成的表中做外键。 2) 继承连接的实体生成表,二、建立概念数据模型,有两个因素影响从拥有继承连接的实体中生成的表,一是实体的特性Generate,二是继承连接的特性Generate Mode 继承连接中只有父实体生成表在Generate mode 中只选择Generate parent 复选框时 继承连接中子实体生成表在Generate mode 中只选择Generate Children 复选框和Inherit all attribute
35、s单选按扭时 继承连接中的父实体和子实体都生成表,二、建立概念数据模型,3.1 物理数据模型理论基础power designer中的物理数据模型(Physical Data Model,简称PDM)以常用的38种数据库管理系统(Database Management System简称DBMS)理论为基础, power designer为每一种DBMS产生了一个扩展名为xdb的定义文件,用户还可根据实际需要产生新的DBMS定义文件。当建立新的PDM或由CDM生成PDM时,必须选择一种DBMS的定义文件,这些文件是PDM生成数据库SQL脚本的语法模板与语言规范。,三、建立物理数据模型,建立PDM的
36、主要目的是把CDM中建立的现实世界模型生成特定DBMS的SQL脚本,以此在数据库中产生信息的存储结构,这些存储结构是存储现实世界中数据信息的容器,并保证数据在数据库中的完整性和一致性。数据库SQL脚本根据DBMS的不同而不同,其中包括三类数据库语言:数据定义语言(Data Definition Language,简称DDL)、数据操纵语言(Data Manipulate Language,简称DML) 和数据控制语言(Data Control Language,简称DCL).3.1.1 PDM与DBMS的关系DBMS是对数据进行存储、管理、处理和维护的数据库系统软件,它的基本目标是提供一个可以
37、方便地、有效地存取数据库信息的环境。一个PDM实际上是一个特定DBMS的SQL脚本,这个SQL脚本能够在特定的DBMS中建立用于存放信息的数据结构(表、 约束等)。通过SQL解释执行器,能够在用户数据库中建立PDM设计的数据结构,也可将PDM直接生成到用户数据库中。,三、建立物理数据模型,PDM与DBMS的关系如下图:,DBMS世界,Power Designer 世界,SQL解释执行器,生成特定DBMS的SQL脚本,DBMS定义文件,PDM,ODBC,用户数据库,三、建立物理数据模型,3.1.2 PDM中的主要概念表(table):是数据库中用来保存信息的一种数据结构。表可分为长期保存信息的表
38、和临时表,长期保存信息的表是PDM中设计的主要对象,临时表是在DBMS运行时在内存中建立的表,主要存放中间交换数据,DBMS停止运行后,临时表自动消失。临时表不是PDM的设计对象。在PDM中建立表的过程,就是产生建表SQL语句的过程。PDM中的表可以由CDM中的实体通过模型的内部生成而产生。列(COLUMN):是组成表的基本单元,一个表由多个列组成,每个列都有一个数据类型。CDM中的实体属性通过模型内部生成可以转换成PDM中表的列。视图(VIEW):是从一个或多个基本表或其他试图中导出的表,它可以形象地被看做是一个活动窗口,在数据库中通过它可以看到自己感兴趣的内容。但是试图和基本表不同,它是一
39、个虚表,即其对应的数据并不独立的存放在数据库中,数据库中只存储试图的定义,正因为如此,虽然试图创建后类似与基表,可以被查询、删除或用来定义新的视图,但通过它修改数据却,三、建立物理数据模型,有很多限制,即使仅仅用做查询也有一些地方予以注意。主键(Primary Key):是用来唯一标识表中一条记录的一个或多个列的集合,它是由CDM中的主标识符转换产生的,它也是create table语句的重要组成部分。候选键(Alternate Key):也是用来唯一标识表中一条记录的一个或多个列的集合,它与主键具有同样的作用,它是由CDM中的次标识符转换产生的。外键(Foreign Key):是与其他表连接
40、的公共列,这个列通常是其他表的主键。存储过程(Stored Procedure):是由SQL语句和控制流语句构成的语句串(语句集合),它能够带有参数,调用其他过程,返回一个状态值给调用者表示成功或失败,返回一个参数给调用者,还能够在远程数据库服务器中运行。存储过程的设置大大提高了SQL的能力、效率和灵活性具体表现在:,三、建立物理数据模型,a. 存储过程与原始SQL语句或批处理SQL语句的最大区别在于它是预编译好的b. 如果本地数据库服务器和远程数据库服务器都允许远程登录,那么本地就可以执行其他数据库服务器上的存储过程。c. 存储过程简化了安全机制,它可以简化对某些操作的授权。d. 存储过程把
41、用户和应用程序与数据源 、网络和存取路径细节隔离开,使得非专业人士对数据库服务器的数据访问变得更加方便。触发器:是一种特殊的存储过程,它在某特定表的数据被添加、删除或更改时发挥作用。触发器通过维护不同表中逻辑上相关数据的一致性来维护数据的完整性,包括参照完整性。触发器的一个主要优点在于当数据被修改时它自动的进行工作。触发器的主要用途如下:a. 能够对数据库多个有关表的内容进行级联修改,即删除父表中的某些记,三、建立物理数据模型,录是可以将子表中相应的记录删除。b.当违反参照完整性时,触发器能撤回试图进行数据修改的事务。c.触发器能够实施比规则复杂的多的限制。d.触发器还能比较数据修改前后某表的
42、状态,并采取相应的行动。默认:当用户没有为某一列赋值时,数据库服务器为该列自动插入的值即为默认值(default).规则(rule):就是在数据库的管理中指定的允许或不允许哪些值插入某些列。默认和规则共同帮组系统维护数据完整性。默认和规则能够与列和用户定义的数据类型联系在一起。默认和规则同样可由有效性业务规则来完成,但是有效性业务规则只适用于特定的表。而无法将其与其他的表或用户定义的数据类型联系起来。,三、建立物理数据模型,完整性检查约束完整性是指数据库中数据的正确性和一致性。通过对数据库中插入、删除和修改数据值进行限制和约束来实现数据的完整性,数据库提供两种保持数据完整性的方法:一是在定义表
43、时定义完整性约束;二是定义规则、约束、索引和触发器。完整性约束提供了在创建表的同时定义完整性控制的手段,从而简化了完整性控制的过程,但是完整性约束的范围相当窄,而且不像默认、规则、索引以及触发器那样容易理解。在数据库服务器上能够创建如下三种类型的完整性约束:a.唯一性和主键(Unique 和Primary Key)约束。该约束要求同一表中的任意两行在某一或某些列上不能具有相同的值。另外,主键约束还要求在指定的列上不允许空值。b.参照完整性(Reference)约束。该约束要求插入某一或某些指定列的数据必须已存在与被指定表的列中。,三、建立物理数据模型,c.检查约束(check).该约束限制了能
44、够插入列中的数值。另外,通过限制空值的使用和提供列的默认值也可以进行数据完整性控制。表级和列级的完整性约束只在声明时语法略有不同:列级约束应放在当做分隔符的逗号之前,即列名和数据类型之后的位置。在表级约束则应作为独立的由逗号分割的语句。数据库服务器以同样的方式处理表级和列级约束,涉及到多列的约束必须作为表级约束处理。索引数据列和数据类型定义了包括在表中的数据的类型,索引却描述了数据在表中是如何组织的。可创建一个或多个索引来加快数据库的查询速度,索引对用户是透明的,数据库自动确定何时使用表的索引。一般数据库系统支持如下三种索引类型: a. 组合索引,这类索引牵涉到多个数据列。b.唯一索引,这类索
45、引不允许在索引列上有重复值,数据库服务器在索引,三、建立物理数据模型,产生和数据插入时自动检查是否有重复值。c.聚簇索引和非聚簇索引。聚簇索引要求数据库服务器按索引列队对数据进行排序,使得数据行的物理顺序和其逻辑顺序一致,因此,每个表上只允许一个聚簇索引;非聚簇索引不要求逻辑顺序和物理顺序一致,每一非聚簇索引可为用户提供不同的数据访问顺序。在列上建立索引是为了数据库的查询速度,一个表的所有者,可以在其表上为bit,text或image类型之外的其他列上创建和删除索引。库函数: 每一种DBMS都提供了很多库函数,包括系统函数、字符串函数、处理文本和图象值函数、数学函数、日期函数和转换函数。逆向工
46、程(Reverse Engineering)是指从现存的数据库或数据库SQL脚本中生成PDM的过程。 3.2 建立PDM概述3.2.1建立PDM方法a.使用设计环境直接建立PDM的方法。,三、建立物理数据模型,b.从数据库SQL脚本逆向工程建立PDM . C.打开已存在的PDM . 3.2.2 定义PDM的显示参数。 3.2.3 定义PDM的模型特性。 3.3 PDM中的业务规则在PDM中,业务规则的类型、特性及建立业务规则的方法与CDM中完全相同。使用业务规则有三种基本方法:对PDM的表应用业务规则;为业务规则建立表达式,生成到数据库中;把业务规则表达式插入到触发器或存储过程中。3.3.1
47、对PDM的表应用业务规则3.3.2 业务规则上附加表达式。 3.4 定义PDM中的表PDM中的表与DBMS中存储数据的表是同一个概念。在PDM设计中可以通,三、建立物理数据模型,过表的特性窗口定义表的相关信息。3.4.1 表的特性PDM中的表包括Name,Code,Comment,Owner,Number,Generate, Type等基本特性。,三、建立物理数据模型,3.4.2 建立表。 3.4.3 修改表特性。 3.4.4 定义表检查约束的名称。 3.4.1 表的特性在PDM中,使用域有助与识别信息的类型,易于使不同表中列的数据特征标准化。域为列定义了一组有效的值。域特征创建域指定域的数据
48、类型、长度和精度修改域特性 3.6 定义表中的列PDM中列等同与数据库表的列。需要为每个列指定名称、代码及数据类型,三、建立物理数据模型,数据类型可以从列表中直接选择,也可以把列附加到域上。列特性创建列创建计算列创建序列选择列的数据类型把列拷贝到其他表上设置列的强制非空属性命名列约束 3.6 定义表中的键键是表中可以唯一识别一条记录的一个或多个列的集合。每个键都可以,三、建立物理数据模型,在目标数据库中生成唯一索引或唯一约束。PDM支持三种类型的键:主键、候选键和外键。定义主键定义外键定义候选键为键的约束命名 3.7 定义参照及参照完整性 参照是父表和子表之间的连接,它定义了两个表中列队(Co
49、lumn Pairs)之间的参照完整性约束,列队是指主键(候选键)与外键或两个表中用户指定的两个列。当参照连接列队后,子表中列的每一个值都引用父表中相应列的值。在参照中,列队使用JOIN连接,根据主键、候选键、外键中包含的列的个数,一个参照可以包含一个或多个JOIN.,三、建立物理数据模型,通常在主键或候选键和外键之间建立参照。根据参照连接的列队性质的不同,可把连接分成键之间的连接和用户指定列之间的连接。键之间的连接把父表中的主键或候选键连接到子表中的外键上;用户指定列之间的连接把父表中的一个或多个列连接到子表中相应的列上。参照的特性定义参照相关的模型选项(如下表)列的自动常用和迁移创建参照定义参照连接更改参照连接的表重建参照使用参照完整性,三、建立物理数据模型,参照的模型选项,三、建立物理数据模型,三、建立物理数据模型,子表中包含匹配列的两个表,三、建立物理数据模型,子表中的匹配列已经是外键列,三、建立物理数据模型,子表中包含匹配列并且已经是外键的自动迁移结果,三、建立物理数据模型,根据模型选项默认建立的连接,三、建立物理数据模型,参照完整性选项对子表的影响,