用于压缩xml文档的方法和系统的制作方法

文档序号:7525273阅读:135来源:国知局
专利名称:用于压缩xml文档的方法和系统的制作方法
技术领域
本发明涉及数据库系统,具体而言,涉及更有效地在数据库系统中存储XML数据。
技术背景
本节中描述的方法是可以寻求、但未必是先前已经想到或寻求的方法。因此,除非 另有陈述,不应假设本节中描述的任何方法仅仅由于包括在本节中就限制为现有技术。
可扩展标签语言(XML)是用于表达数据的万维网协会(W3C)标准。很多应用被设 计成以XML文档的形式输出数据。XML数据包括形成分级结构的结构化数据项。在XML中, 由打开标签和关闭标签对称为元素的数据项划界。元素还可以包括在元素的打开的标签中 指定的属性。元素的标签之间的文本可以表示任何种类的数据值,例如字符串、日期或整 数。元素可以具有一个或多个子女。参照与用于论述系谱树的那些类似的方面论述XML格 式的数据的所得分级结构。例如,子元素被说成起源于其父元素或其父元素所起源的任何 元素。父元素被说成是其自己的任何子元素或其后代元素之一的祖先元素。总起来讲,元 素连同其属性和后代,称为树或子树。
随着XML的增长和普及,很多关系数据库系统增加了对存储、管理和查询XML内容 的支持。术语关系数据库系统是指支持数据处理的关系模型的任何数据库系统,包括可以 支持其他数据处理模型,例如对象关系和各种XML标准模型(例如XQuery,XPath)的数据库 系统。
存储XML文档的关系数据库系统可以在表格的分开的行中存储各个元素。这里将 这样的文档称为粉碎的(shredded)文档。将XML文档分成离散元素值(或其表达)以存储 在保存表达XML文档和/或其节点的数据的行中的过程,称为粉碎XML文档。
可以将XML文档完全粉碎到对象关系存储器中、部分粉碎或存储在LOB存储器中 并由XML索引定位。如果完全粉碎,则可以由数据库中以关系方式存储的数据完整重建XML文档。如果部分粉碎,则以混合形式在LOB存储器中存储文档,至少一部分文档以对象关系 形式,例如以XML索引存储。尽管XML索引中存储的部分可能不表示整个文档,但XML索引 可用于高效率地访问被索引的文档的那些部分。可以对来自XML文档的特定字段进行索 引,而在索引期间可以忽略来自XML文档的其他字段。
在粉碎XML文档并至少部分以对象关系形式存储时,可以在相同或不同列中的不 同行中,或在相同或不同行中的不同列中存储XML文档的值。以对象关系方式存储的值可 以包括针对文档的为索引选择的特定字段的值,并可以排除文档的没有为索引选择的其他 字段的值。在一个示例中,在索引中同一行中不同列中存储文档中的给定字段的几个值。在 另一个示例中,在索引中同一列中不同行中存储文档中的给定字段的几个值。
XML文档的粉碎版本可以具有比以其他形式,例如基于文本的文件存储器中存储 的XML文档大得多的存储覆盖区。于是需要更有效率地存储粉碎的XML文档。
数据库和数据库服务器
通常,服务器,例如数据库服务器是集成软件部件和计算资源分配的组合,计算资 源例如存储器、节点和节点上用于执行集成软件部件,其中软件和计算资源的组合专用于 代表服务器的客户端提供特定类型的功能。数据库服务器支配并促进访问特定的数据库, 处理客户端要访问数据库的请求。
数据库包括存储在持久性存储机构,例如一组硬盘上的数据和元数据。例如,可以 根据关系型和/或对象关系型数据库构造,以逻辑方式在数据库中存储这样的数据和元数 据。数据库元数据定义数据库对象,例如表格、对象表、视图或复杂类型,例如对象类型,重 要的是表函数。向数据库服务器发出SQL数据定义语言(“DDL”)指令以创建或配置数据库 对象。
通常,在数据库之内以逻辑方式将数据布置成一个或多个数据容器。每个容器都 包含记录,并将每个记录之内的数据组织成一个或多个字段。在关系数据库系统中,通常将 数据容器称为表格,将记录称为行,将字段称为列。在面向对象的数据库中,通常将数据容 器称为对象类型或类,将记录称为对象,将字段称为属性。其他数据库体系结构可以使用其 他术语。实施本发明的系统不限于任何特定类型的数据容器或数据库体系结构。不过,为了 解释的目的,这里使用的示例和术语应当典型地与关系型或对象关系型数据库相关联。于 是,这里应当使用术语“表格”、“行”和“列”分别指代数据容器、记录和字段。
数据块
尽管在数据容器中以逻辑方式布置数据库,但那些容器自身通常存储于例如硬盘 上的一个或多个数据块中。因此,例如,尽管大部分用户将向数据库服务器发出通过查询表 格、行和列来查询数据的指令或请求,但该数据实际存储在作为数据块的集合的数据库中。 通过利用各种存储的元数据、索引和报头,数据库服务器能够将这些数据块之内的数据解 释为逻辑表、行和列。
数据块是为存储用于一条或多条数据库记录(例如行)或其部分的原始数据而分 配的存储空间基本单位。典型地,数据库系统被配置成从持久性存储器和易失性存储器中 以不小于数据块的单位读写数据库记录。在需要检索来自数据块的记录时,将整个数据块 读入数据库系统用于暂时存储数据块的存储器中缓冲器中。在很多数据库中,数据块全部 是普通大小。数据库管理员基于若干考虑选择这个大小。不过,表格常常包括比能够装入在单个数据块中的数据更多的数据。于是,表格常常跨过很多数据块。
例如,图8示出了如何可以在示例数据块820和830中存储表格800。因为数据 块820和830都是小于表格800的预定义大小,所以不能在单个数据块中装入表格800。于 是,在两个数据块中存储表格800。
通常将数据块细分成一个或多个这里描述为“数据块行”的连续片段。在由数据 库服务器解释时,每个数据块行从至少一部分表格产生数据。如名称“数据块行”所暗示的 那样,单个数据块行保持与表格的单行对应的原始数据。不过,在表格行和数据块行之间并 非始终有一一对应关系。
例如,表格800由组织成列811-815的行801-805构成。表格行801-805的数据 存储在数据块行821-824和831-832中。具体而言,每个数据块行821-824和831-832包 括多个字段890。每个字段890对应于来自表格800的单个列值。尽管数据块行821、822、 823和832与表格行801、802、803和805分别具有——对应,但在数据块行824和831之间 划分表格行804的数据。在不同数据块中的多个数据块行间划分表格行的数据时,将表格 行说成跨过多个数据块链接,并且可以将数据块行统一称为链。
尽管表格中的“行”和数据块中的“行”都通称为“行”,但现在应该明白,两种类型 的“行”是不同的概念。为避免混淆,因此在必要时本申请将分别使用术语“表格行”和“数 据块行”表示表格的“行”和数据块的“行”。
在一些数据库中,每个数据块行是由行报头划界的。每个行报头可以包含各种元 数据,包括用于数据块行的标识符、数据库服务器应当期待从数据块行读出的列数和/或 数据块行中每列的大小(由此指示数据库服务器关于数据块行中每个字段的边界)。例如, 数据块行821-824和831-832的每个都包括数据块行报头821a_824a或831a_832a。在一 些实施例中,替代地插入每列的大小(或长度)作为紧接在数据块行中每个列字段之前的预 定义长度的独立字段。
在一些数据库中,(例如,因为大小或列计数的限制)在多个数据块行上链接表格 行的数据时,数据库还可以存储将一个或多个数据块行与一个或多个保持同一表格行的数 据的其他数据块行相关联的元数据。这种元数据可以在任何位置,例如在行报头、数据块报 头中或在数据块行的结尾。例如,数据块行824中的指针829指向数据块行831,其包括表 格行804的剩余数据值。
数据块还可以具有报头和/或其他数据结构,描述关于它们保持其原始数据的数 据块和/或表格的信息。例如,数据块820和830分别包括报头数据825和835。数据块 报头例如可以包括例如表目录的元数据,描述表格的各种质量和其数据块包括数据的表格 行。数据块报头还可以例如包括例如行目录的元数据,表示数据块中每个数据块行的起始 地址和/或标识符。
在一些数据库中,数据块报头中(或在等效结构中)的元数据可以定义并划界数据 块的数据块行。于是,在一些数据库中,数据块行的特征可以是对其地址可以与数据块报头 区分的数据块进行最低水平的细分,或者其数据块报头列出可索引标识符的数据块的任何 细分。
以称为“行优先(row major)”的格式组织数据块820和830,因此可以将其描述为 “行优先数据块”。该格式被称为“行优先”是因为每个数据块行821-824和831-832都包含仅来自表格单个行的数据。其他数据库可以代之以利用其他格式在数据块中存储表格, 包括例如“列优先(column major)”的格式。这里描述的技术适用于任何类型的数据块,不 论使用何种格式。
注意,表格800和数据块820-830的大小均较小。本申请同样考虑到使用大得多 的表格和大得多的数据块。不过,为了清楚起见,这里的示例表格和数据块是相对简单的。
从数据块寻址数据
数据库可以存储各种元数据以辅助数据库服务器解释数据库的数据块中存储的 数据。例如,各种索引可以包括将数据库中每个表格与一个或多个数据块相关联的映射数 据。作为另一示例,各种索引可以包括将表格行与数据行块相关联的映射数据。
例如,图8的索引850包括表格800中表格行的列表851,连同包含表格行的数据 的数据块行的地址852。地址852也可以描述为rowid,均由两个元素构成由周期之前的 数字构成的数据块标识符和由周期之后的数字构成的数据块行标识符。不过,也可以使用 其他寻址方案。
数据库服务器可以利用这样的元数据定位存储用于表格和表格行的数据的数据 块和/或数据块行。例如,数据库服务器可以要求从图8的表格行801访问数据。利用索 引850,数据库服务器可以判定表格行801的数据在数据块820的第一数据块行(即数据块 行821)中。数据库服务器然后可以利用数据块标识符到地址映射或算法以在盘上定位数 据块820。数据库服务器然后可以利用其他映射数据(例如数据块报头中将数据块行标识符 映射到块相对地址的数据)以定位数据块820中第一数据块行的起始。数据库服务器然后 可以读取和解释这一行,由此产生针对表格801的数据。
对于数据跨过多个数据库行的表格行,诸如索引850的行索引可以仅指向包括针 对表格行的第一部分的数据的数据块行。在判定表格行未被数据块行中的值充分表达时, 数据库服务器可以利用诸如指针829之类的元数据断定包括表格行的额外数据的其他数 据块行的位置。例如,在定位用于表格行804的数据时,数据库服务器可以首先指向数据块 行824。数据库服务器然后可以遵循指针829指向数据块行831,其包括表格行804的剩余 数据。
压缩的数据块
在一些数据库中,可以在块级别上压缩每个数据块之内的原始数据。例如,如果 在数据块之内“San Jose” 一词出现多次,则数据块可以用符号或更小的字符组,例如“01” 替换“San Jose”的每次出现,然后存储将“01”与“San Jose”相关联的解压缩词典(也称 为符号表)。在数据库服务器解释包含这种压缩值的数据块行时,数据库服务器可以利用解 压缩词典解释压缩值。在一些数据库中,针对每个块定位解压缩词典,然后存储于块自身内 部(例如,在数据块报头中)。在其他数据库中,在多个数据块之间共享解压缩词典,从而在 与多个数据块独立的其自己的块中存储。在下文中将把这样的压缩方案称为“基于块的压 缩”。发明内容
提供了一种用于更有效率地存储粉碎的XML文档的方法和计算机系统。该方法包 括向表格中的多个行中加载多个XML文档的每个XML文档,在表格中以粉碎形式存储XML文档。加载所述每个XML文档包括产生多个列的列值,所述列值要存储在表格的多个行中。 加载所述每个XML文档还包括对于所述多个列的每列,分析所述列值以确定用于存储所 述列的行存储格式。所述确定包括确定以列优先还是行优先格式存储列值,以及确定是否 使用压缩技术来压缩所述列值。加载所述每个XML文档还包括根据所述存储格式的确定在 多个行中存储列值。该方法由一个或多个计算设备执行。在一个实施例中,一种计算机程 序产品存储指令,该指令在被执行时使得一个或多个处理器执行该方法。
该计算机系统包括向表格中的多个行中加载多个XML文档的每个XML文档的装 置,在表格中以粉碎形式存储XML文档。用于加载所述每个XML文档的装置包括用于产生 多个列的列值的装置,所述列值要存储在表格中的多个行中。用于加载所述每个XML文档 的装置还包括用于针对所述多个列的每个列分析所述列值以确定用于存储所述列的行存 储格式的装置。用于分析的装置包括用于确定以列优先还是行优先格式存储列值的装置, 以及用于确定是否使用压缩技术压缩所述列值的装置。用于加载所述每个XML文档的装置 还包括用于根据存储格式的所述确定在多个行中存储列值的装置。


在附图的图中以举例的方式而非限制方式例示本发明,其中类似的附图标记指示 类似元件,且其中
图1示出了根据本发明实施例的用于单独地分析针对XML文档产生的列值并确定 主导格式和压缩技术的流程;
图2是压缩单元的方框图3是在这里提供的示例中提到的表格的方框图4是示出了两层压缩单元的方框图5是示出了可以如何在图3中所示的压缩单元中存储图2所示表格的表式数据 的方框图6是示出了子压缩单元如何可以自己具有子压缩单元的方框图7是示出了如何将压缩单元报头分成两个部分的方框图,其一是未压缩的,其 一是压缩的;
图8示出了如何可以在示例数据块中存储未压缩的表格;以及
图9是可以在其上实施本发明的实施例的计算设备的方框图。
具体实施方式
在以下描述中,为了解释的目的,阐述了众多具体细节,以便提供对本发明的透彻 理解。不过,将要明了的是,可以无需这些具体细节来实践本发明。在其他情况下,以方框 图形式示出了公知的结构和设备以避免不必要地使本发明模糊不清。
一般概述
这里描述的是更有效率地存储粉碎的XML文档的机制。该机制利用压缩能力和存 储称为列优先格式的关系数据的形式来以粉碎形式存储XML文档。针对每个XML文档单独 分析为粉碎的XML文档存储的列值,以判断是否以列优先格式存储特定的列以及使用什么 压缩技术(如果有的话)。
在具有一组所枚举大小(例如4k数据块,32k数据块)之一的持久存储单元中持久 存储数据库中的数据。在持久存储单元中存储行有几种形式行优先和列优先。在行优先 格式中,在持久存储器的单位,例如数据块之内连续地存储单个行的列值。在列优先格式 中,连续存储一列多个行的值。这里将行优先格式或列优先格式统称为优先格式。
在列优先格式中,重新布置输入数据,从而将属于一个列的数据放在一起。由于一 个列中的数据非常可能相似,这减小了熵,因此实现了更好的压缩比。这类似于垂直划分或 列式存储。
列优先格式具有允许更好的可压缩性的优点。列之内的值可以具有共同性质,使 得在连续存储值时,可以利用各种压缩技术采用公共性质。这里将列优先的格式和使用的 压缩技术(如果有的话)称为存储格式。
根据本发明的实施例,在粉碎XML文档时,分析要存储在保持粉碎XML文档的行中 的列值以确定存储格式,即是否和/或如何以行优先或列优先格式存储行,以及应用什么 压缩技术(如果有的话)。通过这种方式,单独分析针对列和特定XML文档的列值,以确定针 对保存该XML文档的数据的行的存储格式。
在数据库系统的语境之内例示了本发明的实施例,该数据库系统支持数据的关系 存储、查询和操作,并支持根据XML标准存储和查询XML数据。因此,描述这样的数据库系 统是有用的。
数据库系统
数据库管理系统(“DBMS”)管理数据库。数据库管理系统可以包括一个或多个数 据库服务器。数据库包括存储在持久性存储机构,例如一组硬盘上的数据和元数据。元数 据定义数据库对象,例如关系表格、表格列、视图和触发器。
数据库应用和客户端通过向数据库服务器提交命令来与数据库服务器交互,命令 让数据库服务器对数据库中存储的数据执行操作。数据库命令可以是符合数据库语言的数 据库语句的形式。用于表达数据库请求的语言是结构化查询语言(SQL)。有很多不同版本 的SQL,一些版本是标准的,一些是专有的,并且有多种扩展。向数据库服务器发出SQL数 据定义语言(“DDL”)指令以创建或配置数据库对象,例如表格、视图或复杂数据类型。SQL/ XML是在对象关系型数据库中操纵XML数据时使用的SQL的公共扩展。尽管基于Oracle的 SQL描述示例,但这里提供的技术不限于任何特定版本的SQL。
XML 存储
各种存储机制用于存储XML文档。一种存储机制将XML文档存储为文件系统中的 文本文件。如前所述,另一种用于存储XML文档的机制是数据库服务器。在数据库服务器 中,可以在表格的行中存储XML文档,并在行中的单独列中存储XML文档的节点。也可以在 列中以Iob (大对象)存储整个XML文档。可以粉碎XML文档并作为对象的分级结构存储 在数据库中;每个对象都是对象类的实例并存储XML文档的一个或多个元素。这里将保持 XML数据的表格和/或数据库系统的对象称为基础表格或对象。
二进制编码的XML是另一种形式,其中可以在数据库中存储XML数据。二进制编 码的XML是XML的紧凑二进制表达,被设计成减小XML文档的大小。二进制编码的XML压 缩数据的方式之一是利用固定值表达字符串(“令牌”)。
XML 索引
存储XML数据的数据库服务器可以包括很多机构,允许用更强大和有效的方式查 询XML文档的大集合。可以增强存储XML文档的数据库服务器以利用这些机构有效率地执 行XML操作。数据库服务器可以维持对很多XML文档进行索引的“逻辑索引”,这里称为XML 索引。
XML索引包含多种结构,协作地使用它们以访问很多XML文档。一种这样的结构是 存储粉碎的文档的关系型表格。这样的关系型表格用于例示本发明的实施例。
具体而言,XML索引可以包括称为路径表格的表格。路径表格存储粉碎的文档,这 里称为已索引文档。路径表格的每行包含用于已索引文档的节点的数据。并非已索引文档 的所有节点都具有路径表格中的对应行。
每个路径表格行都包含多个列,行的每个列都包含与节点相关联的一条信息。一 些列值可能受到列优先格式下压缩的作用。
根据实施例,路径表格的列包括用于(I)表不通往节点的PATHID的列,(2)用于在 基础结构之内定位针对节点的片段数据的“位置数据”的列,以及(3)表示包含节点的XML 文档的结构分级体系之内节点位置的“分级结构数据”的列。可选地,PATH表格可以包括包 含针对与值相关联的那些节点的值信息的列。这些类型的信息的每个都将在下文更详细地 加以描述。
路径ID
根据实施例,为已索引XML路径的每个分配唯一的路径ID。例如,如下表所示,可 以为po1. xml和po 2. xml中存在的路径分配路径ID
路径ID路径41/PurchaseOrder41. 54/PurchaseOrder/Reference41. 34/PurchaseOrder/Actions41. 34. 33/PurchaseOrder/Actions/Action41. 34. 33. 77/PurchaseOrder/Actions/Action/User
可以使用各种技术识别路径并向路径分配路径ID。
位置数据
与节点相关联的位置数据表示包含节点的XML文档驻留在基础结构中的哪里。于 是,位置数据的性质将基于基础结构的性质在实施方式之间变化。根据如何存储实际的XML 文档,位置数据还可以包括指向XML文档的定位器或逻辑指针。可以使用逻辑指针来提取 与XPath识别的节点相关联的片段。
分级结构数据
用于节点的PATH表格行还包括表示节点位于包含该节点的XML文档分级结构之 内的哪里的信息。这里将这样的分级信息称为节点的“OrderKey”。
根据一个实施例,利用Dewey型值表示分级次序信息。具体而言,在一个实施例中,通过向节点中间父亲的OrderKey附加值来创建节点的OrderKey,其中附加的值表示该特定子节点在父节点的子女间的位置。
根据一个实施例,将每个OrderKey表示的合成数转换成可与字节比拟的值,使得两个OrderKeys之间的数学比较表示OrderKeys对应的节点在XML文档的分级结构之内的相对位置。
值信息
已索引文档之内的一些节点可以是属性节点或对应于简单元素的节点。根据一个实施例,对于属性节点和简单元素,PATH表格行还存储属性和元素的实际值。例如,可以在路径表格的“值列”中存储这样的值。在值列上构建下文将更详细描述的辅助“值索引”。
路径表格示例
利用包括如下定义的列的路径表格示例例示
具体实施例方式
权利要求
1.一种由一个或多个计算设备执行的用于存储XML文档的方法,所述方法包括向表格中的多个行中加载多个XML文档的每个XML文档,在所述表格中以粉碎形式存储XML文档,其中加载所述每个XML文档包括产生多个列的列值,所述列值要存储在所述表格中的多个行中;对于所述多个列的每个列,分析所述列值以确定用于存储所述列的行存储格式,所述确定包括确定是以列优先还是以行优先格式存储列值,以及确定是否使用压缩技术来压缩所述列值;以及根据所述存储格式的确定在所述多个行中存储所述列值。
2.根据权利要求1所述的方法,其中所述多个XML文档包括第一 XML文档和第二 XML文档;其中对于所述第一 XML文档并且对于所述多个列的特定列,所述行存储格式的确定包括以行优先格式存储所述特定列;并且其中对于所述第二 XML文档并且对于所述多个列的所述特定列,所述行存储格式的确定包括以列优先格式存储所述特定列。
3.根据权利要求1所述的方法,其中所述多个XML文档包括第一 XML文档和第二 XML文档;其中对于所述多个列的特定列,针对所述第一 XML文档和所述第二 XML文档进行的所述行存储格式的确定包括以列优先格式存储所述特定列;对于所述第一 XML文档的所述特定列使用第一压缩技术;以及对于所述第二 XML文档使用第二压缩技术;其中所述第一压缩技术与所述第二压缩技术不同。
4.根据权利要求1所述的方法,其中数据库服务器管理对所述表格的访问,其中所述步骤还包括在第二表格中存储所述多个XML文档;其中所述表格的所述多个列包括存储所述多个XML文档中的节点的节点值的第一列,以及存储指示所述第二表格中的存储所述多个XML文档的一个XML文档的行的值的第二列。
5.根据权利要求1所述的方法,其中在压缩单元中存储所述表格的所述数据。
6.根据权利要求1-5中的任一项所述的方法,其中对于所述表格的给定行,所述多个列的每个列存储针对所述多个XML文档的相应XML文档的节点的列值;其中所述多个文档包括第一 XML文档和第二 XML文档;其中所述表格的第一多个行存储针对所述第一 XML文档的数据;其中所述表格的第二多个行存储针对所述第二 XML文档的数据;其中对于所述第一多个行和所述第二多个行,以列优先格式存储所述多个列的特定列;其中对于所述表格的所述第一多个行,利用第一压缩技术压缩所述特定列中的所述值;以及其中对于所述表格的所述第二多个行,利用第二压缩技术压缩所述特定列中的所述值。
7.根据权利要求6所述的方法,其中所述表格的第三多个行存储针对第三XML文档的数据;并且其中对于所述第三多个行,不以列优先格式存储所述特定列。
8.一种计算机系统,包括用于向表格中的多个行中加载多个XML文档的每个XML文档的装置,在所述表格中以粉碎形式存储XML文档,其中用于加载所述每个XML文档的装置包括用于产生多个列的列值的装置,所述列值要存储在所述表格中的多个行中;用于对于所述多个列的每个列,分析所述列值以确定用于存储所述列的行存储格式的装置,用于分析的装置包括用于确定是以列优先还是以行优先格式存储列值的装置,以及用于确定是否使用压缩技术来压缩所述列值的装置;以及用于根据所述存储格式的确定在所述多个行中存储列值的装置。
9.根据权利要求8所述的计算机系统,其中所述多个XML文档包括第一 XML文档和第二 XML文档;其中对于所述第一 XML文档并且对于所述多个列的特定列,所述行存储格式的确定包括以行优先格式存储所述特定列;以及其中对于所述第二 XML文档并且对于所述多个列的所述特定列,所述行存储格式的确定包括以列优先格式存储所述特定列。
10.根据权利要求8所述的计算机系统,其中所述多个XML文档包括第一 XML文档和第二 XML文档;其中对于所述多个列的特定列,针对所述第一 XML文档和所述第二 XML文档进行的所述行存储格式的确定包括以列优先格式存储所述特定列;对于所述第一 XML文档的所述特定列使用第一压缩技术;以及对于所述第二 XML文档使用第二压缩技术;其中所述第一压缩技术与所述第二压缩技术不同。
11.根据权利要求8所述的计算机系统,其中数据库服务器管理对所述表格的访问,其中所述计算机系统还包括用于在第二表格中存储所述多个XML文档的装置;其中所述表格的所述多个列包括存储所述多个XML文档中的节点的节点值的第一列,以及存储表示所述第二表格中的存储所述多个XML文档的一个XML文档的行的值的第二列。
12.根据权利要求8所述的计算机系统,其中在压缩单元中存储用于所述表格的所述数据。
13.根据权利要求8-12的任一项所述的计算机系统,其中对于所述表格的给定行,所述多个列的每个列存储针对所述多个XML文档的相应XML文档的节点的列值;其中所述多个文档包括第一 XML文档和第二 XML文档;其中所述表格的第一多个行存储针对所述第一 XML文档的数据;其中所述表格的第二多个行存储针对所述第二XML文档的数据;其中对于所述第一多个行和所述第二多个行,以列优先格式存储所述多个列的特定列;其中对于所述表格的所述第一多个行,利用第一压缩技术压缩所述特定列中的所述值;以及其中对于所述表格的所述第二多个行,利用第二压缩技术压缩所述特定列中的所述值。
14.根据权利要求13所述的计算机系统,其中所述表格的第三多个行存储针对第三XML文档的数据;以及其中对于所述第三多个行,不以列优先格式存储所述特定列。
15.一种存储指令的计算机程序产品,所述指令在被执行时使得一个或多个处理器执行权利要求1-7中的任一项所述的方法。
全文摘要
提供了一种用于更有效率地存储粉碎的XML文档的方法和装置。该方法和装置利用压缩能力和存储称为列优先格式的关系数据的形式来以粉碎形式存储XML文档。针对每个XML文档单独分析为粉碎的XML文档存储的列值,以确定是否以列优先格式存储特定的列以及使用什么压缩技术(如果有的话)。
文档编号H03M7/30GK103026631SQ201180035113
公开日2013年4月3日 申请日期2011年6月1日 优先权日2010年6月1日
发明者S·查德拉塞卡, N·阿格尔沃 申请人:甲骨文国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1