数据库系统原理课后答案 - 图文 下载本文

系统原理 第九章 数据库技术的发展 课后习题答案 9.1 名词解释

(1)OODBS:是指面向对象数据库系统,它既具数据库管理的基本功能,又能支持面向对象的数据模型。 (2)ORDBS:基于对象关系数据模型的DBS称为对象关系数据库系统(ORDBS)。

(3)平面关系模型:传统的关系模型称为“平面关系模型”,它要求关系模式具有第一范式(1NF)性质,关系具有规范化的结构。也就是规定属性值是不可分解的,即不允许属性值具有复合结构(元组或关系)。 (4)嵌套关系模型:是从平面关系模型发展而成的。它允许关系的属性值又可以是一个关系,而且可以出现多次嵌套。嵌套关系突破了1NF的定义框架,是“非1NF关系”。

(5)复合对象模型:在嵌套关系模型上进一步放宽要求。在关系定义上,集合与元组不再有交替出现的严格限制,此时的关系中,属性类型可以是基本数据类型、结构类型(元组类型)或集体类型(即关系类型)。 (6)数据的泛化/细化:是对概念之间联系进行抽象的一种方法。当在较低层上的抽象表达了与之联系的较高层上抽象的特殊情况时,就称较高层上抽象是较低层上抽象的\泛化\,而较低层上抽象是较高层上抽象的\细化\。

(7)对象关系模型:在传统关系数据基础上,提供元组、数组、集合等更为丰富的数据类型及处理新数据类型操作的能力而形成的数据模型。(注:传统关系模型只支持字符、数值、字串,布尔值等等基本数据类型及其处理功能)

(8)类型级继承性:当继承性发生在类型级时,子类型继承了超类型的属性。也就是说,超类型所具有的属性,在子类上也具有。

(9)表级继承性:继承性也可发生在表级,(就是元组集合上发生继承),子表继承超表全部属性,超表中每个元组最多可以与子表中一个元组对应,而子表中的每个元组在超表中恰有一个元组对应,并在继承的属性值上具有相同的值。 (10)引用类型:数据类型可以嵌套定义,在嵌套引用时,不是引用对象本身,而是个用对象标识符(即指针),这种指针被称为引用类型。

(11)对象:客观世界中的实体经过抽象称为问题空间中的对象,它是对一组信息及其操作的描述。 (12)类:是具有相同的变量名和类型、相同的消息和使用方法的对象的集合。 (13)单重继承性:一个子类继承某一个超类的结构和特性,称为单重继承性。 (14)多重继承性:一个子类继承多个超类的结构和特性,称为多重继承性。

(15)对象标识:在面向对象语言中,对象标识是一个指针一级的概念,在对象创建的瞬间,由系统赋给每个对象一个“标识”,即系统内的一个唯一的指针,在对象生存期内,这个标识不可改变。

(16)对象包含:不同类的对象之间存在的包含关系称为对象包含。包含是一种“一部分”(is part of)的联系。

(17)类继承层次图:表示类继承关系的图,由超类名、子类名和一组线条自上而下有序的表示。

(18)类包含层次图:表示对象包含关系的图,由一些具有包含关系的对象和线条自上而下表示(下方的对象为其连线所指上方对象的一部分)。

(19)持久数据:是指创建这些数据的程序运行终止后数据依然存在于系统之中。数据库中的关系就是持久数据。

(20)持久对象:程序运行结束后,被保留下来的对象称为持久对象。

(21)持久指针:持久指针可看作是数据库中指向对象的指针。持久化指针不像内存中的指针,它在程序执行后及数据重组后仍保持有效。

(22)持久化C++系统: 基于C++的持久化扩充的OODBS。

9.2 随着计算机应用领域的扩大,关系数据库系统不能适应哪些应用需要? 答:关系数据库不适应的应用需要有: (1)多媒体数据。 (2)空间数据 (3)时态数据。 (4)复合对象。

9.3 什么是对象联系图?图中,椭园、小圆圈、单箭头(→),双箭头(→→),双线箭头(=>),双向箭头(←→)所表示的含义。

答:椭圆表示对象,小圆圈表示属性是基本数据类型,单箭头(→)表示函数值是单值,双箭头(→→)表示函数值是多值,双线箭头(=>)是泛化边,表示泛化/细化联系,双向箭头(←→)表示两个函数互逆。 9.5 子表和超表应满足哪两个一致性要求? 子表和超表应满足下列两个一致性要求:

(1)超表中每个元组最多可以与每个子表中的一个元组对应。

(2)子表中每个元组在超表中恰有一个元组对应,并在继承的属性上有相同的值。 9.6 继承性体现了数据间什么联系?试举例说明。 继承是\is a \(细化/泛化)联系。比如卡车是车的子类,“卡车”“is a”“车”“卡车”和“车”之间存在继承性。

9.7 持久化语言和嵌入式SQL语言有什么区别? 持久化语言与嵌入式SQL语言的不同:

(1)持久化语言格式转换对程序员透明; (2)程序员可直接操纵持久数据。 (具体内容可参见教材P211

9.8 在OO技术与DB技术相结合过程中,采取了哪两条不同的途径? 一条途径是在传统的关系模型基础上,提供复合数据类型,扩充SQL语言使之能处理新的数据结构。 另一条途径是在OOPL C++基础上进行扩充,能操作持久数据,处理数据库,形成持久化C++系统,