




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第1111章章 webweb数据库概述数据库概述 1 第12章 面向对象数据库 12.1 12.1 面向对象数据库概述面向对象数据库概述 12.2 12.2 面向对象数据模型面向对象数据模型 12.3 12.3 面向对象数据库管理系统面向对象数据库管理系统 12.4 12.4 对象对象- -关系数据库关系数据库 第第1111章章 webweb数据库概述数据库概述 2 12.1 面向对象数据库概述 12.1.1 12.1.1 面向对象数据库的产生背景面向对象数据库的产生背景 12.1.2 12.1.2 面向对象数据库设计思想面向对象数据库设计思想 12.1.3 12.1.3 面向对象数据库的应
2、用和功能面向对象数据库的应用和功能 12.1.4 12.1.4 面向对象数据库的发展前景面向对象数据库的发展前景 第第1111章章 webweb数据库概述数据库概述 3 12.1.1 面向对象数据库的产生背景 关系数据库有许多优点,但它存在以下局限性:数据关系数据库有许多优点,但它存在以下局限性:数据 模型强调数据的高度结构化,面向机器而不是面向用户;模型强调数据的高度结构化,面向机器而不是面向用户; 数据类型简单、固定;结构与行为分离,语义表达能力差;数据类型简单、固定;结构与行为分离,语义表达能力差; 将复杂对象分解为多个基本关系来管理,查询实现复杂等将复杂对象分解为多个基本关系来管理,查
3、询实现复杂等 等。等。 随着计算机应用领域的拓广,关系数据库系统已不能随着计算机应用领域的拓广,关系数据库系统已不能 满足新的应用领域如计算机辅助设计满足新的应用领域如计算机辅助设计/ /制造(制造(cad/camcad/cam)、)、 计算机辅助软件工程(计算机辅助软件工程(casecase)、地理信息系统()、地理信息系统(gisgis)、)、 办公自动化系统(办公自动化系统(oasoas)等的需要,这些应用领域面临的)等的需要,这些应用领域面临的 共同问题是大型工程复杂数据的管理问题。新一代应用系共同问题是大型工程复杂数据的管理问题。新一代应用系 统提出了以下要求统提出了以下要求: :
4、第第1111章章 webweb数据库概述数据库概述 4 12.1.1 面向对象数据库的产生背景 (1 1)支持复杂的数据类型。新一代应用领域的数据往往)支持复杂的数据类型。新一代应用领域的数据往往 是几十种或上百种元素组成的对象,具有许多传统数据库是几十种或上百种元素组成的对象,具有许多传统数据库 中没有的数据类型,如变长数据、非结构化字符串、图形、中没有的数据类型,如变长数据、非结构化字符串、图形、 图象、声音、动画信息等,这些信息在传统数据库中一般图象、声音、动画信息等,这些信息在传统数据库中一般 难以描述、操纵和检索。难以描述、操纵和检索。 (2 2)支持复杂的数据结构。工程设计往往是采
5、用分层的)支持复杂的数据结构。工程设计往往是采用分层的 设计方法(自顶向下或自底向上),分层设计不仅要求有设计方法(自顶向下或自底向上),分层设计不仅要求有 层次结构,而且对于不同的设计对象,层次数目也不一样。层次结构,而且对于不同的设计对象,层次数目也不一样。 (3 3)对象实例和类的演进。工程设计是一个渐进的过程,)对象实例和类的演进。工程设计是一个渐进的过程, 特别是在大规模应用中,类是随着环境、需求、研究人员特别是在大规模应用中,类是随着环境、需求、研究人员 研究的深入而发生变化的,这些变化称为模式演进。研究的深入而发生变化的,这些变化称为模式演进。 第第1111章章 webweb数据
6、库概述数据库概述 5 12.1.1 面向对象数据库的产生背景 (4 4)支持工程事务管理。工程事务的特点表现为长时)支持工程事务管理。工程事务的特点表现为长时 间、协作性和试探性。传统数据库的并发控制策略无法间、协作性和试探性。传统数据库的并发控制策略无法 满足这类事务的要求。满足这类事务的要求。 (5 5)一个复杂对象有许多子对象组成,而这些子对象)一个复杂对象有许多子对象组成,而这些子对象 又有多个版本,这就需要用版本配置来组合成一个合理又有多个版本,这就需要用版本配置来组合成一个合理 的复杂对象。持久性对象也同样存在版本的管理问题。的复杂对象。持久性对象也同样存在版本的管理问题。 (6
7、6)航式查询和关联查询访问。复杂应用中的对象)航式查询和关联查询访问。复杂应用中的对象- - 关系是大型的树状结构,需要系统提供在对象图中的高关系是大型的树状结构,需要系统提供在对象图中的高 效导航能力,特别是多媒体对象实时性强,要求更高的效导航能力,特别是多媒体对象实时性强,要求更高的 交互性能。另一方面,大型应用通过关联查询来访问对交互性能。另一方面,大型应用通过关联查询来访问对 象也是必须的。象也是必须的。 第第1111章章 webweb数据库概述数据库概述 6 12.1.1 面向对象数据库的产生背景 (7 7)支持分布式系统中独立于平台的大型对象的存储。)支持分布式系统中独立于平台的大
8、型对象的存储。 新一代应用领域表现为数据密集,如图形图象等多媒体新一代应用领域表现为数据密集,如图形图象等多媒体 对象需要占用大量的存储空间,所以系统提供有效的存对象需要占用大量的存储空间,所以系统提供有效的存 储和控制手段是十分必要的。储和控制手段是十分必要的。 (8 8)对约束、触发、规则等方面的支持。新一代应用)对约束、触发、规则等方面的支持。新一代应用 系统的特点是对象的结构和操作非常复杂,有着丰富的系统的特点是对象的结构和操作非常复杂,有着丰富的 语义信息。为了保证数据库的完整性和一致性,引入约语义信息。为了保证数据库的完整性和一致性,引入约 束机制是非常必要的。束机制是非常必要的。
9、 因此,把先进的面向对象机制和方法与数据库技术相因此,把先进的面向对象机制和方法与数据库技术相 结合而形成新一代的面向对象数据库系统是面向对象技结合而形成新一代的面向对象数据库系统是面向对象技 术和数据库技术发展的必然产物。术和数据库技术发展的必然产物。 第第1111章章 webweb数据库概述数据库概述 7 12.1.2 面向对象数据库设计思想 面向对象数据库的基本设计思想是一方面把面向对象语面向对象数据库的基本设计思想是一方面把面向对象语 言向数据库方向扩展,使应用程序能存取并处理对象,另一言向数据库方向扩展,使应用程序能存取并处理对象,另一 方面扩展数据库系统,使其具有面向对象的特征,提
10、供一种方面扩展数据库系统,使其具有面向对象的特征,提供一种 综合的语义数据建模概念集,以便对现实世界中复杂应用的综合的语义数据建模概念集,以便对现实世界中复杂应用的 实体和联系建模。具体的策略或方案有以下几种:实体和联系建模。具体的策略或方案有以下几种: (1 1)建立全新的数据库模型和数据语言。不借助现有任)建立全新的数据库模型和数据语言。不借助现有任 何系统,开发一个全新的面向对象的数据库语言和数据库管何系统,开发一个全新的面向对象的数据库语言和数据库管 理系统。理系统。 第第1111章章 webweb数据库概述数据库概述 8 12.1.2 面向对象数据库设计思想 (2 2)用对象能力扩充
11、数据库)用对象能力扩充数据库sqlsql语言。在语言。在sqlsql语言中加入面语言中加入面 向对象机制的方法多为关系数据库厂商所采用,目前流行的向对象机制的方法多为关系数据库厂商所采用,目前流行的 关系数据库系统如关系数据库系统如oracleoracle、sysbasesysbase、informixinformix等都按这种方等都按这种方 式进行了扩充,使其具有一定的面向对象功能。式进行了扩充,使其具有一定的面向对象功能。 (3 3)用数据库能力扩充面向对象程序设计语言()用数据库能力扩充面向对象程序设计语言(ooploopl)。)。 ooploopl本身就具有抽象数据类型、继承、封装等特
12、征,扩展仅本身就具有抽象数据类型、继承、封装等特征,扩展仅 需加入数据库特征,如持久性、事务管理、查询等。需加入数据库特征,如持久性、事务管理、查询等。 (4 4)提供一个可扩充的面向对象的数据库管理系统类库。)提供一个可扩充的面向对象的数据库管理系统类库。 这些类库包含若干系统类,用于提供事务控制、对象簇聚的这些类库包含若干系统类,用于提供事务控制、对象簇聚的 方法等。方法等。 第第1111章章 webweb数据库概述数据库概述 9 12.1.2 面向对象数据库设计思想 (5 5)把面向对象语言结构嵌入到传统的宿主语言中。)把面向对象语言结构嵌入到传统的宿主语言中。 这类似于把这类似于把sq
13、lsql语言嵌入到语言嵌入到c c、fortranfortran等语言中,用这种等语言中,用这种 方法实现的典型产品是方法实现的典型产品是o2 o2 。 (6 6)为特定的应用领域提供一个底层的面向对象数据)为特定的应用领域提供一个底层的面向对象数据 库管理。这种方案无法提供一个通用的数据库环境,所库管理。这种方案无法提供一个通用的数据库环境,所 以只能针对特定应用领域。以只能针对特定应用领域。 第第1111章章 webweb数据库概述数据库概述 10 12.1.3 面向对象数据库的应用和功能 1. 1.面向对象数据库的应用面向对象数据库的应用 。面向对象数据库的应用。面向对象数据库的应用 主
14、要集中在以下几个方面主要集中在以下几个方面 : (1 1)计算机辅助设计)计算机辅助设计/ /制造(制造(cad/camcad/cam) (2 2)计算机集成制造系统()计算机集成制造系统(cimscims) (3 3)计算机辅助软件工程()计算机辅助软件工程(casecase) (4 4)地理信息系统()地理信息系统(gisgis) (5 5)办公自动化系统()办公自动化系统(oasoas) (6 6)超大规模集成电路设计()超大规模集成电路设计(vlsi designvlsi design) 第第1111章章 webweb数据库概述数据库概述 11 12.1.3 面向对象数据库的应用和功能
15、 2. 2.面向对象数据库的功能面向对象数据库的功能 : : (1 1)复杂的信息建模能力)复杂的信息建模能力 (2 2)语义模式的设计)语义模式的设计 (3 3)丰富的约束管理)丰富的约束管理 (4 4)动态模式演进)动态模式演进 (5 5)大规模数据管理)大规模数据管理 (6 6)对象的版本管理)对象的版本管理 (7 7)可伸缩性事务管理)可伸缩性事务管理 (8 8)计算完整的数据库编程语言)计算完整的数据库编程语言 第第1111章章 webweb数据库概述数据库概述 12 12.1.4 面向对象数据库的发展前景 十多年中,面向对象数据库领域得到了很大的发展,已十多年中,面向对象数据库领域
16、得到了很大的发展,已 有许多实用的面向对象数据库系统面世。面向对象的方法尤有许多实用的面向对象数据库系统面世。面向对象的方法尤 其适合于表示结构化的知识的特点,预示着面向对象数据库其适合于表示结构化的知识的特点,预示着面向对象数据库 向智能型数据库即知识库的方向发展。智能型数据库的许多向智能型数据库即知识库的方向发展。智能型数据库的许多 领域已开始使用面向对象数据模型技术,并产生了巨大的效领域已开始使用面向对象数据模型技术,并产生了巨大的效 果。果。 但是,目前面向对象数据库系统还存在一些问题,如缺但是,目前面向对象数据库系统还存在一些问题,如缺 乏坚实的形式化理论支持,没有一个切实可行的标准
17、,缺乏乏坚实的形式化理论支持,没有一个切实可行的标准,缺乏 数据库的许多功能,产品之间的兼容性和可移植性较差;不数据库的许多功能,产品之间的兼容性和可移植性较差;不 能与关系数据库系统兼容,没有提供使关系数据库和面向对能与关系数据库系统兼容,没有提供使关系数据库和面向对 象数据库相互转换的象数据库相互转换的“通道通道”;缺乏关系数据库系统成功使;缺乏关系数据库系统成功使 用的一些功能特点,如非过程化查询语言、视图、授权等等。用的一些功能特点,如非过程化查询语言、视图、授权等等。 第第1111章章 webweb数据库概述数据库概述 13 12.1.4 面向对象数据库的发展前景 为了解决以上这些问
18、题,面向对象数据库还需更深为了解决以上这些问题,面向对象数据库还需更深 一步的研究。以下是几个研究方向:一步的研究。以下是几个研究方向: 1.1.标准化和形式化。对面向对象的数据模型和相应标准化和形式化。对面向对象的数据模型和相应 的程序接口语言进行标准化是必要的。在面向对象的数的程序接口语言进行标准化是必要的。在面向对象的数 据库建立之前,强调对面向对象核心概念的某些方面进据库建立之前,强调对面向对象核心概念的某些方面进 行形式化也是必要的。行形式化也是必要的。 2.2.性能改进性能改进 。从一代数据库技术向另一代转变,程。从一代数据库技术向另一代转变,程 序员的工作变得相对容易的同时,数据
19、库系统的性能成序员的工作变得相对容易的同时,数据库系统的性能成 为要考虑的主要问题。因此需要投入相当多的研究和开为要考虑的主要问题。因此需要投入相当多的研究和开 发力量,改善新一代数据库的性能,使其达到一种可接发力量,改善新一代数据库的性能,使其达到一种可接 受的水平。受的水平。 第第1111章章 webweb数据库概述数据库概述 14 12.1.4 面向对象数据库的发展前景 3. 3.数据库的异质混合。管理异质数据库混合是面向数据库的异质混合。管理异质数据库混合是面向 对象数据库系统付诸实现的过程。对象数据库系统付诸实现的过程。 4.4.数据库工具数据库工具 。面向对象数据模型的丰富语义是它
20、。面向对象数据模型的丰富语义是它 的优势所在。一方面,它使用户很容易建立他们的应用的优势所在。一方面,它使用户很容易建立他们的应用 系统,但另一方面,具有类等级和类复合等级的面向对系统,但另一方面,具有类等级和类复合等级的面向对 象数据库模式的复杂性使数据库的逻辑设计和物理设计象数据库模式的复杂性使数据库的逻辑设计和物理设计 问题变得相当复杂。所以,为面向对象数据库的逻辑设问题变得相当复杂。所以,为面向对象数据库的逻辑设 计和物理设计提供有效的设计工具比关系数据库更为迫计和物理设计提供有效的设计工具比关系数据库更为迫 切。切。 第第1111章章 webweb数据库概述数据库概述 15 12.1
21、.4 面向对象数据库的发展前景 5. 5.附加的数据库特征附加的数据库特征 。在视图、演绎能力、语义模。在视图、演绎能力、语义模 型、长事务处理模型等数据库特征方面进行附加。型、长事务处理模型等数据库特征方面进行附加。 6.6.可扩充的结构可扩充的结构 。(。(1 1)支持不同的数据模型。在)支持不同的数据模型。在 面向对象数据库中,对面向对象数据模型做小的改变可面向对象数据库中,对面向对象数据模型做小的改变可 能会引起数据库系统结构产生重大变化。能会引起数据库系统结构产生重大变化。 (2 2)支持语)支持语 义扩充。由于版本的语义在设备之间存在着不同程度的义扩充。由于版本的语义在设备之间存在
22、着不同程度的 差异,所以一种比较有价值的方法是对版本提供一个分差异,所以一种比较有价值的方法是对版本提供一个分 层结构,在低层支持一个通用的低级版本语义的基本机层结构,在低层支持一个通用的低级版本语义的基本机 制,将高层作成可扩充的适合各种特定设备的版本语义。制,将高层作成可扩充的适合各种特定设备的版本语义。 第第1111章章 webweb数据库概述数据库概述 16 12.2 面向对象数据模型 12.2.1 12.2.1 对象对象 12.2.2 12.2.2 类类 12.2.3 12.2.3 类层次类层次 12.2.4 12.2.4 继承继承 12.2.5 12.2.5 多重继承性多重继承性
23、12.2.6 12.2.6 对象标识对象标识 12.2.7 12.2.7 对象包含对象包含 第第1111章章 webweb数据库概述数据库概述 17 12.2.1 对象 对象(对象(objectobject)是现实世界中的一个实体在计算机系)是现实世界中的一个实体在计算机系 统中的抽象表示。一切概念上的实体都可以称作对象,如统中的抽象表示。一切概念上的实体都可以称作对象,如 一个数字、一个人、一本书、一所学校。一个数字、一个人、一本书、一所学校。对象是包含属性对象是包含属性 和方法的封装结构。和方法的封装结构。一个对象包括以下几个部分:一个对象包括以下几个部分: (1 1)实例变量集合。实例变
24、量也称属性。所有实例变)实例变量集合。实例变量也称属性。所有实例变 量的集合构成对象数据的数据结构,每个实例变量的值本量的集合构成对象数据的数据结构,每个实例变量的值本 身也是一个对象。身也是一个对象。 (2 2)消息集合。消息指的是不考虑特定实现细节情况)消息集合。消息指的是不考虑特定实现细节情况 下对象间请求的传递,每个消息都能由该对象接收和响应,下对象间请求的传递,每个消息都能由该对象接收和响应, 是对象对外提供的界面。是对象对外提供的界面。 (3 3)方法集合。方法是指加在对象上的操作。每个方)方法集合。方法是指加在对象上的操作。每个方 法都是实现一个消息的程序编码,它返回一个值作为对
25、消法都是实现一个消息的程序编码,它返回一个值作为对消 息的响应。息的响应。 第第1111章章 webweb数据库概述数据库概述 18 12.2.2 类 类(类(classclass)是具有相同特征(相同数据结构和相同)是具有相同特征(相同数据结构和相同 操作)的对象的集合。每一个对象成为它所在类的一个操作)的对象的集合。每一个对象成为它所在类的一个 实例。一个类中的所有对象共享一个公共的定义,尽管实例。一个类中的所有对象共享一个公共的定义,尽管 它们对变量所赋予的值不同。它们对变量所赋予的值不同。 类与对象是相对的,可以把类本身也看作一个对象,类与对象是相对的,可以把类本身也看作一个对象, 称
26、为类对象,它包含如下内容:称为类对象,它包含如下内容: (1 1)一个集合变量,它的值是该类的所有实例对象)一个集合变量,它的值是该类的所有实例对象 所组成的集合。所组成的集合。 (2 2)消息)消息newnew,表示建立这个类的一个新实例。,表示建立这个类的一个新实例。 (3 3)实现消息)实现消息newnew的方法及其程序代码。的方法及其程序代码。 第第1111章章 webweb数据库概述数据库概述 19 12.2.3 类层次 在面向对象模型中,一个类可以是另一个类的子类,在面向对象模型中,一个类可以是另一个类的子类, 或反之,一个类可以是另一个类的父类(又称超类)。这或反之,一个类可以是
27、另一个类的父类(又称超类)。这 样,面向对象模型的一组类可以形成一个有限的层次结构,样,面向对象模型的一组类可以形成一个有限的层次结构, 称为类层次。在一个类层次中,一个类继承其所有超类称为类层次。在一个类层次中,一个类继承其所有超类 (包括超类的超类)的全部实例变量、方法和消息。(包括超类的超类)的全部实例变量、方法和消息。 在类层次结构中,从上而下是一个特殊化的过程,子在类层次结构中,从上而下是一个特殊化的过程,子 类是超类的特例。反之,自下而上是一个普遍化、抽象化类是超类的特例。反之,自下而上是一个普遍化、抽象化 的过程,超类是子类的概括,子类与超类之间的关系是的过程,超类是子类的概括,
28、子类与超类之间的关系是 is-ais-a关系。关系。 第第1111章章 webweb数据库概述数据库概述 20 12.2.3 类层次 图图12.1是一个企业职工数据库的类层次结构的例子:是一个企业职工数据库的类层次结构的例子: 图图12.1 12.1 类层次结构图类层次结构图 职工职工 工人工人管理人员管理人员 清洁工清洁工焊工焊工钳工钳工 第第1111章章 webweb数据库概述数据库概述 21 12.2.4 继承 继承(继承(inheritanceinheritance)是面向对象系统中最重要的概念,)是面向对象系统中最重要的概念, 是自动地共享类、子类和对象中的实例变量和方法的机制。是自
29、动地共享类、子类和对象中的实例变量和方法的机制。 上层对象具有的变量和方法,下层对象可以继承,从而使得上层对象具有的变量和方法,下层对象可以继承,从而使得 具有不同结构但有层次联系的对象可以共享它们共同部分上具有不同结构但有层次联系的对象可以共享它们共同部分上 的方法。的方法。 在面向对象系统中,对象是封装的,如果没有继承机制,在面向对象系统中,对象是封装的,如果没有继承机制, 类中的实例变量和方法就可能出现大量重复。类中的实例变量和方法就可能出现大量重复。 例如,工人类和管理人员类同为职工类的子类,都有姓例如,工人类和管理人员类同为职工类的子类,都有姓 名、性别、年龄等属性,因而可以将工人和
30、管理人员共有的名、性别、年龄等属性,因而可以将工人和管理人员共有的 属性和方法在职工类中定义,工人特有的属性和方法在工人属性和方法在职工类中定义,工人特有的属性和方法在工人 类中定义,管理人员特有的属性和方法在管理人员类中定义。类中定义,管理人员特有的属性和方法在管理人员类中定义。 第第1111章章 webweb数据库概述数据库概述 22 12.2.5 多重继承性 在多数情况下,类的树形层次结构可以满足实际应在多数情况下,类的树形层次结构可以满足实际应 用需要,在这些树形结构中,一个类的所有超类都在层用需要,在这些树形结构中,一个类的所有超类都在层 次结构中互为祖先或后代,即任何两个超类之间都
31、是祖次结构中互为祖先或后代,即任何两个超类之间都是祖 先和后代的关系。但也有一些应用场合,仅有树形层次先和后代的关系。但也有一些应用场合,仅有树形层次 结构是不够的。结构是不够的。 多重继承性可以解决此类问题。它是指一个类具有多重继承性可以解决此类问题。它是指一个类具有 从多个超类中继承变量、方法和消息的能力。在多重继从多个超类中继承变量、方法和消息的能力。在多重继 承情况下,类承情况下,类子类的关系可用一个有向无环图(子类的关系可用一个有向无环图(dagdag) 来表示,其中一个类可有多于一个的超类。来表示,其中一个类可有多于一个的超类。 第第1111章章 webweb数据库概述数据库概述
32、23 12.2.6 对象标识 面向对象模型提供了一种机制,使得系统中任何对面向对象模型提供了一种机制,使得系统中任何对 象都是唯一的,每个对象实例都被赋予一个唯一的标识象都是唯一的,每个对象实例都被赋予一个唯一的标识 符,作为对象的标识。在对象创建时由系统自动生成的,符,作为对象的标识。在对象创建时由系统自动生成的, 在概念上独立于对象的状态和行为。对象标识一旦生成在概念上独立于对象的状态和行为。对象标识一旦生成 是不能改变的,即使对象的状态发生了变化而对象标识是不能改变的,即使对象的状态发生了变化而对象标识 不变,还是被看作同一对象。用户可以查看、查询对象不变,还是被看作同一对象。用户可以查
33、看、查询对象 标识,但不能改变它的值。标识,但不能改变它的值。 对象标识的概念是一个比在程序设计语言或不是基对象标识的概念是一个比在程序设计语言或不是基 于面向对象的数据模型中所用到的标识概念更强的概念。于面向对象的数据模型中所用到的标识概念更强的概念。 内置标识是数据模型或程序设计语言中内置的一种内置标识是数据模型或程序设计语言中内置的一种 标识方法,不需要用户提供标识符。面向对象模型使用标识方法,不需要用户提供标识符。面向对象模型使用 这种标识,每个对象在创建时由系统自动赋予一个标识这种标识,每个对象在创建时由系统自动赋予一个标识 符。符。 第第1111章章 webweb数据库概述数据库概
34、述 24 12.2.7 对象包含 对象的变量的值也是一个对象,这就在对象之间产对象的变量的值也是一个对象,这就在对象之间产 生一个嵌套层次结构。假设生一个嵌套层次结构。假设object1object1和和object2object2是两个对是两个对 象,如果象,如果object2object2是是object1object1的某个变量的值,则称的某个变量的值,则称 object2object2属于属于object1object1,或,或object1object1包含包含object2object2,也称,也称 object2object2是是object1object1的子对象。的子对象。
35、包含其他对象的对象称为复杂对象或复合对象。可包含其他对象的对象称为复杂对象或复合对象。可 以存在多层包含,图以存在多层包含,图12.212.2所示的情形就产生了对象间的所示的情形就产生了对象间的 包含层次。包含层次。 台式计算机台式计算机 图图12.2 12.2 台式计算机结构的包含层次台式计算机结构的包含层次 显示器显示器键盘键盘 电源电源硬盘硬盘机箱机箱 主机主机鼠标鼠标 光驱光驱软驱软驱 第第1111章章 webweb数据库概述数据库概述 25 12.2.7 对象包含 包含是面向对象模型的一个重要概念,它允许不同包含是面向对象模型的一个重要概念,它允许不同 的用户从不同的角度来观察数据。
36、如一个显示器制造商的用户从不同的角度来观察数据。如一个显示器制造商 可以只专注于显示器对象,而不用去关心主机类的对象。可以只专注于显示器对象,而不用去关心主机类的对象。 在某些应用中,一个对象可能要包含在多个对象中,在某些应用中,一个对象可能要包含在多个对象中, 这时包含关系要用一个有向无环图(这时包含关系要用一个有向无环图(dagdag)而不是用层次)而不是用层次 来表示。来表示。 第第1111章章 webweb数据库概述数据库概述 26 12.3 面向对象数据库管理系统 12.3.1 12.3.1 类管理类管理 12.3.2 12.3.2 对象管理对象管理 12.3.3 12.3.3 对象
37、控制对象控制 第第1111章章 webweb数据库概述数据库概述 27 12.3.1 类管理 类管理主要负责对类的定义、类的操作进行管理,类管理主要负责对类的定义、类的操作进行管理, 具体包括:具体包括: (1 1)类定义。包括定义类的属性集、类的方法、类)类定义。包括定义类的属性集、类的方法、类 的继承性以及完整性约束条件等,通过类定义可以建立的继承性以及完整性约束条件等,通过类定义可以建立 一个类层次结构。一个类层次结构。 (2 2)类层次结构的查询。包括对类的数据结构、类)类层次结构的查询。包括对类的数据结构、类 的方法、类间关系的查询等。的方法、类间关系的查询等。 (3 3)类模型演进
38、。面向对象数据库模式是类的集合,)类模型演进。面向对象数据库模式是类的集合, 类模式为适应需求的变化而随时间不断变化称为类模式类模式为适应需求的变化而随时间不断变化称为类模式 演进,它包括创建新类、删除或修改已有的类属性和方演进,它包括创建新类、删除或修改已有的类属性和方 法等。法等。 第第1111章章 webweb数据库概述数据库概述 28 12.3.1 类管理 oodb oodb应用环境对应用环境对oodboodb类模式演进提出了许多新的要求类模式演进提出了许多新的要求 (如需要频繁地改变(如需要频繁地改变oodboodb数据库模式且类模式的演进是数据库模式且类模式的演进是 动态的等),使
39、得动态的等),使得oodboodb模式的修改比关系模式的修改更模式的修改比关系模式的修改更 加复杂。类模式演进的主要内容有:加复杂。类模式演进的主要内容有: (1 1)类中内容变化,如增、删、修改类中的属性和方)类中内容变化,如增、删、修改类中的属性和方 法等;法等; (2 2)类间关系的变化,如类间继承关系的改变等;)类间关系的变化,如类间继承关系的改变等; (3 3)类结构重组,如在类层次结构中增加、删除类等。)类结构重组,如在类层次结构中增加、删除类等。 (4 4)类管理中的其他功能。如类的权限建立与删除、)类管理中的其他功能。如类的权限建立与删除、 显示、打印等。显示、打印等。 第第1
40、111章章 webweb数据库概述数据库概述 29 12.3.2 对象管理 对象管理主要完成对类中对象的操纵管理,主要内容对象管理主要完成对类中对象的操纵管理,主要内容 有:有: (1 1)对象的查询。即在类层次结构中,通过查询路径)对象的查询。即在类层次结构中,通过查询路径 查找所需对象。查询路径由类、属性、继承路径等部分查找所需对象。查询路径由类、属性、继承路径等部分 组成,一个查询可用一个路径表达式。组成,一个查询可用一个路径表达式。 (2 2)对象的增加、删除和修改操作。)对象的增加、删除和修改操作。 (3 3)索引与簇集。为提高对象的查询效率,按类中属)索引与簇集。为提高对象的查询效
41、率,按类中属 性及路径建立索引以及对类及路径建立簇集。性及路径建立索引以及对类及路径建立簇集。 第第1111章章 webweb数据库概述数据库概述 30 12.3.3 对象控制 对象控制所采用的基本方法与传统数据库系统有相对象控制所采用的基本方法与传统数据库系统有相 似之处,但似之处,但oodbmsoodbms为实现新的功能使具体处理变得更为为实现新的功能使具体处理变得更为 复杂。对象控制包括以下内容:复杂。对象控制包括以下内容: (1 1)通过方法与消息实现完整性约束条件的表示及检)通过方法与消息实现完整性约束条件的表示及检 验。验。 (2 2)引入授权机制等实现安全性功能。)引入授权机制等
42、实现安全性功能。 (3 3)并发控制与事务处理的具体实现更为复杂,事务)并发控制与事务处理的具体实现更为复杂,事务 处理还需要增加长事务及嵌套事务处理的功能。处理还需要增加长事务及嵌套事务处理的功能。 (4 4)故障恢复。)故障恢复。 第第1111章章 webweb数据库概述数据库概述 31 12.4 对象-关系数据库 12.4.1 12.4.1 对象对象- -关系数据库系统的定义关系数据库系统的定义 12.4.2 12.4.2 对象对象- -关系数据库系统的特点关系数据库系统的特点 12.4.3 12.4.3 对象对象- -关系数据库系统的实现方法关系数据库系统的实现方法 第第1111章章
43、webweb数据库概述数据库概述 32 12.4.1 对象-关系数据库系统的定义 在传统的关系数据模型基础上,提供元组、数组、在传统的关系数据模型基础上,提供元组、数组、 集合一类丰富的数据类型以及处理新的数据类型操作的集合一类丰富的数据类型以及处理新的数据类型操作的 能力,并且具有继承性和对象标识等面向对象特点,这能力,并且具有继承性和对象标识等面向对象特点,这 样形成的数据模型,称为对象样形成的数据模型,称为对象- -关系数据模型。基于对象关系数据模型。基于对象 - -关系数据模型的数据库系统称为对象关系数据模型的数据库系统称为对象- -关系数据库系统,关系数据库系统, 简称简称ordbs
44、ordbs。 ordbsordbs为那些希望使用具有面向对象特征的关系数据为那些希望使用具有面向对象特征的关系数据 库用户提供了一条捷径。在对象库用户提供了一条捷径。在对象- -关系模型中,关系模型中,erer模型的模型的 许多概念,如实体标识、多值属性、泛化许多概念,如实体标识、多值属性、泛化/ /细化等,无需细化等,无需 经过变换转化可直接引用。经过变换转化可直接引用。 第第1111章章 webweb数据库概述数据库概述 33 12.4.2 对象-关系数据库系统的特点 对象对象- -关系数据库系统兼有关系数据库和面向对象数据关系数据库系统兼有关系数据库和面向对象数据 库两方面的特征,它除了
45、具有原来关系数据库的特点外,还库两方面的特征,它除了具有原来关系数据库的特点外,还 具有以下特点:具有以下特点: (1 1)允许用户扩充基本数据类型,即允许用户根据应用)允许用户扩充基本数据类型,即允许用户根据应用 需求自己定义数据类型、函数和操作符,而且一经定义,这需求自己定义数据类型、函数和操作符,而且一经定义,这 些新的数据类型、函数和操作符将放在数据库管理系统核心些新的数据类型、函数和操作符将放在数据库管理系统核心 中供所有用户公用。中供所有用户公用。 (2 2)能在)能在sqlsql中支持复杂对象,即由多种基本类型或用中支持复杂对象,即由多种基本类型或用 户定义类型构成的对象。户定义
46、类型构成的对象。ordbsordbs通过对通过对sqlsql语言的语言的 selectselect句句 型使用方式稍加修改就能处理带有复合类型、嵌套和引用类型使用方式稍加修改就能处理带有复合类型、嵌套和引用类 型的型的ordbordb查询。查询。 第第1111章章 webweb数据库概述数据库概述 34 12.4.2 对象-关系数据库系统的特点 (3 3)能够支持子类对超类的各种特性的继承,支持)能够支持子类对超类的各种特性的继承,支持 数据继承和函数继承,支持多重继承,支持函数重载。数据继承和函数继承,支持多重继承,支持函数重载。 如在如在ordbsordbs中支持类型一级的继承性,也可实现
47、表级继承中支持类型一级的继承性,也可实现表级继承 性。性。 (4 4)能够提供功能强大的通用规则系统,而且规则)能够提供功能强大的通用规则系统,而且规则 系统与其他的对象系统与其他的对象关系能力是集成为一体的。例如,关系能力是集成为一体的。例如, 规则中的事件和动作可以是任意的规则中的事件和动作可以是任意的sqlsql语句,可以使用用语句,可以使用用 户自定义的函数,规则能够被继承等。户自定义的函数,规则能够被继承等。 第第1111章章 webweb数据库概述数据库概述 35 12.4.3 对象-关系数据库系统的实现方法 实现对象实现对象- -关系数据库系统的方法主要有以下关系数据库系统的方法
48、主要有以下5 5种:种: (1 1)从头开发)从头开发ordbmsordbms。这种方法费时费力,不太现实。这种方法费时费力,不太现实。 (2 2)从现有的关系型)从现有的关系型dbmsdbms基础上进行扩展。扩展方法有两基础上进行扩展。扩展方法有两 种:种: 对关系型对关系型dbmsdbms核心进行扩充,逐渐增加面向对象特性。核心进行扩充,逐渐增加面向对象特性。 这是一种比较安全的方法,新系统的性能往往比较好。这是一种比较安全的方法,新系统的性能往往比较好。 不修改现有的关系型不修改现有的关系型dbmsdbms核心,而是在现有关系型核心,而是在现有关系型dbmsdbms 外面加一个包装层,由包装层提供对象外面加一个包装层,由包装层提供对象- -关系型应用编程接关系型应用编程接 口,并负责将用户提交的对象口,并负责将用户提交的对象- -关系型查
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 混凝土施工过程中的气候适应性施工方案
- 水痘疫苗培训课件
- 杖类助行器腋拐山东医学高等专科学校康复医学教研室72课件
- 水电安装基础知识培训课件
- 2025版老房改造砌墙抹灰加固合同范本
- 二零二五年典当业务风险评估与应对咨询合同
- 二零二五年度工业地产项目开发商合同
- 二零二五年度车辆租赁续约合同:新能源车辆租赁服务
- 二零二五版建筑行业公对公借条及对公借款合同范本
- 2025版综合能源服务项目施工廉政监督协议
- JG/T 455-2014建筑门窗幕墙用钢化玻璃
- 一例胃癌患者的疑难病例讨论
- 《运动处方》课件-第一章 运动处方基础理论
- 四川省事业单位公开招聘工作人员公共科目〈综合知识〉笔试考试大纲笔试历年典型考题及考点剖析附带答案详解
- 2025年人教版山东省济南市九年级中考英语模拟试卷(含答案无听力音频及原文)
- 2025+CSCO非小细胞肺癌诊疗指南解读 课件
- 消毒供应中心培训课件
- 反应釜操作知识培训课件
- 2025年一级建造师《建筑工程管理与实务》试卷真题(附解析)
- 物业薪酬管理办法
- 2025年生猪屠宰兽医卫生检疫人员考试题(附答案)
评论
0/150
提交评论