基于huffman编码与xml的大对象数据交换

基于huffman编码与xml的大对象数据交换

ID:19717756

大小:63.00 KB

页数:6页

时间:2018-10-05

基于huffman编码与xml的大对象数据交换_第1页
基于huffman编码与xml的大对象数据交换_第2页
基于huffman编码与xml的大对象数据交换_第3页
基于huffman编码与xml的大对象数据交换_第4页
基于huffman编码与xml的大对象数据交换_第5页
资源描述:

《基于huffman编码与xml的大对象数据交换》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于Huffman编码与XML的大对象数据交换贾长云1朱跃龙2张新华3江苏连云港(222069)摘要:XML作为异构数据交换的标准格式在数据交换平台的建设中得到了广泛的应用,多媒体数据由于其容量巨大在数据库中往往作为大对象数据来保存,因此在异构数据交换中必然涉及到大对象数据交换的问题。本文通过对Huffman编码原理的讨论提出了基于XML使用Huffman编码方式实现大对象数据的交换,并设计了相应的实现模型,对异构数据库大对象数据交换的实现具有一定的借鉴意义。关键词:XML,Huffman,大对象数据,编码0引言随着计算机处理能力的大幅度提高,多媒体早已经融入到了计算机当中了,如果缺少了

2、多媒体,缺少了各种多姿多彩的图像,音频,视频,很难想象计算机如今会走入千家万户。长期以来,多媒体信息在计算机中都是以文件形式存放,由操作系统管理的,但是随着计算机网络,分布式计算的发展,这种单纯的文件式管理已经力不从心了,对多媒体信息进行高效的管理,存取,查询已经成了一种迫切需求。而关系数据库却有着强大的数据管理能力。两方面密切结合,多媒体数据库由此应运而生。这些多媒体数据往往容量巨大如照片、WORD文档等,因此通常将这些数据称为大对象数据(LOB)。LOB数据基本有两大类:CLOB(字符大对象)与BLOB(二进制大对象)。CLOB主要用于存储超长的文本数据;BLOB则用于存储大量的二进

3、制数据,如图像、视频、音频等。目前几乎所有的关系数据库对LOB数据都有比较强大的支持。如Oracle从8i开始就有了三种LOB数据类型:CLOB、BLOB和NCLOB,其最大存储长度可达4GB。SQLServer2000对LOB数据的支持也是以三种数据类型实现的:text、ntext、image,其存储的最大长度也可达到2GB。无论是在学校、政府还是企业,都分布着各种各样的应用系统,这些应用系统的后台数据库绝大部分都是基于关系数据库的(如Oracle、SQLServer等),而且不同的应用系统其后台数据库并不相同。因此,在实际应用中经常要将一个应用系统中的LOB数据交换到另一个应用系统中

4、,往往这两个应用系统的数据库是异构的。当前由于XML格式简单、扩展性强等特点使得它已经成为异构数据交换上事实标准。所以完全可以通过使用XML作为两个异构数据库数据交换的中间格式,实现大对象数据的交换。但是从理论上来说,由于XM文档只能描述文本信息,而LOB数据通常都是以二进制方式来描述的。这样如何在XML文档中完整准确地保存LOB数据所对应的二进制数据是大对象数据交换中必须解决的难题。2005年江苏省教育厅自然科学资助项目1LOB数据转换为XML数据的Huffman编码法当需要在异构数据库之间进行大对象数据交换时,可以先使用以上方法将LOB数据从数据库中读出,然后将其随其它数据一起转换到

5、XML文档,最后再用以上方法写入到目标数据库中。当大对象数据从源数据库读取以后会形成一个二进制数据文件,这些二进制数据文件不能直接存放到XML文档中,必须经过适当的转换。这是因为,其一从严格意义上来说,XML文档中的所有数据都是文本类型的,它并不能识别二进制格式的数据;其二,XML文档从源到目标是要经过编码、解码之类的解析,对二进制数据就会出现错误。因此,要想将二进制数据嵌入到XML文档中,必须先将二进制数据编码成合法的字符集才能嵌入到XML文档中。很显然,在目标端还必须将这些数据解码。2.1LOB数据转换的常规方法能够实现二进制数据编码的方法有多种方法如直接转换法、Base-64编码法

6、等。(1)直接转换法这种办法是将每一个二进制数据字节转换成两个以十六进制表示的字符。要做到这一点,必须有一个256种可能编码表用于将每个字节变成两个从字符集0-9,a-f而来的字符。编码表如下所示:{"00","01"……"ef","ff"}转换以后的XML文档片断如下所示:424d6a8d0f0000000000360400尽管这种方法能够非常简单地将二进制数据转换到XML文档中,但它浪费了网络的带宽。因为,原始二进制文件中的每一个字节,在XML文档中变成了两个字符。在传送很大的二进制数据集时,这一点是非常值得考虑的。(2)Ba

7、se-64编译法Base-64编码是一种MIME编码方法,可以将二进制数据映射成ASCII码的子集,它应用已经有很长时间了。开始它主要用于电子邮件的编码。Base-64编码(RFC2045)使用一个64个字符的子集(包括A-Z、a-z、0-9、+和/)来表示二进制数据,并使用“=”来进行填充。这种编码算法每次处理3个字节序列的字节流,每3个字节序列被解析如图1所示的4个6位的数据单元。每个6位被用作为映射表(Base-64字母表)的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。