对象模型的关系投影研究(1)(2)
2015-05-25 01:45
导读:(2)属性 对具有基本数据类型的属性,投影成列。这需要在对象模型与关系模型的各种数据类型之间建立对应关系。基本数据类型指整型、实型、字符串、
(2)属性 对具有基本数据类型的属性,投影成列。这需要在对象模型与关系模型的各种数据类型之间建立对应关系。基本数据类型指整型、实型、字符串、日期、时间、布尔。如果对象模型采用枚举类型需要在关系模型中对列进行取值范围限定。其它复杂数据类型如聚集、结构类型则需要采用专门的处理方法。
(3)主标识、对象标识。对象标识在对象模型中并不需要明确地表示成对象的一个属性,采用的方式是在每一个与实体对应的关系表中都增加一个列,并把该列作为主键,数据类型为字符串,对象标识的格式为:实体名 表中唯一序列号。之所以把对象标识作为主键,是因为要把实体之间的引用采用以对象标识作为主键/外部键来实现的。这样原来的主标识就不能投影成主键了。在有的关系数据库中允许使用辅助键,如果没有辅助建则只能对原来的主标识投影成的列加上唯一性约束规则。
(4)实例 实例不属于模型投影的内容,但与投影的操作有密切关系。如果一个实体投影成多个表,则一个实例将由多个关系表的行构成。这些行必须具有相同的对象标识。
(5)聚集 如果聚集的元素类型是基本数据类型,可以考虑投影成二进制类型。如果元素类型是实体类型,这实际上构成了该实体与元素所指向实体之间多对多的引用关系,具体可参照第3节。
(6)类型定义 主要指自定义结构类型,需要将结构的域投影成单个的列。
(7)唯一性规则。转换为关系表的唯一性约束规则,当唯一性规则中包括的属性投影成多列时,注意要将多个列均包括在关系表的唯一性约束定义中。
(8)Where规则 转换成关系表的条件约束规则。
(9)名字转换规则 实体名转换成表名,属性名转换为列名,数据类型的域展开为列时,需要有一套名字转换规则。
3、对象之间引用关系的投影[3]
如果从纯粹的建模技术角度来看,对象之间的关系有以下几种: