异构数据库:HDB Heterogeneous DataBase

异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的DMBS。异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。异构数据库系统的异构性主要体现在以下几个方面:

  1. 计算机体系结构的异构 各个参与的数据库可以分别运行在大型机、小型机、工作站、PC或嵌入式系统中。
  2. 基础操作系统的异构 各个数据库系统的基础操作系统可以是Unix、Windows NT、 Linux等。
  3. DMBS本身的异构 可以是同为关系型数据库系统的Oracle、 SQL Server等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、面向对象,函数型数据库共同组成一个异构数据库系统。

---- 异构数据库系统的目标在于实现不同数据库之间的数据信息资源、硬件设备资源和人力资源的合并和共享。其中关键的一点就是以局部数据库模式为基础,建立全局的数据模式或全局外视图。这种全局模式对于建立高级的决策支持系统尤为重要。

---- 大型机构在许多地点都有分支机构,每个子机构的数据库中都有着自己的信息数据,而决策制订人员一般只关心宏观的、为全局模式所描述的信息。建立在数据仓库技术基础上的异构数据库全局模式的描述是一种好的解决方案。数据仓库可以从异构数据库系统中的多个数据库中收集信息,并建立统一的全局模式,同时收集的数据还支持对历史数据的访问,用户通过数据仓库提供的统一的数据接口进行决策支持的查询。

对于异构数据库系统,实现数据共享应当达到两点:一是实现数据库转换;二是实现数据的透明访问。由华中科技大学开发的,拥有自主版权的商品化数据库管理系统DM3系统,通过所提供的数据库转换工具和API接口实现了这两点。

---- DM3提供了数据库转换工具,可以将一种数据库系统中定义的模型转化为另一种数据库中的模型,然后根据需要再装入数据,这时用户就可以利用自己熟悉的数据库系统和熟悉的查询语言,实现数据共享的目标。数据库转换工具首先进行类型转换,访问源数据库系统,将源数据库的数据定义模型转换为目标数据库的数据定义模型,然后进行数据重组,即将源数据库系统中的数据装入到目的数据库中。

---- 在转换的过程中,有时要想实现严格的等价转换是比较困难的。首先要确定两种模型中所存在的各种语法和语义上的冲突,这些冲突可能包括:

1. 命名冲突:即源模型中的标识符可能是目的模型中的保留字,这时就需要重新命名。

2. 格式冲突:同一种数据类型可能有不同的表示方法和语义差异,这时需要定义两种模型之间的变换函数。

3. 结构冲突:如果两种数据库系统之间的数据定义模型不同,如分别为关系模型和层次模型,那么需要重新定义实体属性和联系,以防止属性或联系信息的丢失。

---- 总之,在进行数据转换后,一方面源数据库模式中所有需要共享的信息都转换到目的数据库中,另一方面这种转换又不能包含冗余的关联信息。

--- -数据库转换工具可以实现不同数据库系统之间的数据模型转换,需要进一步研究的问题是:如果数据库转换同时进行数据定义模式转换和数据转换,就可能引起同一数据集合在异构数据库系统中存在多个副本,因此需要引入新的访问控制机制。在保证各个参与数据库自治,维护其完整性、安全性的基础上,对于异构数据库系统提供全局的访问控制、并发机制和安全控制。

---- 如果数据库转换只进行数据定义转换,不产生数据的副本,那么在新的目的数据库定义模型的框架下访问数据,实现上仍是对源数据库系统中数据的访问。这时利用新的数据库系统中的数据处理语言实现的事务,不能直接访问源数据库,必须进行事务级的翻译才可以执行。

---- 在异构数据系统中实现了数据的透明访问,用户就可以将异构分布式数据库系统看成普通的分布式数据库系统,用自己熟悉的数据处理语言去访问数据库,如同访问一个数据库系统一样。但目前还没有一种广泛使用的数据定义模型和数据查询语言,实现数据的透明访问可以采用多对一转换、双向的中间件等技术。开放式数据库互连(Open DataBase Connectivity,简称ODBC)是一种用来在相关或不相关的数据库管理系统中存取数据的标准应用程序接口(API)。ODBC为应用程序提供了一套高层调用接口规范和基于动态链接库的运行支持环境。目前,常用的数据库应用开发的前端工具如Power Builder、 Delphi等都通过开放数据库互联(ODBC)接口来连接各种数据库系统。而多数数据库管理系统(如:Oracle、Sybase、SQL Server等)都提供了相应的ODBC驱动程序,使数据库系统具有很好的开放性。ODBC接口的最大优点是其互操作能力,理想情况下,每个驱动程序和数据源应支持完全相同的ODBC函数调用和SQL语句,使得ODBC应用程序可以操作所有的数据库系统。然而,实际上不同的数据库对SQL语法的支持程度各不相同,因此,ODBC规范定义了驱动程序的一致性级别,ODBC API的一致性确定了应用程序所能调用的ODBC函数种类,ODBC 2.0规定了三个级别的函数,目前 DM3 ODBC API支持 ODBC 2.0规范中第二级扩展的所有函数。

---- 随着Internet应用的不断普及,Internet的异构分布式信息系统正在迅速发展,Java以其平台无关性、移植性强,安全性高、稳定性好、分布式、面向对象等优点而成为Internet应用开发的首选语言。在Internet环境下,实现基于异种系统平台的数据库应用,必须提供一个独立于特定数据库管理系统的统一编程界面和一个基于 SQL的通用的数据库访问方法。Java与数据库接口规范JDBC(Java Database Connectivity)是支持基本SQL功能的一个通用的应用程序编程接口,它在不同的数据库功能模块的层次上提供了一个统一的用户界面,为对异构数据库进行直接的Web访问提供了新的解决方案。 JDBC已被越来越多的数据库厂商、连接厂商、Internet服务厂商及应用程序编制者所支持。

异构数据源:disparate data source

对异构数据源的理解:

顾名思义,它是指不同的数据库管理系统之间的数据。

异构数据源的实例:

例如,在企业信息化建设过程中,由于各业务系统建设和实施数据管理系统的阶段性、技术性以及其它经济和人为因素等因素影响,导致企业在发展过程中积累了大量采用不同存储方式的业务数据,包括采用的数据管理系统也大不相同,从简单的文件数据库到复杂的网络数据库,它们构成了企业的异构数据源。

企业数据源异构性主要表现在两方面:

   1. 系统异构,即数据源所依赖的业务应用系统、数据库管理系统乃至操作系统之间的不同构成了系统异构。

   2. 模式异构,即数据源在存储模式上的不同。存储模式主要包括关系模式、 对象模式、对象关系模式和文档嵌套模式等几种,其中关系模式(关系数据库)为主流存储模式。同时,即便是同一类存储模式,它们的模式结构可能也存在着差异。例如不同的关系数据管理系统的数据类型等方面并不是完全一致的,如DB2、Oracle、Sybase、Informix、SQL Server 、Foxpro等。

   3. 来源异构,即企业内部数据源和外部数据源之间的异构。

分布式数据库:Distributed Database(DDB)

对分布式数据库的理解:

分布式数据库管理(DDBMS)是网络技术与数据库技术相结合的产物。

分布式数据库系统是由若干个站集合而成。这些站又称为节点,它们在通讯网络中联接在一起,每个节点都是一个独立的数据库系统,它们都拥有各自的数据库、中央处理机、终端,以及各自的局部数据库管理系统。因此分布式数据库系统可以看作是一系列集中式数据库系统的联合。它们在逻辑上属于同一系统,但在物理结构上是分布式的

分布式数据库的特点:

   1、在分布式数据库系统里不强调集中控制概念,它具有一个以全局数据库管理员为基础的分层控制结构,但是每个局部数据库管理员都具有高度的自主权。

   2、在分布式数据库系统中数据独立性概念也同样重要,然而增加了一个新的概念,就是分布式透明性。所谓分布式透明性就是在编写程序时好象数据没有被分布一样,因此把数据进行转移不会影响程序的正确性。但程序的执行速度会有所降低。

   3、集中式数据库系统不同,数据冗余在分布式系统中被看作是所需要的特性,其原因在于:首先,如果在需要的节点复制数据,则可以提高局部的应用性。其次,当某节点发生故障时,可以操作其它节点上的复制数据,因此这可以增加系统的有效性。当然,在分布式系统中对最佳冗余度的评价是很复杂的。

分布式系统的类型,大致可以归为三类:

   1、分布式数据,但只有一个总数据库,没有局部数据库。

   2、分层式处理,每一层都有自己的数据库。

   3、充分分散的分布式网络,没有中央控制部分,各节点之间的联接方式又可以有多种,如松散的联接,紧密的联接,动态的联接,广播通知式联接等。

异构数据库、异构数据源、分布式数据库三者的辨析区别相关推荐

  1. Zabbix+分布式数据库TiDB实现分布式数据库监控

    Zabbix+分布式数据库TiDB实现分布式数据库监控 一.Tidb的简介 1.什么是TiDB 2.TiDB 整体架构 2.主要模块简介 1) TiDB Server 2) PD Server 3) ...

  2. java数据库中间件实现,分布式数据库中间件DDM的实现原理

    随着数据量不断增大,传统的架构模式难以解决业务量不断增长所带来的问题,特别是在业务成线性.甚至指数级上升的情况.此时我们不得不通过水平扩展,把数据库放到不同服务器上来解决问题,也就是我们说的数据库中间 ...

  3. 腾讯云数据库TDSQL:分布式数据库,你真的了解吗?

    分布式数据库进入人们的视野已经很久了.相对于传统的集中式数据库,分布式数据库在高性能.高可用.平滑拓展.高可靠.低成本等许多方面具有优势. 但时至今日,关于分布式数据库,似乎一直缺少足够权威和客观的解 ...

  4. 数据库架构设计——分布式数据库设计

    摘要 现在互联网应用已经普及,数据量不断增大.对淘宝.美团.百度等互联网业务来说,传统单实例数据库很难支撑其性能和存储的要求,所以分布式架构得到了很大发展.一定要认识到数据库技术正在经历一场较大的变革 ...

  5. mysql分布式数据库架构_MySQL分布式数据库架构:分库、分表、排序、分页、分组、实现教程...

    MySQL分库分表总结: 单库单表 : 单库单表是最常见的数据库设计,例如,有一张用户(user)表放在数据库db中,所有的用户都可以在db库中的user表中查到. 单库多表 : 随着用户数量的增加, ...

  6. java 分布式数据库架构_分布式数据库的模式结构介绍

    分布式数据库的模式结构可以划分为全局视图.全局概念层.局部概念层.局部内层.各层之间有相应的层间映射.具体介绍如下: 1.全局外层 分布式数据库是一组分布的局部物理数据库的逻辑集合.分布式数据库的全局 ...

  7. 巨杉数据库TechDay回顾 | 分布式数据库@民生、Sharding Sphere@京东、ClickHouse@微博

    大数据时代,数据早已成为全球战略资源级的存在,数据库也成为了所有应用成功运行的核心.同时,随着创新业务的不断增加,业务的复杂及庞大的体量必然会产生错综复杂且规模巨大的结构化数据,这些都迫使企业对数据库 ...

  8. 云原生数据库-开务分布式数据库SST文件结构

    LSM tree保证数据库是有序写入(memtable-skiplist),起高了写性能,但是因为其本身的分层结构,牺牲了读性能(一个key如存储在了低级别的level,从上到下每一层都要进行查找,代 ...

  9. oracle数据库中间件mycat,分布式数据库中间件part1-Mycat的入门与搭建

    一.前言 Mycat主要是针对方便架构师进行系统架构架构和DBA管理数据库的一个中间件,提供了多种数据库常见问题的解决方案,但某些技术点与开发工程师也息息相关,这里主要是针对开发工程师相关的技术点-- ...

最新文章

  1. C++中嵌套类的使用
  2. Struts 2的文件上传
  3. 理解一下jQuery.extend()和jQuery.fn.extend()方法
  4. Python环境下的数据库编程
  5. LGOJ P3919【模板】可持久化数组(可持久化线段树/平衡树)
  6. 如何解决数据一致性、任务调度、流水号生成等问题?
  7. JQgrid for asp.net 不完全手记
  8. 使用app loader上传iOS应用
  9. 图像的旋转——imrotate
  10. Linux系统(centos/ubuntu)修改IP地址方法总结
  11. 如何制作多链接二维码?一次性防伪二维码?
  12. wifi连接状态android,判断android设备wifi连接状态
  13. 剑指offe55--链表中环的入口结点
  14. 大数据—— Clickhouse 介绍与引擎的使用
  15. [APIO2014]连珠线 题解
  16. 分布式消息中间件 MetaQ 作者庄晓丹专访
  17. 项目管理之人力资源管理
  18. 基于Matlab闭环Buck降压斩波电路Simulink仿真电路模型搭建
  19. 将markdown标记换成html标签,Markdown常用标记
  20. 华为多点测试软件,【华为软件测试工程师面试】问的专业性多一点,代码之类的-看准网...

热门文章

  1. python图片中文汉字标注乱码,变成方框
  2. 杭银消费金融拟增资扩股:杭州银行认购3.7亿股,曾被罚50万元
  3. 危险在线旅游,为何依然有人冒死买卖?
  4. Java 8 新特性——实践篇
  5. 【转】偷偷告诉你快速提高app下载量和安装量
  6. 鼠标滑过卡片的上浮效果
  7. 3060显卡系列cuda11.1
  8. windows平台简单的FTP服务器,无需安装
  9. 幸运童年童装 研发制造营销
  10. 【LeetCode】460 and 1132(LFU缓存机制)