APP下载

震害评估数据的集成共享研究与应用

2022-08-30万文琦焦煜媛

甘肃科技 2022年9期
关键词:关系数据库中间件数据源

高 鹏,周 扬△,万文琦,焦煜媛

(1.甘肃省地震局兰州观象台,甘肃 兰州 730046;2.甘肃省地震局张掖中心地震台,甘肃 张掖 734300)

近年来随着地震的频发,各种用于震害评估的软件系统也在不断增多。数据库在震害评估中广泛应用。但由于各个应用系统的功能与应用不同,所采用的硬件环境和软件环境也不同,各种应用系统构建有各自独立的服务器与数据库。各种异构数据源之间信息不能共享,从而形成了信息孤立。如何高效收集与集成各种数据库之间的数据与共享成为目前急需解决的问题。本研究提出一种基于XML/VS.NET的关系数据库集成方案,采用.NET提供的数据库访问中间件,实现异构数据源之间的连接与访问[1]。XML数据作为一种半结构化的数据模型,在异构数据集成方面具有很好的应用,采用XML数据文件实现关系数据库之间的数据传输与交换[2]。

1 系统架构

根据系统需求,需要实现异构数据库之间的数据抽取、转换与集成。系统应该具较好的适应性和扩展性,在不影响系统整体功能的前提下,应该具有较高的稳定性和较低的耦合性。按照多层架构的模式将系统自上而下分为表现层、表示逻辑层、业务逻辑层、数据层。表现层:实现用户与系统的良好交互,通过友好的系统界面为用户提供具体的应用。同时系统提供公共服务应用,为这些不同的服务方式提供统一的出口。表示逻辑层:接受来自表现层的请求,分析数据类型,然后通过业务服务组件执行业务功能。业务逻辑层:是实现系统功能的关键核心部分。包括:业务功能接口、XML数据转换中间件处理模块、数据库连接访问中间件处理模块。通过数据库连接访问中间件实现不同数据源的连接访问[3],从而进行数据抽取。异构数据源中抽取的数据通过XML数据转换中间件模块进行转换与映射,处理成为可以加载显示的数据格式。在加载数据的过程中,通过业务功能接口实现整合数据的加载与显示。数据层:包括多个异构数据库,主要由交换数据库、资源数据库组成。交换数据库主要存储不同系统的专业数据,如震害调查数据、活断层数据、地震小区划数据[4]等。资源数据库根据需求存储抽取的数据资料。系统体系结构如图1所示。

图1 系统体系结构图

2 关键技术

2.1 基于ADO.NET的数据工厂模式

ADO.NET是微软.NET平台提供的一种数据访问技术,是由一系列数据库相关类和接口组成的类库。它提供了连接模式和无连接模式的数据访问[5]。无连接模式的优点是程序使用数据库进行连接,并在完成访问和交互后释放连接,从而减少系统服务器的负载,使数据访问更加灵活。并且ADO.NET支持XML文档,运用XML文档进行数据交互,通过ADO.NET对不同异构数据源进行访问。

工厂模式的定义是一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中,核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一步抽象化的好处可以使工厂方法模式在系统不修改具体工厂角色的情况下引进新的产品。数据工厂通过构建一个数据库连接访问类,所有访问数据库的行为都通过这个类实现。另外,通过动态配置数据库连接配置文件,实现对数据库的动态访问。在具体开发过程中,设计思想根据工厂模式,对不同的数据库对象进行封装,形成一个公共抽象类。这个公共抽象类给用户提供通用接口,用户通过访问接口实现对不同数据库的连接与访问。具体的功能实现由这个公共抽象类的子类完成。通过工厂模式的数据库访问可以降低应用程序模块之间的耦合度,同时还可以提高代码的复用性,并使模块扩展变得容易实现。

用户通过调用DBFactory类中的CreateInstance获取一个DBAccess类的实例,DBAccess类是一个核心抽象类,它定义了应用程序与数据库交互所使用的各种方法和属性。由DBAccess类自动判断用户需要连接的数据库,并进行访问。在不更改应用程序的前提下实现了对异构数据源的访问。

2.2 基于XML的数据库集成模型

XML数据处理中间件模块通过数据连接访问处理模块提取数据进行转换。XML数据处理中间件模块主要包括数据映射子模块、数据分析子模块、数据加载子模块。集成模型如图2所示。

图2 基于XML的数据集成模型图

(1)数据映射子模块,主要完成关系数据库与XML数据之间的双向映射与转换。

(2)数据分析子模块,主要负责XML数据的分析处理,将XML数据解析为一棵对象树。

(3)数据加载子模块,主要负责将解析完成后的数据进行加载,展示给用户。

2.3 XML和关系数据库之间的映射机制

实现XML数据模型与关系数据库之间的数据转换,主要通过模板驱动和模型驱动两种形式[6]。模板驱动方法是使用SQL命令嵌入到XML文件中,通过中间件中的程序读取模块中的SQL命令,实现从数据库中抽取数据转换为XML文档。这种方法的优点是简单易于实现,缺点是只能实现从数据库到XML文档的单向映射。模型驱动方法是在数据库和XML文档之间预定义映射模型,通过这种模型把XML文档结构映射成为数据库结构模型[7]。这种方法可以方便地实现XML文档和数据库之间的双向映射,具体做法是将XML文档转换为一棵对象树,将对象模型映射为关系模型,本系统采用模型映射的方式。

2.4 XML到关系数据库映射

(1)读取XML文档,将其构建为一棵带有架构的树[8]。其中XML文档包含两部分内容,架构部分和数据部分。

(2)将XML文档中架构部分的数据类型[9]、属性映射成为关系数据库表的各个字段。

(3)XML文档中的数据部分根据映射规则,映射到异构数据库相应的表中。在数据映射过程中,如果是简单数据类型,则直接将数据映射到相应的数据库表中。如果是复杂元素,则通过“主键-外键”对应关系映射到数据库表中[10]。

2.5 关系数据库到XML映射

(1)首先通过数据连接访问模块抽取异构数据源中的数据,这个过程根据用户需求动态构造出相应的SQL语句进行抽取[11]。

(2)由于XML文档是一种半结构化的数据结构[12],所以在将数据表转换为XML文档之前需要定义一个中间转换对象类,这个类定义了数据库表中的字段,即数据表中的字段对应对象类中的成员变量。

(3)通过中间转换类完成对XML文档的架构定义,确定XML文档架构中的属性及数据类型。然后遍历类对象中的数据,通过定义的映射关系生成一棵带架构的树状XML文档。

3 应用实践

在整合地震信息的过程中,分别从地图空间及属性数据库、地质资料数据库、活断层数据库、地震小区划等数据库中抽取数据,转换整合成为有效的信息资源。这些资源可以被查询浏览,以及提供详细的地震信息。地震信息在Web页面上的展现如图3所示。 图中的圆点显示近一年所发生的地震,圆点的大小代表地震震级的大小。

图3 地震信息在Web页面上的展现图

4 结束语

本研究的数据集成方案虽然在很大程度上降低了劳动量,提高了数据集成的效率,但却需要人为地定义转换规则,编写数据转换中间类。在一些相关的应用中发现转换过程时间过长、转换规则与转换中间类的编写相对复杂。这需要在今后的工作中进一步完善转换模型与提高转换效率。

猜你喜欢

关系数据库中间件数据源
关系数据库在高炉数据采集系统中的应用
RFID中间件技术及其应用研究
基于VanConnect中间件的设计与开发
Web 大数据系统数据源选择*
基于不同网络数据源的期刊评价研究
基于真值发现的冲突数据源质量评价算法
基于索引结构的关系数据库关键词检索
中间件在高速公路领域的应用
分布式异构数据源标准化查询设计与实现
一种基于数据图划分的关系数据库关键词检索方法