第8章面向对象和分布式数据库.ppt_第1页
第8章面向对象和分布式数据库.ppt_第2页
第8章面向对象和分布式数据库.ppt_第3页
第8章面向对象和分布式数据库.ppt_第4页
第8章面向对象和分布式数据库.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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),计算机辅助工程(

5、CASE),图像处理等,这些新领域的应用不仅需要传统数据库所具有的快速检索和修改数据的特点,而且在应用中提出了一些新的数据管理的需求,如要求数据库能够处理声音、图像、视频等多媒体数据。 在这些新领域中,传统数据库暴露了其应用的局限性,主要表现在以下几个方面:,8,1面向机器的语法数据模型 传统数据库中采用的数据模型是面向机器的语法数据模型,只强调数据的高度结构化,只能存储离散的数据和有限的数据与数据之间的关系,语义表示能力较差,无法表示客观世界中的复杂对象,如声音、图像、视频等多媒体数据,工程、测绘等领域中的非格式化数据。此外,传统数据模型缺乏数据抽象,无法揭示数据之间的深层含义和内在联系。

6、2.数据类型简单、固定 传统的DBMS主要面向事务处理,只能处理简单的数据类型,如整数、实数、字符串、日期等,而不能根据特定的需要定义新的数据类型。例如,不能定义包含三个实数分量(x,y,z)的数据类型circle来表示圆,而只能分别定义三个实型的字段。这样对于复杂的数据类型只能由用户编写程序来处理,加重了用户的负担,也不能保证数据的一致性。,9,3结构与行为完全分离 从应用程序员的角度来看,在某一应用领域内标识的对象可以包含两方面的内容,即对象的结构和对象的行为。 传统的数据库可以采用一定的数据库模式来表示前者,而对于后者,却不能直接存储和处理,必须通过另外的应用程序加以实现。例如,对于多媒

7、体数据,虽然可以在带有前面所提到的缺陷的情况下以简单的二进制代码形式存储其结构,但却无法存储其行为(如播放声音、显示图像等)。这样,这些多媒体数据必须由相应的应用程序来识别,而对于其他不了解其格式的用户来说,数据库中存储的是没有任何意义的二进制数据。 由此可见,在传统数据库中,对象的结构可以存储在数据库中,而对象的行为必须由应用程序来表示,对象的结构与行为完全相分离。,10,4被动响应 传统数据库只能根据用户的命令执行特定的服务,属于被动响应,用户要求做什么,系统就做什么。而在实际应用中,往往要求一个系统能够管理它本身的状态,在发现异常情况时及时通知用户;能够主动响应某些操作或外部事件,自动采

8、取规定的行动等等。例如,一个仓库管理系统除了希望数据库系统能够正确,高效地存储有关物品的数据,还希望数据库系统能够对仓库库存进行监控,当库存太少或太多时主动向用户发出警告。要完成这样的工作,数据库系统必须更加主动、更加智能化,而传统的数据库显然不能适应这一要求。 5事务处理能力较差 传统数据库只能支持非嵌套事务,对于较长事务的运行较慢,且中事务发生故障时恢复比较困难。 由于存在上述种种缺陷,使得传统数据库无法满足新领域的应用需求,数据库技术遇到了挑战,在这种情况下,新一代数据库技术应运而生。,11,8.1.4 第三代数据库系统 8.1.4.1 第三代数据库系统的特点 第三代数据库系统是指支持面

9、向对象(Object Oriented,简称OO)数据模型的数据库系统。 在数据库面临许多新的应用领域时,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 研究第三代数据库系统的途径 数据库工作者为了给应用建立合适的数据库系统,进行了艰苦的探索,从多方面发展了现行的数据库系统技术,主要的研究途径和方向有: 对传统数据库(主要是关系数据库)进行不同层次上的扩充。 与计算机领域中其他学科的新技术紧密结合,丰富和发展数据库系统的概念、功能和技术。 面向应用领域的数据库技术的研究。 其中,前两个途径是立足于数据库已有的成果和技术,加以发展进化,有人称之为“进化论”的观点和方法。后者是立足于新的应用需求和计算机未来的发展,研

12、究全新的数据库系统,有人称之为“革新论”的观点和方法。,15,8.2.1 面向对象模型的核心概念 面向对象的程序设计方法是目前程序设计中主要的方法之一,它简单、直观、自然,十分接近人类分析和处理问题的自然思维方式,同时又能有效地用来组织和管理不同类型的数据。 把面向对象程序设计方法和数据库技术相结合能够有效地支持新一代数据库应用。于是,面向对象数据库系统研究领域应运而生,吸引了相当面多的数据库工作者,获得了大量的研究成果,开发了很多面向对象数据库管理系统,包括实验系统和产品。 比较典型的有POSTGRES系统和Gemstone系统,其中POSTGRES系统是以INGRES关系数据库系统为基础,

13、扩充其功能,使之具有面向对象的特性;Gemstone系统是在面向对象程序语言基础上扩充得到的。 目前,各个关系数据库厂商都在不同程度上扩展了关系模型,推出了符合面向对象数据模型的数据库系统。,8.2 面向对象的数据库技术,16,面向对象的数据模型吸收了面向对象程序设计方法的核心概念和基本思想,用面向对象的观点来描述现实世界的实体。 一系列面向对象的核心概念构成了面向对象数据模型的基础,其中主要包括对象和对象标识、属性和方法、封装和消息、类和继承。下面简要介绍这些概念: 1对象(Object)和对象标识(Object Identifier,简称OID) 对象是面向对象编程中最重要的概念,用对象来

14、表示现实世界中的实体。一个学生,一门课程,一次考试记录等等都可以看作对象。 每个对象都包含一组属性和一组方法。,17,属性用来描述对象的状态、组成和特性,是对象的静态特征。 一个简单对象如整数,其值本身就是其状态的完全描述,不再需要其它属性,这样的对象称为原子对象。 属性的值也可以是复杂对象。一个复杂对象包含若干个属性,而这些属性作为一种对象,又可能包含多个属性,这样就形成了对象的递归引用,从而组成各种复杂对象。 方法用以描述对象的行为特性。 一个方法实际是一段可对对象操作的程序。 方法可以改变对象的状态,所以称为对象的动态特征。如一台计算机,它不仅具有描述其静态特征的属性:CPU型号、硬盘大

15、小、内存大小等,还具有开机、关机、睡眠等动态特征。 由此可见,每个对象都是属性和方法的统一体。 与关系模型的实体概念相比,对象模型中的对象概念更为全面,因为关系模型主要描述对象的属性,而忽视了对象的方法,因此会产生前面提到过的“结构与行为相分离”的缺陷。,18,每一对象都由唯一的对象标识来识别,用于确定和检索这个对象。 对象标识独立于对象的内容和存储位置,是一种逻辑标识符,通常由系统产生,在整个系统范围内是唯一的。 两个对象即使内部状态值和方法都相同,如标识符不同,仍认为是两个相等而不同的对象。 如同一型号的两个零件,在设计图上被用在不同的地方,这两个零件是“相等”的,但被视为不同的对象具有不

16、同的标识符。 在这一点上,面向对象的模型与关系模型不同,在关系模型中,如果两个元组的属性值完全相同,则被认为是同一元组。,19,2封装(Encapsulation)和消息(Message) 每一个对象都是其属性和方法的封装。 用户只能见到对象封装界面上的信息,对象内部对用户是隐蔽的。 封装的目的是为了使对象的使用和实现分开,使用者不必知道行为实现的细节,只需用消息来访问对象,这种数据与操作统一的建模方法有利于程序的模块化,增强了系统的可维护性和易修改性。 例如,在一个面向对象的系统中,把计算机定义为一个对象,用户只要掌握如何开机、关机等操作就可以使用计算机了,而不用去管计算机内部是如何完成这些

17、操作的细节问题。 消息是用来请求对象执行某一处理或回答某些信息的要求。 一个对象所能接受的消息与其所带参数构成对象的外部界面。 某一对象在执行相应处理时,如果需要,它可以通过传递消息请求其它对象完成某些操作,消息传递是对象之间联系的唯一方式。 一个对象可以向许多对象同时发出消息,也可以接受多个对象发来的消息。,20,消息中只包含发送者的要求,它告诉接收者需要完成哪些处理。如何处理由接收者解释。接收者独立决定采用什么方式完成所需的处理。 在面向对象系统中对对象的操作在于选择一个对象并通知它要作什么,该对象决定如何完成这一工作,即在它的一组方法中选择合适的方法作用于其自身。因此,在面向对象的系统中

18、,对象是操作的基本单位。 3.类(Class)和继承(Inheritance) 具有同样属性和方法集的所有对象构成了一个对象类(简称类),一个对象是某一类的实例(Instance)。 例如,把学生定义一个类,则某个学生张三、李四等则是学生类中的对象。在OODB中,类是“型”,对象是某一类的“值”。,21,此外,类的表示具有层次性。在OO模型中,可以通过对已有的类定义进行扩充和细化来定义一个新类,从而形成了一种层次结构,有了超类和子类的概念。 所谓超类就是可以通过扩充和细化导出其他类,而子类是指由通过扩展类定义而得到的类。 这种层次结构的一重要特点是继承性。 因为一个类可以有多个子类,也可以有多

19、个超类,因此,一个类可以直接继承多个类,这种继承方式称为多重继承。 如在职研究生,既属于职工类,又属于学生类,他继承了职工和学生的所有性质。 如果一个类至多只有一个超类,则一个类只能从单个超类继承属性和方法,这种继承方式称为单重继承。 在多重继承情况下,类的层次结构不再是一棵树,而是一个网络结构。,22,8.2.2 面向对象数据库系统的特点 OODBS是面向对象技术与数据库技术相结合的产物,所以称一个数据库系统为面向对象的数据库系统至少应满足两个条件,一个是支持面向对象数据模型的内核;另一个是支持传统数据库的所有数据成份,所以OODBS除了具有原来关系数据库的各种特点外,还具有以下特点: 1扩

20、充数据类型 RDBMS只支持某些固定的类型,不能依据某一特定的应用所需来扩展其数据类型,而OODBS允许用户在关系数据库系统中扩充数据类型。 新数据类型可定义为原有类型的子类或超类,新的数据类型定义之后,存放在数据库管理系统核心中,如同基本数据类型一样,可供所有用户共享。,23,2支持复杂对象 OODBS中的基本结构是对象而不是记录,一个对象不仅包括描述它的数据,还包括对它操作的方法。 OODBS不仅支持简单的对象,还支持由多种基本数据类型或用户自定义的数据类型构成的复杂对象,支持子类、超类和继承的概念,因而能对现实世界的实体进行自然而直接的模拟,可表示诸如某个对象由“哪些对象组成”,有“什么

21、性质”,处在“什么状态”,具有丰富的语义信息,这是传统数据库所不能比拟的。 3提供通用的规则系统 规则在DBMS及其应用中是十分重要的,在传统的RDBMS中用触发器来保证数据库的完整性。触发器可以看成规则的一种形式。OODBS支持的规则系统将更加通用,更加灵活。 例如规则中的事件和动作可以是任何的SQL语句,可以使用用户自定义的函数,规则还能够被继承。这就大大增强了OODBS功能,使之具有主动数据库的特性。,24,8.2.3 面向对象数据库语言 OODB语言融程序语言和数据库语言于一体,用于描述面向对象数据库模式,说明并操纵类定义与对象实例。 Gemstone数据库系统中所采用的OPAL语言被

22、认为是OODB语言的典型代表,主要包括对象定义语言(ODL)和对象操纵语言(OML)。 1对象定义语言 ODL可以对类进行定义与操纵,其中包括定义类的属性、操纵特征、继承性与约束,可以修改和撤销类。 ODL还可以用于对象方法的定义与实现。 在操作实现中,语言的命令可用于操作对象的局部数据结构。 对象模型中的封装性允许方法由不同程序设计语言来实现,并且隐藏不同程序设计语言实现的事实。 2对象操纵语言 对象操纵包括对实例对象进行插入、修改、删除和查询等操作。,25,8.2.4 面向对象数据库的研究内容 把面向对象的技术与数据库技术相结合形成面向对象的数据库系统,有许多新的课题要研究。 1数据模型研

23、究 目前,面向对象的数据库还没有一个确定的数据模型,支持面向对象数据库的数据模型大多源于支持面向对象程序设计语言的数据模型,并进行了一些数据库功能的扩充。它们都包含了面向对象的基本思想,但缺乏一个公共的形式框架,以至在这个框架中可以定义面向对象的数据模型,给出这个数据模型中对象及其方法的形式语义以建立面向对象数据库系统的理论基础。 2与程序设计语言集成的研究 面向对象程序设计语言着重于数据库的行为特征和结构特征,而数据库着重于对永久性数据的管理,两者的集成将会对更广泛的应用领域有更好的支持。,26,3体系结构的研究 将面向对象的概念引入数据库中,对传统数据库系统中的一些结构概念需要重新考虑,包

24、括查询、索引、并发控制以及存储结构,这些都要涉及到对类的处理,要比传统数据模型中的结构复杂得多。 人们认为OODBS将成为下一代数据库系统的典型代表,但是,OODBS在奠基其新一代数据库地位之前要清除两个障碍:标准化和性能。 关系数据库的成功不仅在于其简单的数据模型和高度的数据独立性,还在于其标准化。标准化对OODBMS实际上更为重要,因为OODBMS涉及范围远远超出RDBMS,应用更加复杂,为了使应用实际可行,为了使应用实际可以在不同环境间移植和操作,以及为了使用户容易学习新的OODBS,标准尤其重要。,27,数据库技术与其他相关技术的结合是当前数据库技术发展的重要特征。 计算机领域中其他新

25、兴技术的发展对数据库技术产生了重大影响。面对传统数据库技术的不足和缺陷,人们自然而然地想到借鉴其他新兴的计算机技术,从中吸取新的思想、原理和方法,将其与传统的数据库技术相结合,以推出新的数据库模型,从而解决传统数据库存在的问题。通过这种方法,人们研制出了各种各样的新型数据库,例如: 数据库技术与分布处理技术相结合,出现了分布式数据库; 数据库技术与人工智能技术相结合,出现了演绎数据库、主动数据库和知识库等; 数据库技术与多媒体技术相结合,出现了多媒体数据库。 下面我们将对其中的几个新型数据库中以介绍。,8.3 数据库技术与其他相关技术的结合,28,8.3.1 分布式数据库(Distribute

26、d Database) 8.3.1.1 集中式系统和分布式系统 到目前为止,我们所介绍的数据库系统都是集中式数据库系统。所谓集中式数据库就是集中在一个中心场地的电子计算机上,以统一处理方式所支持的数据库。这类数据库无论是逻辑上还是物理上都是集中存储在一个容量足够大的外存储器上,其基本特点是: 集中控制处理效率高,可靠性好; 数据冗余少,数据独立性高; 易于支持复杂的物理结构,去获得对数据的有效访问。 但是随着数据库应用的不断发展,人们逐渐地感觉到过份集中化的系统在处理数据时有许多局限性。例如,不在同一地点的数据无法共享;系统过于庞大、复杂,显得不灵活且安全性较差;存储容量有限不能完全适应信息资

27、源存储要求等等。,29,正是为了克服这种系统的缺点,人们采用数据分散的办法,即把数据库分成多个,建立在多台计算机上,这种系统称为分散式数据库系统。 由于计算机网络技术的发展,才有可能将并排分散在各处的数据库系统通过网络通信技术连结起来,这样形成的系统称为分布式数据库系统。 近年来,分布式数据库已经成为信息处理中的一个重要领域,它的重要性还将迅速增加。 8.3.1.2 分布式数据库的定义 分布式数据库是一组结构化的数据集合,它们在逻辑上属于同一系统而在物理上分布在计算机网络的不同结点上。网络中的各个结点(也称为“场地”)一般都是集中式数据库系统,由计算机、数据库和若干终端组成。,30,数据库中的

28、数据不是存储在同一场地,这就是分布式数据库的“分布性”特点,也是与集中式数据库的最大区别。 表面上看,分布式数据库的数据分散在各个场地,但这些数据在逻辑上却是一个整体,如同一个集中式数据库。因而,在分布式数据库中就有全局数据库和局部数据库这样两个概念。 所谓全局数据库就是从系统的角度出发,指逻辑上一组结构化的数据集合或逻辑项集; 而局部数据库是从各个场地的角度出发,指物理结点上各个数据库,即子集或物理项集。 这是分布式数据库的“逻辑整体性”特点,也是与分散式数据库的区别。,31,例如,假设一个银行有三个支行,图8.1中的三个场地分别代表一个支行所在地。 在一般情况下,一个支行的用户所提出的各种

29、应用,只需要通过访问该支行的帐目数据库即可实现。也就是说,这些应用完全由该支行的计算机进行处理。我们把这些应用称之为局部应用。局部应用的典型例子就是银行的借贷业务,它只需要存取某一支行的数据库就可完成。如果分布式数据库只限于局部应用,那么还只是起了分散式数据库的作用。 而银行中的很多业务,并非只限于某一支行的数据库。如银行中的通兑业务,即场地1存款的用户可能到场地2或场地3去取款;银行中的转帐业务,要求从一个支行的帐户中转出若干金额到另一个支行的帐户中去。这些应用要求就要同时更新两个支行(场地)上的数据库。我们把这些应用称为全局应用(或分布应用)。,32,33,8.3.1.3 分布式数据库的特

30、点 分布式数据库可以建立在以局域网连接的一组工作站上,也可以建立在广域网(或称远程网)的环境中。但分布式数据库系统并不是简单地把集中式数据库安装在不同的场地,而是具有自己的性质和特点。 1自治与共享 分布式数据库有集中式数据库的共享性与集成性,但它更强调自治及可控制的共享。 这里的自治是指局部数据库可以是专用资源也可以是共享资源。 这种共享资源体现了物理上的分散性,这是由按一定的约束条件被划分而形成的。 因此,要由一定的协调机制来控制以实现共享。同时可以构成很灵活的分布式数据库。 它的两个极端分别是完全集中式或者完全分散式。,34,2冗余的控制 在研究集中式数据库技术时强调减少冗余,但在研究分

31、布式数据库时允许冗余物理上的重复。 这种冗余(多副本)增加了自治性,即数据可以重复地驻留在常用的结点上以减少通信代价,提供自治基础上的共享。冗余不仅改善系统性能,同时也增加了系统的可用性。即不会由于某个结点的故障而引起全系统的瘫痪。但这无疑增加了存储代价;也增加了副本更新时的一致性代价,特别当有故障时,结点重新恢复后保持多个副本一致性的代价。 3分布事务执行的复杂性 逻辑数据项集实际上是由分布在各个结点上的多个关系片段(子集)所合成的。 一个项可以物理上被划分为不相交(或相交)的片段;一个项(或片段)可以有多个相同的副本且存储在不同的结点上。,35,所以,对分布式数据库存取的事务是一种全局性事

32、务,它是由许多在不同结点上执行对各局部数据库存取的局部子事务所合成的。如果仍应保持事务执行的原子性,则必须保证全局事务的原子性;当多个全局事务并发时,则必须保持全局可串行性。也就是说,这种全局事务具有分布执行的特性。 分布式数据库的状态一致性和可恢复性是面向全局的。所有子事务提交后全局事务才能提交;不仅要保证子事务的可串行化,而且应该保证全局事务的可串行化。,36,4数据的独立性 数据库技术的一个目标是使数据与应用程序间尽量独立,相互之间影响最小。也就是数据的逻辑和物理存储对用户是透明的。在分布式数据库中数据的独立性有更丰富的内容。 使用分布式数据库时,应该像使用集中式数据库时一样,即系统要提

33、供一种完全透明的性能,具体包括以下内容: (1)逻辑数据透明性。某些用户的逻辑数据文件改变时,或者增加新的应用使全局逻辑结构改变时,对其它用户的应用程序没有或尽量少的影响。 (2)物理数据透明性。数据在结点上的存储格式或组织方式改变时,数据的全局结构与应用程序无需改变。 (3)数据分布透明性。用户不必知道全局数据如何划分的细节。 (4)数据冗余的透明性。用户无需知道数据重复,即数据子集在不同结点上冗余存储的情况。,37,8.3.1.4 分布式数据库的应用及展望 一个完全分布式数据库系统在站点分散实现共享时,其利用率高,有站点自治性,能随意扩充逐步增生,可靠性和可用性好,有效且灵活,用户完全像使

34、用本地的集中式数据库一样。 分布式数据库已广泛应用于企业人事、财务、库存等管理系统,百货公司、销售店的经营信息系统,电子银行、民航定票、铁路定票等在线处理系统,国家政府部门的经济信息系统,大规模数据资源如人口普查、气象预报、环境污染、水文资源、地震监测等信息系统。,38,此外,随着数据库技术深入各应用领域,除了商业性、事务性应用以外,在以计算机作为辅助工具的各个信息领域,如CAD,CAM,CASE,OA,AI,军事科学等,同样适用分布式数据库技术,而且对数据库的集成共享、安全可靠等特性有更多的要求。 为了适应新的应用,一方面要研究克服关系数据模型的局限性,增加更多面向对象的语义模型,研究基于分

35、布式数据库的知识处理技术;另一方面可以研究如何弱化完全分布、完全透明的概念,组成松散的联邦型分布式数据库系统。这种系统不一定保持全局逻辑一致,而仅提供一种协商谈判机制,使各个数据库维持其独立性,但能支持部分有控制的数据共享,这对OA等信息处理领域很有吸引力。 总之,分布式数据库技术有广阔的应用前景。随着计算机软、硬件技术的不断发展和计算机网络技术的发展,分布式数据库技术也将不断地向前发展。,39,8.3.2 主动数据库(Active Database) 8.3.2.1 主动数据库的定义 主动数据库是相对传统数据库的被动性而言的。在传统数据库中,当用户要对数据库中的数据进行存取时,只能通过执行相

36、应的数据库命令或应用程序来实现。数据库本身不会根据数据库的状态主动做些什么,因而是被动的。 然而在许多实际应用领域中,例如计算机集成制造系统,管理信息系统,办公自动化中常常希望数据库系统在紧急情况下能够根据数据库的当前状态,主动、适时地作出反应,执行某些操作,向用户提供某些信息。例如,前面提到的仓库管理系统就是这样。这类应用的特点是事件驱动数据库操作以及要求数据库系统支持涉及时间方面的约束条件。,40,为此,人们在传统数据库的基础上,结合人工智能技术研制和开发了主动数据库。 所谓主动数据库就是除了完成一切传统数据库的服务外,还具有各种主动服务功能的数据库系统。 8.3.2.2 主动数据库的实现

37、 主动数据库的目标旨在提供对紧急情形及时反应的功能,同时又提高数据库管理系统的模块化程度。 一般的方法是在传统数据库系统中嵌入ECA规则,即事件条件动作(EventConditonAction)。 ECA规则可以表示为以下形式: WHEN IF THEN (或后跟一组IF-THEN规则),41,系统提供一个“自动监视”机构(一般可以是一个直接由操作系统控制的独立进程或某种硬件设施等),它主动地不时地检查着这些规则中包含的各种事件是否已经发生,一旦某事件被发现,系统就主动触发执行相应的IF-THEN规则(或规则组)。 显然,此时DBMS本身就可主动履行一些预先由用户设定的动作,可把诸如完整性约束

38、、存取控制、例外处理、触发警告、主动服务、状态开关切换乃至复杂的演绎推理功能等以一种统一的机制得以实现。 为了有效地支持ECA规则,在主动数据库中需要有以下实现技术的支持: 1知识模型 所谓知识模型是指在主动数据库管理系统中描述、存储、管理ECA规则的方法。 为此,必须扩充传统的数据模型,使之能支持对ECA规则的定义、操作及规则本身的一致性保证。 此外,知识模型还应支持有关时间的约束条件。,42,传统数据库系统中,数据模型的描述能力有限,尽管为了实现完整性制而引入了触发器机制,但触发器和主动数据库中规则相比表达能力低。只能描述“更新单个关系”这类事件。也不区分事件和条件。条件的检查、动作的执行

39、总是在触发之后立即执行或事物提交前执行,执行方式简单。因此主动数据库必须扩充传统的数据模型,增加规则部分,即知识模型。 2执行模型 执行模型指ECA规则的处理、执行方式,包括ECA规则中事件条件、条件动作之间各种耦合方式及其语义描述,规则的动作和用户事务的关系。执行模型是对传统事务模型的发展和扩充。 在主动数据库中研究并提出了立即执行、延时执行、紧耦合/松耦合等等多种多样的执行ECA规则的方式。 丰富多样的执行模型使用户可以灵活地定义主动数据库的行为,克服了传统数据库管理系统中触发器事务只能顺序执行其规则的不足。,43,3条件检测 主动数据库中条件检测是系统的关键技术之一。主动数据库中条件复杂

40、,可以是动态的条件、多重条件、交叉条件。 所谓交叉是指条件可以互相覆盖,即其中某些子条件可以属于其他主条件。因此高效地对条件求值是系统的目标之一。 4事物调度 一般地,事物调动是指如何控制事务的执行次序,使的事务满足一定的约束条件。 在传统DBMS中并发事务的调度执行应满足可串行化要求以保证数据库的一致性。 在主动数据库中,对事务的调度不仅要满足并发环境下的可串化要求而且要满足对事务时间方面的要求。例如事务中操作的开始时间、终止时间、所须的执行时间等。,44,要同时满足两方面要求的调度是一个困难的技术问题。它要综合传统数据库的并发控制技术和实时操作系统中与时间要求有关的调度技术。 由于主动数据

41、库中执行模型的复杂性更增加事务调度的技术难度。为此要研究一种新的框架或新的调度模型,以此为基础来建立调度策略、调度算法。 由于事务调度要满足时间方面的要求,因而调度机制常常是执行时间的谓词,而对执行时间估计的代价模型同样是尚未解决的难题。 5体系结构 主动数据库系统的体系结构应该是具有高度的模块性和灵活性。由于目前大部分主动数据库是在传统DBMS或面向对象数据库管理系统上研制的,其体系结构大多是扩充DBMS的事务管理部件、对象管理部件以支持执行模型和知识模型。,45,6系统效率 对主动数据库的研究必须包括对不同体系结构、算法运行效率的比较和评价。 为了提高系统效率,正在研究的课题有如:把条件计算和动作执行从触发事务中分离出来,启发式事务调度算法,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论