简介
联邦数据库技术的提出就是为了实现对相互独立运行的多个数据库的互操作。通常称相互独立运行的数据库系统为单元数据库系统。所谓联邦数据库系统是一组彼此协作且又相互独立的单元数据库系统的集合。它将单元数据库系统按不同程度进行集成。对该系统提供整体控制和协同操作的软件叫联邦数据库管理系统。它允许数据库管理人员定义数据子集,这些子集统一形成一个虚拟数据库,提供给联邦系统内的其他用户使用。
联邦数据库系统(FDBS)是一个彼此协作却又相互独立的单元数据库(CDBS)的集合,它将单元数据库系统按不同程度进行集成,对该系统整体提供控制和协同操作的软件叫做联邦数据库管理系统(FDBMS),一个单元数据库可以加入若干个联邦系统,每个单元数据库系统DBMS的可以是集中式的,也可以是分布式的,或者是另外一个FDBMS。
联邦数据库的体系结构如下图所示。
分类联邦数据库系统是多数据库系统中的一种。对多数据库系统,可以依据其设计、通信和执行的不同将其分类。多数据库系统设计的不同体现在部件数据库系统选择它自己的设计方案的能力,包括选择被管理的数据、选择数据的表达、语义,限制、操作和共享方式和选择实现方法通信的不同体现在部件数据库管理系统决定是否要跟其他部件数据库管理系统通信的能力执行的不同体现在部件数据库管理系统不受外部操作的干扰而执行局部操作的能力和决定执行外部操作的次序的能力下图是关于分类的示意图:
图中的非联邦数据库系统(nonfederated database system)是非自治的部件数据库管理系统的集成,它仅具有一层管理,所有的操作被统一地执行,不区分局部的非局部的用户例如,仅具有单一的全局模式(schema)的分布式数据库系统即属于此类。
联邦数据库由自治的而且参于联邦的部件数据库系统组成,该联邦允许部分地且有控制地共享它们的数据联邦数据库系统支持两种类型的操作局部的和全局的或称联邦的全局操作使用联邦数据库管理系统访问数据,并且可以涉及由多个部件数据库系统管理的数据部件数据库系统必需提供访问它管理的数据的授权局部操作被直接提交给某个部件数据库系统,它仅涉及在这个部件数据库系统中的数据。
基于怎样集成联邦和由谁来管理联邦,即根据构成联邦的各成员数据库之间的祸合程度,可以把联邦数据库系统分为松祸合型和紧祸合型。如果由用户负责建立和维护联邦,而且不存在由联邦系统和它的管理员实施的控制,则联邦数据库系统是松祸合的如果联邦和它的管理员负责建立和维护联邦,并且主动地控制对部件数据库的存取,则联邦数据库系统是紧祸合的。
紧耦合数据集成方法与紧耦合型FDBS紧密耦合的数据库集成方法建立在数据库模式集成之上。它通过定义一个概念模型或元模型来实现聚合,将各应用系统的组件数据库模式转换到一个统一的模式上,这样建立的集成系统具有一个集成的全局模式,就像一个单一数据库一样。
紧密耦合方法的优点在于它允许用户像使用一个集中的数据库一样透明的访问各异构的、自治的、分布的数据库,数据的集成度较高。缺点是实现这一方法花费巨大每当现存的组件数据库模式发生变化或一个新的组件数据库加入到系统中,就必须重新生成一次全局模式,使得维护全局模式十分困难。在紧耦合型FDBS中,联邦是由联邦机构和其管理员负责创建和维护的,并且主动控制对成员数据库的访问,这种方法也称为公共数据模型语言方法,它通过模式集成构造出联邦模式,通过数据字典来管理联邦模式。各成员都有一个输出模式,表示可以提供给联邦使用的数据子集。联邦模式是集成多个输出模式后形成的,它提供了定位、复制和分布透明性。透明性由在联邦模式和输出模式之间的映射管理,联邦用户以典型的查询语言来查询,他会觉得自己好象在单个系统中访问,而松耦合型则没有这种功能。
松耦合数据集成方法与松耦合型FDBS松散耦合的异构数据库集成方法将集成的任务交给用户,集成系统提供一套工具,使用户能使用工具来完成集成的工作。如,要集成一组件数据库,用户可使用工具将该组件的数据库的内容和结构加入到集成系统即可。
松散耦合方法对数据的集成度不高,但更新组件数据库时非常灵活,继承系统不许维护一个全局模式而且对原有应用系统不必加以任何改造,各应用系统可在原模式下运行,自治度高。它的缺点是对用户的要求较高用户必须了解组件数据库的内容和结构,且用户的负担较重。当组件数据库数量不断增长时,用户实质上仍然无法了解与完全查询所需的所有组件数据库的相关知识。
在松耦合型FDBS中,联邦由联邦用户负责创建和维护,联邦系统及其管理员没有控制能力。松耦合FDBS没有集中的数据字典,各成员之间的信息共享和交换通过输入输出模式(import/export schema)来表达。由于存在着模式的差异,对于个成员数据库,需要构造。个成员间的翻译器。松耦合型的优点包括用户能准确地指明输出模式中各个对象间联系或映射可以支持多语义性,这在联邦用户的需求经常变化时是很有效的。但是,松耦合型也有以下缺点没有全局系统控制没有定位、分布、复制透明性不适合更新操作,其更新会破坏数据完整性。
两种集成方法的适用条件紧密耦合方法适用于组件数据库较多,其数据变动不是很频繁的环境而松散藕合方法则要求有较高水平的用户或者用户有数据库专家的支持才一行。具体使用哪一种方法,取决于被集成的各应用系统组件数据库的数量、异构程度、稳定程度及用户的应用水平等。
特征联邦数据库系统FDBS最重要的特征就是:一个单元数据库系统在继续本地操作的同时可以参加联邦系统的活动。单元DBS的集成可以由联邦系统的用户来管理,也可由联邦系统的管理员和单元DBS的管理员来共同管理,整体系统集成的程度取决于联邦系统用户的要求、取决于加入联邦系统并共享联邦系统数据库的单元的管理员的要求。包含多种数据库系统的,其特征还体现在分布性、异质性、独立性和透明性这四个方面。
分布性数据可按不同方式在多个数据库之间分布,而且这些数据库可能存储在单个或多个计算机系统中。这些系统可能在同一物理场地,也可能处于以通信系统相连的地理分布的场地,这些数据库可通过通信系统关联。FDBS的大部分数据分布问题,是由于在FDBS构造之前,已存在多个分散的DBS而造成的。
异质性许多类型的异质来源于技术上的不同,如硬件、系统软件和通讯系统的不同。数据库系统的异质性可以分为以DBMS的不同而引起的异质和以语义的不同而引起的异质两类。DBMS的异质是由于不同的数据模型提供不同的结构基元或者支持不同的约束条件,以及查询语言不同。数据模型有三个要素数据结构、数据操作和完整性约束,这三方面的不同都可以导致异构。DBMS在系统方面的不同也会导致异构。系统级异构的例子有事务管理原语和技术包括并发控制、提交协议和恢复等,硬件和系统软件以及通信功能的不同等。当对数据意义的理解、解释和对相同或相关数据的用意产生差别时,就会导致语义异构。语义异构主要体现在以下三种情况名字冲突、标量冲突、数据类型和长度精度不同、结构差异等。异质性是各数据源之间的差异程度。数据源在许多方面可以不同。它们可以运行在不同的硬件上,可以使用不同的网络协议,以及使用不同的软件来管理它们的数据存储。它们可能具有不同的查询语言、不同的查询能力甚至不同的数据模型。它们处理错误的方式可能不同,或者提供不同的事务语义。联邦数据库需要容纳所有这些差异,将上述这些系统封装在一个无缝的透明联邦体中。
独立性管理不同DBS组织实体通常都是独立的,主要表现在以下四点。
设计独立。单元DBS在数据管理、数据元素表达、数据的概念化和语义解释、数据管理的约束条件、系统功能、同其他系统的关联和共享、以及工具等方面涉及资助。
通讯独立。单元DBMS决定是否同其他DBMS通讯,及何时和怎样回答其他的请求。
执行独立。单元DBMS执行本地操作而不受外部干扰,以及决定外部操作执行顺序的能力。
相关独立。单元DBS决定是否同其他系统共享其功能和资源以及在多大程度上共享。包括同联邦关联或解除关联的能力及单元加入一个或更多联邦的能力。
透明性联邦系统是透明的,它对用户掩盖了底层数据源的差异、特质和实现。最理想的情况是,它使一组联邦数据源对用户而言像是一个系统。用户应该无需知道数据存储在哪里位置透明;无需知道数据源支持何种语言或编程接口调用透明如果使用,无需知道数据源支持哪种语支语言透明;不需要知道数据是以哪种物理方式存储的,或者数据是否被分区和或被复制物理数据独立性、分段和复制透明性或者无需知道使用何种网络协议网络透明性。用户应该看到一个统一的接口,包括单一的一组错误代码错误代码透明性。
体系结构下图所示是联邦数据库系统的参考结构,它将处理程序划分为四类—每一类都针对数据操作命令和访问的数据完成不同功能,并为了处理FDBS的分布性,异质性和独立性,提出了不同于集中式的标准三级模式结构模式、内模式、外模式的五级模式结构。由图可知,FDBS的系统结构由5级模式组成,称为5级模式结构。这些模式与相应的处理器有机的相结合,构成一个完整的联邦式系统。从图可以看出,联邦模式是联邦式数据库系统的核心,它既是多个成员库输出模式的集成,又是各外部模式的基础,为了进一步理解FDBS的系统结构,下面分别对个处理器的功能及各模式的含义作简要说明。
处理器处理器是用来操作命令和处理数据的软件模块。各种数据管理结构的差别在于所能提供的处理器类型和它们之间的关系不同。一般有四种类型的处理器转换处理器、过滤处理器、构造处理器、存取处理器。每类对数据操作命令和数据进行不同的处理。
转换处理器
转换处理器把一种语言源语言的命令,转换成另一种语言目标语言的命令,或是将数据由一种格式源格式转换成另一种格式目标格式。转换处理器能够提供一种称为数据模型透明性的数据独立性。通过它,使得一个处理器所使用的数据结构和命令,对其它处理器是不可见的。数据模型透明性隐藏了查询语言和数据格式的差异。
过滤处理器
过滤处理器限制传给其它处理器的命令和数据。与每个过滤处理器相联系的是描述命令和数据约束的映射。这些约束或者以过滤处理器的逻辑编程,或者存储在分离的数据结构中。过滤处理器的例子有语法约束检查器、语义一致性约束检查器、存取控制器等。
构造处理器
构造处理器把单个处理器提交的命令进行分解或复制成为两个或多个其它处理器能够接受的命令。它也把多个处理器产生的数据,合并成为单个数据集,以供另外的单一处理器使用。由于提交命令的处理器不必知道位置、分布性和处理提交的命令所涉及的处理器数目,所以构造处理器要支持位置、分布性和复本透明性。构造处理器能够处理的工作有模式集成、查询命令的分解和优化、全局事务管理等。
存取处理器
存取处理器负责接受命令,并通过对数据库执行相应的操作来提供数据。它可能从多个处理器接受命令,并交错处理这些命令。存取处理器所涉及的问题主要有局部并发控制、提交协议、备份和恢复。
五层模式传统的集中型DBS具有标准的三层模式体系结构,即所谓的内模式、概念模式和外模式。在联邦数据库系统中把它扩展成五层,以适应在FDBS中关于分布性、自治性和异构性的要求。这五层包括
局部模式Local schema
这是一个部件DBS的概念模式,局部模式用这个部件DBMS的本地的数据模型表达。因此不同的局部模式可以用不同的数据模型表达。
部件模式Component schema
通过把局部模式翻译成FDBS的公共数据模型一导出部件模式,之所以用定义部件模式有两条理由:
它们有一种单一的表达方法描述不同的局部模式。
在局部模式中遗漏的语义能被加到它的部件模式中去
于是,部件模式使得在开发紧耦合时执行的磋商和集成容易实现。类似地,它们也使得在松耦合FDBS中的视图view和多数据库查询的磋商和规范说明容易实现。
从局部模式到部件模式的模式翻译过程产生了在部件模式对象和局部模式对象之间的映射,这里的转换类处理器使用这些映射把在部件模式之上的命令转换为相应的局部模式之上的命令,那样的转换类处理器和部件模式支持FDBS的异构特性。
输出模式Export schema
输出模式表示成员模式中能为联邦所使用的数据子集,也可能包括有关特定联邦用户的不同的存取控制信息。定义输出模式的目的是为了便利对相关自治性的控制和管理,能够用一个过滤类处理器提供在输出模式中所规定的存取控制,它限制了能够被提交到相应的部件模式之上的可允许的操作的集合,那样的过滤类处理器和输出模式支持FDBS自治特性。
联邦模式Federated schema
联邦模式是多个输出模式的集成。联邦模式也包括数据分布的信息,这些信息是在集成输出模式时产生的。有些系统使用所谓分布模式或分配模式来包含这些信息,用一个建造类处理器把在联邦模式之上的命令转换到在一个或多个输出模式之上的命令,这个建造类处理器和联邦模式支持FDBS的分布特性。
外部模式External schema
外部模式为用户或一类用户和/或为应用程序或一类应用程序定义模式一个过滤类处理器分析加在外部模式之上的命令,以保证它们遵守联邦模式的存取控制和集成限制。