二进制大对象数据的复制方法和设备的制作方法

文档序号:6416145阅读:115来源:国知局
专利名称:二进制大对象数据的复制方法和设备的制作方法
技术领域
本发明涉及不同字符集之间二进制大对象数据的复制。本发明尤其涉及用于不同语言之间二进制大对象数据的复制的方法和设备。
背景技术
在计算机刚出现时,它们主要存储普通的数值或字符数据。但在今天,用计算机存储、访问和管理的不仅有数值和字符数据,而且有日渐增多的视频图像、静止图像、音频数据或多种类型的数据的组合,这些数据会需要大量的存储空间。由于这些数据类型占用空间的巨大,一般采用特殊方式以所谓blobs(二进制大对象)的无类型对象存储在数据库中。blobs是无类型的,这意味着数据库系统不知道这些数据的格式。因此,在数据库中存储的blobs通常只有两个属性数据值和数据长度(数据值的长度)。
在用blob数据类型存储字符数据的时候,若企图在不同的语言之间转换blob数据,由于缺乏格式信息,因此存在问题。当前的计算机能够以不同的字符集支持多种语言,并能够在不同语言之间转换其数据。例如,英语使用与俄语、中文、日文或朝文不同的字符,而用户希望能够利用一个转换程序在不同语言之间转换其数据。不幸的是,由于blob数据是无类型的,转换程序不能转换blob数据。为了在使用blob数据的同时又提供对多语言的支持,就需要一种在多种语言之间转换blob数据对象的技术。

发明内容
为了使用blob数据并支持多语言,本发明所解决的问题就是提供一种在多种语言之间转换blob数据对象的方法和设备。
根据第一个方面,本发明提供一种方法,包括确定源字段中的blob数据与第一编码字符集标识符相关联;确定目标字段的第二编码字符集标识符;根据第一编码字符集标识符和第二编码字符集标识符从源字段复制blob数据到目标字段。
根据第二个方面,本发明提供一种以数据结构编码的信号承载介质,其中数据结构包括含有数据类型的源字段;和该数据类型的属性字段,其中复制控制器确定与该数据类型关联的数据是否为blob,确定与数据类型关联的源编码字符集标识符,该源编码字符集标识符规定源字符集、源编码页和源编码模式,并且复制控制器根据源编码字符集标识符和目标编码字符集标识符复制数据到目标字段。
根据第三个方面,本发明提供一种电子设备,包括用以确定源字段中的blob数据与源编码字符集标识符关联的第一确定装置;用以确定目标字段的目标编码字符集标识符的第二确定装置;和用以根据源编码字符集标识符和目标编码字符集标识符从源字段复制blob数据到目标字段的复制装置。
提供了一种方法、设备、处理器和信号承载介质,在一个实施例中,它们确定源字段中的blob(二进制大对象)数据与源CCSID(编码字符集标识符)关联,确定目标字段的目标CCSID,并根据源CCSID和目标CCSID从源字段复制blob数据到目标字段。采用这种方式,可以在多种语言之间转换blob数据。


附图1中的方框图描绘了实现本发明实施例的系统的例子。
附图2中的方框图描绘了基于本发明实施例的源数据库的格式和数据的例子。
附图3中的方框图描绘了基于本发明实施例的目标数据库的格式和数据的例子。
附图4中的流程图描绘了基于本发明实施例的处理过程的例子。
附图5中的方框图描绘了实现本发明实施例的设备的例子。
具体实施例方式
附图1中的方框图描绘了实现本发明实施例的系统100的例子。系统100包括一个连接到网络105的电子设备102。虽然只展示了一个电子设备102和一个网络105,但在其它实施例中它们可以有任意数量,还可以将它们任意组合。在另外的实施例中,网络105是不存在的。
电子设备102包括经由总线125直接或间接连到存储设备115,输入设备120及输出设备122的处理器110。处理器110代表任意类型体系结构,例如CISC(复杂指令集计算)、RISC(精简指令集计算)、VLIW(超长指令字)或它们的混合体系结构的中央处理单元,当然也可以使用任何适当的处理器。尽管附图1中未加描绘,其实处理器110还可以包括多种对于理解本发明实施例并非必须的装置。例如,处理器110也可以有多种执行单元,用于在处理器周期中执行指令,可以有用来与总线125接口的总线接口单元、用以提取指令的取指单元,还可以有用于保持指令和数据的队列和/或高速缓存。在其它实施例中,处理器110也可以有任何适合的装置。
处理器110执行指令,并且包含电子设备102中控制整个电子设备的工作的部分。处理器110针对存储设备115和/或网络105读取和/或存储代码和数据,从输入设备120读取数据,并向输出设备122写数据。
虽然示出的电子设备102只包含单一处理器110和单一总线125,但是对于具有多处理器和多总线的电子设备(其中某些或全部以不同方式执行不同功能),也同样可应用本发明。
存储设备115代表一个或多个存储数据的装置。例如,存储设备115可以包括随机访问存储器(RAM)、可移动或固定磁盘存储介质、光存储介质、快擦写存储器件和/或其它机器可读介质。在其它实施例中,任何适当类型的存储设备都是可用的。虽然示出的只有一个存储设备115,但也可以有多个存储设备和多类型、多级别的存储设备存在。而且,尽管所示的电子设备102包含存储设备115,但存储设备115也可以分布于其它电子设备,例如经由网络(如网络105)连接的电子设备上。
存储设备115包括源数据库126、目标数据库128和复制控制器140。
源数据库126包含待转换的数据。在一个实施例中,源数据库126是关系数据库,但在其它实施例中,任何适当的数据库都可使用。目标数据库128包含由源数据库126转换过来的数据。在一个实施例中,目标数据库128是关系数据库,但在其它实施例中,任何适当的数据库都可使用。尽管示出的源数据库126和目标数据库128是位于电子设备102中的存储设备115之内,但在其它实施例中它们也可以位于不同的存储设备中,还可以位于不同的电子设备中,例如在经由网络105连接的不同电子设备中或与之相关。后面会结合附图2与附图3进一步说明源数据库126和目标数据库128。
复制控制器140可以包括能够被处理器110执行的指令,和/或能够能被处理器110上执行的指令解释的语句。在另一实施例中,复制控制器140的某些或全部功能也可以借助逻辑门和/或其它硬件机制实现,以替代或补充基于处理器的系统。复制控制器140在转换数据库中的选择字段时,复制源数据库126到目标数据库128。后面会结合附图4进一步说明复制控制器140的功能。
输入设备120可以是键盘、鼠标或其它定位设备、跟踪球、触摸板、触摸屏、小键盘、麦克风、声音识别设备或适于用户向电子设备102输入数据的其它任何装置。虽然示出的只有一个输入设备120,但在其它实施例中可以有任意数量和类型的输入设备。在一个实施例中,用户可以使用输入设备120启用复制控制器140,但在另一个实施例中,也可以经由另一程序或借助其它适当的装置启用复制控制器140。
输出设备122是电子设备102中负责向用户显现输出的部分。输出设备122可以是计算机硬件技术中周知的基于阴极射线管(CRT)的视频显示器。但在其它实施例中,输出设备122也可以代之以基于液晶显示器(LCD)、基于气体等离子的平板显示器等。在其它实施例中,可以使用任何合适的显示设备。在另一些实施例中,也可以使用扬声器或打印机。在另一些实施例中,可以使用任何适当的输出设备。虽然示出的只有一个输出设备122,但在其它实施例中也可以有任意数量的类型不同或相同的输入设备。
总线125可以代表一个或多个总线,例如PCI(外部设备互连)、ISA(工业标准体系结构)、X-Bus(X总线)、EISA(扩展工业体系结构)或任何其它的适当总线和/或桥(亦称总线控制器)。
电子设备102可以用任何适当的硬件和/或软件实现,例如个人计算机。便携计算机、膝上型或笔记本计算机、PDA(个人数据助理)、袖珍计算机、电话、寻呼机、汽车、电话会议系统、电器和大型计算机都是电子设备102的其它可能配置的例子。附图1中所示的硬件和软件可能随着具体应用而有变化,并且可包含比描绘的更多或更少的装置。例如,可使用例如音频适配器的其它外部设备或例如EPROM(可擦可编程只读存储器)编程设备的芯片编程设备,以补充或取代已经描述的硬件。
网络105可以是任何适当的网络或网络的组合,可以支持适用于与电子设备102进行数据和/或代码通信的任何适当协议。在各式各样的实施例中,网络105可以代表一个存储设备或存储设备的组合,它们可以直接或间接地连接到电子设备102。在一个实施例中,网络105可以支持无限频带(Infiniband)。在另一个实施例中,网络105可以支持无线通信。在另一个实施例中,网络105可以支持硬连线的通信,如电话线或电缆。在另一个实施例中,网络105可以支持以太网IEEE(电气电子工程师协会)的802.3规范。在另一个实施例中,网络105可以是因特网,能够支持IP(网际协议)。在另一个实施例中,网络105可以是局域网(LAN)或广域网(WAN)。在另一个实施例中,网络105可以是热点服务提供商网络。在另一个实施例中,网络105可以是内部网。在另一个实施例中,网络105可以是GPRS(通用分组无线服务)网络。在另一个实施例中,网络105可以是任何适当的蜂窝数据网络或基于蜂窝的无线网络技术。在另一个实施例中,网络105可以是IEEE 802.11B无线网络。在另一个实施例中,网络105可以是任何适当的网络或网络组合。虽然示出的只有一个网络105,但在其它的实施例中可以有任意个数(类型相同或不同)的网络。
如同下面要详细说明的,本发明实施例的各个方面涉及可在计算机、处理器或其它电子设备上实现的特定设备和方法。在另一实施例中,可以把本发明实现为用于计算机、处理器或其它电子设备的程序产品。定义该实施例的功能的程序可以通过各种信号承载介质发送到计算机、处理器或其它电子设备,该介质包含但不限于(1)永久存储在不可重写存储介质(例如连接到或位于计算机、处理器或其它电子设备内的只读存储设备,如可被CD-ROM驱动器读取的CD-ROM)上的信息;(2)存储在可重写存储介质(例如硬盘驱动器或磁盘)上的可变信息;或(3)由通信介质例如通过计算机或电话网(如网络105,包括无线通信)转移到计算机、处理器或其它电子设备上的信息。
这样的信号承载介质,在携带了导致本发明的功能执行的机器可读指令时,代表了本发明的实施。
附图2中的方框图举例描绘了源数据库126的格式和数据的例子。源数据库126包括表201、属性212和CCSID 240。在示出的例子中,表201是雇员表,也可使用任意类型的适当表格。表201包括列名202、类型名204和最大长度206。
表201还包括字段208和210。在示出的例子中,字段208在列202中有列名“姓”,在列204中有类型名“blob-c”,在列206中有最大长度“70”。类型名blob-c表明,存在一个属性数据结构212并在其中包含一个CCSID(编码字符集标识符),下面会进一步说明。在示出的例子中,字段210在列202中有列名“名”,在列204中有类型名“blob-c”,在列206中有最大长度“70”。虽然示出的是两个字段208和210,但在其它实施例中,可以有任意适当个数的字段。虽然blob-c和blob被描述为示例性的类型名,但在其它实施例中,类型名也可以是二进制、字符或其它任何合适的数据类型。
属性212包括一个长度字段214,一个CCSID(编码字符集标识符)字段216和数据字段218。长度字段214规定数据字段218的实际长度,而最大长度字段206规定属性的最大长度。CCSID标识一组字符集、代码页和编码模式。CCSID通常用于使用多代码页的语言,但在其它实施例中,CCSID可用于任何语言。具有多代码页的语言的例子是日文和韩文,虽然在其它实施例中也可以使用任何适当的语言。字符集是一组字符。字符集的例子是DBCS(双字节字符集),但在其它实施例中,也可以使用任何适当的字符集。
代码页是字符集中每个字符的编码点(code point)(例如,整数)的一组规范,。使用代码页查找字符集中字符的确切编码点值。
编码模式是对字符编码和/或解码的规划。当从一个代码页转换字符到另一个代码页时,由编码模式控制其转换。
CCSID 240适用于整个源数据库126,源数据库126中的所有数据都采用CCSID 240来存储。另一方面,BLOB-C属性有其自己的、以记录级存储的CCSID 216,也就是说,在一些实施例中,表中的每一行可以有不同的CCSID。当复制控制器140(附图1)复制源数据库126时,复制控制器140使用CCSID 240复制数据,除非数据有其自己的CCSID,如CCSID 216,下面将结合附图4进一步说明。
在表201中给出的数据和属性212仅仅是示例性的,并且可以使用任何适当的数据。
附图3中的方框图根据本发明实施例描绘了目标数据库128的格式和数据的例子。目标数据库128包括表301、属性312和CCSID 307。在给出的例子中,表301是雇员表,但也可以使用任何类型的适当表格。表301包括列名302、类型名304和最大长度306。
表301还包括字段308和310。在给出的例子中,字段308在列302有列名“姓”、在列304有类型名“字符”、在列306有属性312的最大长度“70”。数据类型名“字符”表明,存在属性数据结构并使用在数据库层次定义的CCSID字段307中的值。使用“字符”作为数据类型在各种实施例中可以泛指任何字符数据类型,如CHARACTER、VARCHAR(可变字符)、CLOB(字符大对象),或任何其它适当类型的字符数据。CCSID标识一组字符集、代码页和编码模式。
在给出的例子中,字段310在列302有列名“名”、在列304有类型名“blob”、在列306有最大长度“70”。虽然给出的只有两个字段308和310,但在其它实施例中可以有任意适当数量的字段。虽然在图解中使用“字符”和“blob”作为类型名的例子,但在其它实施例中,类型名也可以是二进制或任何其它适当数据类型。
属性312包括长度字段314和数据字段318。长度字段314规定数据字段318的实际长度,而最大长度字段306则规定属性312的最大长度。
CCSID 307标识一组字符集、代码页和编码模式。代码页是字符集中每个字符的编码点(例如,整数)的规范。使用代码页查找字符集中字符的确切编码点的值。
编码模式是对字符编码和/或解码的规划。当从一个代码页转换字符到另一个代码页时,由编码格式控制该转换。在实施例中使用的编码模式的例子是UTF-8(通用字符集转换-8),它由ISO(国际标准化组织)10646-12000附录D定义,在RFC(因特网标准草案)2279中也有说明。但在其它实施例中,UTF-16、UTF-32或任何其它适当的编码模式也可以使用。
在表301中给出的数据和属性312仅仅是示例性的,并且可以使用任何适当的数据。
附图4中的流程图根据本发明实施例描绘了一个处理过程的例子。控制开始于方框400。控制然后转移至方框405,其中复制控制器140确定在源数据库126中是否存在仍然需要复制的字段。如前所述,附图2中给出的字段例子是字段208和210。如果在方框405中的确定结果为无,则源数据库126的复制完成,因此控制转移到方框498,其中复制控制器140返回。
如果在方框405中的确定结果为有,则源数据库126的复制尚未完成,因此控制转移到方框410,其中复制控制器140从源数据库126读取下一字段。使用附图2给出的例子,字段208和210是在源数据库126中可被复制控制器140读取和处理的字段。
控制然后转移到方框415,其中复制控制器140确定是否源数据库126中的数据类型名为blob-c(blob字符)。数据类型blob-c意味着blob数据有一个关联CCSID。在附图2给出的例子中,源数据库126中的数据类型名在字段204中说明。如果方框415的确定结果为否,即源数据类型不是blob-c(blob字符),则控制转移到方框420,其中复制控制器140采用常规处理,CCSID 240和CCSID 307来复制数据字段中的值。然后控制返回到方框405,如上所述。
如果方框415的确定结果为是,则控制转移到方框425,其中复制控制器140确定是否目标数据库128中的数据类型名为blob-c(blob字符)。在附图3给出的例子中,目标数据库128中的数据类型名在字段304中说明。如果在方框425的确定结果为是,则控制转移到方框420,如上所述。
如果在方框425的确定结果为否,则控制转移到方框430,其中复制控制器140确定是否目标数据库128中的数据类型名为字符。如果在方框430的确定结果为否,则控制转移到方框499,其中复制控制器140返回错误信息,因为在实施例中复制控制器140不能把blob-c(blob字符)类型的数据转换为非blob、blob-c(blob字符)或字符类型的数据。但是,在其它实施例中,复制控制器可以转换任何适当的数据类型。
如果在方框430的确定结果为是,则控制转移到方框435,其中复制控制器140复制字段中的值并将blob-c数据转换为具有目标CCSID 307的字符数据类型。使用常规的转换方法将数据从源CCSID216转换为目标CCSID 307。在一个实施例中,用映射文件把字符从源CCSID 216映射到目标CCSID 307,但在其它实施例中也可以使用任何适当的转换技术。在附图2和3的例子中,复制控制器复制并转换数据218为数据318。控制然后返回至方框405,如上所述。
附图5中的方框图举例描绘了实现本发明实施例的一个电子设备500。电子设备装置500包括第一确定装置510、第二确定装置520和复制装置530。第一确定装置510在源数据库存储设备540和blob数据复制装置530之间进行通信。源数据库存储设备540存储包含待复制的blob数据的源数据库。此处源数据库的格式和功能类似于前面利用附图2说明的源数据库126的格式和功能。第一确定装置510的作用是确定源字段中的blob数据与源编码字符集标识符相关联。源编码字符集标识符可以规定源字符集、源代码页和源编码模式。
第二确定装置520在目标数据库存储设备550和blob数据复制装置530之间进行通信。目标数据库存储设备550被用来在目标数据库中存储所复制的blob数据。目标数据库的格式和功能类似于前面利用附图3说明的目标数据库128的格式和功能。第二确定装置520的作用是为目标字段确定目标编码字符集标识符。目标字段可以关联字符类型,目标编码字符集标识符可以规定目标字符集、目标代码页和目标编码模式。
blob数据复制装置530连接在源数据库存储设备540和目标数据库存储设备之间。blob数据复制装置530的作用是根据源编码字符集标识符和目标编码字符集标识符从源字段复制blob数据至目标字段。
也可以在包括处理器和存储设备、用执行参照图4描述的方法的指令进行编码的电子设备中实现本发明。
在上述本发明示范实施例的详细说明中,参考了附图(其中类似附图标记表示类似部分),该附图形成了该说明的一部分,并且以图解方式示出了其中可以实践本发明的特定示范实施例。对这些实施例的说明足够详细,以使专业技术人员能够实践本发明,但是也可以使用其它的实施例,并在逻辑、机制、电气和其它方面做出修改而不超出本发明的范围。如本说明书中所使用的,词语“实施例”的不同实例不必指同一个实施例,当然也可以是指同一个实施例。因此,不应狭义地理解上面给出的详细说明,本发明的范围只能由所附权利要求定义。
在上述说明中,为提供对本发明的透彻理解而提出了众多具体细节。但本发明的实践并不一定需要这些细节。另一方面,为了不至于模糊本发明,并未给出众所周知的电路、结构和技术的细节。
权利要求
1.一种方法,包括确定源字段中的blob数据与第一编码字符集标识符相关联;确定目标字段的第二编码字符集标识符;和根据第一编码字符集标识符和第二编码字符集标识符从源字段复制blob数据到目标字段。
2.根据权利要求1的方法,其中目标字段具有相关类型的字符。
3.根据权利要求1的方法,其中第一编码字符集标识符规定字符集、代码页和编码模式。
4.根据权利要求3的方法,其中字符集是DBCS。
5.根据权利要求1的方法,其中第二编码字符集标识符规定字符集、代码页和编码模式。
6.根据权利要求6的方法,其中编码格式是UTF-8。
7.一种用指令编码的信号承载介质,其中在被处理器执行时,所述指令包括确定源字段中的blob数据与第一编码字符集标识符相关联;确定目标字段的第二编码字符集标识符,其中目标字段具有相关类型的字符;和根据第一编码字符集标识符和第二编码字符集标识符从源字段复制blob数据到目标字段。
8.根据权利要求7的信号承载介质,其中第一编码字符集标识符规定字符集、代码页和编码模式。
9.根据权利要求8的信号承载介质,其中字符集是DBCS。
10.根据权利要求7的信号承载介质,其中第二编码字符集标识符规定字符集、代码页和编码模式。
11.根据权利要求10的信号承载介质,其中编码模式是UTF-8。
12.一种用数据结构编码的信号承载介质,其中数据结构包括包含数据类型的源字段;和该数据类型的属性,其中复制控制器用于确定与该数据类型关联的数据是否为blob,确定与该数据类型关联的源编码字符集标识符,其中源编码字符集标识符规定源字符集、源代码页和源编码模式,和根据源编码字符集标识符和目标编码字符集标识符复制数据到目标字段。
13.根据权利要求12的信号承载介质,其中目标字段具有相关类型的字符。
14.根据权利要求12的信号承载介质,其中源字符集是DBCS。
15.根据权利要求12的信号承载介质,其中目标编码字符集标识符规定目标字符集、目标代码页和目标编码模式。
16.根据权利要求15的信号承载介质,其中目标编码模式是UTF-8。
17.一种电子设备,包括第一确定装置,用于确定源字段中的blob数据与源编码字符集标识符关联;第二确定装置,用于确定目标字段的目标编码字符集标识符;和复制装置,用于根据源编码字符集标识符和目标编码字符集标识符从源字段复制blob数据到目标字段。
18.根据权利要求17的电子设备,其中源编码字符集标识符规定源字符集、源代码页和源编码模式。
19.根据权利要求18的电子设备,其中源字符集是DBCS。
20.根据权利要求17的电子设备,其中目标字段具有相关类型的字符,而目标编码字符集标识符规定目标字符集、目标代码页和目标编码模式。
21.根据权利要求20的电子设备,其中编码格式是UTF-8。
22.根据权利要求17的电子设备,其中源字段在源关系数据库中,而目标字段在目标关系数据库中。
全文摘要
公开了一种方法、设备、处理器、系统和信号承载介质,其在一个实施例中确定源字段中的blob(二进制大对象)数据与源CCSID(编码字符集标识符)关联、确定目标字段的目标CCSID以及根据源CCSID和目标CCSID从源字段复制blob数据到目标字段。因此,blob数据可以在不同语言之间转换。
文档编号G06F17/30GK1652109SQ20041005983
公开日2005年8月10日 申请日期2004年6月22日 优先权日2003年6月26日
发明者峰·A·范, 雄·T·丁 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1