备注:文章主要对概念数据模型进行深入分析
1.对各种模型图初步认识
1.1.概念数据模型 (CDM) (Conceptual Data Model)
对数据和信息进行建模,利用实体-关系图(E-R图)的形式组织数据,检验数据设计的有效性和合理性。
与具体的数据管理系统(Database Management System,简称DBMS)无关。概念数据模型必须换成逻辑数据模型,才能在DBMS中实现。
1.2.逻辑数据模型 (LDM) (Logical Data Model)
PowerDesigner 15 新增的模型。逻辑模型是概念模型的延伸,表示概念之间的逻辑次序,是一个属于方法层次的模型。具体来说,逻辑模型中一方面显示了实体、实体的属性和实体之间的关系,另一方面又将继承、实体关系中的引用等在实体的属性中进行展示。逻辑模型介于概念模型和物理模型之间,具有物理模型方面的特性,在概念模型中的多对多关系,在逻辑模型中将会以增加中间实体的一对多关系的方式来实现。
逻辑模型主要是使得整个概念模型更易于理解,同时又不依赖于具体的数据库实现,使用逻辑模型可以生成针对具体数据库管理系统的物理模型。逻辑模型并不是在整个步骤中必须的,可以直接通过概念模型来生成物理模型。
1.3.物理数据模型 (PDM) (Physical Data Model)
基于特定DBMS(数据库系统),在概念数据模型、逻辑数据模型的基础上进行设计。由物理数据模型生成数据库,或对数据库进行逆向工程得到物理数据模型。
每一种逻辑数据模型在实现时都有其对应的物理数据模型。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作由系统自动完成,而设计者只设计索引、聚集等特殊结构。
最常用的一种数据库模型,模型是针对某种数据库系统而设计。
1.4.面向对象模型 (OOM) (Objcet Oriented Model)
包含UML常见的所有的图形:类图、对象图、包图、用例图、时序图、协作图、交互图、活动图、状态图、组件图、复合结构图、部署图(配置图)。OOM 本质上是软件系统的一个静态的概念模型。
1.5.业务程序模型 (BPM) (Business Process Model)
BPM 描述业务的各种不同内在任务和内在流程(工作流),而且客户如何以这些任务和流程互相影响。BPM 是从业务合伙人的观点来看业务逻辑和规则的概念模型,使用一个图表描述程序,流程,信息和合作协议之间的交互作用。
1.6.企业架构模型 (EAM) (Enterprise Architecture Model)
从业务层、应用层以及技术层的对企业的体系架构进行全方面的描述。包括:组织结构图、业务通信图、进程图、城市规划图、应用架构图、面向服务图、技术基础框架图。
2.深入学习概念数据模型图
在PowerDesigner中,定义表关系有三种,分别是:
补充说明:除此之外,还有一种单个表之间的关系——自反( Reflexive ),Reflexive 使用Relationship图标,
实际上可以理解成∶数据库表的关系有4种。
为了说明各种表定义关系,则创建以下一个概念数据模型图(CDM):
2.1.关系(Relationship)-重点理解
2.1.1.一对多
2.1.1.1.“—”端的Mandatory (强制)
"—"端是没有Dependent依赖的。
1)选中Mandatory,表示“一”端的每一条记录(班级),都至少有一个“多”端的记录(学生)对应,即,一个班级至少要有一名学生;
2)不选中 Mandatory,表示,一个班级,可以是空班级,可以没有学生(比如招生前夕),也可以有多个学生。
2.1.1.2.“多”端的Mandatory (强制)
Mandatory选项,对一对多关系中“多”的这端,选中和不选中的区别是︰
创建的SQL语句:选中了,表示“多"端的表中的外键不能为空;没选中,表示“多”端的表中的外键可以为空;
举例∶选中了,学生必须属于某个班级﹔没选中,表示学生可以暂时不属于任何一个班级(比如降级还没有分班的学生)
2.1.1.3.“多”端的Dependent(依赖)
Dependent(依赖)选项,对一对多关系中“多”的这端,选中和不选中,区别如下︰
SQL语句∶选中,"多”端的外键跟自己的主键一起成为主键﹔否则,外键只是外键,生成的物理模型图是︰
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cgnSo5xW-1693154998102)(PowerDesigner学习笔记.assets/image-20230828002337344.png)]
举例∶选中Dependent,表示:班级的ID传递给学生之后,既是学生表的外键,又跟学生表的学号一起构成学生表的主键﹔
如果没有选中,那班级的ID传递给学生表,仅仅作为学生表的外键。
备注说明:"—"端是没有Dependent依赖的。
2.1.2.多对多
多对多的Dependent和Mandatory的意思跟一对多的意思是一样的。所不同的是,多对多的关系,会在生成物理模型的时候,自动生成一张表,原表和新表之间是两个一对多的关系。
比如︰学生和老师的关系,概念模型是︰
生成物理模型之后,就是︰
2.1.3.一对一
选择“Dominant role”:一对一的Relationship,最重要的选项是“Dominant(支配义,A“支配”B,表示:A的主键传递给B,但是B的主键不传递给A;
如果不选择“Dominant”,表示,A的主键要传递给B,并且,B的主键也要传递给A。
对于一对一中的Mandatory和Dependent,跟一对多的情况一样。备注:一对一的表间关系,很容易跟继承、关联混淆。
2、继承(Inheritance )
所谓继承,看本文开头部分举的例子,教师和学生都有共同的字段——姓名、性别、年龄——教l师和学生都是“人”,他们的属性是从“人”继承来的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HvKIQTWB-1693154998104)(PowerDesigner学习笔记.assets/image-20230828004017378.png)]
在概念模型中,子表没有主表的字段,生成物理模型之后,主表的全部字段全部复制到子表中。
3、关联(Association)
Association关系,就是两个实体之间的多对多关系,一般这种情况下会增加一个中间实体,这就是前面“Relationship”中的“一对多”。
此外,在Power Designer中,提供了一个专门的符号来对应,叫做“Association"关联,需要注意的是,“Association”只是为了方便直观地表示这种类型的实体而设置的一个图标,他其实还是实体。
使用一个普通的实体,定义多对多关系,和使用"Association”图标定义多对多关系,两者相比,使用“Association”更方便、直观,使模型更容易理解,并可以减少因不谨慎而可能导致的错误。
下面的是概念模型:
生成物理模型之后︰
需要足以的是,针对Association,PowerDesigner专门提供了一个图标用于设置这种关系︰
4、自反(Reflexive)
如上图中的领导。领导本身是老师,每个老师都有一个领导。这种关系就是自反关系。
这种关系下,Mandatory、Dependent的设置,跟一对多的Relationship关系是一样的。
5、总结
① —张表跟自己的关系,是Reflexive (自反);
② 一张表的主键和字段全部传递给另一张表,是Inheritance(继承);
③ 一张表只把自己的主键传递给另一张表,是Relationship(关系)和Association(关联),其中,Relationship可以是一对一、一对多、多对多;Association只能是多对多;
④ Mandatory(强制)选项,选中了,表示:一张表的主键传递给另一张表,作为后者的外键,并且不能为空﹔
⑤ Dependent(依赖)选项,选中了,表示:一张表的主键传递给另一张表,作为后者的外键,并且不能为空;并且与它原来的主键,一起构成它的主键;
⑥ Dominant (支配)选项,只针对一对一的情况,选择A“支配”B,表示:A的主键传递给B,但是B的主键不传递给A;如果不选择“Dominant”,表示,A的主键要传递给B,并且,B的主键也要传递给A。
本文开始给出的概念模型,生成物理模型后,是下面的样子∶
项,选中了,表示:一张表的主键传递给另一张表,作为后者的外键,并且不能为空;并且与它原来的主键,一起构成它的主键;
⑥ Dominant (支配)选项,只针对一对一的情况,选择A“支配”B,表示:A的主键传递给B,但是B的主键不传递给A;如果不选择“Dominant”,表示,A的主键要传递给B,并且,B的主键也要传递给A。
本文开始给出的概念模型,生成物理模型后,是下面的样子∶