联邦数据库管理系统问题

2024年8月28日 | 阅读 4 分钟

一种名为联邦数据库系统的元数据库管理系统(DBMS),可以将许多独立的数据库系统无缝地转换为一个单一的联邦数据库。组件数据库在地理上分散,并通过计算机网络连接。与(通常很困难的)合并许多不同数据库的工作相比,联邦数据库系统更受欢迎,因为组件数据库系统保留了它们的自主性。联邦数据库,也称为虚拟数据库,由组成联邦数据库系统的所有单个数据库组成。因此,数据联邦的结果是,组件独立数据库中没有真正的数据集成。一个系统,其中每个服务器都是独立的,并使用具有自己本地用户的集中式DBMS,称为联邦数据库。当数据库联合有一个全局视图或模式,并且该模式基本上由应用程序共享时,就会使用联邦数据库系统或FDS的名称。这些系统结合了分布式和集中式体系结构的元素。

联邦数据库

如果联邦数据库由异构数据库组成,程序就可以更一致地查看数据,而无需跨数据库复制数据或运行多个查询并手动集成结果。如果您的客户正在寻找这种安排,IBM Information Integration 可能是一个很好的起点。联邦数据库可以帮助在同构环境(VLDBs)中分发非常大的数据库的工作负载。在此设计中,每个组件数据库都具有相同的结构,但只包含部分记录。即使 constituent 数据库不同,联邦数据库系统也可以通过数据抽象提供统一的用户界面,允许用户和客户端使用单个查询从多个不连续的数据库中存储和检索数据。为此,联邦数据库系统必须能够将查询分解成可以发送到相应成员DBMS的小查询。然后,系统必须将小查询的结果合并起来。由于不同的数据库管理系统使用不同的查询语言,因此联邦数据库系统可以应用包装器(wrappers)到子查询,以将它们转换为正确的查询语言。

联邦数据库组件

在采用负载分配时,行根据主键分配到联邦数据库的组件。选择这个键需要技巧,因为它可能是成功或失败设置之间的区别。大多数查询(或所有查询)最终应该只访问一个组件数据库。选择这个键需要技巧,因为它可能是成功或失败设置之间的区别。大多数查询(或所有查询)最终应该只访问一个组件数据库。

一个例子是银行使用联邦数据库,其中交易按年份划分。用户通常只查看上一年的交易,系统只需要访问一到两个组件数据库。给定的一组交易将涉及随机分布的客户 ID,因此按客户 ID 划分数据库可能无效;因此,查询将被发送到多个,甚至所有组件数据库。结果是,联邦数据库的优势丢失了(几乎每一条记录都被搜索),而查询重定向只是增加了查询的总延迟。

根据 SQL Server 专家和 Microsoft MVP Hilary Cotter 的说法,联邦数据库存在许多缺点。每个组件数据库都可能成为单点故障,任何一个服务器的延迟都会导致整个调用被延迟。如果一个或多个组件数据库超时,您的客户将不得不配置联邦数据库或其调用应用程序以处理潜在的部分查询结果。此外,他们将不得不监控和更新每个组件数据库,从而增加维护成本。

在 SQL Server 2005 中,表分区通常比数据库联合是更好的选择。表分区通过扫描单个数据库的多个段而不是多个数据库的整体来解决这个问题,这就是分区如何根据主键将一个大型数据库分成更小的部分。与扩展(scale out)的联邦数据库相比,这个单服务器必须管理整个数据库,因此更新它被称为“向上扩展”(scaling up)。向上扩展通常比横向扩展(scaling out)更好,但它有其局限性(一个服务器只能加强到一定程度),并且可能需要您的客户购买昂贵的高端硬件,而不是现成的服务器。

DBMS 问题

  • 在异构 FDBMS 中,一个服务器可能是网络 DBMS,另一个是对象 DBMS,第三个是关系型或层次型 DBMS。在这些情况下,我们可能需要一个包含语言翻译器的规范语言系统,将规范语言的子查询翻译成服务器的语言。FDBMS 中存在的异构性可能来自多种来源。FDBMS 将会遇到以下形式的异构性或问题。
  • 一个系统,其中多个数据库似乎作为一个数据库运行,称为联邦数据库。系统的组件数据库都是功能齐全且自给自足的。当应用程序查询联邦数据库时,系统会确定其组件数据库中的哪个包含所需数据,然后将请求转发给该数据库。与存储虚拟化让多个驱动器看起来像一个驱动器类似,联邦数据库可以被认为是数据库虚拟化。
  • 查询语言差异 - 对于相同的数据模型,存在多种语言和版本。例如,SQL 有多种版本,包括 SQL-89、SQL-92 和 SQL-99,它们各自具有自己的一组数据类型、比较运算符、字符串操作和其他特性。

下一主题DBMS 中的隔离