第2章 数据库系统的数据模型 联系客服

发布时间 : 星期六 文章第2章 数据库系统的数据模型更新完毕开始阅读

类层次结构的一个重要特性是超类、子类经及对象间的继承性,继承性避免了一些冗余信息。一个子类继承了其超类的所有性质,且这种继承具有传递性。

继承性又分为单重继承和多重继承,单重继承指每个子类有且仅有一个超类,如果子类有多个直接超类,则子类要从多个直接超类继承属性和方法,这种继承称为多重继承。

在类继承时,可能发生属性名和方法名的同名冲突问题,两类常见的冲突及其解决办法如下:

(1)各超类之间的冲突

如果在一个子类的几个直接超类中存在同名的属性和方法,一般解决方法是在子类中规定超类的优先次序(以超类出现的先后顺序),首先继承俦级最高的那个超类的属性和方法。如果需要继承多个超类的同名属性和方法,则可以通过在子类中换名的方法来解决。

(2)子类与超类之间的冲突

如果子类与其超类发生同名冲突,一般都以子类定义的为准,用子类的定义取代其超类中的同名定义。

2.6.6 持久性和版本 1)持久性

持久性是指对象的生成期超过所属程序的执行期。即当一个程序在执行过程中产生了一

19

个持久性的对象,则在程序执行结束后,此对象依然存在。

持久性程序设计为面向对象数据库、计算机辅助软件工程(CASE)等提供支持。 2)版本

由于每个对象都包含一组属性并具有相应的属性值,当为属性指定一组新值时,就建立了一个新的版本。因此,同一对象可产生多个不同的版本。

对象的版本概念为CAD/CAM、工程数据库、OODB、多媒体数据库、CASE技术提供重要支持。

2.6.7 多态、重载、重定义与动态联编 1)多态(一名多义)

类的方法有相同的接口表示,但允许有不同的多种内部实现,这种情况称为方法的多态。

2)重载(一名多用)

在类继承结构中子类继承超类的方法,这种继承往往有多态性,即子类仅继承超类的接口表示,但它用自己的实现手段,这种情况称为方法重载。

3)重定义

子类属性、方法可以替换成与超类不一致的能力称为重定义功能。便于提高属性、方法的灵活性。

4)动态联编

方法的多态性和方法重载在计算机中采用动态联编的方法来实现,即在应用程序执行到一定阶段后才与方法联编。

2.6.8 面向对象数据模型与关系数据模型的比较

下面就数据模型的三个要素(即数据结构、数据操作和数据约束条件)对这两种数据模型作一简单物比较:

, 在关系数据模型中基本数据结构是表,这相当于OO数据模型中的类(类还包括方

法);而关系中的数据元组相当于OO数据模型中的实例(实例也还包括方法)。

, 在关系数据模型中,对数据库的操作都归结为对关系的运算,而在OO数据模型中,

对类层次结构的操作分为两部分:一是封装在类内的操作即方法;二是类间相互沟

通的操作即消息。

, 在关系数据模型中有域、实体和参照完整性约束,完整性约束条件可以用逻辑公式

表示,称为完整性约束方法。在OO数据模型中这些用于约束的公式可以用方法或

消息表示,称为完整性约束消息。 本章小结:

数据模型是对现实世界进行抽象的工具,用于描述现实世界的数据、数据联系、数据语义和数据约束等的方面的内容。E-R模型是最常用的概念模型,关系模型是当前的主流模型,面向对象是今后发展的方向。

作业:

2.1 试述实体、实体集、属性和联系概念。 2.3 试述数据模型的三要素。 2.19、2.20 2.21、2.23、2.26 20