(计算机应用技术专业论文)jdbc与com数据源集成的研究与实现.pdf_第1页
(计算机应用技术专业论文)jdbc与com数据源集成的研究与实现.pdf_第2页
(计算机应用技术专业论文)jdbc与com数据源集成的研究与实现.pdf_第3页
(计算机应用技术专业论文)jdbc与com数据源集成的研究与实现.pdf_第4页
(计算机应用技术专业论文)jdbc与com数据源集成的研究与实现.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(计算机应用技术专业论文)jdbc与com数据源集成的研究与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

j d b c 与c o m 数据源集成的研究与实现中文摘要 中文摘要 随着信息技术的飞速发展,大量信息因应用背景的不同被保存在各种数据源中。 这些数据源既包含各种关系数据库,也包含在电子政务中大量使用的基于c o m 组件 的数据源。在互联网相当成熟的今天,信息的交流非常普遍,如何把这些分布的、异 构的数据源集成,在不改变原有分治系统的前提下实现数据的交换显得尤为重要。 j d b c 与c o m 数据源的集成使用分布式对象技术,使得分布在多个客户端的数 据源能够通过服务器实现数据的集成。客户端转换本地数据源数据到具有统一格式的 中间数据载体,然后发送载体到服务器。其他客户端从服务器获取中间数据载体的内 容到本地,并将中间数据载体的数据转换到本地数据源。 本文使用x m l 文件作为数据的中间载体,并结合在企业级分布式应用中广泛使 用的各种j 2 e e 技术实现分布在多个客户端的数据源的集成。本文主要工作及创新为: ( 1 ) 分析现有以x m l 为数据载体的数据转换的不足,制定了面向多个数据源 的统一格式的x m l 数据文件。在x m l 文件中引入数据的宏信息,不仅数据得以保 存,而且还保存了用于数据转换的模式信息和语义信息。 ( 2 ) 全面分析各种数据库的数据类型特点,分i - j 另u 类,设计实现转换算法;在 数据类型互转的基础上,实现数据库模式的互转,进而实现数据库到x m l 和x m l 到数据库的转换;在x m l 与数据库互转的基础上,实现x m l 与基于c o m 组件数 据源的互转;最终实现以x m l 为中间数据载体的结构化数据源与非结构化数据源的 转换。 ( 3 ) 将j c a 引入到基于c o m 组件数据源的集成上,并设计实现了j c a 的资源 适配器,实现了这些数据源与j 2 e e 应用服务器的无缝集成。 ( 4 ) 设计实现了数据源集成的模型,使得分布在多个客户端的异构数据源可以 实现数据的集成。 关键字:分布式组件;数据源集成;异构数据源;j c a 资源适配器;j a v a 消息服务; j a v a 验证与授权服务 作者:张家付 指导教师:徐汀荣 a b s t r a c tr e s e a r c ha n di m p l e m e n t a t i o no f j d b ca n dc o md a t a s o u r c ei n t e g r a t i o n a b s t r a c t w i t l lt h er a p i dd e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g y , l o to fi n f o r m a t i o ni ss a v e d i n t ok i n d so fd a t a s o u r c e s ,a c c o r d i n gt ot h ed i f f e r e n c e so fa p p l i c a t i o nb a c k g r o u n d so f i n f o r m a t i o n t h e s ed a t a s o u r c e sn o to n l yi n c l u d ek i n d so fr e l a t i o n a ld a t a b a s e ,b u ta l s o c o mc o m p o n e n t b a s e dd a t a s o u r c e su s e di n e - g o v e r n m e n t a lb u s i n e s s n o w a d a y s , i n f o r m a t i o nc o m m u n i c a t i o ni sv e r yp r e v a l e n tf o rt h ec a s eo ft h eg r e a tm a t u r eo fi n t e r n e t i t i se x t r e m e l yi m p o r t a n th o wt oi n t e g r a t et h e s ed i s t r i b u t e da n dh e t e r o g e n e o u sd a t a s o u r c e s , a n dm a k ed a t ae x c h a n g e dw i t h o u tc h a n g i n gs e p a r a t e l ya d m i n i s t r a t e ds y s t e m sw h i c hh a v e a l r e a d ye x i s t e d j d b ca n dc o md a t a s o u r c ci n t e g r a t i o na d o p t sd i s t r i b u t e do b j e c tt e c h n o l o g y i tm a k e s d a t ai n t e g r a t e df r o md a t a s o u r c e sl o c a t i n ga tm a n yc l i e n t st h r o u g hs e r v e r c l i e n tt r a n s f o r m s d a t ai nl o c a ld a t a s o u r c ei n t om i d d l ed a t ac a r r i e r ,a n dt h e ns e n d st h ec a l - r i e rt os e r v e r o t h e r c l i e n t sg e tc o n t e n to ft h em i d d l ed a t ac a r r i e r , a n dt r a n s f o r mt h ed a t ao ft h ec a r r i e ri n t ol o c a l d a t a s o u r c e 1 1 1 ep a p e ru s e sx m lf i l ea sm i d d l ec a r r i e r ,m a k e sd a t ai n t e g r a t e df r o md a t a s o u r c e s l o c a t i n ga tm a n yc l i e n t s ,m a k i n gu s eo ft h ek i n d so fj 2 e et e c h n o l o g i e s ,w h i c ha r ew i d e r l y u s e di nd i s t r i b u t e da p p l i c a t i o no fe n t e r p r i s e t h ep a p e r sr e s e a r c h si n c l u d ef o l l o w i n g s : ( 1 ) t h ep a p e ra n a l y z e st h es h o r t a g eo fa l r e a d yd a t at r a n s f o r m a t i o nu s i n gx m l a sd a t a c a r r i e r , a n dc o n s t i t u e st h ex m ld a t af i l es u i t a b l ef o rm a n yd a t a s o u r c e s 、析t 1 1u n i f o r m f o r m a t t h ep a p e ri n t r o d u c e sm e t a - i n f o r m a t i o ni n t ox m lf i l e m e t a - i n f o r m a t i o ns a v e sn o t o n l yd a t a ,b u ta l s os c h e m aa n ds e m a t i c si n f o r m a t i o nu s e df o rd a t at r a n s f o r m a t i o n ( 2 ) t h ep a p e ra n a l y z e sd a t at y p e so fr e l a t i o n a ld a t a b a s e ,s o r t st h e s ed a t at y p e sa n d d e s i g n st r a n s f o r m a t i o na l g o r i t h m b a s e do nt r a n s f o r m a t i o no fd a t at y p e s ,t h ep a p e rr e a l i z e s t h es c h e m at r a n s f o r m a t i o no fr e l a t i o n a ld a t a b a s e a n dt r a n s f o r m a t i o no fd a t a b a s et ox m l a n dx m lt od a t a b a s e ,f u r t h e r b a s e do ni n t e r t r a n s f o r m a t i o nb e t w e e nx m la n dd a t a b a s e t h ep a p e rr e a l i z e st h ei n t e r - t r a n s f o r m a t i o nb e t w e e nx m la n dc o mc o m p o n e n t - b a s e d d a t a s o u r c e ,n l ep a p e rr e a l i z e si n t e r - t r a n s f o r m a t i o nb e t w e e ns t r u c t u r e dd a t a s o u r c e sa n d n o n - s t r u c t u r e dd a t a s o u r c e su s i n gx m la sm i d d l ed a t ac a r r i e rf i n a l l y ( 3 ) ,n l ep a p e ri n t r o d u c e sj c ai n t oi n t e g r a t i o no ft h ec o mc o m p o n e n t - b a s e d i i r e s e a r c ha n d i m p l e m e n t a t i o no fd i s t r i b u t e dd a t ae x c h a n g e a b s t r a c t d a t a s o u r c e ,a n dd e s i g n st h ej c ar e s o u r c ea d a p t e ro ft h ec o mc o m p o n e n t b a s e d d a t a s o u r c e t h ep a p e ri n t e g r a t e st h ec o mc o m p o n e n t b a s e dd a t a s o u r c es e a m l e s s l y 、i n l j c ar e s o u r c ea d a p t e r ( 4 ) t h ep a p e rd e s i g n sa n dr e a l i z e st h em o d e lo fd a t a s o u r c ei n t e g r a t i o n ,m a k i n gd a t a i n t e g r a t e df r o mh e t e r o g e n e o u sd a t a s o u r c e sl o c a t i n ga tm a n yc l i e n t s k e y w o r d s :d i s t r i b u t e dc o m p o n e n t ;d a t a s o u r c ei n t e g r a t i o n ;h e t e r o g e n e o u sd a t a s o u r c e ;j c a r e s o u r c ea d a p t e r ;j m s ;】垂a s : w r i t t e n b yz h a n gj i a - f u s u p e r v i s e db yx ut i n g - r o n g i l l 图表索引 图3 1s u b j e c t 包含的身份和证书1 3 图3 2j a a s 登录验证各类之间关系1 4 图3 3j c a 约定中各部分之间关系1 6 图4 1 正向转换过程_ _ 2 2 图4 2 两阶段转换( 数据类型+ 数据实例) 。2 4 图4 3e j b 调用设计2 6 图4 - 4 客户端安全登录以及e j b 安全调用验证2 8 图4 5j c a 资源适配器设计3 0 图4 6c o m 数据源使用设计:31 图4 7j m s 消息发送设计3 2 图4 8 总体设计3 3 图5 1 正向转换类图之问关系j 3 6 图5 2 反向转换类图之间关系3 7 图5 3 从文件获取方法和参数4 0 图5 - 4 获取表中所有列的方法实例4 0 图5 5 通过反射机制执行方法4 l 图5 6 通过j a v a 类型查找合适的数据类型4 l 图5 7 字符串类匹配的流程图4 2 图5 8 两两数据库检查代码4 3 图5 - 9o r a c l e 到d b 2 的特殊处理4 3 图5 1 0 数据实例转流程图4 4 图5 1 1d b 2 到s q ls e r v e r 的特殊处理4 5 图5 1 2m s w o r d m a n a g e r 构造函数代码4 5 图5 1 3 向表中单元格设置值的代码4 6 图5 1 4w o r d 表格数据4 6 图5 1 5w o r d 数据转换为x m l 4 7 图5 1 6x m l 数据转换到e x c e l 4 7 图5 1 7x m l 转换到o r a c l e 的表信息4 8 图5 1 8x m l 转换到o r a c l e 的数据信息4 8 图5 1 9o r a c l e 转换到x m l 4 9 图5 2 0x m l 转换到s q ls e r v e r 的表信息4 9 图5 2 1x m l 转换到s q ls e r v e r 的数据信息4 9 图每1 客户端登录流程图5 1 图6 2 登录配置m b e a n 服务类图5 2 图6 3s e c u r i t y c o n f i g m b e a n 核心代码5 2 图6 4s e c u r i t y c o n f i g m b e a n 服务部署描述符5 3 图6 5j c a 资源适配器实现类( 1 ) :5 3 图6 6j c a 资源适配器实现类( 2 ) 5 4 图6 7c o m h a n d l e r i m p l 构造函数代码5 5 图6 8 部署j c a 资源适配器的e j b 类图5 6 图6 - 9c o m b e a n 使用j c a 资源适配器获取连接代码一5 8 图6 。1 0 自定义a p i 中获取表单元格数据的代码5 9 图6 - ll 客户端解板s o c k e t 流,完成方法调用的流稷图5 9 圈6 - 1 2 客户端为其他客户端访闽本地数据源建立线程的类图5 9 图6 1 3j m s 消息的异步发送流程图6 0 图6 - 1 4 对应流程图的代码6 0 图6 1 5 系统配嚣和用户信息获取页面6 2 图6 1 6 获取j d b c 数据源信息6 2 匿6 17 获取c o m 数据源信息6 4 表2 1 标记类型及用途1o + 表3 1 消息头豹缓成及说明1 9 苏州大学学位论文独创性声明及使用授权的声明 学位论文独创性声明 奉人郑霞j 智 凋:所提交的学位论文足本人在导师的 ! 导f ,独进 行研究17 张:所取得的成聚。除文中l 三经洼l 珏jt j l 圳的内容外,夺论文f i 禽 其他个人或集体已经发表或撰:! ;过的研究成聚,也小禽为获农;苏州人 或毖它教静机构的学位证书丽使j 3 过的材料。对本文的研究作m 磊受负 献的个人和集体,均已在文r | 以嚼确方式标明。本人承豁 本声明的法律 蠢仃。 研究z t 镌私:瑟! 弛【1 学位论文使用授权声明 苏州人学、- | ,嘲科学技术信慰研究所、幽客阁 锚、清华人7 :论文 合作部、l i - :i 豳社科院文献f 毒息情报r - 】心仃权保留本人所送交能论爻的 复印件和电予文档,髓,以采j | j 影印、缩印或j :他复制于段 ;l 仔沦文。今 入电子文档的内容和纸顺论文的内容栩敏。除谯保密矧l 勺的侏密论文 外,允以:论文放务阅和 : = 阅,w 以公九( 包据刊谨) 沦殳的伞潍威挪分 内容。论文的公靠j ( 包括刊髓) 授权苏州人学学位办办雕。: 研究, :签名:三色至叠匀 l 矧:墨互生 导帅签积: 巾b c 与c o m 数据源集成的研究与实现第一章绪论 第一章绪论 本章首先介绍了论文的选题背景及意义,然后重点介绍了目前国内外在数据转 换、消息传输和应用集成方面的研究现状,分析了其中存在的不足。基于这些研究和 分析! 提出了能够使结构化数据源和非结构化数据源实现数据交换的数据集成模型。 随后介绍了论文的相关工作,最后介绍了论文的组织结构。 1 1 选题背景及意义 随着社会的信息化程度不断加深,各种信息以数据的形式被记录下来。这些数 据又以信息的不同应用背景被保存在各种不同的数据源中。这些数据源既有各种关系 数据库,也有各种基于c o m ( c o m p o n e n to b j e c tm o d e l ) 【i 】组件的数据源( 下文简称 c o m 数据源) 。关系数据库包括:桌面应用的a c c e s s 、轻便快捷的m y s q l 、企业级 的中型数据库s q ls e r v e r 、企业级的大型数据库o r a c l e 、以及大型机上普遍使用的 d b 2 等等。c o m 数据源包括w o r d 、e x c e l 和p d f 等。对于某一方面的应用,这些单 个的数据源都能够胜任。然而,随着互联网的兴起,信息的交流越来越频繁,这些异 构数据源之间的异构性日益不能满足数据交换的需要。这个问题同样会出现在许多企 业中。企业的各个部门会根据需要选择适合本部门的数据源,然而,随着企业信息化 程度越来越高,异构数据源之间的异构性也会阻碍企业的应用集成,问题主要表现在 以下几方面: ( 1 ) 关系数据库在数据存储方面虽然都是结构化的,但使用的数据类型和精度 都不尽相同。例如,s q ls e r v e r 的数据类型m o n e y 在其他数据库中并不存在;o r a c l e 的r o w i d 也不存在于其他数据库中。再如,数据类型c h a r 普遍存在于多个数据 库中,但其精度在数据库中有不同的定义,o r a c l e 中的字节范围是1 - 2 0 0 0 ,s q ls e r v e r 是1 8 0 0 0 ,m y s q l 却是1 - 2 5 5 1 2 1 。所以各种数据库数据不能直接交换。 ( 2 ) 非结构化数据源在办公系统和电子政务中保存了大量的数据信息,在日常 生活中发挥着重要作用。非结构化和异构性的特点使其数据难以被共享; ( 3 ) 各种数据源分布在多个客户端中,数据源在互访过程中缺乏连接管理、事 务管理和安全管理。 针对上述的问题,本文提出了一种分布式数据源集成的模型。它使用x m l 第一章绪论j d b c 与c o m 数据源集成的研究与实现 ( e x t e n s i b l em a r k u pl a n g u a g e ) 1 3 1 作为中间数据载体,实现分布在多个客户端的异构 数据源的集成,并使用j c a ( j 2 e ec o n n e c t o ra r c h i t e c t u r e ) 1 4 1 管理数据源的连接、事 务和安全。 1 2 国内外研究现状 各种异构数据源的存在,阻碍了数据的交换。为了使数据可以被交换,进而实现 对各异构数据源的无缝集成,国内外在数据转换、数据传输和数据源集成方面都做了 很多研究。 在数据转换上,国外各数据库厂商和一些应用软件开发商都提供了很多工具来提 取和转换数据,比如s q ls e r v e r 的d t s 工具,p o w e r b u i l d e r 的d a t ap i p e l i n e ,d e l p h i 的d a t a p u m p 等,但是这些工具较依赖于具体的数据库和软件平台,缺乏独立性。国 内外学术论文在数据转换上都有很多研究。比如 文献5 】提出的x r a y 算法和 文献 6 】【文献7 】【文献8 】中提出的c p i 算法都比较有代表性,但他们使用d t d 定义x m l 模 式,在数据类型描述上有局限。 文献9 】通过分析数据库模式和字段的关联性,将数 据库分成多个连接的表,由这些表分别建立保存数据的d o m 片段和保存模式信息的 d o m 树,然后根据表间的关联由d o m 树生成x m l 文档树,此时只要在文档树中 选择一个节点就可以生成以这个节点为根节点的x m l 模式,从而完成数据库模式到 x m l 模式的转变。再依据前面由连接表生成的d o m 片段就可以生成完整的x m l 文 件。【文献1 0 结合w 3 c 的推荐标准r d f ( r e s o u r c ed e s c r i p t i o nf r a m e w o r k ) ,利用 r d f 不仅具有x m l 文件在同时保存结构信息和数据信息的特点,而且在语义描述方 面的优势,将现有x m l 文件转化为r d f ,并根据r d f 的描述信息把数据装入到关 系数据库。以上的转换都是x m l 模式与某一特定数据库的关系模式之间进行,无通 用性。当数据库模式发生变化或者与其他数据库进行转换时,就需要进行x m l 模式 的修改或者在多个x m l 模式间进行转换( n 宰n 问题) 。 在数据传输方面,本文使用的是j m s ( j a v am e s s a g es e r v i c e ) 1 1 1 。j m s 提供了一 种通用的方式来创建、发送、接收和读取消息。作为一种厂商无关的a p i ,第三方提 供了很多面向消息的中间件( m o m ) ,如j b o s s 的j b o s s m q ,i b mm q ,f i o r a n om e s s a g e s e r v e r 等,有着广泛的研究和应用。【文献1 2 】针对一种新的、能够在大社区内提供组 内通信的j m s g r o u p s ,侧重于研究j m s c n o u p s 的体系结构。j m s 通常是作为一个实 体,向多个客户端提供消息服务,但是单个m s 不能提供可靠的组内通信。于是, 2 j d b c 与c o m 数据源集成的研究与实现 第一章绪论 通过多个j m s 服务器实现冗余配置,并且提供容错功能。【文献1 3 】利用j m s 同步了 e r p ( e m e r p f i s er e s o u r c ep l a n n i n g ) 和c r m ( c u s t o m e rr e l a t i o n s h i pm a n a g e m e n t ) 间 数据的传输,实现了两者的无缝结合。【文献1 4 】针对多部门间不同m i s 系统造成的 “信息孤岛 问题,利用m q + x m l 的方式给予解决。其中x m l 作为数据载体,j m s 中的m q 作为信息上传和接收的中间层,这样各个子系统就可以互传信息,避免了“信 息孤岛 现象的产生,同时保留了原有系统,减少了投入。 在数据源集成上,本文使用j c a ( j 2 e ec o n n e c t o ra r c h i t e c t u r e ) 1 3 】集成多种异构 数据源。j c a 在国外已有很多研究和应用,如 文献1 5 】在原有j c a 拥有连接、事务 和安全管理三大约定的前提下,提出了作业管理和消息流入约定,结合这两个约定可 以实现发送j m s 消息来调用事先定义的作业。【文献1 6 】利用j c a 为与异构平台连接 提供管理和直接驱动的特性,为康柏电信管理信息平台的集成网络管理平台建立了 j c a 连接器。j c a 在国内也有应用,如【文献1 7 】为i n f o r b r o k e r ( 在国防科技大学的“8 6 3 “ 中间件s t a r b u s 基础上开发) 消息代理中间件开发了符合j c a 规范的资源适配器,实 现了中间件和j 2 e e 应用服务器的无缝集成。 1 3 研究内容 ;本文在研究和分析国内外研究的基础上,借鉴优点,改进缺点,重点做了如下工 作: ( 1 ) 分析现有以x m l 为数据载体的数据转换方面的不足,制定了面向多个数据 源的统一格式的x m l 文件。在x m l 中引入数据的宏信息,不仅数据得以保存,而 且还保存了用于数据转换的模式信息和语义信息。 ( 2 ) 全面分析各种数据库的数据类型特点,分f - 另u 类,设计实现转换算法;在数 据类型互转的基础上,实现数据库模式的互转,进而实现数据库到x m l 和x m l 到 数据库的转换;在x m l 与数据库互转的基础上,实现x m l 与基于c o m 组件数据 源的互转;最终实现以x m l 为中间数据载体的结构化数据源与非结构化数据源的转 换。 ( 3 ) 设计实现了基于角色的访问控制扩展j a a s ( j a v aa u t h e n t i c a t i o na n d a u t h o r i z a t i o ns e r v i c e ) i s 】的安全访问控制,实现登录模块和m b e a n ( m a n a g e db e a n ) 【1 9 】服务,部署m b e a n 服务和验证模块; ( 4 ) 将j c a 引入到c o m 数据源的集成上,并设计实现了j c a 的资源适配器,实 第一章绪论j d b c 与c o m 数据源集成的研究与实现 现了这些数据源与j 2 e e 应用服务器的无缝集成。 ( 5 ) 设计实现了j m s 消息的异步发送和接收。 1 4 本文组织结构 本文共分七个章节: 第一章为“绪论 ,本章首先介绍了选题背景及意义,然后对本论文所涉及的国 内外研究现状作了详细介绍,并分析和研究这些现状,指出不足,借鉴优点,最终导 出本文研究方向和内容;最后给出了本文组织结构 第二章为“j d b c 和c o m 数据源概述,本章首先介绍数据源的异构性和转换, 然后对数据集成进行了概述;最后对中间数据载体x m l 进行了介绍。 第三章为“分布式系统概述,本章首选介绍了分布式对象的几种技术;介绍了 访问控制技术的含义,以及基于角色的访问控制扩展j a a s ;最后介绍了异步消息的 传输机制。 第四章为“数据源集成的设计 ,本章设计了中间数据载体与数据源的互转、分 布式组件、访问控制、异构数据源集成、异步消息传输机制和数据源集成模型。 第五章为“x m l 与数据源互转的实现”,本章实现了第四章的中间数据载体与 数据源互转的设计,使用x m l 作为中间数据载体,并给出了转换的实例。 第六章为“数据源集成的实现 ,本章给出了第四章中诸多设计的实现,包括访 问控制、c o m 数据源集成、j m s 消息服务和系统中多个功能的集成。 第七章为“结束语 ,本章是对上述工作的总结,并对今后进一步的研究工作做 了展望。 4 j d b c 与c o m 数据源集成的研究与实现第二章i d b c 和c o m 数据源概述 第二章j d b c 和c o m 数据源概述 本章对异构数据源的异构性进行描述,指出它们的异构性表现在哪些方面。对数 据集成的过程和方法进行概述。最后介绍在数据描述上广泛使用的x m l 语言。 2 1 数据源的异构性 根据应用背景的不同,各种信息被保存在各种数据源中。这些数据源都能在各自 领域胜任,它们有各自不同的侧重点。这也导致了它们之间的异构性。这些异构性主 要体现在:系统异构、数据模型、模式和语义异构、用户接口异构1 2 0 2 1 1 。 ( 1 ) 系统异构,是指各数据源所运行的操作系统不同。由于底层的操作系统不同, 所以导致数据源可以获得的服务也不同。如c o m 数据源就不能直接运行在l i n u x 系 统或u n i x 系统中,它只能在w i n d o w s 系统中运行。 ( 2 ) 数据模型、模式和语义异构,这些主要是因为不同数据源采用不同的语言、 对同一信息进行不同的描述方式造成的【捌。即使对于同是结构化的关系数据库数据源 来说,它们在模式和语义上也存在差别。对于非结构化的c o m 数据源则更是如此。 ( 3 ) 用户接口异构,是指提供给用户访问的方法不同。对于关系数据库,它们一 般都提供了j d b c ( j a v ad a t a b a s ec o n n e c t i v i t y ) 幽】驱动,用户可以通过j d b c 访问。 对于c o m 数据源,则要通过c o m 接口访问。 2 1 1j d b c 数据源的异构性 j d b c 数据源就是可以通过j d b c 接口访问的数据源。j d b c 数据源主要是指各 种关系数据库。它们的异构性主要体现在关系模式的异构。 关系的描述称为关系模式( r e l a t i o ns c h e m a ) 【2 4 】。一个关系模式应当是一个五元 组。它可以形式化地表示为:r ( u ,d ,d o m ,f ) 【2 4 】,其中r 为关系名,u 为组成该关 系的属性名集合,d 为属性组u 中属性来自的域,d o m 为属性向域的映象集合,f 为属性之间数据的依赖关系集合。由于关系在j d b c 数据源中实质就是一张二维表, 所以关系名就是表名,属性名就是列名,而域名及属性向域的映象常常直接说明为属 性的数据类型、长度。j d b c 数据源在表名和列名的异构上只具有很小的差异,有时 甚至可以忽略。j d b c 数据源的异构性主要体现在数据类型上。 第二章j d b c 和c o m 数据源概述j d b c 与c o m 数据源集成的研究与实现 每个关系数据库都定义了自己的数据类型集合,它们都在某种程度上遵循s q l 9 9 的数据类型标准。为了方便各关系数据库间数据类型的相互转换,可以将这些数据类 型分为五类,字符串( s t r i n g ) 类、二进制串( b i n a r y ) 类、数字( n u m b e r ) 类、日期 时间( d a t e t i m e ) 类和其他( o t h e r ) 类。为了使转换更加准确,在这些类型中还可以 细分。下面对这些类型做详细说明: 第一,字符串类。一个字符串可以被简单的定义为一个字节的序列。字符串的长 度就是这个序列中的字节数。字符串类从存储方式和空间大小两个角度,又可以分为 固定长度字符串和可变长度字符串,以及国家字符串和非国家字符串。固定长度字符 串是指即使实际值的长度没有达到指定长度,也会填满整个空间,降低了空间利用率, 但却可以提高读取的速度;而可变长度字符串是按照实际值的长度分配相应字节数; 对于国家字符串的问题,实际上是术语“字符”和“字节 的对应关系,即一个字符 在计算机里有几个字节表示的问题。对于使用英语的国家,一个字符只需要一个字节 表示。但世界的文化是多样的,语言也是极其丰富,为了让字符在每个国家都可以被 正确的使用,引入了国家字符串。国家字符串使用两个字节的u n i c o d e 标准存储字符, 可以表示6 5 5 3 6 ( 2 1 6 ) 个字符,可以满足现在的语言使用。在数据转换的时候,应该 考虑长度的可变性和国家字符串问题,以便最大限度保留数据的原本含义。 第二,二进制串类。二进制串类似于字符串类,也是字节的序列。但通常不用来 存储文本信息的字符,而是存储诸如图像、音频、视频文件和可执行程序这样的非传 统数据。二进制串类也有固定长度和可变长度之分,其含义与字符串类类似。 第三,数字类。数字类被分为精确的数字和近似的数字。精确的数字可以是整数 或者是有小数点的数字。精确的数字有正负之分,有精度和小数位数的特性。这里的 精度是指可以保存多少位的十进制数字。小数位数是指小数点后面的数字位数;近似 的数字是用来描述那些不能用绝对的精度或者本身就不是一个精确值的数字。近似的 数据在数据转换的时候比精确的数据困难,主要是因为各厂商数据库对像f l o a t 和 r e a l 这样的浮点数据类型定义了不同的小数精度和值范围,有时必须截断数据,不 仅涉及类型的转换,而且还有对应类型值的转换。例如o r a c l e9 i 中数据类型f l o a t 最大小数精度是3 8 ,而d b 2u d b 8 1 中对应的数据类型d o u b l e 的最大小数精度只 有5 ,当有数据从o r a c l e9 i 转换到d b 2u d b 8 1 时就必须截断数据。 第四,日期时间类。日期和时间在s q l 中是最复杂和最容易出错的数据类型。 原因是这个数据类型并不是简单类型,而是有很多元素组成( 年、月、日、时、分、 6 j d b c 与c o m 数据源集成的研究与实现 第二章j d b c 和c o m 数据源概述 秒和毫秒等) ,是个复合类型。虽然s q l 9 9 有日期和时间的数据类型标准,但是不 同的数据库在实现上却有很大差别。例如,o r a c l e9 i 中的d a t e 不仅包含日期和时间, 而且包含世纪信息,这在其他数据库日期时间类的数据类型中是不存在的;d b 2u d b 8 1 中的d a t e 和t i m e ,分别只包含日期和时间,这在o r a c l e9 i 和s q ls e r v e r 2 0 0 0 中都是不存在的,当转换这两个类型的字段到o r a c l e9 i 的t i m e s t a m p 或者s q l s e r v e r2 0 0 0 的d a t e t i m e 时,需要在值转换阶段扩充值,否则会出现转换错误;s q l s e r v e r2 0 0 0 中更是有d a t e t i m e 和s m a l l d a t e t i m e 之分,只因为后者的范围更 小( 1 1 19 0 0 到6 6 2 0 7 9 ) 和更低的精度。因此当有相应数据类型转换到s q ls e r v e r 2 0 0 0 时,应该使用d a t e t i m e ,而不是s m a l l d a t e t i m e ,以免造成数据截断和 错误。 第五,其他类。其他类是指不在s q l 9 9 标准中定义或者因为转换不便、没有放 在上面四类中的数据类型。这些类型在转换时需要特殊考虑。如o r a c l e 中的r o w i d 、 u r o w i d 、b f i l e ,d b 2 的d a t a l i n k 和s q ls e r v e r 的b i t 等【2 】。 综上所述,在关系数据库数据类型转换时,在保存数据原本语义的前提下,依据 “保留共性,剔除差异 的原则进行转换。在大多数据库中拥有相似描述功能的数据 类型作为转换的首选目标数据类型,而那些只有个别数据库具有的“特色 数据类型, 只有在必选的情况下才作为目标数据类型。 1, 2 1 2c o m 数据源的异构性 c o m 数据源是指基于c o m 组件实现的数据源。在电子政务中大量使用的w o r d 、 e x c e l 就属于c o m 数据源。这些数据源可以使用c o m 接口( c o m p o n e n to b j e c tm o d e 接口,是微软定义的标准接口) 进行访问。不像j d b c 数据源那样具有多种数据类型, c o m 数据源的数据基本都足字符串形式,异构性主要体现在数据模型的不同。c o m 数据源转换也就没有那么复杂,只需使用中间层软件实现数据模型的转换即可。 2 1 3 异构数据源的转换 数据转换包含数据格式上的类型转换和数据实例上的值转换两方面【2 5 1 。在本文数 据转换的类型转换主要涉及各关系数据库数据类型的转换和在此转换基础上的模式 转换,以及异构数据源数据模型的转换;值转换主要是指在关系数据库数据类型由源 数据类型转换到目标类型后对应的值发生的变化,以及异构数据源数据模型转换后, 7 第二章j d b c 和c o m 数据源概述j d b c 与c o m 数据源集成的研究与实现 对应的值发生的变化。 对于j d b c 数据源,数据类型的转换和在此转换基础上的模式转换,以及对应的 值转换需要自己实现( 将在下面章节介绍) 。j d b c 数据源数据模型的转换则可以使 用j d b c 驱动完成。 j d b c 是一种可以连接到数据库、并可以执行s q l 语句的j a v aa p i ( a p p l i c a t i o n p r o g r a m m i n gi n t e r f a c e ) 集合和一些j a v a 类组成。j d b c 为j a v a 应用程序访问不同的 数据库提供了通用的应用程序编程接口。通过数据库的j d b c 驱动程序可以屏蔽不同 数据库之间的差异。j d b c 主要是提供了很多接口,真正做到数据转换的是实现了这 些接口的数据库厂商或第三方提供的j d b c 驱动。几乎所有的数据库厂商都为自己的 产品提供了j d b c 驱动程序。 对于c o m 数据源的数据转换,由于它们的数据类型只有一种,即字符串型,所 以不存在数据类型转换。c o m 数据源数据模型的转换可以使用j a c o b 实现。 j a c o b ( j a v ac o m b r i d g e ) 是一个j a v a - c o m 桥,允许在j a v a 中调用c o m 自 动化组件【2 6 1 。它使用j n i ( j a v an a t i v ei n v o c a t i o n ) 技术调用c o m 和w i n 3 2 库文件【2 6 】。 经过不断的改进,j a c o b 已经在线程访问控制和c o m 生命周期上变的很成熟。在 线程访问控制上,j a c o b 既支持s t a ( s i n g l et h r e a da p a r t m e n t ) ,又支持m t a ( m u l t i p l et h r e a da p a r t m e n t ) 。所有封装c o m 对象的j a c o b 对象都继承了 j a c o b o b j e c t 对象,这个对象有能够将自己注册到r o t 的特定代码,r o t 对象代表一 个正在运行的对象表( r u n n i n go b j e c tt a b l e ) 2 6 1 。此表将线程与所有由线程创建的对 象关联,当线

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论