聪明文档网

聪明文档网

最新最全的文档下载
当前位置: 首页> (强烈推荐)基于JSON的异构数据库整合研究 - 毕业论文设计

(强烈推荐)基于JSON的异构数据库整合研究 - 毕业论文设计

时间:2017-08-25 19:13:03    下载该word文档

(此文档为word格式,下载后您可任意编辑修改!)

基于JSON的异构数据库整合研究

JSON Based Heterogeneous Database Integration Research


I

Abstract II

1 1

1.1 课题背景 1

1.2 研究意义 2

1.3 研究现状 2

1.4 所做工作及文章结构 3

2 异构数据库整合 5

2.1 数据库 5

2.1.1 数据库简介 5

2.1.2 本文所研究的数据库 6

2.2 异构数据库 6

2.3 异构数据库整合的背景和意义 7

2.4 异构数据库整合的目标 8

2.5 异构数据库整合的基本方法 9

2.5.1 异构数据库整合基本方式 9

2.5.1 异构数据库整合常用方式 10

2.6 异构数据库数据整合重难点 12

2.7 本章小结 12

3 JSONPOJO之间的映射研究 13

3.1 JSON的解码 13

3.2 JSONXML的比较 16

3.3 JSONPOJO的相互转化 17

3.3.1 POJO的序列化与反序列化 18

3.3.2 POJO转化为JSON 20

3.3.3 JSON转化为POJO 21

3.4 JSON融入ORM 21

3.5 本章小结 22

4 异构数据库与JSON的映射研究 23

4.1 JSON与异构数据库整合系统设计 23

4.2 JSON与异构数据库的映射技术 24

4.2.1 基于模板的映射方法 24

4.2.2 基于数据库模型的JSON映射方法 25

4.3 将关系数据库的数据转化为JSON 26

4.4 JSON转化为关系数据库的数据 27

4.4.1 单表映射 27

4.4.2 多表一对多映射 28

4.4.3 多表多对多映射 28

4.4.4 映射算法总结 29

4.5 本章小结 29

5 基于JSON的数据库映射中间件的开发、测试及评价 31

5.1 开发平台简介 31

5.2 中间件分析 31

5.3 中间件设计 33

5.3.1 选取工程 33

5.3.2 选择框架 33

5.3.3 框架整合使用 33

5.4 编码实现中间件 33

5.4.1 引入SpringHibernate 34

5.4.2 将数据库的表映射为POJO 34

5.4.3 定义中间件访问接口 34

5.4.4 单元测试 35

5.5 测试环境搭建 35

5.5.1 系统环境 35

5.5.2 使用Badboy录制脚本 35

5.5.3 使用JMeter测试 36

5.6 数据库映射中间件性能评价 37

5.6.1 JMeter图形报表 38

5.6.2 JMeter表格报表 38

5.6.3 中间件性能分析 39

5.7 数据库映射中间件功能评价 39

5.8 本章小结 40

6 总结与展望 41

6.1 总结 41

6.2 展望 41

42


从数据库诞生到现在,经过长期的积累,互联网里有着相当数量的异构数据库系统。由于现代信息化建设的需要,许多系统需要去访问异构的数据库系统。对于以数据库为中心的系统的开发者而言,因为异构数据库的存在,他们在开发、维护和升级的成本比常规单一的数据库系统要高的多。

由于JSON是一种独立于任何计算机语言且与平台无关的通用数据交换格式,使用JSON作为数据交换格式,来整合异构数据库系统成为了一种可能。在此构思的基础上,本文在现有的基于XML的异构数据库系统整合方法的基础上提出了基于JSON的异构数据库系统整合方法,该方法可以大幅度的降低异构数据系统的开发、维护和升级成本,避免异构数据库系统带来的各种弊端,提高了程序开发的效率。

本文主要研究了JSON与异构数据库数据的映射及其算法,具体包含以下内容:

1)JSON作为异构数据库系统整合的数据交换格式的可行性;

2)JSON转换为POJO

3)POJO转换为JSON

4)JSON与异构数据库之间的映射算法。

为了验证方法的有效性,选择了三个异构的数据库系统,通过编码实现了基于JSON的异构数据库系统中间件。为了验证中间的性能,使用BadBoyJMeter对中间件进行了测试。













关键词:JOSN;异构数据库;POJOJavaORM

Abstract

Born from the database to the present, long-term accumulation of the Internet with a considerable number of of modern information technology, many systems need to accessheterogeneous database systems. For developers, database-centric system, becauseof the presence of the conventional single database system.

Since JSON is a universal data exchange format that is independent of any computer language and platform-independent, using JSON as a data exchange format, to integrate the basis ofthis idea, proposed in the existing method based on JSON-based , the approach can significantly reduce the development of of order to verify the validity of the method, select the three order to verify the performance of the middle, use BadBoy and JMeter to test themiddleware.








Key Words: JOSN; Datebase Connectivity)。它是Microsoft开发服务架构(WOSAWindows Open Services Architecture)中有关数据库的一个部分。开发数据互连通过建立规范,提供了一组针对Windows应用程序了访问数据库的编程接口。这些编程接口主要利用SQL语句来完成其大部分工作。

2Java数据库连接(JDBCJava Datebase Connectivity)。它是一组使用Java语言编写的类和接口的集合,为多种关系型数据库提供统一的访问。其本质是Java程序通过它执行SQL语句,从而访问数据库。

3HibernateMyBatis等基于Java的数据持久层框架。Java语言平台有大量优秀的开源框架,HibernateMyBatis都是非常优秀的开源数据持久层的框架。HibernateMyBatis的思想类似,只不过Hibernate更加的面向对象。他们将数据库中的数据表中的数据项映射为Java语言中的简单Java对象(POJOPlain Old Java Objects),然后在Java程序中就可以直接通过操作简单Java对象,从而间接操作数据库。这种映射关系又叫对象关系映射(ORMObject Relation Mapping)。HibernateMyBatis的本质是对JDBC的封装,从而简化开发者访问数据库的工作,因而他们深受广大开发者的喜爱。

4)采用XML作为数据库的通信格式的中间件。其思想是通过建立中间件,让应用程序直接访问中间件,然后中间件去访问各种异构的数据库。通过中间件可以屏蔽数据之间的访问差异,开发者只需要知道怎么访问中间件就可以了,通过制定规范可以使任何平台的应用程序访问中间件是一致。

以上研究中都只是一定程度上解决了某些特定应用中的问题。1)只是针对Windows平台提供了支持,2)、3)只是基于Java平台。4)的更具有全局性,哪怕以后平台再多,其规范也可以统一。但是其需要的解决的问题也和多,比如怎样将数据表中的数据项映射为XML格式的文本,XML的格式很繁琐不易于解析,XML格式笨重、性能不佳。

1.4 所做工作及文章结构

本文就基于JSON的异构数据库整合研究进行了一些研究和探索,在文中主要完成以下几个方面的工作:

[1] 介绍异构数据库,并对异构数据库整合的主流方法进行介绍;

[2] 研究了使用JSON作异构数据库数据交换格式的可行性及其优势;

[3] 研究了JSONPOJO之间的映射;

[4] 研究了关系型数据库与JSON之间的映射;

[5] 讲述了以SCMQMSBOM三系统的为例的进行异构数据库系统的整合中间件的开发过程;

[6] 中间件测试。使用Badboy + JMeter组合,对中间件进行了压力测试,并对结果进行分析,得出中间件的各方面结论。

本文的章节安排如下:

1章:绪论,首先介异构数据库系统的整合的的背景和意义,研究现状,本文作者所做工作以及本论文的章节安排。

2章:异构数据库整合,首先介绍了数据库、异构数据库、异构数据库整合的背景和意义,接着阐述了异构数据库整合的目标、异构数据库整合的基本方法和异构数据库整合的重难点。

3章:JSONPOJO之间的映射研究,首先介绍了JSON,讲解了JSON优势,接着将JSONXML作比较,再接着研究了JSONPOJO的映射,最后研究了如何将JSON融入数据库的ORM模型。

4章:异构数据库与JSON的映射研究,首先研究了JSON与异构数据库整合系统设计,接着研究了JSON与异构数据库的映射技术,最后研究了系型数据库与JSON的映射。

5章:基于JSON的数据库映射中间件的开发、测试及评价。在开发方法,首先对开发平台做了简单的介绍,接着对本文的中间件做了分析,再接着对中间的结构设计做了说明,最后介绍了下中间件平台的编码工作。在测试和评价方面,首先介绍了测试环境的搭建工作,接着根据测试结果对中间件的性能做了分析,最后评价了中间的件的功能。

6章:总结,首先对全文做了一全面的总结,接着就本文需要做的进一步的工作做了说明。


2 异构数据库整合

将异构数据库整合的最终目的的是消除异构数据库带来的种种不便,其不便主要有:系统访问其他异构数据困难;对于异构数据库的数据需关注其类型转换;系统开发、维护、升级难度大。这些“难”都是对开发者程序开发者而言,对与最终用户来说是没有任何影响的。如果能够将异构数据库系统整合,广大程序开发者的效率将大大提高。对于异构数据库的整合要达到数据透明性和操作透明性,只有这样才算是完成了异构数据库的整合。异构数据库整合的方法从本质上讲有2种,即数据复制方法和模板映射方法。异构数据库常用的整合方法有建立数据仓库方法,建立联邦数据库方法和中间件方法,其中前者属于数据复制方法,后两者属于模板映射方法。在整合异构数据库的过程中的重难点问题是处理好JSON与异构数据库的数据相互转化的问题,而且转换过程中不能丢失数据库的约束关系。

2.1 数据库

经过了多年的发展,按其种类划分有很多,本文将根据实际的应用选择一种合适的数据库作为研究对象。

2.1.1 数据库简介

数据库又名数据仓库(Datebase),是按照一定数据结构将真实世界中的数据信息组织、存储、管理起来的数据仓库。数据库按照发展过程大概有如下四类他们分别是:

1网状数据库(Network Database)。历史上首次出现的数据库是网状数据库,Charles Bachman1961年在通用电气公司(General Electric Co,简称GE)成功地研制出全球首个网状数据库。网状数据库的出现为数据库系统的概念、方法、技术奠定了基础。网状数据库的特点是其数据模型是以节点为基本单位构成的网状结构,对应于有向图[1]

2层次数据库(Hierarchiacl Database。层次数库的出现完善了数据库系统的概念,其特点是其结构为有向有序的树状结构[2]

3)关系型数据库。关系型数据库绝对是当代数据库的主流。现在在运行的绝大多数系统的数据库都是使用关系型数据库[3]

4)非关系型数据库(简称NoSQL)。NoSQL是近年快速成长起来的非关系松散数据存储类型数据库。它打破了关系型数据库长久以来占主导地位的。NoSQL存储在使用前不需要事先设计好表结构,它不会出现多表之间的水平分割和连接操作,学术界称NoSQL类型的数据库为结构化存储。随着互联网世界Web2.0标准的兴起,它不仅改变了网站的表现形式,同时也对网站的整体性能提出来更高的要求。面对着随时可能出现大规模数据的读写[4](比如120306网站,也就是铁路客户服务中心的网上订票系统,在春节这种高并发环境下就不能满足广大用户的使用需要),传统关系型数据库在性能上似乎达到了瓶颈,特别是高并发性的SNSWeb2.0动态网站和超大规模的门户网站的时候更显得力不从心。这时NoSQL应运而生,它抛弃了关系型数据库的许多限制性能提升的部分,因为这些部分在处理表单的存储上是可有可无的东西。同时,在互联网上的应用更让它声名鹊起,许多大公司在NoSQL的概念下开发出了实际可用的数据库产品,例如:AmazonDynamoGoogleBigTableZventsHypertableApacheHbase,这些都是很有代表性的产品,并且在实际应用中得到检验。

2.1.2 本文所研究的数据库

在现代数据库产品中,网状数据库和层次数据库都已经成为历史了。当今,关系型数据库仍然牢牢占据市场头把交椅,绝大多数系统都是以关系型数据库产品作为其数据中心。NoSQL目前虽然炙手可热,但应用比较局限,在高并发、海量数据、高度可扩展的环境中应用比较多,比如SNS网站、云计算等。所以本文的研究对象是关系型数据库(在以下内容,“数据库”这个词在没有特别强调的情况下都指的是关系型数据库)。

2.2 异构数据库

异构数据库系统是多个相关的数据库系统的一个集合,因为实际业务的需要,必须实现异构数据库系统之间数据的透明访问和共享,异构数据库系统中每个数据库系统在加入异构数据库系统之初本身就已存在,完全独立拥有属于自己的数据库管理系统[5]。异构数据库系统的各个数据库系统具有自治性,它们共享数据的同时,每个数据库系统依然保有自己的完整性控制、安全性控制和应用特性。

异构数据库系统是一个既与各个异构数据库有密切联系,又区别于各个数据库的新的概念,它的研究目标是对物理上分布的一个或多个异构数据库,在尽可能少的影响本地数据库的自治性的基础上,构造出具有开发者所需要的可以接口统一、透明访问的全局数据库管理系统,以支持对内部各个数据库的全局应用和异构数据库之间的数据信息共享和交换[6]

异构数据库系统的形成原因主要有以下几方面:

1)计算机平台不同。

计算机系统指的是计算机基础环境,包括硬件平台、操作系统、访问控制、并发控制和通信方式。具体细分如下:

A)计算机硬件异构。根据计算机CPU的不同,也就是数据库系统可能分别存储在大型机、小型机、工作站、个人电脑或嵌入式系统等中。

B)操作系统的不同。数据库所在计算机的操作系统可能是 MicrosoftWindowsWindowsNT、各种版本的UnixLinuxIBM052MacOS等。

C)开发语言的不同。比如CC++JavaDelphi等。

D)网络平台的不同。比如以太网结构、令牌环结构等。

2)数据库系统不同。

A)数据库系统类型不同。即便计算机平台相同了,在该平台上采用的数据库系统也可以是不同,如网状、层次、关系、非关系型数据库等[7]

B)数据库产品不同。即数据库可能是同为关系型不同厂商的数据库系统的如MySQLPostgreSQLOracleMS SQL ServerDB2等。也可能是相同厂商不同时期的数据库产品或不同品牌产品[8]

3)逻辑结构不同。

逻辑结构不同体现在命名差异、值类型差异、模式不同和语义不同等。比如语义的差异具体体现在相同的数据形式表示几种不同的语义,又或者同一语义由几种不同形式的数据表示[9]

2.3 异构数据库整合的背景和意义

当今时代,信息资源己成为政府企业的每个部门的重要资源和财富。建立起一个满足各级部门以及跨部门信息处理要求的的信息系统成为一个组织或企业健康生存和持久发展的先决条件。而作为信息系统基础和核心的数据库技术得到非常广泛的应用。毫不夸张的讲,每个系统都有至少有一个或者多个数据库支持。无论是大型信息系统还是小型单项事务处理系统,无论是联机分析处理还是联机事务处理,无论是计算机辅助设计与制造(CADCAM)[10]、计算机集成制造系统(CIMS)、办公信息系统(OA)、地理信息系统(GIS)还是一般企业管理到等,几乎每个应用领域都采用数据库处理并存储它们的数据信息资源,达到了无数据库不系统的地步。

然而,随着信息化建设的持续不断深入和计算机科学技术的快速发展,数据库应用技术发展到现在,已经有很多的科研机构和企业积累了大量的数据,这些数据中又有很多是以电子数据的形式存在于数据库中,由于信息建设规划不足、部门差异、系统差异,导致大量的异构数据的存在,这些数据中又有很多是重复冗余的,同时数据库使用者并为存储和管理这些数据进行不断投资。而且企业内各部门或者政府不同部门需要从彼此不同的应用系统的数据库中获取并管理业务数据,以充分利用系统资源。不仅如此,在同一行业内部的信息也迫切需要集成,比如,国内外各大航空公司都研发自己的航空信息系统,而综合各大航空公司的票务数据信息为广大用户提供统一的查询服务,对用户来讲将受益匪浅。就信息数据源而言,同一企业或组织存在多种数据库系统是客观事实。因历史遗留存在着层次、网状以及关系数据库系统,对同一时期的同一大企业、及其各部门使用不同数据库系统更是屡见不鲜,并不是人们去刻意追求异构数据库系统,而是上述问题在现实中难以避免。以一个大型企业或组织为例,它在国内外都有分公司或部门,存在不同的时期、不同的分公司可能安装了不同的数据库系统如MS SQL ServerSybaseDB2Oracel等。即使是一个经过严密信息规划的企业或组织,随着时间的推移、行业技术的变革、认识的变迁、以及数据库技术和市场的变化,都极有可能形成异构数据库的局面。

因此,为了使异构数据库中系统中的数据能够以最简便的方式的实现数据资源共享、减少数据冗余,使用户仅通过一个全局查询就能得到一个全面的结果,而不必去知晓各个物理数据库系统的组成和分布,我们迫切的需要集成多个异构的数据,建立一个异构的数据库系统。这样开发者就可以仅通过一个透明和统一的接口来访问异构数据库系统中的所有数据了。

2.4 异构数据库整合的目标

异构数据库系统整和的最终目的是实现终极数据资源共享和降低开发者使用数据库的难度。对于异构数据库系统整合以后在功能上需要实现的两大具体目标是:

1. 数据透明性

当开发者需要进行数据库读写操作时,仅需要使用整合数据库中的表或者属性的逻辑名称即可。但是,事实上这个整合数据库可能是分散在很多不同地理位置节点上的异构数据库组成的,这些物理上异构子库是分别由自己不同的局部数据库管理系统(LDBMS)管理。异构数据库整合后的系统就是需要利用整合系统管理所有数据代替局部异构数据库独立完成某项读写,从而达到如下数据透明的效果:

A)数据库物理位置透明;

B)数据表、数据项透明;

C)数据库异构性透明;

D)局部映射透明;

E)异构数据库汇总结果透明。

2. 操作透明性

操作透明性具体指的是开发者在进行整合后的异构数据库系统读写时,操作变得十分简单,开发者只需清楚怎么与整合的异构系统进行交互就行了,而不必去了解怎么与各个异构数据库系统的交互。具体体现在:

A)开发者不需要知道计算机网络组成及其的使用方法;

B)开发者不需要知道各节点上的计算机操作系统、数据库管理系统;

C)开发者不需要关注全局SQL语句的分解;

D)开发者不需要关注向局部异构数据库的读写操作;

E)开发者不需要关注局部查询结果如何返回给查询结点以及如何汇总等。

2.5 异构数据库整合的基本方法

异构数据库整合的方法比较多,总结起来都是将其在数据库管理系统(DBMS)一级上做一些工作,将数据库系统的的异构统一起来,因为在这个层次上才能保证异构数据库系统自身的独立完整性。

2.5.1 异构数据库整合基本方式

从物理本质上看异构数据整合方式可以分为两类,其一数据复制方法,其二模板映射方式。

1)数据复制方法是将原来的数据库中的数据转移到新的数据库系统中,同时抛弃以前的数据库系统,改而使用新的数据库系统。图2-1形象的展示了这一过程,将原始数据取出来,经过数据转换,然后写到新的目标数据库里面。由于异构数据库之间的数据类型一般都有差异,特别是数值类型的数据,为了把不兼容的数据类型写入,必须这些数据类型转换成新的数据类型。不少数据库供厂商都提供这种功能,但也就局限于该供应商自己的数据库产品之间。这种方案的缺点是需要抛弃原有的系统,使用新开发的系统,成本比较高。因此,这种方案只适用于那些确定需要抛弃原有系统的情况,在这种情况下,只需要把原来的数据导出来即可。并且该方法很繁琐,特是表结构发生大的变化时,工作量将很大。故该方案局限性很强,不具有通用性,因此本文后面也就不研究这种方法。

2-1 数据复制方法示意图

2)模板映射方法是使用中间件、中间系统等技术来整合各种异构数据库系统,该方法的特点是不会改变原来数据库系统的管理方式,也就是保证了异构数据库的独立性。该方法工作于应用程序之间和异构数据库系统之间[11],向下访问可各个异构数据库,向上为应用程序提供统一的数据表、数据项、数据类型以及通用数据访问的接口。如图2-2所示,该图展示了采用模板映射的方法实现了异构数据库整合,特点是应用程序与数据库之间多了个模板映射中间件或中间系统,也就是说,应用程序不直接与数据库系统交互,而是通过直接访问中间件或中间系统来实现间接访问数据库系统。若不考虑中间件的性能的话,显模板映射是最为理想的整合异构数据库的方法,因为它不仅实现了2.4节提到的目标,而且具有通用性、可扩展性。所以本文研究方法锁定在模板方法上。

2-2 模板方法示意图

2.5.1 异构数据库整合常用方式

现在,主流的数据整合方式有以下几种:数据仓库(即Data Warehouse)、联邦数据库(即Federated Database)、中间件(即Middleware[12]等。

1)数据仓库。建立一个数据库系统,将这个数据库作为数据仓库,通过ETL(即Extract Transformand Load)工具手动或自动的多个异构数据库系统读取数据并过滤,并将需要更新的数据写到数据仓库,如图2-3所示,它展示了一个整合了2个异构数据库的数据仓库。与一般普通的数据库系统不同的是:数据仓库中存储的主要是汇总数据和历史数据。它的定位是为企业高级管理人员提供数据分析和决策支持[13]

2-3 数据仓库示意图

2)联邦数据库。联邦数据库是异构数据库整合方法中的比较最简单方式。它的实现方法是将所有组成异构数据库做一对一的相互连通,如图2-4所示。这样就会出现如下的情况:如果需要整合n个异构数据库,那么n个数据库中的任何一个都需要访问其他的(n1)个数据库,那么这意味开发者需要编写n(n1)段代码以实现两两之间的相互访问。可看到这种方法弱点比较明显,即维护、升级代价太高。

  • 29.8

    ¥45 每天只需1.0元
    1个月 推荐
  • 9.9

    ¥15
    1天
  • 59.8

    ¥90
    3个月

选择支付方式

  • 微信付款
郑重提醒:支付后,系统自动为您完成注册

请使用微信扫码支付(元)

订单号:
支付后,系统自动为您完成注册
遇到问题请联系 在线客服

常用手机号:
用于找回密码
图片验证码:
看不清?点击更换
短信验证码:
新密码:
 
绑定后可用手机号登录
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系 在线客服