CN102541992B - 用于高效地查询数据库的同态定理 - Google Patents

用于高效地查询数据库的同态定理 Download PDF

Info

Publication number
CN102541992B
CN102541992B CN201110364404.5A CN201110364404A CN102541992B CN 102541992 B CN102541992 B CN 102541992B CN 201110364404 A CN201110364404 A CN 201110364404A CN 102541992 B CN102541992 B CN 102541992B
Authority
CN
China
Prior art keywords
operator
expression
inquiry
language
linq
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201110364404.5A
Other languages
English (en)
Other versions
CN102541992A (zh
Inventor
H·J·M·梅杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN102541992A publication Critical patent/CN102541992A/zh
Application granted granted Critical
Publication of CN102541992B publication Critical patent/CN102541992B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及用于高效地查询数据库的同态定理。可基于查询的同态特性生成语言集成查询的表示。该表示可被用于允许查询在例如键值存储上的高效执行。更具体地,可使用允许并行执行的语言集成查询算子将查询转换成表示。

Description

用于高效地查询数据库的同态定理
技术领域
本发明涉及数据库查询,更具体地,涉及使用同态定理以供数据库的高效查询。
背景技术
数据模型描述了可如何存储和访问数据。更正式地,数据模型定义数据实体以及各数据实体间的关系。数据模型的主要目的是提供数据的定义和格式,以便于管理和处理大量的数据。数据模型的一种应用是定义如何结构化和利用数据库或其他存储的数据库模型。数据库模型可以是关系的或非关系的。
在关系模型中,或更具体地在关系数据库中,根据一个或多个表来结构化数据。各个表是包括多个行和列的关系,其中所命名的列称为属性,而行捕捉具体的实体实例的数据。例如,表可在行(也称为元组)和列中捕捉与诸如书籍之类的特定实体有关的信息。列标识实体的各种属性,诸如书籍的标题、作者、和出版年份等。行捕捉实体的实例,诸如特定的书籍。换言之,表中的每一行表示特定书籍的各属性。此外,表可包括使得两个或更多表能被链接在一起的主键和外键。
在非关系模型的许多实现中,键值模型是最受欢迎的一种。键值数据库或存储表示将唯一键映射到一个或多个值的组的简单数据模型。更具体地,键值存储用于存储值和索引以便于基于键来定位所存储的值。例如,被定位的键标识书籍的数据的标题、作者或出版中的一个。
关系数据库通常被称为SQL数据库,而一些非关系数据库则被称为NoSQL数据库或存储。SQL代表结构化查询语言,该结构化查询语言是被利用来查询和更新关系数据库中的数据的主要语言。当结合关系数据库来利用SQL时,该数据库可被称为基于SQL的关系数据库。然而,基于SQL的关系数据库更经常地被简称为SQL数据库,并且用作关系数据库的同义词。NoSQL是用来指代与基于SQL的关系数据库不同的数据库的一个术语。换言之,术语NoSQL被用作非关系数据库或诸如但不限于键值存储的存储的同义词。
SQL数据库和NoSQL存储具有由CAP定理在较高级别捕捉的诸多优点和缺点,CAP定理陈述为在任意时刻只能保证一致性(C)、可用性(A)和分区容错性(P)中的两个。一致性指在诸如更新等操作后保持在一致的状态中的系统特性。可用性关注于在一段时间后甚至在出现故障时仍保持可操作的,而分区容错性指系统跨各网络分区进行操作的能力。一般而言,对于SQL数据库的设计选择是选择一致性和可用性而不选分区容错性,而对于NoSQL存储则放弃一致性而支持分区容错性和可用性。换言之,NoSQL存储为了可缩放性而牺牲了一致性,或另选地,SQL数据库为了一致性而牺牲了可缩放性。
发明内容
下面呈现了简化的发明内容,以便提供对所公开主题的某些方面的基本概念。本发明内容不是广泛性的概观。它并不旨在标识关键/重要元素,也不旨在划定所要求保护主题的范围。其唯一目的是以简化形式呈现一些概念,作为稍后呈现的更具体实施例的序言。
简单来说,本发明大体关于使用同态定理以供数据库的高效查询。可创建基于诸如伯德同态定理之类的查询的同态特性的语言集成查询(LINQ)的表示。这一LINQ查询的表示可随后被用于在诸如但非限制的键值存储之类的数据库上执行查询。作为示例而非限制,通过使用第一LINQ算子和第二LINQ算子,LINQ查询可被转换成一种表示,其中第一LINQ算子是“Select”、“SelectMany”或“GroupBy”中的至少一个,而第二LINQ算子是“Reduce”或“Aggregate”中的至少一个。
为实现上述及相关目的,在此结合以下描述和附图描述了所要求保护主题的某些说明性方面。这些方面指示可实践本主题的各种方式,它们均落在所要求保护主题的范围之内。当结合附图阅读以下详细描述时,本发明的其他优点和新颖特征将变得显而易见。
附图说明
图1是数据库查询系统的框图。
图2是数据库查询系统的框图。
图3示出了键值存储的一个示例性集合。
图4是用于关系存储和键值存储的数据库查询系统的框图。
图5是便于生成语言集成查询(LINQ)查询的表示的系统的框图。
图6是将LINQ查询转换成表示的方法的流程图。
图7是创建LINQ查询的表示的方法的流程图。
图8是以LINQ查询来查询关系存储和键值存储的方法的流程图。
图9是示出用于本发明各方面的合适操作环境的示意性框图。
具体实施方式
下面的细节大体针对数据库查询。诸如语言集成查询(LINQ或LINQ查询)之类的查询的表示可基于查询的同态特性来生成。LINQ查询的表示可被用于在诸如键值存储之类的数据库上高效地执行LINQ查询。传统地,LINQ查询已被结合关系数据库(例如SQL)使用。然而,LINQ查询可被扩展到用于非关系存储(例如NoSQL、键值存储)。此外,可生成LINQ查询的表示,用于在关系和/或非关系存储上高效地执行这一查询,例如,使用并行处理或更具体来说是分布式并行处理。
现在参考附图更详细地描述本公开的各个方面,在全部附图中用相似的标记来指示相似或相应的元素。然而应该理解,附图及其相关详细描述不旨在将所要求保护的主题限于所公开的具体形式。相反,其意图是覆盖落在所要求保护主题的精神和范围之内的所有修改、等价物和替换的方案。
首先参考图1,示出了数据库查询系统100。数据库查询系统100采用诸如语言集成查询(LINQ或LINQ查询)之类的查询的表示以便于在键值存储等等上高效地执行查询。
LINQ及其支持技术提供方便且声明性的简写查询句法(类似SQL)以便利于在编程语言(例如, Visual )内部对查询的指定。具体而言,提供映射到低级语言构造或原语(诸如方法和拉姆达表达式)的查询操作符。提供用于各种运算(例如,过滤、投影、连接、分组、排序……)族的查询运算符,并且查询运算符可包括但不限于映射到实现这些名称所表示的运算符的方法的“where”和“select”运算符。作为示例,用户可以以诸如“from n in numbers wheren<10select n”的形式指定查询,其中“numbers”是数据源并且查询从数据源返回小于10的整数。此外,可以以各种方式组合查询运算符以生成任意复杂度的查询。
按照惯例,LINQ查询是相对于关系存储被指定并执行的。然而,LINQ查询可被扩展以支持对于诸如键值存储之类的非关系数据来执行。更具体地,通过采用LINQ查询的同态特性,可生成这种LINQ查询的表示并用于在键值存储上执行LINQ查询。换句话说,LINQ查询的表示可基于Bird第一同态定理来创建,其中这一表示允许LINQ查询在键值存储上执行。
数据库查询系统100包括变换组件102,其基于这一LINQ查询的同态特性来生成LINQ查询的表示。变换组件102通过执行函数、算法、和/或算子(将在以下(具体来说是图5)详细讨论)将LINQ查询转换成表示。LINQ查询的这一表示允许相对于键值存储106的扩展的能力。查询处理器组件104采用LINQ查询的表示,以便在键值存储106上执行这一LINQ查询。可以理解的是键值存储106可以是(但不限于)任何合适的非关系存储和/或NoSQL存储。例如,在一个实施例中,键值存储可对应于关系存储(例如coSQL)的数学对偶。
作为示例而非限制,同态特性是一种两个代数结构(诸如,组、集合、集等)之间的结构保留的映射。此外,同态是遵守该代数结构的两个代数对象(例如,组、集合、集等)之间的函数。一般来说,包括同态特性的查询将维持该同态性质,或者换句话说,保持同态。另外,可以理解的是查询可以是同态的,因为查询是从同态部分创建的。换句话说,同态特性被执行以生成能在各种数据库、存储等上进行查询的表示。
图2示出示例性的数据库查询系统实施例。查询系统200包括生成LINQ查询的表示的变换组件102。如所述地,变换组件102基于同态特性将LINQ查询转换成表示以提供与数据库有关的扩展的多功能性等。查询系统200还包括查询处理器104,其直接在键值存储106上执行该表示。换言之,变换组件102可生成LINQ查询的表示,而查询处理器104直接在键值存储106上执行该表示,并进而执行该LINQ查询。
作为示例而非限制,查询系统200对合并在查询处理器组件104中的变换组件102进行描述。可以理解的是变换组件102可以是独立的组件、被合并在查询处理器组件104中、被合并在键值存储106中、和/或以上的任意组合。
图2还示出了查询系统202,其包括耦合到查询处理器组件104的变换组件102。查询系统202使得表示能够被传递到数据库前端外壳系统204,以便在键值存储106上执行。数据库前端外壳系统204可以是与管理访问的键值存储106相关联的任何合适的前端系统。数据库前端外壳系统204可进一步包括各种安全和认证技术以确保数据隐私和完整性,以及与数据库系统相关联的其它功能。
具体来说,数据库前端外壳系统204可管理键值存储106上的传入的查询请求。因此,查询处理器组件104可向数据库前端外壳系统204提供LINQ查询的表示,其中,数据库前端外壳系统204使用该表示来执行键值存储106上的LINQ查询。例如,数据库前端外壳系统204可包括执行查询并返回结果的内部查询处理器(未示出)。这一内部查询处理器(未示出)可利用LINQ查询的表示来执行该键值存储106上的这一查询。在另一示例而非限制中,查询处理器组件104可采用直接在键值存储106上执行表示以及将表示的至少一部分传递到数据库前端外壳系统204以内部执行(例如,内部查询处理器)的组合。在这种情况下,查询处理器组件104可将查询从第一形式转换成可由数据库前端外壳系统执行的第二形式。
查询系统200和202可被用于任何合适的键值存储106。总得来说,查询处理器组件104可在键值存储106上执行表示,而与两者之间的数据连接无关。例如,键值存储106可以是基于云的、基于服务器的、无线的、硬连线的等等。换言之,查询处理器组件104可直接在键值存储106上执行表示,而独立于物理位置(例如,远程的、本地的、其中的任意组合等)和/或数据连接(例如,云、无线、局域网(LAN)、其中的任意组合等)。
图3示出了键值存储的一个示例性集合300。总得来说,LINQ查询可以被定向到键值存储内的集合300。如所讨论的,基于同态特性来生成LINQ查询的表示,以允许LINQ查询能够在键值存储上执行。典型地,键值存储是“碎片的”,或者说是分裂开的或分隔的,分布在多个计算机或机器上。如果查询是同态的,则伯德(Bird)的同态定理可以被用来便于使用并行处理的查询的高效执行。
以下是示例性的基于同态特性将LINQ查询转换为表示的高级别的讨论,其中转换可由图1的变换组件102来执行。此处,LINQ查询指向(例如,被执行在)存储在键值存储中的集合300。用“XS”来描述集合300,代表多个“X”。指向集合300的LINQ查询可被转换成表示,以便与键值存储有关地被执行。
集合300被分成至少两个子集合。一组子集合302示出第一子集合XS0、第二子集合XS1、以及第三子集合XS2。可对每一子集合执行第一LINQ算子,以创建包括第一集合ZS0、第二集合ZS1、以及第三集合ZS2的结果304。例如,第一LINQ算子可以是但不限于“Select(选择)”、“SelectMany(选择多个)”或“GroupBy(根据……来分组)”。可以理解的是“SelectMany”算子可以是对关系“CrossApply(交叉应用)”算子的概括。
对于结果304可执行第二LINQ算子,以创建包括第一集合Z0、第二集合Z1、以及第三集合Z2{[Z0,Z1,Z2]}的结果306。例如,第二LINQ算子可以是“Reduce(减少)”或“Aggregate(聚集)”中的至少一个。可对结果306执行第二LINQ算子,以创建对于LINQ查询的结果308,结果308包括 可以理解的是,可以基于子集合的划分并行执行第一LINQ算子和第二LINQ算子。换言之,LINQ查询可基于所生成的表示而并行执行。
此外,可以理解的是,所执行的第一LINQ算子和随后执行的第二LINQ算子可复制映射一减少(map-reduce)功能。映射部分将来自主节点的输入分割为跨各个工作节点(worker node),以便允许工作节点单独地处理子部分。随后,工作节点的各单独结果可被组合、减少、以及传回主结点作为结果。这一有效并行处理对于具有跨多个存储或机器的巨量数据的NoSQL存储意义重大。
图4示出用于关系存储和键值存储的数据库查询系统400。数据库查询系统400可包括变换组件102,用于基于包含捕捉映射-减少功能的原语查询算子的同态特性(更具体来说是伯德同态定理)将LINQ查询变换为表示。查询处理组件104可被配置成利用该表示来在非关系的键值存储106或关系存储404上执行LINQ查询。
数据库查询系统400还包括转换组件402,其可将基于同态特性生成的LINQ查询的表示转换成第二表示。第二表示是可为任何适当的特定存储或管理实体接受的命令或指令。换言之,转换组件402可将第一表示(例如,基于同态特性的LINQ查询的表示)配置为用于执行该查询的第二表示。作为示例而非限制,转换组件402可被配置成从第一表示生成事务-SQL(T-SQL)以便相对于关系存储404执行。还可执行类似转换以便于与键值存储106的特定接口的交互。
图5是便于生成语言集成查询(LINQ)查询的表示的系统500。变换组件102基于其同态特性生成LINQ查询的表示。查询处理器组件104使用LINQ查询的表示来在键值存储106上执行该查询。变换组件102可进一步包括算法组件502,其便于将LINQ查询变换为表示,该表示用于在键值存储106上执行查询。作为示例而非限制,算法组件502被示出位于变换组件102内。然而,可以理解的是算法组件502可以是独立的组件、被合并在变换组件102中(如所示)、被合并在查询处理器组件104中、被合并在键值存储106中、和/或以上的任意组合。
算法组件502可使用算法、函数以及算子,以便生成LINQ查询的表示,该表示被用于在键值存储106上执行该查询。作为示例而非限制,算法组件502可使用诸如“Select”、“SelectMany”、“GroupBy”、“Reduce”以及“Aggregate”之类的LINQ算子。另外,算法组件502基于同态特性和/或伯德同态定理来创建LINQ查询的表示。
以下是示例性的生成LINQ查询的表示的高级别的讨论,其中生成可由变换组件102和/或算法组件502来执行。
要求保护的主题展示出了NoSQL(以及coSQL)以及SQL存储都是-元体(monad)这一事实,以及查询可被定义为一元体上的同态这一事实。换言之,伯德同态定理可被概括为一元体上的同态。另外,伯德同态定理可被概括为在存储上采用“GroupBy”和“Aggregate”查询算子。因此,任何同态查询可被分解为“GroupBy”和“Aggregate”(例如,LINQ算子),并且可被并行执行,包括分布式并行执行。这对于NoSQL而言尤其意义重大,因为大量数据通常被分隔为跨多个机器。
LINQ是关系代数的概括,其中使用一元体而不是行的集。就像SQL从常规语法扩展成关系代数表达式一样,编译器将LINQ或一元体内涵解修饰为原语查询算子上的代数表达式。换言之,简单的编程者友好语法被转换为复杂的较不用户友好的算术。
关系代数算子的概括如下,其中“M”是集合的抽象概念(而不是SQL中的“集”(set)),而“T”表示通用的集合元素(例如,键值对)。
使用“SelectMany”或“Bind”算子来实现所称的相关子查询:
SelectMany::M<A>x(A→M<B>)→M<B>
使用这一算子和“{_}”,其它的可被定义如下:
还提供了函数的内涵表示,写为“A→B”或“Expr<A→B>”如下:
SelectMany::M<A>x(A→M<B>)→M<B>
在许多情况下,“映射”函数可与以下签名一起使用(加上采用函数的内涵表示的对应的那个签名):
Select::M<A>x(A→B)→M<B>
此外,替代“SelectMany”,展平(flatten)函数可与以下签名一起使用:
Join::M<M<A>>→M<A>
可以理解的是以上在不允许嵌套的关系上下文中不正常。
通过对函数的自变量的递归分解,类型“h::M<A>→B”的某些函数或查询也可被分解为较简单的函数,如下:
h ( { a , b , c } ) = h ( { a } &cup; { b } &cup; { c } ) = { f ( a ) } &CirclePlus; { f ( b ) } &CirclePlus; { f ( c ) }
也就是说,集合“M<A>”上的任何同态可被定义为:
Has = as . Select ( f ) . Reduce ( &CirclePlus; )
其中“Select”如上所述,而“Reduce”定义如下:
Reduce ( { a } &cup; { b } &cup; { c } ) = a &CirclePlus; b &CirclePlus; c
例如,“SelectMany(as,f)=as.Select(f).Join()”和“Join”可被定义如下:Join as=Reduce(∪)
换言之,对于某个函数“f::A→B”和操作 类型为“M<A>→B”的所有同态查询能够被变换成 的形式。“∪”的更多代数属性或组合可被用于以不同方式将集合分解成各个片段,诸如假设“∪”是结合的,如下:
{a,b,c,d}=({a}∪{b})∪({c}∪{d})
现在,同态查询“h({a,b,c,d})”可以下述方式并行评估:
( f ( a ) &CirclePlus; f ( b ) ) &CirclePlus; ( f ( c ) &CirclePlus; f ( d ) )
与NoSQL和coSQL相关联的键值模型提供基于它们的键将集合“M<A>”自然划分为子集合,并且,可对映射函数进行概括以返回集合本身。例如,键值存储“{K:a,L:b,}”可被分割成嵌套存储如下:
{{P:w,Q:x},{P:y,Q:z}}
接着,键值对可被分组或结合为单个键值存储“{P:{w,y},Q:{x,z}}”,并被缩减为
更简单来说,伯德同态定理可被概括以显示键值存储上的任何同态查询可被写为“Select”或跟在“Reduce”后的“SelectMany”,或等价于跟在“Aggregate”后的“GroupBy”。
参考若干组件之间的交互已经描述了上述系统、体系结构、环境等。应该理解,这样的系统和组件可以包括这些组件或其中指定的子组件,某些指定的组件或子组件,和/或附加的组件。子组件也可以被实现为在通信上被耦合到其他组件而不是被包括在父组件中的组件。此外,一个或多个组件和/或子组件可以结合成提供聚集功能的单个组件。各组件也可以与一个或多个其他组件进行交互,出于简要考虑在此未具体描述这些组件但本领域的技术人员均已知。
此外,应该理解以上所公开的系统及以下方法的各部分可以包括或包含人工智能、机器学习或基于知识或规则的组件、子组件、进程、手段、方法或机制(例如,支持向量机、神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎、分类器……)。这样的组件和其它组件可以自动化执行某些机制或进程,由此使得系统和方法的各部分更为自适应、高效及智能。作为示例而非限制,变换组件102或其一个或多个子组件可使用这些机制来有效地确定或以其它方式推断与基于同态特性生成LINQ查询的表示有关的变换技术。
考虑到以上描述的示例性系统,参考图6-8的流程图将可以更好地理解依照所公开主题而实现的方法。尽管为了说明简洁起见,作为一系列框示出和描述了方法,但是,应该理解,所要求保护的主题不仅限于所描述框的顺序,一些框可以按与此处所描绘和描述的不同的顺序进行和/或与其它框并发地进行。此外,并非全部所示出的框都是实现下面所描述的方法所必需的。
参考图6,示出了一种用于将LINQ查询转换成表示的方法600。在附图标记602,接收LINQ查询。可以理解的是LINQ查询可以被聚集、接收、收集等等。此外,LINQ查询可以被定向到键值存储内存储的数据集合。在附图标记604,基于查询的同态特性来生成LINQ查询的表示。作为示例而非限制,表示可用其后跟有第二LINQ算子的第一LINQ算子对LINQ查询进行转换。可以理解的是第一LINQ算子可以是但不限于“Select”、“SelectMany”或“GroupBy”。另外,可以理解的是第二LINQ算子可以是但不限于“Reduce”或“Aggregate”。通过生成LINQ查询的表示,键值存储可执行查询。例如,可将第一LINQ查询算子插入LINQ查询,第一LINQ查询算子可以是“Select”或“SelectMany”中的至少一个。第一算子的结果可被进一步插入第二LINQ查询算子以生成LINQ查询的表示,第二LINQ查询算子可以是“Reduce”。在另一示例中,LINQ查询可被插入第一LINQ查询算子,第一LINQ查询算子可以是“GroupBy”。第一算子的结果可被进一步插入第二LINQ查询算子以生成LINQ查询的表示,第二LINQ查询算子可以是“Aggregate”。
图7中,示出了一种创建LINQ查询的表示的方法700。在附图标记702,为与LINQ查询相关联的目标集合内的每一元素创建子集合。在附图标记704,对每个子集合执行映射函数。在附图标记706,对每个映射的子集合执行减少函数(reduce function)。在附图标记708,对每个减少的、映射的子集合执行减少函数。
图8是以LINQ查询800来查询关系存储和键值存储的方法的流程图。在附图标记802,基于同态特性来生成LINQ查询的第一表示。例如,第一表示可规定查询的并行执行。在附图标记804,第一表示被转换成第二表示,其中需要与特定存储的交互。在附图标记806,第一表示被用于在诸如键值存储(例如,NoSQL、coSQL)之类的存储上执行LINQ查询。
此处使用的术语“组件”和“系统”及其各种形式旨在表示与计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但不限于是,在处理器上运行的进程、处理器、对象、实例、可执行程序、执行的线程、程序和/或计算机。作为说明,在计算机上运行的应用和计算机都可以是组件。一个或多个组件可驻留在进程和/或执行的线程内,并且组件可位于一个计算机上和/或分布在两个或更多的计算机之间。
在本文中使用的词语“示例性”或其各种形式意味着用作示例、实例或说明。在此被描述为“示例性”的任何方面或设计并不一定要被解释为相比其它方面或设计更优选或有利。此外,各示例只是出于清楚和理解的目的来提供的并且并不意味着以任何方式限制或约束所要求保护主题或本发明的相关部分。可以理解,本来可呈现不同范围的多个附加或替换示例,但出于简明的目的已被省略。
如此处所使用,术语“推论”或“推断”通常指的是从经由事件和/或数据捕捉的一组观察结果来推理或推断系统、环境、和/或用户的状态的过程。可以使用推断来标识特定上下文或动作,也可以生成例如状态上的概率分布。推断可以是概率性的,即,基于对数据和事件的考虑,计算在感兴趣状态上的概率分布。推断也可以是指用于从一组事件和/或数据构成较高级别的事件的技术。这样的推断导致从一组观察到的事件和/或存储的事件数据构建新的事件或动作,不管事件在时间上是否紧密相关,以及事件和数据是来自一个还是多个事件和数据源。可采用各种分类方案和/或系统(例如,支持向量机、神经网络、专家系统、贝叶斯信任网络、模糊逻辑、数据融合引擎……)来执行关于所要求保护主题的自动化和/或推断的动作。
而且,对于在详细描述或权利要求书中使用术语“包括”、“包含”、“具有”、“含有”或其它形式的变型而言,这样的术语旨在以类似于术语“包括”的方式体现包含性,如同“包括”在用作权利要求书中的过渡词时所解释的那样。
为了为所要求保护主题提供上下文,图9以及以下讨论旨在提供对其中可以实现本主题的各方面的合适环境的简要、概括描述。然而,合适的环境只是示例并且并非旨在对使用范围或功能提出任何限制。
尽管能够在可以在一台或多台计算机上运行的程序的计算机可执行指令的一般上下文中描述以上公开的系统和方法,但是,本领域的技术人员将认识到,各方面也可以与其他程序模块等相结合地实现。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件和数据结构等。此外,本领域技术人员可以理解,上述系统和方法可用各种计算机系统配置实现,包括单处理器、多处理器或多核处理器计算机系统、小型计算设备、大型计算机、以及个人计算机、手持式计算设备(例如,个人数字助理(PDA)、电话、手表……)、基于微处理器或可编程消费者或工业电子设备等。各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。然而,所要求保护主题的某些方面,如果不是所有方面的话,可以在独立计算机上实施。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中的一个或两者中。
参考图9,示出了示例性通用计算机910或计算设备(例如,台式机、膝上型计算机、服务器、手持式设备、可编程消费或工业电子作品、机顶盒、游戏系统……)。计算机910包括一个或多个处理器920、存储器930、系统总线940、大容量存储950、以及一个或多个接口组件970。系统总线940与至少上述系统组件通信地耦合。然而,可以理解,在其最简单的形式中,计算机910可包括耦合到存储器930的一个或多个处理器920,该一个或多个处理器920执行各种计算机可执行动作、指令和或组件。
处理器920可以用通用处理器、数字信号处理器(DSP)、应用程序专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、分立门或晶体管逻辑、分立硬件组件或被设计为执行此处描述的功能的其任意组合来实现。通用处理器可以是微处理器,但在替换方案中,处理器可以是任何处理器、控制器、微控制器、或状态机。处理器920还可被实现为计算设备的组合,例如DSP和微处理器的组合、多个微处理器、多核处理器、结合一个DSP核的一个或多个微处理器、或任何其它这种配置。
计算机910可包括各种计算机可读介质或以其他方式与各种计算机可读介质交互以便于控制计算机910来实现所要求保护主题的一个或多个方面。计算机可读介质可以是能由计算机910访问的任何可用介质,并包含易失性和非易失性介质以及可移动、不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任意方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,存储器设备(例如,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)……)、磁存储设备(例如,硬盘、软盘、磁带盒、磁带……)、光盘(例如,紧致盘(CD)、数字多功能盘(DVD)……)、以及固态设备(例如,固态驱动器(SSD)、闪存驱动器(例如,卡、棒、键驱动器……)……)、或者可用于存储所需信息并且可由计算机910访问的任何其它介质。
通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号”是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上面各项中的任何项的组合也应该包括在计算机可读介质的范围内。
存储器930和大容量存储950是计算机可读存储介质的示例。取决于计算设备的确切配置和类型,存储器930可以是易失性的(例如RAM)、非易失性的(例如ROM、闪存……)或是两者的某种组合。作为示例,基本输入/输出系统(BIOS),包括诸如在启动期间在计算机910内的元件之间传输信息的基本例程,可被存储在非易失性存储器中,而易失性存储器可担当外部高速缓存存储器以便于处理器920的处理等。
大容量存储950包括相对于存储器930用于存储大量数据的可移动/不可移动、易失性/非易失性计算机存储介质。例如,大容量存储950包括但不限于,诸如磁盘或光盘驱动器、软盘驱动器、闪存存储器、固态驱动器、或记忆棒的一个或多个设备。
存储器930和大容量存储950可包括或其中存储有操作系统960、一个或多个应用962、一个或多个程序模块964和数据966。操作系统960用于控制和分配计算机910的资源。应用962包括系统和应用软件中的一个或两者,并且可通过存储在存储器930和/或大容量存储960中的程序模块964和数据966来利用操作系统960对资源的管理以执行一个或多个动作。因此,应用程序962可根据由此提供的逻辑来将通用计算机910变成专用机器。
所要求保护主题的全部或各部分可以使用产生控制计算机以实现所公开功能的软件、固件、硬件或其任意组合的标准编程和/或工程技术来实现。作为示例而非限制,变换组件102可以是应用程序962或形成应用程序962的一部分,并且包括存储在存储器和/或大容量存储950中的一个或多个模块964和数据966,其功能可以在由所示的一个或多个处理器920执行时实现。
根据一个特定实施例,处理器920可与片上系统(SOC)或在单个集成电路基座上包括(或换言之集成)硬件和软件的类似体系结构相对应。此处,处理器920可包括至少与处理器920和存储器930相似的一个或多个处理器以及存储器等。常规处理器包括最少量的硬件和软件并且广泛依赖于外部硬件和软件。作为对比,处理器的SOC实现更强大,因为它将硬件和软件嵌入其中以能够用最少的硬件和软件或不依赖于外部硬件和软件来启用特定功能。例如,变换组件102和/或相关联的功能可被嵌入到SOC体系结构中的硬件内。
计算机910还包括通信地耦合到系统总线940并方便与计算机910的交互的一个或多个接口组件970。作为示例,接口组件970可以是端口(例如,串行、并行、PCMCIA、USB、火线……)或接口卡(例如,声音、视频……)等。在一个示例实现中,接口组件970可被具体化为用户输入/输出接口,该用户输入/输出接口使得用户能够通过一个或多个输入设备(例如,诸如鼠标的指向设备、跟踪球、指示笔、触摸垫、键盘、话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、相机、其他计算机……)来将命令和信息输入到计算机910中。在另一示例实现中,接口组件970可被具体化为输出外围接口,该输出外围接口向显示器(例如,CRT、LCD、等离子……)、扬声器、打印机和/或其他计算机等提供输出。此外,接口组件970可被具体化为网络接口,该网络接口使得能够诸如通过有线或无线通信链路与其它计算设备(未示出)通信。
以上所已经描述的内容包括所要求保护主题的各方面的示例。当然,出于描绘所要求保护主题的目的而描述每一个可以想到的组件或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,所要求保护主题的许多进一步的组合和排列都是可能的。从而,所公开的主题旨在涵盖落入所附权利要求书的精神和范围内的所有这样的变更、修改和变化。

Claims (9)

1.一种便于数据库查询的方法,包括:
基于语言集成查询的同态特性来生成所述语言集成查询的表示(604,802),所述表示包括关于所述查询的第一语言集成查询算子以及在第一算子的结果上的第二语言集成查询算子,所述第一语言集成查询算子和所述第二语言集成查询算子能够基于所生成的表示而并行执行。
2.如权利要求1所述的方法,其特征在于,还包括使用所述表示在键值存储上执行查询。
3.如权利要求1所述的方法,其特征在于,生成所述表示还包括插入“Select”算子或“SelectMany”算子中的至少一个作为所述第一语言集成查询算子。
4.如权利要求1所述的方法,其特征在于,生成所述表示还包括插入“Reduce”算子作为所述第二语言集成查询算子。
5.如权利要求1所述的方法,其特征在于,生成所述表示还包括插入“GroupBy”算子作为所述第一语言集成查询算子。
6.如权利要求1所述的方法,其特征在于,生成所述表示还包括插入“Aggregate”算子作为所述第二语言集成查询算子。
7.一种便于数据库查询的系统(100),包括:
变换组件(102),其被配置成生成包括同态特性的语言集成查询的表示,所述表示包括关于所述查询的第一语言集成查询算子以及在第一算子的结果上的第二语言集成查询算子,所述第一语言集成查询算子和所述第二语言集成查询算子能够基于所生成的表示而并行执行。
8.如权利要求7所述的系统,其特征在于,所述第一语言集成查询算子用于对数据进行划分。
9.如权利要求7所述的系统,其特征在于,所述第二语言集成查询算子用于对两个或更多分区上的结果进行组合。
CN201110364404.5A 2010-11-03 2011-11-02 用于高效地查询数据库的同态定理 Expired - Fee Related CN102541992B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/939,146 US20120110004A1 (en) 2010-11-03 2010-11-03 Homomorphism lemma for efficiently querying databases
US12/939,146 2010-11-03

Publications (2)

Publication Number Publication Date
CN102541992A CN102541992A (zh) 2012-07-04
CN102541992B true CN102541992B (zh) 2016-08-17

Family

ID=45997843

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110364404.5A Expired - Fee Related CN102541992B (zh) 2010-11-03 2011-11-02 用于高效地查询数据库的同态定理

Country Status (4)

Country Link
US (1) US20120110004A1 (zh)
EP (1) EP2635986A4 (zh)
CN (1) CN102541992B (zh)
WO (1) WO2012061312A1 (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9798831B2 (en) * 2011-04-01 2017-10-24 Google Inc. Processing data in a MapReduce framework
US20130124483A1 (en) * 2011-11-10 2013-05-16 Treasure Data, Inc. System and method for operating a big-data platform
US8799269B2 (en) 2012-01-03 2014-08-05 International Business Machines Corporation Optimizing map/reduce searches by using synthetic events
US8903813B2 (en) 2012-07-02 2014-12-02 International Business Machines Corporation Context-based electronic document search using a synthetic event
US9460200B2 (en) 2012-07-02 2016-10-04 International Business Machines Corporation Activity recommendation based on a context-based electronic files search
US8898165B2 (en) 2012-07-02 2014-11-25 International Business Machines Corporation Identification of null sets in a context-based electronic document search
US9262499B2 (en) 2012-08-08 2016-02-16 International Business Machines Corporation Context-based graphical database
US8959119B2 (en) * 2012-08-27 2015-02-17 International Business Machines Corporation Context-based graph-relational intersect derived database
US10169446B1 (en) * 2012-09-10 2019-01-01 Amazon Technologies, Inc. Relational modeler and renderer for non-relational data
US9251237B2 (en) 2012-09-11 2016-02-02 International Business Machines Corporation User-specific synthetic context object matching
US8620958B1 (en) 2012-09-11 2013-12-31 International Business Machines Corporation Dimensionally constrained synthetic context objects database
US9619580B2 (en) 2012-09-11 2017-04-11 International Business Machines Corporation Generation of synthetic context objects
US9223846B2 (en) 2012-09-18 2015-12-29 International Business Machines Corporation Context-based navigation through a database
US8782777B2 (en) 2012-09-27 2014-07-15 International Business Machines Corporation Use of synthetic context-based objects to secure data stores
US9741138B2 (en) 2012-10-10 2017-08-22 International Business Machines Corporation Node cluster relationships in a graph database
US8931109B2 (en) 2012-11-19 2015-01-06 International Business Machines Corporation Context-based security screening for accessing data
US8983981B2 (en) 2013-01-02 2015-03-17 International Business Machines Corporation Conformed dimensional and context-based data gravity wells
US8914413B2 (en) 2013-01-02 2014-12-16 International Business Machines Corporation Context-based data gravity wells
US9229932B2 (en) 2013-01-02 2016-01-05 International Business Machines Corporation Conformed dimensional data gravity wells
US8856946B2 (en) 2013-01-31 2014-10-07 International Business Machines Corporation Security filter for context-based data gravity wells
US9053102B2 (en) 2013-01-31 2015-06-09 International Business Machines Corporation Generation of synthetic context frameworks for dimensionally constrained hierarchical synthetic context-based objects
US9069752B2 (en) 2013-01-31 2015-06-30 International Business Machines Corporation Measuring and displaying facets in context-based conformed dimensional data gravity wells
US9319019B2 (en) 2013-02-11 2016-04-19 Symphonic Audio Technologies Corp. Method for augmenting a listening experience
US9344815B2 (en) 2013-02-11 2016-05-17 Symphonic Audio Technologies Corp. Method for augmenting hearing
US9292506B2 (en) 2013-02-28 2016-03-22 International Business Machines Corporation Dynamic generation of demonstrative aids for a meeting
US10152526B2 (en) 2013-04-11 2018-12-11 International Business Machines Corporation Generation of synthetic context objects using bounded context objects
US9916367B2 (en) 2013-05-03 2018-03-13 Splunk Inc. Processing system search requests from multiple data stores with overlapping data
US8738629B1 (en) * 2013-05-03 2014-05-27 Splunk Inc. External Result Provided process for retrieving data stored using a different configuration or protocol
US9348794B2 (en) 2013-05-17 2016-05-24 International Business Machines Corporation Population of context-based data gravity wells
US9195608B2 (en) 2013-05-17 2015-11-24 International Business Machines Corporation Stored data analysis
US9686118B1 (en) 2013-06-04 2017-06-20 Amazon Technologies, Inc. Abstraction layer for streaming data sources
US20150193852A1 (en) * 2014-01-09 2015-07-09 Cgi Federal, Inc. System and method for multi-user evaluation of healthplan benefit based on prescription coverage annual cost
CN104794247B (zh) * 2015-05-14 2018-01-05 东南大学 一种多结构数据库集成查询方法
CN106227800B (zh) * 2016-07-21 2020-02-21 中国科学院软件研究所 一种高度关联大数据的存储方法及管理系统
CN111125440B (zh) * 2019-12-09 2022-08-23 重庆邮电大学 一种基于Monad的持久层复合条件查询方法与存储介质
CN112507098B (zh) * 2020-12-18 2022-01-28 北京百度网讯科技有限公司 问题处理方法、装置、电子设备、存储介质及程序产品

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313561B2 (en) * 2003-03-12 2007-12-25 Microsoft Corporation Model definition schema
US7149731B2 (en) * 2003-11-26 2006-12-12 International Business Machines Corporation Methods, systems and articles of manufacture for abstract query building with selectability of aggregation operations and grouping
US8090739B2 (en) * 2004-10-14 2012-01-03 International Business Machines Corporation Utilization of logical fields with conditional modifiers in abstract queries
US7333981B2 (en) * 2004-12-17 2008-02-19 International Business Machines Corporation Transformation of a physical query into an abstract query
US7363297B2 (en) * 2005-01-20 2008-04-22 International Business Machines Corporation Utilization of logical fields with conditional constraints in abstract queries
US8321441B2 (en) * 2005-09-14 2012-11-27 International Business Machines Corporation Disabling subsets of query conditions in an abstract query environment
US9679031B2 (en) * 2005-09-14 2017-06-13 International Business Machines Corporation Composing abstract queries for delegated user roles
US7647298B2 (en) * 2006-03-23 2010-01-12 Microsoft Corporation Generation of query and update views for object relational mapping
US8924197B2 (en) * 2006-10-31 2014-12-30 Semantifi, Inc. System and method for converting a natural language query into a logical query
US7769755B2 (en) * 2006-11-30 2010-08-03 Microsoft Corporation Efficient execution of aggregation queries
US7680765B2 (en) * 2006-12-27 2010-03-16 Microsoft Corporation Iterate-aggregate query parallelization
US8326852B2 (en) * 2007-03-13 2012-12-04 International Business Machines Corporation Determining query entities for an abstract database from a physical database table
US9430552B2 (en) * 2007-03-16 2016-08-30 Microsoft Technology Licensing, Llc View maintenance rules for an update pipeline of an object-relational mapping (ORM) platform
US8037039B2 (en) * 2007-04-20 2011-10-11 Microsoft Corporation Runtime class database operation
US20080319957A1 (en) * 2007-06-19 2008-12-25 Microsoft Corporation Extensible command trees for entity data model platform
US9336327B2 (en) * 2007-11-30 2016-05-10 Microsoft Technology Licensing, Llc Mapping and query translation between XML, objects, and relations
US20090144229A1 (en) * 2007-11-30 2009-06-04 Microsoft Corporation Static query optimization for linq
US8209340B2 (en) * 2008-03-31 2012-06-26 Microsoft Corporation Efficient functional representation of result shaping
US8713048B2 (en) * 2008-06-24 2014-04-29 Microsoft Corporation Query processing with specialized query operators
US8819046B2 (en) * 2008-06-24 2014-08-26 Microsoft Corporation Data query translating into mixed language data queries
US7984031B2 (en) * 2008-08-01 2011-07-19 Microsoft Corporation Query builder for testing query languages
US8285708B2 (en) * 2008-10-21 2012-10-09 Microsoft Corporation Query submission pipeline using LINQ
US8255410B2 (en) * 2008-12-09 2012-08-28 Microsoft Corporation Translating queries to representational state transfer (REST)
US8214381B2 (en) * 2009-01-27 2012-07-03 International Business Machines Corporation Expected future condition support in an abstract query environment
US8108421B2 (en) * 2009-03-30 2012-01-31 Microsoft Corporation Query throttling during query translation
US8326848B2 (en) * 2009-08-11 2012-12-04 International Business Machines Corporation Proactive analytic data set reduction via parameter condition injection
US20110264688A1 (en) * 2010-04-26 2011-10-27 International Business Machines Corporation Peer to peer (p2p) data licensing model in a distributed abstract query environment

Also Published As

Publication number Publication date
EP2635986A1 (en) 2013-09-11
US20120110004A1 (en) 2012-05-03
AU2011323639A1 (en) 2013-05-23
WO2012061312A1 (en) 2012-05-10
EP2635986A4 (en) 2017-03-29
CN102541992A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
CN102541992B (zh) 用于高效地查询数据库的同态定理
AU2011323637B2 (en) Object model to key-value data model mapping
US11354365B1 (en) Using aggregate compatibility indices to identify query results for queries having qualitative search terms
US20230084389A1 (en) System and method for providing bottom-up aggregation in a multidimensional database environment
CN103020150B (zh) 多维分组运算符
Duggal et al. Big Data analysis: Challenges and solutions
Zhang et al. Efficient parallel skyline evaluation using MapReduce
Borkar et al. Declarative Systems for Large-Scale Machine Learning.
Natesan et al. Hadoop based parallel binary bat algorithm for network intrusion detection
US11042545B2 (en) Class specific context aware query processing
EP2619694A2 (en) Data model dualization
CN102609292B (zh) 指令优化
Patgiri A taxonomy on big data: Survey
Xia et al. A MapReduce-based parallel frequent pattern growth algorithm for spatiotemporal association analysis of mobile trajectory big data
US20140095490A1 (en) Ranking supervised hashing
Hutchison et al. From NoSQL Accumulo to NewSQL Graphulo: Design and utility of graph algorithms inside a BigTable database
Usman et al. Data locality in high performance computing, big data, and converged systems: An analysis of the cutting edge and a future system architecture
LIAO et al. High performance big data clustering
Abdallah et al. Towards a GML-Enabled Knowledge Graph Platform
Liu et al. Fractal dimension calculation for big data using box locality index
Zou et al. AMR-aware in situ indexing and scalable querying
Wang Data management and data processing support on array-based scientific data
Liu et al. An abstract description method of map-reduce-merge using haskell
AU2011323639B2 (en) Homomorphism Lemma for efficiently querying databases
Song et al. The Data Integrity Error Repair Method for Filling Missing Values with External Data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150729

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150729

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160817

Termination date: 20191102

CF01 Termination of patent right due to non-payment of annual fee