合并法实现继承关系投影的优点是实现简单,操作方便,缺点是会产生大量的数据冗余。
(2)分解法 分解法就是将每个具体子类映射成单个关系表,超类的属性将复制到各子类中。子类对应的关系表包括自身的属性和继承的属性,每个具体的子类包含各自的对象标识。抽象的基类不参与映射。其中,Person由于是抽象类,未映射成数据库表;而Student、Teacher映射为相应的表,它们具有各自的主键。如图4所示。
分解法的表中包含了具体子类的所有信息,操作实现简单,但超类的修改会导致相对应的表及其子类所对应表的更改,这会增加保持数据的完整性的复杂性。
(3)单表法 单表法为每一个类创建数据库表,表中包含特定于该类的属性和对象标识。图5所示,注意personID作为所有表的主键,它们之间是is-a的关系。
单表法与面向对象的概念具有一致性,支持多态,易于修改基类和增加新的类。但数据库中存在大量的关系表,加上表之间的关联较多,会降低数据访问效率。
以上三种方法各有优缺点,没有一种是绝对完美的。因此,数据库设计人员要根据模型的具体情况选择继承的投影方法。
5 结束语
本文介绍的对象模型的关系投影原理已经用于多个项目的对象数据平台的开发上,简洁实用。由于对象模型到目前为止还没有统一的标准,因此对象模型向关系模型的投影规则要根据实际模型的定义来制定。在实际的投影规则定义中,名字的转换规则、聚集的处理方式、对象之间的引用关系、继承处理方式可以根据需要确定下来,也可以设计成多种方式并存,建立可控制的投影,这需要设计一整套投影规则元模型。建立一套可描述对象模型、关系模型、投影规则的形式语言规则和语法规则在理论上和应用上具有重要意义,这也是我们目前正在研究的重点。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说计算机对象模型的关系投影研究(3)在线全文阅读。
相关推荐: