CDM和PDM的区别?

CDM和PDM的区别?
 
概念数据模型(CDM)
信息系统的概念设计工具,即实体-联系图(E-R图),CDM就是以其自身方式来描述E-R图。此时不考虑物理实现的细节,只表示数据库的整体逻辑结构,独立于任何软件和数据存储结构
物理数据模型(PDM)
PDM考虑了数据库的物理实现,包括软件和数据存储结构。
PDM的对象:表(Table)、表中的列(Table column)、主码和外码(Primary & Foreign key)、参照(Reference)、索引(Index)、视图(View)等。
 

下面通过创建一个CDM项目的过程来谈一下我对CDM的认识
1. 创建一个CDM项目,设置其属性。
2. 定义域(Domain):一般在开始之前,我们要为CDM模型定义一些域,域的作用有些像元数据,它定义了某一类数据的数据结构。通过定义一个域,你就定义了一种数据结构,你可以在项目中引用它。这样做的好处时,一旦你改动了一个域的属性,整个项目中所有引用处都跟着改变。例如,你定义一个名称为my_money的域,数据类型为money,整数位数为8,小数位数为3。你在数据项(DataItem)pay和get中引用了money的域后,该数据项的数据类型自动变为money。如果某一天你增加money类型的小数位数,那么你只需要改一下my_money这个域,所有引用了my_money这个域的数据项的数据类型都将改变。
3. 建立实体:建立一个实体后,设置属性,修改名称,增加attributes,每一个attribute在CDM中就是一个数据项(DataItem),转换成PDM后就像当于表中的一个字段。在属性栏里你可以对任意一个attribute设置它的一些特性。分别是DataType,Domain,M,P,D。DataType就是数据类型,如果引用了域就不需要设置。Domain就是引用域。M,P,D分别是:是否必填,是否为主键,是否可显,这三个属性可多选,当你选择P后,M也自动选择,同时在Identifiers里也多出一个标识符。标识符的作用也比较大,在relationship中,是以它为对应。
4. 建立联系(relationship):选择relationship后进行拖拉可在两个实体间建立一种联系,双击联系将显示其属性,可在其中设置两个实体之间的关系,这些关系包括,一对一,一对多,多对一,多对多。例如,class表和student表,是一对多关系,这种一对多的实体关系转换成PDM后,第一个实体的主键将做为第二个实体的外键存放,例如class表的主键class_id将作做studuent的外键。
5. 建立子模型:子模型相当于我们平时所说的实体关系表,ER图中的菱形部分。子模型用在多对多关系中。如class表和teacher表,它们之间就是一个多对多关系,为实现这两个实体之间的联系就需要建立一个子模型,建立子模型用association link将多个实体联系起来。PDM中子模型也是一个物理表,与它联系的每个实体的主键都是子模型表的字段。同时子模型也可以增加一些其它的attribute。
6. 建立继承关系:继承关系与我们在编程中的继承类似,以父实体为基准,所有子实体将拥有父实体中的所有attribute。子实体中可定义其它attribute,以区别于其它子实体。(对继承关系的应用我有些糊涂,在ER图中也找不到其对应的模式。关于其父表是否有存在的价值,我与同事探讨了一下,没有结果。还望各位高手不惜赐教。)
posted @ 2009-05-27 16:45  Alamps  阅读(17042)  评论(0编辑  收藏  举报