书城计算机数据库原理及Oracle应用
24892200000024

第24章 数据库的发展方向

9.1 分布式数据库系统

数据库技术作为信息技术的有机组成,有十分重要的地位,并在需求驱动下得到很大的发展。

本章主要介绍的内容包括:将分布式技术与数据库技术相结合形成的分布式数据库技术;将并行技术与数据库技术相结合形成的并行数据库技术。实际上,在数据库家族成员中还有很多新的成员,例如:对象数据库、知识库、模糊数据库、多媒体数据库、空间数据库、统计数据库等。可以认为,数据库技术已经成为当前信息技术的基本内容,并已成为计算机应用系统和计算机信息系统的基础和核心。

由于数据库家族的技术内容丰富,现仅就最常用和常见的两种做简要介绍,掌握这些知识是对数据库知识的进一步了解。

9.1.1 分布式数据库系统的定义

分布式数据库是由一组数据组成的,这组数据分布在计算机网络的不同计算机上,网络中的每个结点具有独立的数据库系统,它有自己的数据库,自己的用户,自己的CPU,运行自己的DBMS,执行局部应用,具有独立处理的能力。同时,每个结点也能通过网络执行全局应用。每个场地是具有高度的自治性,同时又相互协作组成一个整体。数据在物理上分布在各自的结点上,但逻辑上则是属于同一个数据库系统。对于用户来说,一个分布式数据库系统逻辑上与一个集中式数据库系统一样,用户可以在任何一个场地执行全局应用。

从上述定义可以看到,分布式数据库主要强调分布性和逻辑整体性。分布性是指数据库的数据不存储在同一计算机的存储设备上,这与集中式数据库有区别;逻辑整体性是指这些数据逻辑上是互相联系的一个整体,即逻辑上与集中式数据库相同。

9.1.2 分布式数据库系统的特点

分布式数据库系统是在集中式数据库系统的基础上发展起来的,它具有自己的性质和特征。集中式数据库的许多概念和技术(如数据独立性,数据共享和减少冗余度,并发控制,完整性,安全性和恢复等)在分布式数据库系统中都有了不同的更加丰富的内容。

1.数据独立性

数据独立性是数据库追求的主要目标之一。在集中式数据库中,数据独立性包括两方面:数据的逻辑独立性与数据的物理独立性,其含义是用户程序与数据的全局逻辑结构与数据的存储结构无关。

在分布式数据库中,数据独立性这一特性更加重要,并具有更多的内容。除了数据的逻辑独立性与物理独立性外,还有数据的分布独立性,也称分布透明性(Distribution Transparency)。分布透明性指用户不必关心数据的逻辑分片,不必关心数据物理位置分布的细节,也不必关心重复副本(冗余数据)一致性问题,同时也不必关心局部场地上数据库支持哪种数据模型。分布透明性也可以归入数据的物理独立性范围。

分布透明性的优点是很明显的。有了分布透明性,用户的应用程序书写起来就如同数据没有分布一样。当数据从一个场地移到另一个场地时不必改写应用程序,当增加某些数据的重复副本时也不必改写应用程序。数据分布的信息由系统存储在数据字典中,用户对非本地数据的访问请求由系统根据数据字典予以解释,转换,传送。

在集中式数据库中,数据独立性是指通过系统的三级模式(外模式、模式和内模式)和它们之间的二级映像保证的。在分布式数据库系统中,分布透明性是通过引入新的模式和模式间的映像保证的。

2.集中与自治共享结合的控制结构

数据库中的数据是共享的资源,数据的共享有两个层面:一是局部共享,即在局部数据库中存储供本地多用户共享的数据;二是全局共享,即在分布式数据库的各个场地同时存储供其他场地的用户共享的数据,支持系统的全局应用。因此,相应的控制机构也有两个层面:集中和自治。各局部的DBMS可以独立地管理局部数据库,具有自治的功能;同时,系统又设有集中控制机制,协调各个局部DBMS的工作,执行全局应用。

当然,不同的系统,集中和自治的程度不尽相同。有些系统高度自治,连全局应用事务的协调都由局部DBMS和局部DBA共同承担,而不设全局DBA。有些系统则集中控制程度较高,场地自治功能较弱。

3.适当增加数据冗余度

在集中式数据库中,系统的目标之一是尽量减少冗余。原因是冗余数据浪费存储空间,而且容易造成副本之间的不一致。为了保证数据的一致性,需要付出一定的维护代价。数据共享可以减少冗余度。而在分布式数据库中却希望增加冗余数据,在不同的场地存储同一数据的不同副本,其原因如下。

提高系统的可靠性,可用性。当某一场地出现故障时,系统可以对另一场地上的相同副本进行操作,不会因一处故障而造成整个系统的瘫痪。

提高系统性能。系统可以根据距离选择用户最近的数据副本进行操作,减少通信代价,改善整个系统的性能。

冗余副本之间数据不一致性的问题是分布式数据库必须着力解决的问题。一般地讲,增加冗余度方便了检索,提高了系统的可用性,可靠性,但不利于更新,增加了系统维护的代价,因此应在这方面作出权衡,进行优化。

4.全局的一致性、可恢复性和并发操作的可串行性

分布式数据库中各数据库应满足集中式数据库的一致性、可恢复性和并发操作的可串行性。除此之外还应保证数据库的全局一致性,并发操作的可串行性和系统的全局可恢复性。因为全局应用要涉及两个以上结点的数据,所以分布式数据库系统中一个事务可能由不同结点的多个操作组成。如银行转账事务包括两个结点上的数据更新,这样,当其中某一个结点出现故障操作失败后如何使另一个结点撤销已执行操作?这些技术要比集中式数据库复杂和困难的多,分布式数据库系统必须解决这些问题。

9.1.3 分布式数据库系统的结构

从整体上可以分为两大部分:下面是集中式数据库的模式结构,代表各结点上局部数据库系统的基本结构;上面是分布式数据库系统增加的模式级别。

1.四级模式

分布式数据库系统的模式结构包括下列四级模式。

(1)全局外模式:全局应用的用户视图,是全局概念模式的子集。

(2)全局概念模式:定义分布式数据库中数据的整体逻辑结构,全局概念模式中所用的数据模型应该易于向关系模型转换。全局概念模式定义了一组全局关系。

(3)分片模式:每一个全局关系可以分为若干个不相交的部分,每一部分称为一个片段。分片模式定义了全局关系到片段的映像,一个片段来自一个全局关系,而一个全局关系可以对应多个片段。

(4)分布模式:片段是全局关系的逻辑部分,一个片段在物理上可以分布到网络的不同结点上。分布模式定义了片段存放结点的映像。若映像是一对多的,即一个片段分布到多个结点上存放,则是冗余的分布式数据库,若映像是一对一的,则是非冗余的分布式数据库。

根据分布模式提供的信息,一个全局查询可以分解为多个子查询,每一个子查询要访问的数据属于同一结点的局部数据库,通过分布模式到各局部数据库的映像把存储在局部场地的全局关系的片段转换成局部场地的DBMS所支持的数据模型。

分片模式和分布模式均是全局的,分布式数据库系统中增加的这些模式和相应的映像使分布式数据库系统具有了分布透明性。

2.数据分片

将数据分片,使数据存放的基本单位不是关系而是片段,既有利于数据的分布,也有利于控制数据的冗余度。分片的方式有多种,水平分片和垂直分片是两种基本的分片方式。

水平分片是指按一定的条件将关系按行(水平方向)分为若干个子集,每个子集为关系的一个片段。

垂直分片是指将关系按列(垂直方向)分为若干个子集。垂直分片的片段必须能够重构原来的全局关系,即用连接的方法可恢复关系,因此垂直分片的诸片段通常都包含关系的码。

3.分布透明性

从模式结构可以看到分布透明性包括分片透明性、位置透明性和局部数据模型透明性。

分片透明性是指用户或应用程序只对全局关系进行操作而不必考虑关系的分片。当分片模式改变时,只需要修改全局模式到分片模式的映像,而全局关系和应用程序都不必修改。分片透明性是分布透明性的最高层次。

位置透明性是指用户或应用程序不必了解片段的存储场地。当存储场地改变了,只需要修改分片模式到分布模式的映像,应用程序不必修改。位置透明性是分布透明性的下一个层次。

局部数据模型透明性是指用户或用户程序不必了解局部结点上使用的是哪种数据模型,模型的转换及语言的转换均由分布模式到各局部数据库的映像完成。

9.1.4 分布式数据库管理系统

分布式数据库管理系统(Distributed Database Management System,D-DBMS)是建立、管理和维护分布式数据库的一组系统软件。下面分析D-DBMS的主要结构和功能。

9.1.4.1 D-DBMS的组成和功能

(1)LDBMS:局部结点上的数据库管理系统。其功能是建立和管理局部数据库,提供结点自治能力。执行局部应用及全局查询的子查询。

(2)GDBMS:全局数据库管理系统(Global DBMS)。主要功能是提供分布透明性,协调全局事务的执行,协调各局部DBMS以便完成全局应用,保证数据库的全局一致性,执行并发控制,实现更新同步,提供全局恢复功能。

(3)GDD:全局数据字典(Global Data Dictionary)。主要功能与集中式数据库的数据字典类似,存放全局概念模式、分片模式、分布模式的定义及各模式之间映像的定义,存放用户存取权限的定义,存放完整性约束条件的定义,保证数据库的安全性和完整性。

(4)CM:通信管理系统(Communication Management System)。主要功能是在分布式数据库各结点之间传送消息和数据,完成通信功能。

9.1.4.2 D-DBMS的各种体系结构

D-DBMS功能的分割和不同的配置策略产生了D-DBMS的各种体系结构。

1.根据GDBMS分布的结点数划分

根据GDBMS分布在一个结点还是在多个结点,D-DBMS的体系结构可分为全局控制集中的D-DBMS、全局控制分散的D-DBMS和全局控制部分分散的D-DBMS。

(1)全局控制集中的D-DBMS

这种结构的特点是全局控制成分GDBMS集中在某一结点上,由该结点完成全局事务的协调和局部数据库转换等一切控制功能。全局数据字典只有一个,也存放在该结点上,它是GDBMS执行控制的依据。这种结构的优点是控制简单,易实现更新一致性。但由于控制集中在某一特定的结点上,不仅容易形成瓶颈而且系统较脆弱,一旦该结点出现故障,整个系统就将瘫痪。

(2)全局控制分散的D-DBMS

这种结构的特点是全局控制成分GDBMS分散在网络的每一个结点上,全局数据字典也在每个结点上有一份,每个结点都能完成全局事务的协调和局部数据库转换,每个结点既是全局事务的参与者又是协调者。一般称这类数据库为完全分布式的D-DBMS。这种结构的优点是结点独立,自治性强,单个结点退出或进入系统均不会影响整个系统的运行。但是全局控制的协调机制和一致性的维护都比较复杂。

(3)全局控制部分分散的D-DBMS

这种结构是根据应用的需要将GDBMS和全局数据字典分散在某些结点上,是介于前两者之间的体系结构。

2.根据局部数据库的DBMS是否相同划分

根据局部数据库的DBMS是否相同,D-DBMS的体系结构又可分为同构型D-DBMS、异构型D-DBMS。

(1)同构型D-DBMS

每个结点的局部数据库具有相同的DBMS,即使操作系统和计算机硬件不同。在设计和研制D-DBMS时,若并不存在已运行的局部数据库,则采用同构型的结构比较方便。

(2)异构型D-DBMS

各结点的局部数据库具有不同的DBMS。在设计和研制D-DBMS时,若已存在局部数据库,而这些数据库可能采用不同的数据模型(层次,网状或关系),或者虽然数据模型相同但它们是不同厂商的DBMS(如Informix,Sybase,DB2,Oracle),这就必须开发异构型的D-DBMS。

现在各数据库厂商都提供了不同DBMS之间的开放的调用接口,支持开发异构型D-DBMS。如:Oracle数据库的GateWay就可以实现不同DBMS之间的调用。如:SYBASE REPLICATION SERVER提供开放接口,支持异构数据库。

9.2 并行数据库系统

9.2.1 并行数据库系统概述

并行数据库系统是在并行机上运行的具有并行处理能力的数据库系统。并行数据库系统是数据库技术与并行计算技术相结合的产物。

计算机系统性能价格比的不断提高迫切要求硬件、软件结构的改进。硬件方面,单纯依靠提高微处理器速度和缩小体积来提高性能价格比的方法正趋于物理极限;磁盘技术的发展滞后于微处理器的发展速度,使得磁盘I/O瓶颈问题日益突出。软件方面,随着应用领域数据库规模的不断扩张,数据库服务器对大型数据库各种复杂查询和联机事务处理(OLTP)的支持使得对响应时间和吞吐量的要求顾此失彼。同时,应用的发展超过了主机处理能力的增长速度,数据库应用(DSS,OLAP等)的发展对数据库的性能和可用性提出了更高要求,能否为越来越多的用户维持高的事务吞吐量和低的响应时间已成为衡量DBMS性能的重要指标。

计算机多处理器结构及并行数据库服务器的实现为解决以上问题提供了极大可能。随着计算机多处理器结构和磁盘阵列技术的进步,并行计算机系统的发展十分迅速,出现了商品化的并行计算机系统。这些系统使用成千上万个微处理器协同工作,采用磁盘陈列技术,性能价格比远比中大型计算机系统高。为了充分利用多处理器硬件,并行数据库的设计者必须努力开发面向软件的解决方案。为了保持应用的可移植性,这一领域的多数工作都围绕着支持SQL查询语言进行。目前已经有一些关系数据库产品在并行计算机上不同程度地实现了并行性。

将数据库技术与并行技术结合,可以发挥多处理器结构的优势,从而提供比相应的大型机系统要高得多的性能价格比和可用性。通过将数据库的数据在磁盘阵列上分布存储,可以利用多个处理器对磁盘数据进行并行处理,从而增加I/O的带宽,有效地缓解磁盘I/O瓶颈问题。同样,通过开发查询间并行和查询内并行等并行查询方法而提高查询效率,解决主存访问瓶颈问题。

9.2.2 并行数据库系统的功能

一个并行数据库系统可以作为服务器面向多个客户机进行服务。此时在客户机上可以安装应用软件、DBMS前端工具(如:developer6i),以及客户-服务器接口软件等,在服务器上安装的软件必须包括支持数据库功能、客户-服务器通信功能及提供分布透明性功能的软件。对于客户-服务器体系结构的并行数据库系统,它所支持的功能一般包括:会话管理子系统、请求管理子系统和数据管理子系统。

会话管理子系统提供对客户机与服务器之间交互能力的支持。

请求管理子系统负责接收有关查询编译和执行的客户请求,触发相应操作并监管事务的执行与提交。

数据管理子系统提供并行编译后查询所需的所有底层功能,例如并行事务支持,高速缓冲区管理等。

上述功能构成类似于一个典型的RDBMS,不同的是并行数据库必须具有处理并行性,具有数据划分、数据复制及分布事务等能力。依赖于不同的并行系统体系结构,一个处理器可以支持上述全部功能或其子集。

9.2.3 并行数据库的体系结构

并行数据库系统的实现方案多种多样。根据处理器与磁盘及内存的相互关系可以将并行计算机体系结构划分为三种基本类型:共享内存(Share-Memory)、共享磁盘(Share-Disk)和分布内存(Share Nothing)。下面分别介绍这三种基本的并行系统结构,并从性能、可用性、可扩充性等三个方面来比较这些方案。

1.共享内存结构

共享内存(又称Shared-Everything结构,简称SE结构)方案中,任意处理器可通过快速互连(高速总线或纵横开关)访问任意内存模块或磁盘单元,即所有内存与磁盘为所有处理器共享。

IBM3090,Bull的DPS8等大型机及Sequent,Encore等对称多处理器都采用了这一设计方案。

2.共享磁盘结构

共享磁盘方案中,各处理器拥有各自的内存,但共享共同的磁盘,每一处理器都可以访问共享磁盘上的数据库页,并将其拷贝到各自的高速缓冲区中,为避免对同一磁盘页的访问冲突,应通过全局锁和协议来保持高速缓冲区的数据一致性。

采用这一方案的数据库系统有IBM的IMS/VS Data Sharing和Oracle系统。

3.分布内存结构

分布内存方案中,每一处理器都拥有各自的内存和磁盘。由于每一结点可视为分布式数据库系统中的局部场地(拥有自己的数据库软件),因此分布式数据库设计中的多数设计思路,如数据库分片、分布事务管理和分布查询处理等,都可以在本方案中利用。

采用该方案的有Teradata的DBC,Tandem的Nonstop SQL产品及Bubba,Eds,Gamma,Grace,Prisma和Arbre等原形系统。

而在负载均衡、设计的简单性等方面,则共享内存结构优点突出一些。对于结点数目较多的配置,分布内存结构比较好地适应了高伸缩性的要求,它通过最小化共享资源将资源竞争降到最低。而对于中小系统的配置,共享内存结构由于其设计的简单性和负载易于均衡也许就更为合适一些。

9.2.4 并行数据库的并行处理技术

在数据库管理系统中,查询处理的主要任务是翻译用户给出的查询语句,并对若干可能有效的查询处理计划进行评价、比较,从中选出性能最优的一个方案。查询处理的效率对整个系统的性能有很大的影响,因此并行数据库系统中实现并行查询也就成为并行数据库管理系统的一个重要指标。

9.2.4.1 并行查询的基本概念

与传统的顺序执行计划(Sequential Plan,SP)相对应,在并行处理环境下的执行计划称为并行执行计划(Parallel Plan,PP)。

如果查询Q的某个并行执行计划PP与Q的一个顺序执行计划SP对应于相同的操作树,则称PP为SP的一个并行化方案。由顺序执行计划SP得到某个PP的过程称为并行化(Parallelization)过程。显然,一个串行执行计划可以通过不同的并行化过程得到不同的并行执行计划。

并行化过程涉及下列基本概念:并行粒度和并行化形式。

1.并行粒度

并行粒度指的是查询执行的并行程度。并行粒度从粗到细可分为四种:事务间并行性、查询间并行性(事务内的查询间的并行性)、操作间并行性(事务内查询内操作间的并行性)和操作内并行性(事务内查询内操作内的并行性)。

一般来说,并行粒度越细,并行化程度就越高,而实现就越复杂。一个好的并行数据库系统应该能实现操作内的并行性。

并行数据库系统通过开发事务间、查询间、操作间及操作内四种不同粒度的并行性,优化在OLTP及DSS两种应用环境中的事务吞吐量和响应时间。

2.并行化形式

称流水线并行化,Pipelining Parallenlism)两种形式。

如果两个操作无相互依赖关系,则称这两个操作相互独立;如果操作OP2直接依赖于OP1,并且OP2必须等待OP1全部处理完后方可开始执行,则称OP2以阻塞方式直接依赖于OP1;如果OP2无须等待OP1全部处理完即可开始执行,则称OP2以流水线方式直接依赖于OP1。水平并行化是指互相独立的多个操作或一个操作内相互独立的多个子操作分别由不同的处理器并行执行;垂直并行化是指存在流水线方式依赖关系的操作分别由不同处理器并行执行。

9.2.4.2 并行查询优化

查询优化始终是DBMS的重要组成部分。查询优化的目标在于提高执行效率,它主要是对各种可能的查询执行计划进行评估,并从中选出最优的查询执行方案。并行查询优化的目标和任务与查询优化一致,从查询的并行执行计划中找出最优的并行执行计划。

由于并行数据库环境中存在多个处理器,并行查询优化应尽可能地使每个操作并行处理,充分利用系统资源提高并行度来达到提高系统性能的目的,因此它的实现与传统的数据库查询优化有所不同,更强调数据分布的均匀性。

并行查询优化面临如下两大困难。

(1)执行计划搜索空间的庞大

在传统的顺序查询优化中,往往采取穷尽的办法或者某种半穷尽的办法搜索整个查询计划空间,为每个查询计划估算出代价,然后找出代价最小的查询计划。然而,在并行环境下,并行查询执行计划空间往往呈指数增长。因此,依靠传统的穷尽办法进行并行查询优化是不现实的。并行查询优化应该可以提取某种启发式的方法对并行执行计划空间做裁减以减少搜索空间的代价。为此不少学者相继提出了基于左线形树的查询优化算法、基于右线形树的查询优化算法、基于片段式右线形树的查询优化算法、基于浓密数的查询优化算法、基于操作森林的查询优化算法。这些算法均是在搜索代价和最终获得的查询计划的效率之间有着不同的权衡。

(2)某些系统参数在优化时未知

在多用户环境下,系统参数譬如CPU数目、内存大小只能到计划执行时才能确定。因此有的学者提出了两阶段优化的思想,将查询处理分为静态顺序优化和动态并行化两个阶段进行。

阶段1:在编译阶段,假设全部内存大小可为查询所用,利用传统查询优化策略得到最优顺序执行计划。

阶段2:执行阶段,根据阶段1的顺序执行计划得到给定缓冲区大小和处理器数目条件下的最优并行化方案。

将并行查询优化分解为两个阶段进行,有效地解决并行查询面临的两大困难,同时又降低了并行查询优化算法的复杂性。但问题是,两阶段优化是否能保证并行执行计划的最优性。

有关并行查询优化的策略和查询优化算法均处于进一步的研究之中。

小结

数据库技术随着各种新技术的出现而得到很大的发展,随之出现了分布式数据库、多媒体数据库、空间数据库、并行数据库、面向对象的数据库等数据库新技术。

本章简单地介绍两种最常见的数据库新技术,分布式数据库系统和并行数据库系统。这两种数据库系统都是数据库技术与其他新技术的结合,将分布式技术与数据库技术相结合,形成了分布式数据库系统;将并行技术与数据库技术相结合就形成了并行数据库系统。

在分布式数据库系统中简单地介绍分布式数据库系统的基本概念、特点,以及分布式数据库系统的体系结构,最后介绍分布式数据库管理系统的功能、组成和体系结构。

在并行数据库系统中简单地介绍并行数据库系统的基本概念、功能,以及三种不同的体系结构和它们的比较,最后简单地介绍并行数据库的并行处理技术——并行查询技术和并行查询优化技术。

习题

1.分布式数据库系统的特点是什么?

2.试述分布式数据库管理系统的组成和功能。

3.试述分布式数据库管理系统的体系结构。

4.试述并行数据库系统的功能。

5.试述并行数据库系统的体系结构。

参考文献

1.Date C J.An Introduction to Database Systems.孟小峰,王珊,等译,北京:机械工业出版社,2003

2.Pratt P J,Adamski J J.The Concepts of Database Management.陆洪毅,杨文波,程华,等译,北京:机械工业出版社,2003

3.丁宝康,数据库原理,北京:经济科学出版社,2000

4.筛师宣,王珊,数据库系统概述,北京:高等教育出版社,2003

5.王珊,朱青,数据库系统概述学习指导与习题解析,北京:高等教育出版社,2003

6.李春葆,数据库原理与应用:习题与解析,北京:清华大学出版社,2001

7.许宏丽,数据库应用与基础,北京:高等教育出版社,2003

8.冯凤娟,全国计算机等级考试三级教程:数据库技术,北京:人民邮电出版社,2003

9.王亚平,数据库原理典型题解析及自测试题,西安:西北工业大学出版社,2002

10.冯凤娟.Oracle9i数据库SQL与PL/SQL基础,北京:清华大学出版社,2002

11.冯凤娟.Oracle9i数据库体系结构与系统管理,北京:清华大学出版社,2003

12.Introduction to Oracle9i:SQL(Oracle公司内部资料),2003

13.Oracle9i DBA Fundamentals I(Oracle公司内部资料),2003

14.Oracle9i DBA Fundamentals II(Oracle公司内部资料),2003