用于高效地支持通过分层标记数据的即席查询的通用索引制造技术

技术编号:13508137 阅读:81 留言:0更新日期:2016-08-10 19:01
分层数据对象通过使用在本文中被称为层次结构‑值索引的索引而被编排索引。层次结构‑值索引具有作为索引键的、从分层数据对象提取的记号(标签名称、节点字符串值中的字)。每个记号被映射到与分层数据对象中的记号的数据对应的位置。记号可以表示非叶结点,诸如XML元素或JSON字段。位置可以是覆盖和包括子节点的区域。对于表示非叶结点的记号,该记号被映射到的位置包含与该非叶结点的后代节点对应的任何记号的位置。因此,基于记号在分层数据对象内的位置的记号包含性可以用于确定分层数据对象中的节点之间的包含关系。

【技术实现步骤摘要】
【国外来华专利技术】【专利摘要】分层数据对象通过使用在本文中被称为层次结构?值索引的索引而被编排索引。层次结构?值索引具有作为索引键的、从分层数据对象提取的记号(标签名称、节点字符串值中的字)。每个记号被映射到与分层数据对象中的记号的数据对应的位置。记号可以表示非叶结点,诸如XML元素或JSON字段。位置可以是覆盖和包括子节点的区域。对于表示非叶结点的记号,该记号被映射到的位置包含与该非叶结点的后代节点对应的任何记号的位置。因此,基于记号在分层数据对象内的位置的记号包含性可以用于确定分层数据对象中的节点之间的包含关系。【专利说明】用于高效地支持通过分层标记数据的即席查询的通用索引 相关申请 本申请要求Zhen Liu等人于2013年11月8日提交的标题为"Generic Indexing Technique Of Efficiently Supporting Ad-Hoc Query Over Hierarchical Semi-Structured Data"的美国临时申请61/901,558的优先权,该申请的内容通过引用并入本 文。
本专利技术的实施例涉及查询分层标记数据。
技术介绍
用于构造和描述数据的分层标记语言的使用已经在计算机行业中得到广泛接受。 标记语言的例子是可扩展标记语言(XML)。另一个例子是JavaScript对象表示(JSON)。 使用分层标记语言构造的数据由节点组成。节点由标记这些节点的一组定界符划 分,并且可以被标示名称,这些名称在本文中被称为标签名称。一般地,分层标记语言的语 法指定标签名称被嵌入、被并置、或者被以其他方式依照句法地与划分节点的定界符相关 联。存在两种种类的节点,叶节点和非叶结点。 XML 对于XML数据,节点由包括标签名称的起始标签和结束标签划分。例如,在下面的 XML片段中, 〈ZIPC0DE〉 <C0DE>95125</C0DE> <CITY>SAN J0SE</CITY> <STATE>CA</STATE> 〈/ZIPCODE〉 起始标签〈ZIP CODE〉和结束标签〈/ZIP CODE〉划分具有名称ZIP CODE的节点。 图IA是表示以上XML片段的节点树。参照图1A,它描绘了节点树101。非叶结点被描 绘了双线边界,而叶节点被描绘了单线边界。在XML中,非叶结点对应于元素节点,叶节点对 应于数据节点。节点树中的元素节点在本文中用节点的名称指代,节点的名称是节点所表 示的元素的名称。为方便阐述,数据节点用数据节点所表示的值指代。 对应标签之间的数据被称为节点的内容。对于数据节点,内容可以是标量值(例 如,整数、文本字符串、日期)。 非叶结点(诸如元素节点)包含一个或多个其他的节点。对于元素节点,内容可以 是数据节点和/或一个或多个元素节点。 ZIPC0DE是包含子节点C0DE、CITY和STATE的元素节点,这些子节点也是元素节点。 数据节点95125、SAN JOSE和CA分别是元素节点C0DE、CITY和STATE的数据节点。 特定节点所包含的节点在本文中被称为该特定节点的后代节点。C0DE、CITY和 STATE是ZIPCODE的后代节点。95125是⑶DE和ZIPCODE的后代节点,SAN JOSE是CITY和 ZIPC0DE的后代节点,CA是STATE和ZIPC0DE的后代节点。 非叶结点如此形成具有多个层次的节点的层次结构,该非叶结点在顶层。每个层 次上的节点链接到不同层次上的一个或多个节点。低于顶层的层次上的任何给定节点是该 给定节点直接上方的层次上的父节点的子节点。具有相同父节点的节点是兄弟节点。父节 点可以具有多个子节点。不具有链接到它的父节点的节点是根节点。不具有子节点的节点 是叶节点。具有一个或多个后代节点的节点是非叶结点。 例如,在非叶结点ZIP CODE中,节点ZIP⑶DE是顶层上的根节点。节点95125、SAN JOSE和CA是叶节点。 术语"分层数据对象"在本文中用于指代一个或多个节点的序列,该序列中的节点 中的至少一个是具有子节点的非叶结点。XML文档是分层数据对象的例子。另一个例子是 JSON对象。 JSON JSON是轻量型分层标记语言。JSON对象包括一组字段,每个字段是字段名称/值 对。字段名称实际上是JSON对象中的节点的标签名称。字段的名称用冒号与字段的值分隔。 JSON值可以是:对象,其是括在花括号"{}"里的并且在花括号内用逗号分隔的字段的列表。 数组,其是括在方括号"[]"里的逗号分隔的JSON值的列表。 原子,其是字符串、数字、真、假或空。下面的JSON对象J用于例示说明JS0N。 对象 J 包含字段 FIRSTNAME、LASTNAME、ADDRESS、STREETADDRESS、CITY、STATE、 POSTAL⑶DE和PHONENUifflERS jIRSTNAME和LASTNAME分别具有原子字符串值 "JOHN" 和 "SMITH" ADDRESS是包含成员字段STREETADDRESS、CITY、STATE和P0STAIX0DE的对象,成员 字段STREETADDRESS、CITY、STATE和P0STALC0DE分别具有原子字符串值 "101 FIRST street"、"san jose"、"ca"、"95110" jhonenumbers是包括原子值 "408 555-1234" 和 "650 123-5555" 的数组。 JSON对象中的每个字段都是非叶结点,该非叶结点的名称是字段名称。每个数组 和对象是非叶结点。数据节点对应于原子值。 图IB描绘作为包括如下所述的节点的分层数据对象101的JSON对象J。参照图1B, 存在四个根节点,它们是FIRSTNAME、LASTNAME、ADDRESS和PHONENUMBERSdFIRSTNAME、 LASTNAME、ADDRESS和PH0NENUMBERS中的每一个均是字段节点。ADDRESS具有后代对象节点。 从该对象节点,派生了四个后代字段节点,它们是STREETADDRESS、LASTNAE、STATE和 POSTALCODEo 节点 FIRSTNAME、LASTNAME、STREETADDRESS、CITY、STATE和POSTALCODE具有后代数 据节点,这些后代数据节点分别表示原子字符串值"JACK"、"SMITH"、"101 FIRST STREET"、 "SAN JOSE"、"CA"、"95110"。 PH0NENUMBERS具有后代数组节点。该数组节点具有表示原子字符串值"408-555-1234"和"650-123-555"的两个后代数据节点。 基于模式(schema)的方法 高效查询对于访问分层数据对象是极其重要的。用于查询分层数据对象的高效方 法包括基于模式的方法。 -种基于模式的方法是基于模式的关系-存储方法。在该方法中,分层数据对象 ("集合成员")的集合被作为模式实例存储在由数据库管理系统(DBMS)管理的数据库的表 内。该方法利用对象-关系DBMS的能力来对数据编排索引和查询。一般地,基于模式的关系_ 存储方法涉及向DBM本文档来自技高网...

【技术保护点】
一种方法,包括:对于多个分层数据对象,通过至少对所述多个分层数据对象中的每个分层数据对象进行解析来产生多个记号,所述多个记号中的每个记号与所述多个记号在分层数据对象内的记号位置相关联,其中,所述多个记号包括:非叶记号,每个非叶记号与所述多个分层数据对象中的标签名称节点对应;叶记号,每个叶记号与构成所述多个分层数据对象中的分层数据对象中的数据节点的值对应;其中,所述非叶记号的每个记号位置包含所述叶记号中的叶记号在所述多个分层数据对象中的分层数据对象中的记号位置;以及产生对所述多个记号编排索引的层次结构‑值索引,所述层次结构‑值索引将所述多个记号中的每个记号映射到所述多个分层数据对象中的特定的一个或多个分层数据对象内的特定的一个或多个记号位置。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:刘振华B·哈默施密特D·麦克马洪
申请(专利权)人:甲骨文国际公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1