数据库第8章面向对象和分布式数据库.ppt
《数据库第8章面向对象和分布式数据库.ppt》由会员分享,可在线阅读,更多相关《数据库第8章面向对象和分布式数据库.ppt(50页珍藏版)》请在三一办公上搜索。
1、1,第8章 面向对象和分布式数据库,2,8.1 数据模型与数据库系统的发展,数据模型是数据库系统的核心和基础,数据模型的发展经历了格式化数据模型(层次数据模型和网状数据模型的统称)、关系数据模型和面向对象的数据模型三个阶段,按照这种划分,数据库技术的发展也经历了三个发展阶段。,3,8.1.1 第一代数据库系统层次数据库系统和网状数据库系统的数据模型分别为层次模型和网状模型,但从本质上讲层次模型是网状模型的特例,二者从体系结构、数据库语言到数据存储管理上均具有共同的特征,都是格式化模型,属于第一代数据库系统。第一代数据库系统的特点是:1支持三级模式的体系结构层次数据库和网状数据库均支持三级模式结
2、构,即外模式、模式和内模式,并通过外模式与模式、模式与内模式二级映象,保证了数据的物理独立性和逻辑独立性。2用存取路径来表示数据之间的联系数据库不仅存储数据而且存储数据之间的联系。数据之间的联系在层次和网状数据库系统中是用存取路径来表示和实现的。,4,3独立的数据定义语言第一代数据库系统使用独立的数据定义语言来描述数据库的三级模式以及二级映象。格式一经定义就很难修改,这就要求数据库设计时,不仅要充分考虑用户的当前需求,还要了解需求可能的变化和发展。4导航的数据操纵语言导航的含义就是用户使用某种高级语言编写程序,一步一步的引导程序按照数据库中预先定义的存取路径来访问数据库,最终达到要访问的数据目
3、标。在访问数据库时,每次只能存取一条记录值。若该记录值不满足要求就沿着存取路径查找下一条记录值。,5,8.1.2 第二代数据库系统第二代数据库系统是指支持关系数据模型的关系数据库系统。关系模型不仅简单、清晰,而且有关系代数作为语言模型,有关系数据理论作为理论基础。所以在关系模型提出后,很快便从实验室走向了社会,20世纪80年代几乎所有新开发的数据库系统都是关系型数据库系统。这些商用数据库系统的运行,特别是微机RDBMS的使用,使数据库技术日益广泛地应用到企业管理、情报检索、辅助决策等各个方面,成为实现和优化信息系统的基本技术。,6,关系模型之所以能成为深受广大用户欢迎的数据模型,与第一代数据库
4、系统所支持的格式化模型相比,主要具有以下特点:关系模型的概念单一,实体以及实体之间的联系都用关系来表示;关系模型以关系代数为基础,形式化基础好;数据独立性强,数据的物理存取路径对用户隐蔽;关系数据库语言是非过程化的,将用户从编程数据库记录的导航式检索中解脱出来,大大降低了用户编程的难度。,7,8.1.3 传统数据库的局限性一般说来,将第一代数据库和第二代数据库称为传统数据库。由于传统数据库尤其是关系数据库系统具有许多优点,人们纷纷采用数据库技术来进行数据管理,数据库技术被应用到了许多新的领域,如计算机辅助设计/计算机辅助制造(CAD/CAM),计算机辅助工程(CASE),图像处理等,这些新领域
5、的应用不仅需要传统数据库所具有的快速检索和修改数据的特点,而且在应用中提出了一些新的数据管理的需求,如要求数据库能够处理声音、图像、视频等多媒体数据。在这些新领域中,传统数据库暴露了其应用的局限性,主要表现在以下几个方面:,8,1面向机器的语法数据模型传统数据库中采用的数据模型是面向机器的语法数据模型,只强调数据的高度结构化,只能存储离散的数据和有限的数据与数据之间的关系,语义表示能力较差,无法表示客观世界中的复杂对象,如声音、图像、视频等多媒体数据,工程、测绘等领域中的非格式化数据。此外,传统数据模型缺乏数据抽象,无法揭示数据之间的深层含义和内在联系。2.数据类型简单、固定传统的DBMS主要
6、面向事务处理,只能处理简单的数据类型,如整数、实数、字符串、日期等,而不能根据特定的需要定义新的数据类型。例如,不能定义包含三个实数分量(x,y,z)的数据类型circle来表示圆,而只能分别定义三个实型的字段。这样对于复杂的数据类型只能由用户编写程序来处理,加重了用户的负担,也不能保证数据的一致性。,9,3结构与行为完全分离从应用程序员的角度来看,在某一应用领域内标识的对象可以包含两方面的内容,即对象的结构和对象的行为。传统的数据库可以采用一定的数据库模式来表示前者,而对于后者,却不能直接存储和处理,必须通过另外的应用程序加以实现。例如,对于多媒体数据,虽然可以在带有前面所提到的缺陷的情况下
7、以简单的二进制代码形式存储其结构,但却无法存储其行为(如播放声音、显示图像等)。这样,这些多媒体数据必须由相应的应用程序来识别,而对于其他不了解其格式的用户来说,数据库中存储的是没有任何意义的二进制数据。由此可见,在传统数据库中,对象的结构可以存储在数据库中,而对象的行为必须由应用程序来表示,对象的结构与行为完全相分离。,10,4被动响应传统数据库只能根据用户的命令执行特定的服务,属于被动响应,用户要求做什么,系统就做什么。而在实际应用中,往往要求一个系统能够管理它本身的状态,在发现异常情况时及时通知用户;能够主动响应某些操作或外部事件,自动采取规定的行动等等。例如,一个仓库管理系统除了希望数
8、据库系统能够正确,高效地存储有关物品的数据,还希望数据库系统能够对仓库库存进行监控,当库存太少或太多时主动向用户发出警告。要完成这样的工作,数据库系统必须更加主动、更加智能化,而传统的数据库显然不能适应这一要求。5事务处理能力较差传统数据库只能支持非嵌套事务,对于较长事务的运行较慢,且中事务发生故障时恢复比较困难。由于存在上述种种缺陷,使得传统数据库无法满足新领域的应用需求,数据库技术遇到了挑战,在这种情况下,新一代数据库技术应运而生。,11,8.1.4 第三代数据库系统8.1.4.1 第三代数据库系统的特点第三代数据库系统是指支持面向对象(Object Oriented,简称OO)数据模型的
9、数据库系统。在数据库面临许多新的应用领域时,1989年9月,一批专门研究面向对象技术的著名学者著文“面向对象的数据库系统宣言”,提出继第一代(层次、网状)和第二代(关系)数据库系统后,新一代DBS将是OODBS。1990年9月,一些长期从事关系数据库理论研究的学者组建了高级DBMS功能委员会,发表了“第三代数据库系统宣言”的文章,提出了第三代DBMS应具有的三个基本特点。,12,1.第三代数据库系统应支持面向对象的数据模型除提供传统的数据管理服务外,第三代数据库系统应支持数据管理、对象管理和知识管理,支持更加丰富的对象结构和规则,以提供更加强大的管理功能,支持更加复杂的数据类型,以便能够处理非
10、传统的数据元素(如超文本、图片、声音等)。90年代成功的DBMS都会提供上述服务。有关OO模型的基本内容,将在下一节“面向对象的数据库技术”中详细介绍。2.第三代数据库系统必须保持或继承第二代数据库系统的优点第三代数据库系统不仅能很好的支持对象管理和规则管理,还要更好地支持原有的数据管理,保持第二代数据库系统的非过程化的数据存取方式和数据独立性。,13,3第三代数据库系统必须具有开放性数据库系统的开放性(open)是指必须支持当前普遍承认的计算机技术标准,如支持SQL语言,支持多种网络标准协议,使得任何其他系统或程序只要支持同样的计算机技术标准即可使用第三代数据库系统;开放性还包括系统的可移植
11、性、可连接性、可扩展性和可互操作性等。,14,8.1.4.2 研究第三代数据库系统的途径数据库工作者为了给应用建立合适的数据库系统,进行了艰苦的探索,从多方面发展了现行的数据库系统技术,主要的研究途径和方向有:对传统数据库(主要是关系数据库)进行不同层次上的扩充。与计算机领域中其他学科的新技术紧密结合,丰富和发展数据库系统的概念、功能和技术。面向应用领域的数据库技术的研究。其中,前两个途径是立足于数据库已有的成果和技术,加以发展进化,有人称之为“进化论”的观点和方法。后者是立足于新的应用需求和计算机未来的发展,研究全新的数据库系统,有人称之为“革新论”的观点和方法。,15,8.2.1 面向对象
12、模型的核心概念面向对象的程序设计方法是目前程序设计中主要的方法之一,它简单、直观、自然,十分接近人类分析和处理问题的自然思维方式,同时又能有效地用来组织和管理不同类型的数据。把面向对象程序设计方法和数据库技术相结合能够有效地支持新一代数据库应用。于是,面向对象数据库系统研究领域应运而生,吸引了相当面多的数据库工作者,获得了大量的研究成果,开发了很多面向对象数据库管理系统,包括实验系统和产品。比较典型的有POSTGRES系统和Gemstone系统,其中POSTGRES系统是以INGRES关系数据库系统为基础,扩充其功能,使之具有面向对象的特性;Gemstone系统是在面向对象程序语言基础上扩充得
13、到的。目前,各个关系数据库厂商都在不同程度上扩展了关系模型,推出了符合面向对象数据模型的数据库系统。,8.2 面向对象的数据库技术,16,面向对象的数据模型吸收了面向对象程序设计方法的核心概念和基本思想,用面向对象的观点来描述现实世界的实体。一系列面向对象的核心概念构成了面向对象数据模型的基础,其中主要包括对象和对象标识、属性和方法、封装和消息、类和继承。下面简要介绍这些概念:1对象(Object)和对象标识(Object Identifier,简称OID)对象是面向对象编程中最重要的概念,用对象来表示现实世界中的实体。一个学生,一门课程,一次考试记录等等都可以看作对象。每个对象都包含一组属性
14、和一组方法。,17,属性用来描述对象的状态、组成和特性,是对象的静态特征。一个简单对象如整数,其值本身就是其状态的完全描述,不再需要其它属性,这样的对象称为原子对象。属性的值也可以是复杂对象。一个复杂对象包含若干个属性,而这些属性作为一种对象,又可能包含多个属性,这样就形成了对象的递归引用,从而组成各种复杂对象。方法用以描述对象的行为特性。一个方法实际是一段可对对象操作的程序。方法可以改变对象的状态,所以称为对象的动态特征。如一台计算机,它不仅具有描述其静态特征的属性:CPU型号、硬盘大小、内存大小等,还具有开机、关机、睡眠等动态特征。由此可见,每个对象都是属性和方法的统一体。与关系模型的实体
15、概念相比,对象模型中的对象概念更为全面,因为关系模型主要描述对象的属性,而忽视了对象的方法,因此会产生前面提到过的“结构与行为相分离”的缺陷。,18,每一对象都由唯一的对象标识来识别,用于确定和检索这个对象。对象标识独立于对象的内容和存储位置,是一种逻辑标识符,通常由系统产生,在整个系统范围内是唯一的。两个对象即使内部状态值和方法都相同,如标识符不同,仍认为是两个相等而不同的对象。如同一型号的两个零件,在设计图上被用在不同的地方,这两个零件是“相等”的,但被视为不同的对象具有不同的标识符。在这一点上,面向对象的模型与关系模型不同,在关系模型中,如果两个元组的属性值完全相同,则被认为是同一元组。
16、,19,2封装(Encapsulation)和消息(Message)每一个对象都是其属性和方法的封装。用户只能见到对象封装界面上的信息,对象内部对用户是隐蔽的。封装的目的是为了使对象的使用和实现分开,使用者不必知道行为实现的细节,只需用消息来访问对象,这种数据与操作统一的建模方法有利于程序的模块化,增强了系统的可维护性和易修改性。例如,在一个面向对象的系统中,把计算机定义为一个对象,用户只要掌握如何开机、关机等操作就可以使用计算机了,而不用去管计算机内部是如何完成这些操作的细节问题。消息是用来请求对象执行某一处理或回答某些信息的要求。一个对象所能接受的消息与其所带参数构成对象的外部界面。某一对
17、象在执行相应处理时,如果需要,它可以通过传递消息请求其它对象完成某些操作,消息传递是对象之间联系的唯一方式。一个对象可以向许多对象同时发出消息,也可以接受多个对象发来的消息。,20,消息中只包含发送者的要求,它告诉接收者需要完成哪些处理。如何处理由接收者解释。接收者独立决定采用什么方式完成所需的处理。在面向对象系统中对对象的操作在于选择一个对象并通知它要作什么,该对象决定如何完成这一工作,即在它的一组方法中选择合适的方法作用于其自身。因此,在面向对象的系统中,对象是操作的基本单位。3.类(Class)和继承(Inheritance)具有同样属性和方法集的所有对象构成了一个对象类(简称类),一个
18、对象是某一类的实例(Instance)。例如,把学生定义一个类,则某个学生张三、李四等则是学生类中的对象。在OODB中,类是“型”,对象是某一类的“值”。,21,此外,类的表示具有层次性。在OO模型中,可以通过对已有的类定义进行扩充和细化来定义一个新类,从而形成了一种层次结构,有了超类和子类的概念。所谓超类就是可以通过扩充和细化导出其他类,而子类是指由通过扩展类定义而得到的类。这种层次结构的一重要特点是继承性。因为一个类可以有多个子类,也可以有多个超类,因此,一个类可以直接继承多个类,这种继承方式称为多重继承。如在职研究生,既属于职工类,又属于学生类,他继承了职工和学生的所有性质。如果一个类至
19、多只有一个超类,则一个类只能从单个超类继承属性和方法,这种继承方式称为单重继承。在多重继承情况下,类的层次结构不再是一棵树,而是一个网络结构。,22,8.2.2 面向对象数据库系统的特点OODBS是面向对象技术与数据库技术相结合的产物,所以称一个数据库系统为面向对象的数据库系统至少应满足两个条件,一个是支持面向对象数据模型的内核;另一个是支持传统数据库的所有数据成份,所以OODBS除了具有原来关系数据库的各种特点外,还具有以下特点:1扩充数据类型RDBMS只支持某些固定的类型,不能依据某一特定的应用所需来扩展其数据类型,而OODBS允许用户在关系数据库系统中扩充数据类型。新数据类型可定义为原有
20、类型的子类或超类,新的数据类型定义之后,存放在数据库管理系统核心中,如同基本数据类型一样,可供所有用户共享。,23,2支持复杂对象OODBS中的基本结构是对象而不是记录,一个对象不仅包括描述它的数据,还包括对它操作的方法。OODBS不仅支持简单的对象,还支持由多种基本数据类型或用户自定义的数据类型构成的复杂对象,支持子类、超类和继承的概念,因而能对现实世界的实体进行自然而直接的模拟,可表示诸如某个对象由“哪些对象组成”,有“什么性质”,处在“什么状态”,具有丰富的语义信息,这是传统数据库所不能比拟的。3提供通用的规则系统规则在DBMS及其应用中是十分重要的,在传统的RDBMS中用触发器来保证数
21、据库的完整性。触发器可以看成规则的一种形式。OODBS支持的规则系统将更加通用,更加灵活。例如规则中的事件和动作可以是任何的SQL语句,可以使用用户自定义的函数,规则还能够被继承。这就大大增强了OODBS功能,使之具有主动数据库的特性。,24,8.2.3 面向对象数据库语言OODB语言融程序语言和数据库语言于一体,用于描述面向对象数据库模式,说明并操纵类定义与对象实例。Gemstone数据库系统中所采用的OPAL语言被认为是OODB语言的典型代表,主要包括对象定义语言(ODL)和对象操纵语言(OML)。1对象定义语言ODL可以对类进行定义与操纵,其中包括定义类的属性、操纵特征、继承性与约束,可
22、以修改和撤销类。ODL还可以用于对象方法的定义与实现。在操作实现中,语言的命令可用于操作对象的局部数据结构。对象模型中的封装性允许方法由不同程序设计语言来实现,并且隐藏不同程序设计语言实现的事实。2对象操纵语言对象操纵包括对实例对象进行插入、修改、删除和查询等操作。,25,8.2.4 面向对象数据库的研究内容把面向对象的技术与数据库技术相结合形成面向对象的数据库系统,有许多新的课题要研究。1数据模型研究目前,面向对象的数据库还没有一个确定的数据模型,支持面向对象数据库的数据模型大多源于支持面向对象程序设计语言的数据模型,并进行了一些数据库功能的扩充。它们都包含了面向对象的基本思想,但缺乏一个公
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 面向 对象 分布式

链接地址:https://www.31ppt.com/p-6578568.html