面向对象的数据库

上传人:j****9 文档编号:54512656 上传时间:2018-09-14 格式:PPT 页数:39 大小:102KB
返回 下载 相关 举报
面向对象的数据库_第1页
第1页 / 共39页
面向对象的数据库_第2页
第2页 / 共39页
面向对象的数据库_第3页
第3页 / 共39页
面向对象的数据库_第4页
第4页 / 共39页
面向对象的数据库_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《面向对象的数据库》由会员分享,可在线阅读,更多相关《面向对象的数据库(39页珍藏版)》请在金锄头文库上搜索。

1、面向对象的 数据库技术,主要内容,概述 面向对象的数据库系统(3部分) 面向对象的数据库设计(实现) 面向对象的数据库应用开发工具(2部分) 现状与未来趋势,概述,数据库系统是信息系统的核心,一般地说,综合的信息系统就是大型数据库应用系统,将面向对象技术应用到数据库系统中,这是数据库应用发展的迫切需要,也是面向对象技术和数据库技术发展的必然结果。 面向对象技术在数据库系统中的应用主要体现在数据库管理系统和数据库应用开发工具两个方面,即面向对象的数据库系统和面向对象的数据库应用开发工具。,概述,数据库管理系统是建立信息系统的基础。将面向对象技术应用到数据库管理系统中,使数据库管理系统能够支持面向

2、对象数据模型,这对提高数据库系统模拟客观世界的能力,扩大数据库应用领域具有重要的意义。,概述,数据库应用开发工具是信息系统开发的必备环境,将面向对象技术应用到数据库应用开发工具中,使数据库应用开发工具能够支持面向对象的开发方法并提供相应的开发手段,这对于提高应用开发效率,增强应用系统界面的友好性、系统的可伸缩性、可扩充性等具有重要的意义。,面向对象的数据库系统,1.应用的需求 数据库技术自60年代后期问世以来,无论从理论上,技术上,还是应用上,都经历了一个飞速发展的过程。现在,大型信息系统一般都是以数据库系统作为其核心的。 从数据库系统采用的数据模型来看,70年代广为流行的是网状模型和层次模型

3、的数据库系统。它们采用记录的汇集,以及记录之间一对多(对一)的联系来描述现实世界客观事物,用过程化的数据操纵语言来提供数据管理功能。,1.应用的需求,自80年代以来,关系模型的数据库系统逐步取代了网状模型和层次模型的数据库系统关系模型建立在代数的基础之上,用关系(二维表)来描述现实世界客观事物,用面向集合的非过程化的数据操纵语言来提供数据管理功能。由于关系模型严格的数学基础,概念简单清晰,非过程化程度高,数据独立性强,因此关系型数据库系统的发展非常迅速,80年代以来,计算机厂商推出的数据库管理系统几乎都是支持关系模型的。,1.应用的需求,随着数据库技术的发展,数据库应用领域已从传统的商务数据处

4、理扩展到许多新的应用领域,例如计算机辅助设计(CAD)、计算机辅助软件工程(CASE),图象处理、超文本应用等,关系数据库管理系统很难适应这些新应用领域中模拟复杂对象,模拟对象的复杂行为需求。甚至在传统的商务数据处理应用中,也提出了新的处理需求,例如存储和检索保险索赔案件中的照片、手写的证词等,这些要求也是传统的关系数据库系统难以满足的。,1.应用的需求,新的应用需求推动了数据库新技术的研究,其中最重要的研究方向之一就是面向对象技术与数据库技术相结合,研究新型的数据库管理系统面向对象的数据库系统。利用类的设施来描述复杂对象,利用对象中封装的方法来模拟对象的复杂行为,利用继承性来实现对象结构和方

5、法的重用。,2.面向对象数据库系统的特性,面向对象数据库系统的研究始于80年代中后期,对于什么是面向对象的数据库系统,目前尚缺乏权威性的统一标准。然而,对于面向对象数据库系统应该具备的基本特性,国际数据库学术界己取得了大体一致的共同认识。 首先,面向对象数据库系统必须支持面向对象的数据模型,具有面向对象的特性。,2.面向对象数据库系统的特性,这些特性主要包括:支持复杂对象,具有对简单对象运用各种对象构造符组成复杂对象的能力;具有对角标识,对象独立于它的值而存在;具有封装性,数据库对象中既封装数据又封装程序,从而达到信息隐蔽,同时也是逻辑数据独立性的一种形式;支持类型和类的概念,类型概括具有相同

6、特性的一组对象的共同特性;支持类或类型的层次结构,从而支持继承性这一有力的建模工具;允许过载,即将同一名字用于不同类型上的数据操作;通过与现有程序设计语言的合理连接来达到计算完备性;并具有可扩充性。,2.面向对象数据库系统的特性,其次,面向对象数据库系统必须是一个数据库管理系统,具有数据库管理系统的基本功能。主要包括:持久性,数据库中的数据是持久保存的;外存管理,包括索引管理、数据缓冲、存取路径选择、查询优化等;并发性,系统应该提供和目前的数据库管理系统同样级别的,对多个用户并发操作数据库的支持;故障恢复,系统应该提供和目前的数据库管理系统同样级别的,将数据库从故障后的错误状态恢复到某一正确状

7、态的功能;以及即席查询功能,查询功能应能是非过程化的,高效的,独立于应用的。面向对象的数据库系统除了必须具备上述面向对象特性和数据库管理系统基本功能外,最好还能具备新应用领域所需要的一些进一步的特性,例如模式演化、版本管理、长事务和嵌套事务、分布式计算等。,3.面向对象数据库系统的优越性,面向对象数据库系统将面向对象的能力赋予了数据设计人员和数据库应用开发人员,从而可以大大扩展数据库系统的应用领域,并且提高开发人员的工作效率和应用系统的质量。 1)复杂对象构造能力使得对于客观世界的模拟能力强,方式自然。,3.面向对象数据库系统的优越性,关系数据库系统强迫用户用多个关系的元件组来表示层次数据、嵌

8、套数据、或复合数据。例如,职工有职工号、姓名、性别、工资、部门等属性,而部门又有部门号、部门名、部门性质、部门经理等属性。关系数据库中属性的取值只能是基本数据类型,这样,职工元组中的部门属性的取值只能部门号。要查询某职工及其所在部门的信息就需要做“职工”和“部门”这两个关系的连接。这样的表示方式既不自然,又影响查询的速度。面向对象数据库中的对象的属性的取值可以是另外一个对象,一个职工对象的部门属性的取值就可以是该部门对象,实际储存的是该对象的对象标识,这样的表示方式自然、易理解,而且在查询某职工及其所在部门的信息时可以通过该部门的对象标识直接找到那个部门,提高了查询的速度。,3.面向对象数据库

9、系统的优越性,2)封装性向开发人员和最终用户屏蔽复杂性和实现细节,降低了数据库应用系统开发和维护的难度。对象封装将程序和数据封装在一起作为存储和管理的单位,也是用户使用的单位,从外部只能看到它的接口,而看不到实现的细节,对象内部实现的修改不影响对对象的使用,因此使应用系统的开发和维护都变的容易。关系数据库系统现在支持存贮的过程,即允许程序用某种过程性语言编写并存入数据库中以备以后装载和执行。但是,存储的过程并不和数据封装在一起,即它们不和任何关系或关系的元组相关联,构成一个整体,其信息隐蔽和易维护性显然不如面向对象数据库系统中封装起来的对象。,3.面向对象数据库系统的优越性,3)继承性使得数据

10、库设计和应用编程成为可重用的。在面向对象的数据库系统中,类的定义和类库的层次结构体现了系统分析和数据库设计的结果,即体现了客观世界中对象的内部结构及对象之间的联系。同时,类定义中封装的方法保存了数据库应用编程的结果。应用开发人员可以在己建立的类库基础上派生出新的类,继承己存在的类的属性和方法。例如定义“销售人员”类作为已存在的“职工”类的子类,“销售人员”可以继承“职工”的职工号、姓名、性别等属性,重用了数据库设计的结果,还可以继承“职工”的计算工资额、显示奖惩记录等方法,重用了应用编程的结果。数据库设计和应用编程的重用对于建立大型复杂的数据库应用系统具有重要意义。,一些概念的区分,面向对象的

11、数据库设计(即数据库模式)思想 面向对象数据库管理系统(OODBMS)理论 其实前者是数据库用户定义数据库模式的思路,后者是数据库管理程序的思路。用户使用面向对象方法学可以定义任何一种DBMS数据库,即网络型、层次型、关系型、面向对象型均可,甚至文件系统设计也照样可以遵循面向对象的思路。 后者则是我们如上所述的一个区别于传统数据库系统的新型数据库管理系统。,面向对象的数据库设计,一般数据库设计方法有两种,即属性主导型和实体主导型。属性主导型从归纳数据库应用的属性出发,在归并属性集合(实体)时维持属性间的函数依赖关系。实体主导型则先从寻找对数据库应用有意义的实体入手,然后通过定义属性来定义实体。

12、一般现实世界的实体数在属性数1/10以下时,宜使用实体主导型设计方法。面向对象的数据库设计是从对象模型出发的,属于实体主导型设计。,面向对象的数据库设计,一般数据库应用系统都遵循以下相关开发步骤:1设计应用系统结构;2 选择便于将应用程序与 DBMS 结合的DBMS体系结构,如RDBMS;3 根据应用程序使用的环境平台,选择适宜的DBMS(如Oracle)和开发工具(如PB);4 设计数据库,编写定义数据库模式的SQL程序;5 编写确保数据正确录入数据库的用户接口应用程序;6 录入数据库数据;7 运行各种与数据库相关的应用程序,以确认和修正数据库的内容。,面向对象的数据库设计,DBMS只是给用

13、户为已采用的数据库提供一个舞台,而是否使用这个舞台上的道具以及唱什么戏,则完全取决于用户的戏剧脚本和导演(开发者)的安排。例如,公路局系统所使用的数据库管理系统,是以二维表为基本管理单元、支持所有关系代数操作、支持实体完整性与实体间参照完整性的全关系型 RDBMS,而我们要在这个舞台上利用上述“道具”设计一个面向对象的关系数据库。,应用对象模型与RDBMS模型的映射实现,数据库设计(模式)是否支持应用系统的对象模型,这是判断是否是面向对象数据库系统的基本出发点。由于应用系统设计在前,数据库设计随后,所以应用系统对象模型向数据库模式的映射是面向对象数据库设计的关键。,应用对象模型与RDBMS模型

14、的映射实现,1.三层数据库模式面向对象模型的扩展 一般数据库设计多参照ANSL/SPARC关于数据库模式的3层标准结构提案。最接近物理数据库的内部模式由 DBMS 提供的SQL来描述。概念模式可以由若干个内部模式聚集而成,它是由数据库用户规范的一些表的集合。例如,公路局计划处数据库模式、机务处数据库模式等,它们是逻辑数据库,常常通过库表 ID来界定库边界。一般的概念模式是数据库物理模式作用域的边界,它能实现数据库的物理意义、特定DBMS 的特殊操作对外部应用程序的信息隐蔽。,应用对象模型与RDBMS模型的映射实现,外部模式是从特定用户应用角度看待的数据库模式,从不同的应用出发对同一概念模式可以

15、给出多种不同的外部模式。例如:公路绿化情况查询应用看到的数据库是公路上的树木种类、数量、分布比率等,桥梁隧道状况查询应用看到的是公路上的桥梁、隧道长度、个数、路段等,但是它们可能访问的是同一个库表的不同子集。 当外部应用系统以对象模型进行抽象时,从各个应用出发抽象出的对象模型可以映射到外部模型上,对此我们不妨称之为外部对象模型。但是,外部模型只是概念模型的子集,所以面向对象的数据库设计核心在于系统对象模型(不妨称之为概念对象模型) 向数据库概念模型的映射。,应用对象模型与RDBMS模型的映射实现,2.对象模型向数据库表的映射规则 由于 RDBMS 是以二维表为基本管理单元的,所以对象模型最终是

16、由二维表及表间关系来描述的。换言之,对象模型向数据库概念模型的映射就是向数据库表的变换过程。有关的变换规则简单归纳如下: (1)一个对象类可以映射为一个以上的库表,当类间有一对多的关系时,一个表也可以对应多个类。 (2)关系(一对一、一对多、多对多以及三项关系)的映射可能有多种情况,但一般映射为一个表,也可以在对象类表间定义相应的外键。对于条件关系的映射,一个表至少应有3个属性。,应用对象模型与RDBMS模型的映射实现,(3)单一继承的泛化关系可以对超类、子类分别映射表,也可以不定义父类表而让子类表拥有父类属性;反之,也可以不定义子类表而让父类表拥有全部子类属性。 (4)对多重继承的超类和子类

17、分别映射表,对多次多重继承的泛化关系也映射一个表。 (5)对映射后的库表进行冗余控制调整,使其达到合理的关系范式。 3.数据库模式要面向应用系统,面向对象关系数据库设计效果,1.数据库结构清晰,便于实现OOP 由于实现了应用模块对象对数据库对象的完全映射,数据库逻辑模型可以自然且直接地模拟现实世界的实体关系。公路局用户所处的当前物理世界、系统开发者所抽象的系统外部功能,与支持系统功能的内部数据库 (数据结构)一一对应,所以用户、开发者和数据库维护人员可以用一致的语言进行沟通。 特别是对多数不了解业务的程序开发人员来说,这种将应用对象与相应的数据对象封装在对象统一体中的设计方法,大大减轻了程序实现的难度,使他们只要知道加工的数据及所需的操作即可,而且应用程序大多雷同,可以多处继承由设计人员抽象出来的、预先开发好的各种物理级超类。,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号