CN1786950A - 处理抽象查询的方法和系统 - Google Patents
处理抽象查询的方法和系统 Download PDFInfo
- Publication number
- CN1786950A CN1786950A CNA200510115125XA CN200510115125A CN1786950A CN 1786950 A CN1786950 A CN 1786950A CN A200510115125X A CNA200510115125X A CN A200510115125XA CN 200510115125 A CN200510115125 A CN 200510115125A CN 1786950 A CN1786950 A CN 1786950A
- Authority
- CN
- China
- Prior art keywords
- data
- abstract query
- query
- abstract
- database
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
- G06F16/24526—Internal representations for queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24549—Run-time optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99935—Query augmenting and refining, e.g. inexact access
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99936—Pattern matching access
Abstract
提供了一种方法和系统以及制造物品,以处理相对于底层物理数据存储机制构建的数据库抽象的抽象查询。所述的数据库可包括单个数据源或跨多个系统的联合源。本发明的实施例通过生成抽象查询的中间表示而处理抽象查询。在一实施例中,中间表示包括抽象查询计划。抽象查询计划包括来自数据抽象模型的元素和涉及底层物理数据存储机制的元素的组合。一旦生成了抽象查询计划,后端部件可以容易地遍历抽象查询计划以生成对应于抽象查询的SQL语句(或其他分解查询)。此外,一旦构建了抽象查询计划,在建立分解查询之前,抽象查询计划提供了对于可由用户或由检查抽象查询计划的运行时部件选择的多种不同优化的平台。
Description
相关申请的交叉引用
本申请涉及共同拥有、共同待决的美国专利申请号10/083,075,其申请日为2002年2月26日,标题为“通过数据库模式和查询抽象的应用可移植性和可扩展性(Application Portability and Extensibility throughDatabase Scheme and Query Abstraction)”,在此将其整体并入作为参考。本申请也涉及共同拥有、共同待决的申请,其标题为“通过数据模型实体处理复合数据(Dealing with Composite Data through Data ModelEntities)”,申请序列号为10/403,356,申请日为2003年3月31日,在此将其整体并入作为参考。
技术领域
本发明涉及计算机数据库。更明确地,本申请涉及用于建立物理数据存储机制的抽象以及用于由抽象查询构造物理数据存储机制的分解查询的方法。
背景技术
数据库是用于信息存储和检索的公知系统。当前所使用的最普及类型的数据库是关系数据库,所述的关系数据库是其中数据被定义以便能够用多种不同方式重新组织和访问数据的表格式数据库。关系数据库管理系统(DBMS)使用用于存储和检索数据的关系技术。
数据库模式被用于描述数据库结构。例如,关系模式描述一组表格、列和定义了关系数据库中的不同表格之间关系的主码和外码。开发了根据关系模式查询数据的应用。例如,一般使用被配置用于执行包括搜索、排序和查询构造例程的数据访问例程的前端应用来访问关系数据库。在后端,软件程序控制数据存储并响应与前端交互的用户所提交的请求。
结构化查询语言(SQL)是广泛使用的数据库语言,其提供了用于数据操作的方法,并包括检索、存储、更新和删除数据的命令。根据用于给定关系数据库的关系模式以及根据明确定义的SQL语法构建SQL查询。SQL查询包括正文串,其必须严格符合SQL语言的语法要求并且也必须语义正确地按照用户所希望的执行。即,很多句法正确的SQL语句可能由于语义错误而无法按照所希望的执行。由于这种复杂性,数据库查询应用通常被用于帮助用户构造关系数据库的SQL查询。
不过,数据挖掘和数据库查询应用所面临的一个问题是它们与给定数据库模式的紧密关系。这种关系使支持应用变得困难,因为对相应的底层数据库模式做出了改变。此外,这种紧密绑定的关系约束了将应用转移到可替换的数据表示。
共同转让的申请日为2002年2月26日的标题为“通过数据库模式和查询抽象的应用可移植性和可扩展性(Application Portability andExtensibility through Database Scheme and Query Abstraction)”的美国专利申请号10/083,075(’075申请)公开了用于提供物理数据存储机制的抽象视图的数据抽象模型的框架。’075申请的框架向请求实体(即最终用户或前端应用)提供了存储于例如关系数据库的底层物理存储机制中的数据的抽象表示。这样,当访问底层DBMS时将请求实体从底层物理数据中分离出来。能够构建基于所述框架的抽象查询而不管底层数据库的结构。此外,对于数据库模式的改变也无需相应改变查询应用前端;而是能够修改由所述框架提供的抽象以反映所述的改变。
数据抽象模型的一实施例定义了对应于用户对数据的独立视图的一组逻辑字段,其与存储数据的底层物理数据库松散耦合。对于用户,逻辑字段可用于构造搜索、检索、添加和修改存储于底层数据库中的数据的查询。抽象查询被用于生成由关系DBMS处理的SQL查询语句。当将包括了例如逻辑字段的以对象形式构建的数据的高度逻辑视图的抽象查询变换为SQL正文串(如SELECT、INSERT或DELETE语句)时,出现了额外的难题。这些问题中的首要问题是很难有效地由抽象查询直接生成SQL查询。抽象查询的不同部分可能以不明显的方式彼此相关,并因此查询构造器必须前后完全查看抽象查询,以正确地构造当前所考虑的查询部分。不过,查询构造器可能无法检查由抽象查询生成的SQL以确定其所需的信息。具体地,这使查询构造器确定SQL是否被完全优化或在查询设计中做出调整变得更加困难。首先,SQL将需要被重新解析,尽管它在查询构造过程期间处于分裂的和不完整的状态。其次,SQL语句不总是包含来自抽象查询的所有信息,因为当抽象查询被转换为SQL时一些信息丢失了。
因此,存在对提供了有效地生成和优化例如关系DBMS的SQL查询的底层物理存储机制的查询进行进一步改进的技术的需求,以及普遍地存在对抽象查询处理技术的需求。
发明内容
本发明一般地提供用于处理抽象查询的技术。与直接由抽象查询生成分解的查询语句(如SQL语句)不同,本发明的实施例首先生成抽象查询的中间表示。在一实施例中,中间表示包括抽象查询计划。该抽象查询计划包括来自数据抽象模型的抽象元素和涉及底层物理数据存储机制的元素的组合。对于相对于关系数据库构建的数据抽象模型,抽象查询计划包含关于需要哪些关系表格可用以及怎样将这些表格连接到一起(即,这些表格之间或逻辑字段之间的关系、检索数据的条件)的所有信息。在一实施例中,可以使用存储此信息的树状数据结构来实现抽象查询计划。一旦生成了抽象查询计划,则后端部件可以遍历该抽象查询计划以生成对应于抽象查询的SQL语句。
本发明的一实施例提供了一种在数据库中访问数据的方法。所述方法一般地包括从请求实体中接收由多个逻辑字段构造的抽象查询,其中每一逻辑字段指定(i)用于识别该逻辑字段的名,以及(ii)使该逻辑字段映射到数据库中的数据源的访问方法。所述方法一般还包括由抽象查询生成指示了包括于抽象查询之中的逻辑字段和访问方法的抽象查询的中间表示、包含数据的数据库内的数据源以及数据库中的数据源之间的关系,并且由中间表示生成数据库的分解查询。
本发明的另一实施例提供了一种提供关系数据库的抽象的方法。所述方法一般包括定义数据抽象模型,其中所述的数据抽象模型包括:多个逻辑字段,其中每一逻辑字段识别该逻辑字段名和使该逻辑字段映射到关系数据库中的数据源的访问方法;对逻辑字段之间关系的指示;以及识别关系数据库中的数据源之间关系的关系数据库的图形表示。所述方法一般还包括提供被配置用于允许用户由多个逻辑字段构造抽象查询的查询构造接口,以及提供被配置用于处理抽象查询以由抽象查询生成关系数据库的分解查询的运行时部件。
本发明的另一实施例提供了一种处理抽象查询的方法。所述方法一般包括从请求实体中接收由多个逻辑字段构造的抽象查询,其中每一逻辑字段指定(i)用于识别该逻辑字段的名,(ii)使该逻辑字段映射到数据库中的数据源的访问方法。所述方法一般还包括识别(i)由抽象查询中的多个逻辑字段所引用的一组数据源以及(ii)所述一组数据源之间的一组关系,确定所述一组数据源和所述一组数据源之间的一组关系的非循环的图形表示,以及遍历抽象查询计划以生成数据源的分解查询。在一实施例中,抽象查询计划包括多个表格实例,其中每一表格实例包括对数据源的指示、包括于基于在所指示的数据源之上存在的数据的抽象查询中的每一逻辑字段、以及用于限制从所指示的数据源中选择的数据的条件,并且其中所述抽象查询计划还包括指示相对于抽象查询多个表格实例如何相互联系的一组连接关系。
本发明的另一实施例提供了一种处理抽象查询的方法。所述方法一般包括从请求实体中接收由多个逻辑字段构造的抽象查询,其中每一逻辑字段指定(i)用于识别该逻辑字段的名,(ii)使该逻辑字段映射到数据库中的数据源的访问方法,并识别(i)由抽象查询中的多个逻辑字段所引用的一组数据源以及(ii)所述一组数据源之间的一组关系。所述方法一般还包括确定所述一组数据源的非循环的图形表示,生成抽象查询计划,其中所述抽象查询计划包括(a)多个表格实例,其中每一表格实例包括(i)对数据源的指示;(ii)包括于基于在所指示的数据源上存在的数据的抽象查询中的每一逻辑字段;以及(iii)用于限制从所指示的数据源中选择的数据的条件;以及(b)指示多个表格实例怎样相互联系的一组连接关系。并且其中所述方法还包括执行对抽象查询计划的至少一种优化以生成优化的抽象查询计划,并遍历优化的抽象查询计划以生成数据源的分解查询。
本发明的另一实施例提供了一种包含多个指令的计算机可读媒介,当在所述指令计算机系统上执行时,其被配置用于执行操作。所述的操作一般包括定义数据抽象模型,其中所述数据抽象模型包括多个逻辑字段,其中每一逻辑字段识别逻辑字段名以及使逻辑字段映射到数据库中的数据源的访问方法;对逻辑字段之间关系的指示;以及识别关系数据库中的数据源之间关系的关系数据库的图形表示。所述操作一般还包括提供被配置用于允许由多个逻辑字段构造抽象查询的查询构造接口,以及提供被配置用于处理抽象查询以由抽象查询生成关系数据库的分解查询的运行时部件。
本发明的另一实施例提供了一种用于处理抽象查询的系统。所述系统一般包括数据抽象模型,其中所述数据抽象模型包括(i)多个逻辑字段组成的抽象查询,其中每一逻辑字段指定(a)用于识别该逻辑字段的名,以及(b)使该逻辑字段映射到数据库中的数据源的访问方法,(ii)由数据抽象模型所提取的底层物理数据存储机制的图形表示。所述系统一般还包括被配置用于允许用户由多个逻辑字段构造抽象查询的用户接口,以及被配置用于接收抽象查询并作为响应生成抽象查询计划和用于遍历该抽象查询计划以生成分解查询的运行时部件。在一实施例中,抽象查询计划包括(i)多个表格实例,其中每一表格实例包括对数据源的指示、包括于基于所指示的数据源之上存在的数据的抽象查询之中的每一逻辑字段、以及用于限制从所指示的数据源中选择的数据的条件;并且抽象查询计划还包括(ii)指示相对于抽象查询多个表格实例如何相互联系的一组连接关系。
附图说明
因此,以此方式获得并能够详细理解本发明的上述特征、优点和目的,通过参考在附图中说明的本发明的实施例可以获得以上简要概述的本发明的更具体的描述。
不过,附图说明了本发明的典型实施例,并因此不应该被认为是限制了本发明的范围,因为本发明可容许其他同等有效的实施例。
图1根据本发明的一实施例说明了软件和硬件部件的关系视图。
图2A根据本发明的一实施例说明了软件部件的关系视图。
图2B根据本发明的一实施例说明了抽象查询和相应的数据储存库抽象部件。
图3根据本发明的一实施例说明了通过建立随后被用于建立分解查询的抽象查询的中间表示来处理抽象查询的运行时部件。
图4A和4B说明了以底层关系数据库中的表格之间关系为模型的图。
图5根据本发明的一实施例说明了抽象查询计划的表格实例的数据结构部件。
图6根据本发明的一实施例说明了示例性的抽象查询计划。
图7根据本发明的一实施例说明了用于使用抽象查询的抽象查询计划中间表示来处理抽象查询的方法。
图8根据本发明的一实施例说明了由抽象查询建立分解查询的方法。
具体实施方式
本发明提供了用于建立数据抽象模型和处理模型的查询的方法、系统和制造物品。所述数据抽象模型提供了到存储于数据库之中的数据的接口,所述的数据库符合用户对数据的独立视图,而不是对应于数据库模式的视图。当用户构造抽象查询时,本发明的实施例提供了用于在这两种视图之间变换的技术,即用于由抽象查询建立底层数据库的查询的技术。此处有时将这种查询称为“分解”查询或“物理”查询。在底层存储机制是关系数据库的优选实施例中,这种查询包括SQL查询语句。不过,应该理解,对例如SQL的特定查询语言的引用是用于说明本发明的实施例,而其他查询语言的应用是可以允许的。
本发明的实施例提供了由抽象查询生成分解查询的多步骤的过程。在一实施例中,抽象查询首先被用于构建抽象查询的中间表示。接着此中间表示被用于建立分解查询。在一实施例中,所述中间表示包括抽象查询计划(AQP),抽象查询计划包括物理数据(如关系数据库的表格和列)和逻辑数据(如由数据抽象模型定义的逻辑字段)的组合。抽象查询计划描述了抽象查询的所有部分以及在底层数据库中存在的相应数据源之间的关系和交互。抽象查询计划结合了关于从哪些物理实体中选择哪些逻辑字段以及对哪些物理实体应用哪些条件的信息。此外,抽象查询计划提供了用于生成分解查询的改进版本的额外优化的平台。
在以下描述中,对本发明的实施例做出引用。不过,本发明并不局限于任何特别描述的实施例。相反,以下特征和元素的结合不论是否涉及所描述的实施例均实现和实施了本发明。此外,在各种实施例中,本发明提供了相对于现有技术的许多优点。尽管本发明的实施例可实现相对于其他可能的解决方案和现有技术的优点,但不论给定实施例是否实现了特定优点均不会限制本发明的范围。因此,以下的方面、特征、实施例和优点是示例性的,而并不被看作是所附权利要求的元素或限制,除了在权利要求中明确列举的之外。同样,对“本发明”的引用将既不会被解释为此处所公开的任何发明性主题的概述也不会被认为是所附权利要求的元素或限制,除了在权利要求中明确列举的之外。
将本发明的一实施例实现为与计算机系统一起使用的程序产品,所述计算机系统例如图1中所示并在以下描述的计算机系统100。所述程序产品定义此处所述的实施例(包括方法)的功能,并能够被包含于多种承载信号的媒体之上。说明性的承载信号的媒体包括但不局限于(i)永久存储于不可写存储媒体(例如计算机内的只读存储器设备,如通过CD-ROM驱动器可读的CD-ROM盘)之上的信息;(ii)可选的存储于可写存储媒体(例如软盘驱动器内的软盘或硬盘驱动器)之上的信息;以及(iii)跨通信媒体(例如计算机或电话网络)包括无线通信传送的信息。最后一个实施例特别包括了在因特网或其他大型计算机网络上共享的信息。当这种承载信号的媒体带有执行本发明的方法的计算机可读指令时,其代表本发明的实施例。
一般而言,实现本发明实施例的软件例程可以是操作系统的一部分或者特定应用、部件、程序、模块、对象或例如可执行脚本的指令序列的一部分。这种软件例程典型地包括能够使用计算机系统执行的多个指令。同样,程序典型地包括驻留于存储器之中或存储设备之上作为其操作的一部分的变量和数据结构。此外,此处所描述的各种程序可以基于为了实现它们的应用而进行识别。不过,本领域中的技术人员可认识到,以下的任何特殊术语或特定应用使描述本发明更方便,而并不限制独立使用的具有特定应用或术语的本发明。此外,此处描述的程序的功能使用彼此交互的离散模块或部件。不过,本领域的技术人员可认识到,各种实施例可以用许多方式组合或归并这些部件和模块。
环境的物理视图
图1说明了在客户端-服务器配置中的网络化的计算机系统。客户端计算机系统1051-N包括允许它们在网络104上与其他系统进行通信的网络接口。网络104可包括局域网,其中客户端系统105和服务器系统110存在于相同的通用位置,或者网络104可包括地理上分散的系统之间的网络连接,包括因特网上的网络连接。客户端系统105通常包括经由总线连接到存储器和存储设备的中央处理器(CPU)(均未示出)。客户端系统105运行操作系统(如Linux发行套件、Microsoft Windows、IBM的AIX、FreeBSD等等),其管理硬件部件和在客户端系统105上运行的较高级软件应用之间的交互。
在一实施例中,用户建立客户端系统105和服务器系统110之间的网络连接。这种连接可包括登录过程,其中用户使用例如用户名和口令或其他认证模式(如数字证书或生物测定认证)认证对于服务器系统110的用户身份。不需要认证的系统也是可以允许的。
服务器系统110可包括类似于客户端系统105所使用的硬件部件。因此,服务器系统110通常包括通过总线相互连接的CPU、存储器和存储设备(均未示出)。服务器系统110也运行操作系统(如Linux发行套件、Microsoft Windows、IBM的OS/400或AIX、FreeBSD等等),其管理硬件部件和较高级软件应用之间的交互。
不过,图1中说明的客户端/服务器配置仅仅是示例性的一个硬件/软件配置。可使用其他配置实现本发明的实施例,不管计算机系统是否是复杂的多用户计算系统,例如通过高速网络连接的作为单一系统、单用户工作站或者它们本身缺少非易失性存储的网络设备的一组独立计算机。此外,尽管此处所描述的实施例使用客户端/服务器配置,但是使用分布式计算、网格计算和对等处理技术的实施例是可以允许的。
在一实施例中,用户使用图形用户界面(GUI)与服务器系统110交互。在特殊的实施例中,GUI内容可包括使用web浏览器122在客户端计算机系统1051上呈现的HTML文档(即网页)。在这种实施例中,服务器系统110包括用于响应来自客户端系统105的HTTP请求以及传输HTML文档到客户端系统105的超文本传输协议(http)服务器118(例如web服务器,如开放源码的Apache web服务器程序或IBM的WebSphere程序)。网页自身可以是存储于服务器系统110上的静态文档或者使用与web服务器交互以服务于来自客户端系统105的HTTP请求的应用服务器112而动态生成。
可选地,或另外地,客户端应用120可包括数据库前端或运行于客户端系统105N之上的查询应用程序。所述的应用120可允许用户构造抽象查询以及将用于处理的抽象查询提交到运行时部件114。所述的应用120可包括查询构造接口115。应用120和查询构造接口115允许用户根据描述了在数据库214上建立的抽象的数据抽象模型148来构造抽象查询。
如图1中所说明的,服务器系统110还可包括运行时部件114、DBMS服务器116和数据抽象模型148。这些部件的每一个可包括运行于服务器系统110上的软件程序。DBMS服务器116(或多个服务器)通常包括被配置用于管理数据库2141-3的软件应用。通过说明,可通过DBMS服务器116访问的独立数据库可包括使用SQL查询进行查询的关系数据库2142或使用XML查询进行查询的XML数据库2141。不过,本发明并不局限于任何特定物理数据库存储机制,并可以容易地被扩展为在不管当前已知或未知的其他这样的机制上运行。因此,数据存储机制2143说明了由DBMS服务器116管理的其他存储机制。此外,数据库214可存在于服务器系统110的本地存储系统上,或可在网络104上访问。因此,可以相对于本地和联合数据库配置以及二者的组合构建由数据抽象模型148建立的数据抽象。
在一实施例中,用户使用由数据抽象模型148定义的逻辑字段构造抽象查询。数据抽象模型148定义了在每一逻辑字段和来自底层物理数据库机制的数据之间的关系。在一实施例中,由数据抽象模型148定义的每一逻辑字段识别逻辑字段名和访问方法。所述访问方法识别数据所在的底层数据库(如数据库2141-3),以及用于在底层物理存储机制中访问数据的访问方法。以下更详细地描述了数据抽象模型、逻辑字段和访问方法的实施例。
运行时部件114被配置用于生成与包含于一个或多个数据库214中的数据的物理表达相一致的查询。换句话说,运行时部件是用于由抽象查询生成物理查询(如SQL语句)的“变换引擎”。运行时部件114获取由用户构造的抽象查询、识别对应于包括在来自数据抽象模型148的查询中的每一逻辑字段的信息,并生成由DBMS 116运行的对于底层物理存储机制的物理查询。在一实施例中,运行时部件114获得抽象查询并生成对应于给定查询的抽象查询计划,并接着使用抽象查询计划来生成分解查询。此外,运行时部件114可被配置用于将查询结果返回到请求实体。
图2A说明了本发明的多个相关部件,连同由数据抽象模型提供的抽象视图(图2A的左侧)和用于存储数据的底层数据库机制(图2A的右侧)之间的变换。
在一实施例中,请求实体(例如,与在客户端系统105上执行的应用115交互的用户)使用查询构造接口120构造抽象查询202。查询构造接口可由应用115提供,并可以是在web浏览器122上呈现的网页。由此产生的查询在此处通常被称为“抽象查询”,因为它由逻辑字段构造,而不是通过直接引用底层数据库2141-3中的数据实体。结果,可以由特定的底层关系数据库模式独立地构造抽象查询。
在一实施例中,由数据抽象模型148定义用于构造抽象查询202的逻辑字段。一般而言,数据抽象模型148使信息成为可在抽象查询内使用以指定用于数据选择的标准131以及指定从查询操作返回的结果数据的形式的一组逻辑字段。运行时部件114是由数据抽象模型148提供的抽象表示和底层物理数据库之间的桥。例如,运行时部件114可以将抽象查询202变换为从数据库2141查询数据的XML查询、关系数据库2142的SQL查询或根据另一物理存储机制(不管当前已知的或以后开发的)构造的其他查询。
环境的逻辑视图
图2B说明了示例性的抽象查询202。所述查询包括设计用于检索关于姓名为“Mary McGoon”的病人的选择标准204。由结果标准206指定将被检索的特定信息。在这种情况下,所述查询检索年龄和用于血红蛋白测试的测试结果。所检索的实际数据可包括来自用于多个测试的数据。即,查询结果可显示出已指定姓名的病人和该病人的测试结果之间的一对多关系。
此外,抽象查询202指定了模型实体201,即所说明的“病人”模型实体。通常模型实体提供表示了构造独立逻辑字段的抽象的附加层。模型实体向最终用户和应用提供了能够简化数据查询和修改任务(即,插入、搜索和删除)较高级的概念图。此外,模型实体提供了具有对于特定抽象查询的焦点或全貌的运行时部件114。换句话说,模型实体用于识别数据的宽泛范畴,如“病人”数据。作为示例,将来自抽象查询202的“病人”模型实体映射到数据库抽象模型中所有涉及“病人”模型实体的一组字段和包含与病人有关的数据的底层数据源。
在一实施例中,用户指定被查询的模型实体作为查询构造过程的一部分。由数据抽象模型148所提供的框架定义哪个模型实体为可用的。如下所述,当构建抽象查询计划时,运行时部件114可使用被选择用于抽象的模型实体,以选择根节点。可通过包括于数据抽象模型148中的额外的元数据定义模型实体。在标题为“通过数据模型实体处理复合数据(Dealingwith Composite Data through Data Model Entities)”的申请序列号为10/403,356的申请日为2003年3月31日的并在此将其整体并入作为参考的共同拥有的待决申请中更详细地描述了模型实体的详细示例。
图2B进一步说明包括了示例的多个逻辑字段规范2081-5(作为示例示出五个)的数据抽象模型148的一实施例。总体来说,逻辑字段规范208建立相对于特定的一组底层物理数据库和相应的数据库模式的抽象。本领域的技术人员将认识到,可以相对于同一组底层物理存储机制构建多个数据储存库抽象模型。因此,可以构建抽象向不同用户显示数据的不同部分,或者相对于相同数据而构建的抽象可能不同,并可对应特定用户(或用户组)的需要而定制。
图2B中所示的逻辑字段说明了相对于关系数据库构建的抽象。即,包括于字段规范208中的访问方法定义了逻辑字段和来自关系数据库(例如来自图2A的数据库2142)的表格和列之间的映射。数据抽象模型148提供逻辑字段规范208,每一逻辑字段可用于构造抽象查询(例如抽象查询202)。逻辑字段规范208存储对于每一逻辑字段的定义以及任何相关联的元数据。如所说明的,每一字段规范208识别逻辑字段名2101-5和相关联的访问方法2121-5。运行时部件114使用访问方法使逻辑字段映射特定的物理数据存储机制214。基于不同类型的逻辑字段的数量,任何数量的访问方法是可以允许的。如图2B中所说明的,提供了用于简单字段、已过滤字段和已构造字段的访问方法。
字段规范2081、2082和2085分别提供了简单访问方法2121、2122和2125。简单访问方法提供对底层物理数据表示中的特定实体的直接映射。当底层物理数据表示是关系数据库时,简单访问方法使逻辑字段映射到已识别的数据库表格和列。例如,图2B中所示的简单字段访问方法2121使逻辑字段名2101(“FirstName”)映射到名为“Demographics”的表格中的名为“f_name”的列。逻辑字段规范208也可包括指示了逻辑字段怎样涉及数据抽象模型148中的其他实体的元数据。
字段规范2083例示了已过滤字段访问方法2123。已过滤访问方法识别关联的物理实体并提供用于定义物理数据表示内的特定子组的项的规则。例如,考虑存储用于多个不同医学测试的测试结果的关系表。可定义对应每一不同测试的逻辑字段,并且将对于每一不同测试的过滤器用于识别与逻辑字段相关联的特定测试。在图2B中提供了示例,其中,用于已过滤字段2123的访问方法将逻辑字段名2103(“Hemoglobin_Test”)映射到名为“Tests”的表格中的名为“Test_Result”的列,并定义了过滤器“Test_ID=‘1243’”。因此,已过滤字段作为用于限制来自较大组的数据的项的选择标准,而无需用户了解怎样在底层物理存储机制中表示数据的细节或指定选择标准作为查询构造过程的一部分。
字段规范2084例示了已构造访问方法2124。已构造访问方法使用提供作为访问方法定义的一部分的表达而生成来自一个或多个物理数据项或由其他逻辑字段返回的数据的值。这样,可以计算不直接存在于底层数据表示之中的信息,并将其提供给请求实体。在图2B中所说明的示例中,已构造字段访问方法2123使逻辑字段“Age”映射到名为“Birthdate”的另一个逻辑字段2085。逻辑字段“Birthdate”2105映射到人口统计表格中的列。构造表达被用于计算已构造字段的值。在此示例中,通过将当前日期减去由“Birthdate”逻辑字段返回的日期值计算出年龄值。
作为示例,图2B中所示的数据储存库抽象部件148的字段规范208是映射到关系数据表示2142中所表示数据的逻辑字段的代表。不过,数据储存库抽象部件148或其他逻辑字段规范的其他实例可以映射到其他物理数据表示(例如图2A中所说明的数据库2141或2143)。
在以下表I中示出了对应于抽象查询202的说明性的抽象查询。在此示例中,使用XML表示抽象查询202。在一实施例中,应用115可被配置用于生成XML文档以表示通过用户与查询构造接口120或web浏览器122交互而构造的抽象查询。本领域的技术人员将认识到,XML是用于使共享结构化文本和信息更方便的公知语言,不过也可以使用其他语言。
表I-查询示例
001 <?xml version=“1.0”?>
002 <!--查询串表示:(FirstName=“Mary”AND LastName=
003 “McGoon”)OR State=“NC”-->
004 <QueryAbstraction>
005 <Selection>
006 <Condition internalID=“4”>
007 <Condition field=“FirstName”operator=“EQ”value=“Mary”
008 internalID=“1”/>
009 <Condition field=“LastName”operator=“EQ”value=“McGoon”
010 internalID=“3”relOperator=“AND”></Condition>
011 </Condition>
012 </Selection>
013 <Results>
014 <Field name=“Age”/>
015 <Field name=“Hemoglobin test”/>
016 </Results>
017 <Entity name=“Patient”>
018 <EntityField required=“Hard”>
019 <FieldRef name=“data://Demographic/Patient ID”/>
020 <Usage type=“query”/>
021 </EntityField>
022 </Entity>
023 </QueryAbstraction>
表I中所示的抽象查询包括包含了选择标准的选择规范(行005-012)和结果规范(行013-016)。在一实施例中,选择标准由字段名(对于逻辑字段)、比较运算符(=、>、<等等)以及值表达(将字段与其进行比较的对象)所组成。在一实施例中,结果规范是将返回作为查询执行的结果的逻辑字段列表。所返回的实际数据与选择标准一致。模型实体“病人”在行017被识别,并且使所述模型实体与人口统计表格的病人ID列(行019)相关联。
抽象查询处理
图3根据本发明的一实施例说明了运行时部件114的操作。如上所述,运行时部件114被配置用于接收抽象查询,并作为响应生成例如关系数据库的底层物理数据存储机制的查询。查询可以被保存、存储于高速缓存中或在不同用户之间共享。一旦完成查询并选择其用于执行,则将查询传送到运行时部件114。在一实施例中,使用公知的数据通信协议将查询跨网络104传输到系统110。
一旦接收了查询,则运行时部件114处理抽象查询305。在一实施例中,运行时部件114接收例如XML的结构化的形式的抽象查询305,如表I中所说明的查询。运行时部件114首先由抽象查询305构造查询的中间表示。在一实施例中,中间表示包括抽象查询计划,所述的抽象查询计划包括来自数据抽象模型的抽象元素和涉及底层物理数据存储机制的元素的组合。
对于相对于关系数据库构建的数据抽象模型,抽象查询计划包括了关于需要哪些关系数据库可用以及怎样将表格连接在一起(即,表格之间或逻辑字段之间的关系、所检索数据的条件)的所有信息。通过此信息,运行时部件生成用于查询数据库214的SQL语句312。
构建抽象查询计划
如上所述,抽象查询计划包括用于抽象查询之中的逻辑字段,指示了对应于所述字段的物理数据源以及怎样连接来自所需数据源的数据。因此,运行时部件114需要使由数据库抽象模型提取的数据库的结构或模式可用,以处理抽象查询。
图4A说明了底层数据库的图形表示400。此表示400用于定义底层物理存储机制中的数据源之间的关系。在一实施例中,运行时部件114使用图形表示400来识别包含了与给定抽象查询有关的数据的数据源。图形表示400的结构来源于被提取作为数据抽象模型148的一部分并在查询处理期间对运行时部件114可用的底层物理数据库结构。
在底层物理存储机制是关系数据库时,可将关系模式用于生成图形表示400。图400的每一节点405(用于说明而标注的三个节点)可表示来自底层关系模式的实际的表格,或可表示由一个或多个实际表格所定义的表格,如数据库视图或通用表格表示。所述关系也可来源于由指示了不同逻辑字段和物理数据源之间的关系的数据抽象模型148所提供的元数据。例如,数据抽象模型148可包括指示了字段之间的一对一和一对多关系的“关系”部分。连接节点的是边缘410。如所说明的,通过边缘4101连接节点1和节点2,而通过边缘4102连接节点2和节点3。同样如所说明的,通过节点2连接节点1和节点3。类似地连接其他节点。
边缘410表示怎样可以使来自不同节点的数据连接在一起,即,位于不同节点的数据之间的关系。这种关系可包括一对一和一对多关系。运行时部件114使用表示400和给定的抽象查询来识别用于生成抽象查询计划的子图。即,尽管图形表示400表示了由数据库抽象模型提取的整个数据库,但仅需要响应于给定抽象查询所需的节点和边缘来建立抽象查询计划。因此,运行时部件114由图形表示400构建子图,其包括最低限度所需的一组节点和边缘。当处理抽象查询时,运行时部件114仅需要包含了与抽象查询有关的数据的节点。
不过,大多数查询将不需要来自图形表示400的每一节点的数据。因此,图4B说明了来自图4A的数据库结构的修改版本。子图430仅包括特定抽象查询所需的节点。此外,改变了图以移除节点之间的任何重复路径。这防止了运行时部件114在处理抽象查询时停留于重复循环中。当边缘将节点连接成循环时,可以出现这种路径。例如,路径1→2→5→4→1是通过图形表示400的循环路径的示例。通过移除节点1和节点2之间的边缘4101而切断了这种路径。在一实施例中,在生成抽象查询计划之前切断存在于节点的子图(例如子图430)中的任何循环路径。
在一实施例中,构建抽象查询计划的第一步骤是建立仅包括特定抽象查询所需的节点和边缘(换句话说,数据和在数据源之间的关系)的底层数据表示的模型。将包括了涉及用于抽象查询的模型实体的数据的节点安置于子图430的根。例如,图4中说明的指定用于抽象查询202的“病人”模型实体指定了被查询的模型实体是“病人”模型实体。因此,人口统计节点420被用作用于抽象查询420的根节点。
在一实施例中,生成子图430表示的步骤可以包括生成抽象查询所需的节点(数据源)和边缘(节点之间关系)的Steiner树表示。如本领域的技术人员将认识到的,Steiner树是连接了包括一组所需节点的子图的最小权重。将包括了涉及用于抽象查询的模型实体的数据的节点安置于树根,并且最小化到终端节点的距离以生成子图430。如图4B中所示,选择了节点420、422、424和426。在此示例中,被选择用于子图430的每一节点也包含处理查询所需的数据,但此结果不是必需的。例如,如果抽象查询202也需要来自“医生”数据源节点428的数据,那么节点432将被包括于子图430中,尽管它将仅仅用于将节点428连接到人口统计节点420。
由运行时部件生成的子图形表示430使用在数据储存库抽象部件中指定的数据之间的关系。在一实施例中,可向用户提供初始子图形表示,并给用户机会修改此初始图形表示。可选地或另外地,可向用户提供允许用户指定在图400中说明的数据源之间的额外的或不同的关系的接口。例如,如子图形表示430中所说明的,人口统计数据源通过测试数据源连接到记录数据源。不过,也可通过图8A中所说明的表格8连接记录数据源。例如当测试表格非常大,使得将它仅仅用于连接过程变得非常低效时,这可以是有利的。在这种情况下,有经验的用户或数据库管理员能够指定优选的子图形表示用于查询处理。
一旦确定了用于特定抽象查询的子图430,则运行时部件114生成一组表格实例(以下关于图6进行更详细描述)。每一表格实例对应于来自子图形表示430的节点。在一实施例中,抽象查询计划包括一组一个或多个表格实例,连同一组连接关系以及关于连接关系的元数据。每一表格实例可包括由运行时部件114使用的包括来自数据抽象模型的逻辑数据和来自底层物理存储机制的物理数据(例如表格和列)的组合的数据结构。
图5示出了表格实例502的数据结构的一实施例的说明。如所说明的,表格实例502包括字段部分506、表格部分508、条件部分510。表格部分508识别对应于字段部分506的数据所在的底层物理数据源(例如,关系表格、视图或用于关系数据源的通用表格表示)。此外,条件部分510指定了对包括于抽象查询中的逻辑字段所指定的数据的限制。
表格实例502包括用于识别每一独特表格实例的标识符504。此外,标识符504可包括描述在抽象查询计划中的表格的目的的属性。例如,属性可将表格实例分类为用于选择返回用于抽象查询的数据的信息表格(例如来自抽象查询202的结果标准204)或者用于表示包括于抽象查询中的条件限制的条件表格。
运行时部件114被配置用于划分在抽象查询中指定的条件和逻辑字段,并将它们按单元分组。每一单元包括在相同数据源上应用的逻辑字段。换句话说,包括于特定表格实例中的所有逻辑数据(例如字段和条件)对应用于该特定表格实例的存在于由表格部分508指示的数据源中的数据。参考图6进一步描述了表格实例的特定示例和其中用于抽象查询计划的一部分。
图6说明了由抽象查询600生成的抽象查询计划的示例。用户使用数据库抽象模型148和查询构造接口120来构造抽象查询600并将其提交到运行时部件114用于处理。在此示例中,用户已指定了模型实体“病人”。抽象查询602包括“血红蛋白测试”的选择字段和结果标准“年龄>18”,以及病人姓名和年龄的结果标准。因此,所述查询将检索具有底层数据库中的数据的其人已接受血红蛋白测试并且年龄大于18岁的任何病人的姓名和年龄。
表格实例“t1”和“t2”是对应于抽象查询600的抽象查询计划的一部分。每一表格包括字段部分(610和616)、数据源部分(612和618)以及条件(614和620)。标注为“t1”的表格实例602结合了由抽象查询600指定的选择标准。数据源部分612指示了包括于此表格实例602中的所有逻辑字段是依靠来自人口统计节点(例如,在图4B中所说明的节点420)的数据。如所说明的,表格602包括指示了此表格实例是信息表格(即,数据源部分612存储将被包括于用户结果之中的数据)的属性603。字段选择数据610包括映射病人姓名的简单的逻辑字段“Name”,以及用于表示被识别为由生日构造的Age逻辑字段的“已构造字段一”的“C1”。如所说明的,用上标“s”修饰这些字段,所述的上标“s”表示此字段用于选择返回到用户的数据。当实现这些属性用于在计算机系统(例如服务器系统110)中执行时,将这些属性存储为用于表示表格实例的数据结构的一部分。在此情况下,条件部分614包括用于限制从数据源612中选择的数据的条件、年龄条件限制和“人口统计”数据源612的组。
在抽象查询计划中,表格实例604以标识符“t2”标记,并结合了来自抽象查询600的选择条件。表格属性605指示了该表格为条件表格,即,它对应包括于抽象查询中的选择条件。在一实施例中,当抽象查询计划被用于构造关系DBMS的SQL查询时,条件表格可成为SQL语句的“where”子句的一部分。字段部分616包括“Test1”和“ID”字段。用于表格实例604的数据源是“tests”表格618。此外,条件部分620包括未直接通过查询指定的条件“type=‘1243’”。不过,此条件隐含地包括于使用已过滤字段映射数据的来自“血红蛋白”测试逻辑字段的查询中。
通过连接关系630连接了这两个表格实例。人口统计表格实例602和测试表格实例604之间的连接是一对多的关系。即,每一病人(模型实体)可具有多个测试。在一实施例中,可在数据抽象模型148中指定逻辑字段之间的关系。图6中说明的抽象查询计划使用单线段632和双线段634描述了这种关系。此外,连接关系包括连接类型属性638。如所说明的,所述连接指示为“左”连接。
本领域的技术人员将认识到,“左”连接是关系数据库中的表格之间的关系的通用类型,并且基于所处理的抽象查询,其他连接类型可以是“右”或“内部”。连接类型指示了怎样跨表格实例将数据结合在一起,而无需在每个表格中重复所有数据。属性636(使用罗马数字“II”所说明的)向运行时部件指示了数据是从已过滤字段中选择的。当生成对于已过滤字段的分解查询时,运行时部件114可以被配置用于由表格实例指示的数据源生成子选择语句。如所说明的,测试数据源618可包括来自许多类型的测试的测试结果,包括由抽象查询600的一个选择逻辑字段所引用的血红蛋白测试。已过滤字段“hemoglobin test”被用于仅从使用已过滤条件620即“type=1243”的此测试数据源中检索血红蛋白测试结果。
本领域的技术人员将认识到,图6中所说明的抽象查询计划是说明性的,并由特定抽象查询600生成。生成用于其他抽象查询的抽象查询计划将基于包括于每一特定抽象查询之中的信息。
一旦构建了抽象查询计划,可以在生成分解查询语句之前优化所述的抽象查询计划。如上所述,建立抽象查询计划的一个目的是生成给出对运行时部件114可用的信息的尽可能有效的分解查询。因此,在一实施例中,运行时部件可多次传递抽象查询计划,以执行对抽象查询计划的任何数量的不同优化。
此外,可向用户提供抽象查询计划,并给用户机会选择执行哪些优化或直接修改抽象查询计划。例如,如果由运行时部件生成的抽象查询计划建立具有大型表格(如测试表格)的多个表格实例的抽象查询计划,那么用户选择的一个优化将允许用户指引运行时部件114以最小化大型表格的表格实例的数量。或者用户可指定不同的条件组,以便当生成抽象查询计划时使用。因为可能有多个抽象查询计划,所以可向用户提供机会权衡这些竞争性计划的好处,以选择最有效的抽象查询计划。例如,如果测试表格(大的)和诊断表格(小的)均可用,连接到小的表格可以是更有效的选择。
另一种可能的优化是将对于抽象查询指定的一组已过滤字段变换为没有过滤器的单一查询。当用户多次使用同样的已过滤字段构造抽象查询时,这种优化将是有用的。一般而言,当已过滤字段被用于查询关系数据库时,将其分解为子选择SQL查询语句。不过,多次执行同样的子选择语句是非常低效的。因此,另一种优化将是建立对于已过滤字段的通用表格表达,而不是多个子选择语句。本领域的技术人员将认识到,以上所述的优化是示例性的,并且进一步地,一旦构建了抽象查询计划,在建立分解查询之前所述的抽象查询计划提供了可由用户或由检查抽象查询计划的运行时部件114选择的多种不同的优化的平台。
一旦构建了抽象查询计划,则运行时部件114生成底层物理数据存储机制的查询。当这包括关系DBMS时,运行时部件遍历抽象查询计划以生成SQL语句。在一实施例中,运行时部件114可完全遍历表格实例以生成对于每一表格实例的SQL片段,并接着按照对于抽象查询计划的抽象查询确定的连接关系中所指定的而将所述实例连接在一起。
为了完成图6中描述的说明性抽象查询计划的处理,运行时部件114遍历抽象查询计划以生成SQL语句640。运行时部件114开始于包括了用于抽象查询计划的模型实体的表格实例602。由表格实例602,运行时部件114生成包括了姓名和年龄的选择标准的分解查询640的一部分。接着,运行时部件114生成SQL语句,以包括在条件表格实例604中指定的条件。
从而抽象查询计划提供了依靠抽象逻辑字段和底层物理数据源的一组离散对象。抽象查询计划不试图直接建立分解查询,而是提供抽象查询的中间表示。此中间表示提供可被系统地遍历以由任何抽象查询生成正确的分解查询的正式的数据结构。
操作方法
图7说明了运行时部件114处理抽象查询的操作700的流程图。操作700对应于图3中说明的抽象查询305、中间表示310和分解查询312的变换。此方法开始于步骤702,其中,运行时部件114从请求实体接收抽象查询。使用查询构造接口115构造所述查询,或所述查询也可以是之前由相同或不同用户构造的已保存查询。这样,可将相同的抽象查询用于不同的底层数据库。即,可通过改变访问方法以使用不同的模式或底层存储机制来说明所存储的相同信息,而相对于不同的底层数据库表示构建相同的逻辑字段。由逻辑字段和数据抽象模型提供的抽象隐藏了底层系统中的差异。
接着,在步骤704,运行时部件114由抽象查询生成抽象查询计划。在一实施例中,抽象查询计划包括由给定抽象查询构建的一组表格实例,以及底层物理数据库的子图。接着,运行时部件114遍历抽象查询计划以生成与底层数据存储机制的存储格式一致的查询。例如,当底层存储机制是关系数据库时,运行时部件114生成提供给关系DBMS用于执行的SQL语句。一旦完成抽象查询计划,则运行时部件114可从模型实体的根节点开始完全地遍历抽象查询计划,以生成底层物理数据库的分解查询。
图8根据本发明的一实施例说明了用于生成抽象查询计划的方法。在运行时部件114已接收抽象查询之后,此方法始于步骤810。如上所述,可以使用查询构造接口115构造抽象查询。在步骤810,识别包括于抽象查询中的每一逻辑字段,并且从数据抽象模型148中检索字段的定义。接着在步骤820,运行时部件检索底层物理数据库的图形表示,如图4A和4B中所说明的图结构。由此表示,运行时部件114建立包括了由数据源或者查询的条件需求所需要的所有节点的数据库的非循环模型,并可包括连接查询的节点所需的任何主干节点。
在步骤830,识别了对应于被查询的模型实体的图形表示中的节点。如上所述,基于用户所需的查询焦点,使每一抽象查询集中于模型实体。数据抽象模型148定义了怎样使模型实体关联底层物理数据存储中的数据(例如,来自关系数据库的行)。一旦已识别了所述节点,则运行时部件114构建对应于子图节点、逻辑字段和由查询直接指定的或者作为已过滤或已构造逻辑字段的一部分隐含地指定的条件的一组表格实例。通过根据由数据库的图形表示提供的连接关系和由数据抽象模型提供的任何关系数据而连接表格实例,运行时部件完成抽象查询计划。
在步骤850,在完成抽象查询计划之后,运行时部件114遍历抽象查询计划以由根据已识别的连接关系而连接的每一表格实例生成分解查询。将这种分解查询提供给管理底层数据源(例如关系数据库)的DBMS用于执行。在一实施例中,可由DBMS 116生成并处理多个查询分段。在这样的实施例中,运行时部件可被配置用于归并由每一子查询生成的结果。在步骤870,可将结果格式化并返回给用户。在一实施例中,这可以包括返回被格式化为用于web浏览器122的HTML的一组查询结果。可选地,这可以包括将结果返回给显示结果的应用120,或也可以执行额外的分析,例如配置用于发布抽象查询并分析结果的统计分析。
尽管前述内容指向本发明的实施例,但可以设计本发明的其他的和进一步的实施例,而无需背离本发明的基本范围,并且通过以下的权利要求确定本发明的范围。
Claims (41)
1.一种访问数据库中数据的方法,包括:
从请求实体中接收由多个逻辑字段构造的抽象查询,其中每一逻辑字段指定(i)用于识别逻辑字段的名,以及(ii)使逻辑字段映射到数据库中的数据源的访问方法;
由抽象查询生成抽象查询的中间表示,其指示(i)哪些逻辑字段和访问方法被包括于抽象查询中,(ii)在包含该数据的数据库内的数据源,以及(iii)数据库中的数据源之间的关系;以及
由中间表示生成数据库的分解查询。
2.权利要求1的方法,其中所述数据库是关系数据库,并且其中所述数据源是关系表格。
3.权利要求1的方法,其中,所述数据库包括使用相对于多个独立关系数据库创建的关系模式所定义的联合数据库。
4.权利要求2的方法,其中所述的生成抽象查询的中间表示的步骤包括识别仅包括了生成中间表示所需的关系表格和表格之间关系的数据库表示。
5.权利要求4的方法,其中所述的已识别的数据库表示包括Steiner树表示,其中所述的Steiner树表示的根节点对应于由抽象查询识别的模型实体,以及其中所述的模型实体识别由抽象查询进行查询的数据的逻辑焦点。
6.权利要求1的方法,其中所述的抽象查询的中间表示包括抽象查询计划,其中所述的抽象查询计划包括(i)多个表格实例,其中每一表格实例包括数据源的指示、包括于基于在所指示的数据源上存在的数据的抽象查询中的每一逻辑字段以及用于限制从数据源中选择的数据的条件;以及(ii)指示相对于抽象查询多个表格实例如何相互联系的一组连接关系。
7.权利要求6的方法还包括通过最小化包括于抽象查询计划中的相同表格实例的数量而优化抽象查询计划。
8.权利要求1的方法,其中所述的对于每一逻辑字段的访问方法从简单的、已过滤的或已构造的访问方法中选择其一。
9.权利要求1的方法,其中所述的生成数据库的分解查询的步骤包括生成SQL语句。
10.权利要求1的方法,其中所述的查询构造接口包括基于web的接口。
11.权利要求1的方法还包括发布对于数据库的分解查询以检索一组查询结果数据,以及返回查询结果数据到请求实体。
12.一种提供关系数据库的抽象的方法,包括:
定义数据抽象模型,其中所述的数据抽象模型包括:
(i)多个逻辑字段,其中每一逻辑字段识别逻辑字段名和使逻辑字段映射到关系数据库中的表格的列的访问方法,(ii)对逻辑字段之间关系的指示,以及(iii)识别关系数据库中的数据源之间关系的关系数据库的表示;
提供被配置用于允许用户由多个逻辑字段构造抽象查询的查询构造接口;以及
提供被配置用于处理抽象查询以生成抽象查询的中间表示的运行时部件。
13.权利要求12的方法,其中所述的抽象查询的中间表示包括抽象查询计划,其中所述的抽象查询计划包括(i)多个表格实例,其中每一表格实例包括对数据源的指示、包括于基于在所指示的数据源上存在的数据的抽象查询中的每一逻辑字段以及用于限制从所指示的数据源中选择的数据的条件;以及(ii)指示相对于抽象查询多个表格实例如何相互联系的一组连接关系。
14.权利要求12的方法还包括向用户提供抽象查询计划的指示,并允许用户通过(i)修改所述的一组连接关系或者(ii)减少包括于抽象查询计划中的相同表格实例的数量而优化中间表示。
15.权利要求12的方法,其中所述的向用户提供中间表示的指示的步骤包括生成和显示说明了每一表格实例和表格实例之间的一组连接关系的接口的图形表示。
16.权利要求13的方法,其中所述的运行时部件进一步被配置用于由抽象查询计划生成包括SQL语句的关系数据库的分解查询。
17.权利要求12的方法,其中所述的关系数据库的表示包括图形表示,其中每一节点表示数据源,而每一边缘表示数据源之间的关系。
18.权利要求12的方法,其中所述的查询构造接口包括基于web的接口。
19.权利要求12的方法,其中所述的数据库包括使用由多个独立的关系数据库构建的关系模式所定义的联合数据库。
20.权利要求12的方法,其中所述的对于每一逻辑字段的访问方法从简单的、已过滤的和已构造的访问方法中选择其一。
21.一种处理抽象查询的方法,包括:
从请求实体接收由多个逻辑字段构造的抽象查询,其中每一逻辑字段指定(i)用于识别逻辑字段的名,(ii)使逻辑字段映射数据库中的数据源的访问方法;
识别(i)由抽象查询中的多个逻辑字段引用的一组数据源以及(ii)所述一组数据源之间的一组关系;
确定所述一组数据源的非循环图形表示;
生成抽象查询计划,其中所述的抽象查询计划包括:
(a)多个表格实例,其中每一表格实例包括:
(i)对数据源的指示;
(ii)包括于基于在所指示的数据源上存在的数据的抽象查询中的每一逻辑字段;以及
(iii)用于限制从所指示的数据源中选择的数据的条件;以及
(b)指示多个表格实例如何相互联系的一组连接关系;
执行抽象查询计划的至少一种优化以生成优化的抽象查询计划;以及
遍历优化的抽象查询计划以生成数据源的分解查询。
22.权利要求21的方法,其中所述的优化包括(i)修改所述的一组连接关系或者(ii)减少包括于抽象查询计划中的相同表格实例的数量。
23.权利要求21的方法,还包括,
向配置用于管理存储于数据库中的数据的数据库管理系统提供分解查询;
接收一组查询结果数据;以及
返回所述一组查询结果数据到请求实体。
24.权利要求21的方法,其中所述的关系数据库的图形表示包括这样的图形表示,其中每一节点表示数据源,而每一边缘表示数据源之间的关系。
25.权利要求21的方法,其中所述的一组数据源包括关系数据库中的一组表格,并且其中所述的数据源之间的一组关系包括主码和外码关系。
26.权利要求21的方法,其中所述的数据库包括使用由多个独立的关系数据库构建的关系模型所定义的联合数据库。
27.权利要求21的方法,其中所述的一组数据源的非循环图形表示包括Steiner树表示,其中所述的Steiner树表示的根节点对应于由抽象查询识别的模型实体。
28.权利要求21的方法,其中所述的对于每一逻辑字段的访问方法从简单的、已过滤的和已构造的访问方法中选择其一。
29.权利要求21的方法,其中所述的建立所述的一组数据的分解查询的步骤包括生成SQL语句。
30.权利要求21的方法,其中所述的查询构造接口包括使用因特网web浏览器应用访问的基于web的接口。
31.一种包含多个指令的计算机可读媒介,当所述的指令在计算机系统上执行时被配置用于执行操作,所述操作包括:
从请求实体中接收由多个逻辑字段构造的抽象查询,其中每一逻辑字段提供(i)用于识别逻辑字段的名,以及(ii)使逻辑字段映射到数据库中的数据源的访问方法;
由抽象查询生成抽象查询的中间表示,其识别来自抽象查询的数据、包含该数据的数据库内的相应数据源以及数据库中的不同数据源之间的关系;以及
由中间表示生成数据库的分解查询。
32.权利要求31的计算机可读媒介,其中所述数据库是关系数据库。
33.权利要求31的计算机可读媒介,其中所述的已识别的数据库表示包括Steiner树表示,其中所述的Steiner树表示的根节点对应于由抽象查询识别的模型实体。
34.权利要求31的计算机可读媒介,其中所述的抽象查询的中间表示包括抽象查询计划,其中所述的抽象查询计划包括(i)多个表格实例,其中每一表格实例包括:
数据源的表示、包括于基于在所指示的数据源上存在的数据的抽象查询中的每一逻辑字段以及用于限制从数据源中选择的数据的条件;以及(ii)指示相对于抽象查询多个表格实例如何相互联系的一组连接关系。
35.一种包含多个指令的计算机可读媒介,当所述的指令在计算机系统上执行时被配置用于执行操作,所述操作包括:
定义数据抽象模型,其中所述的数据抽象模型包括:
多个逻辑字段,其中每一逻辑字段识别逻辑字段名和使逻辑字段映射到关系数据库中的数据源的访问方法;对逻辑字段之间关系的指示;以及识别关系数据库中的数据源之间关系的关系数据库的图形表示;以及
提供被配置用于允许由多个逻辑字段构造抽象查询的查询构造接口;
提供被配置用于处理抽象查询以由抽象查询生成关系数据库的分解查询的运行时部件。
36.一种用于处理抽象查询的系统,包括:
数据抽象模型,其中所述的数据抽象模型包括(i)多个逻辑字段,其中每一逻辑字段指定(a)用于识别逻辑字段的名,以及(b)使逻辑字段映射到数据库中的数据的访问方法,(ii)由数据抽象模型提取的底层物理数据存储机制的图形表示;
配置用于允许用户由多个逻辑字段构造抽象查询的用户接口;
配置用于接收抽象查询并作为响应生成抽象查询计划的运行时部件,其中所述的抽象查询计划包括(i)多个表格实例,其中每一表格实例包括对数据源的指示、包括于基于在所指示的数据源上存在的数据的抽象查询中的每一逻辑字段以及用于限制从所指示的数据源中选择的数据的条件;以及(ii)指示相对于抽象查询多个表格实例如何相互联系的一组连接关系;以及
遍历抽象查询计划以基于每一表格实例和表格实例之间所表示的连接关系而生成所述一组数据的分解查询。
37.权利要求36的系统还包括,
发布分解查询到底层物理数据存储机制以检索一组查询结果数据;以及
返回所述的一组查询结果数据到请求实体。
38.权利要求36的系统,其中所述的底层物理数据存储机制包括关系数据库中的一组表格。
39.权利要求36的系统,其中所述的数据库包括使用由多个独立的关系数据库构建的关系模式所定义的联合数据库。
40.权利要求36的系统,其中所述的一组数据源的非循环图形表示包括Steiner树表示,其中所述的Steiner树表示的根节点对应于由抽象查询识别的模型实体。
41.权利要求36的系统,其中所述的用户接口被进一步配置用于向用户提供抽象查询计划的指示,并允许用户通过(i)修改所述的一组连接关系或者(ii)减少包括于抽象查询计划中的相同表格实例的数量而优化中间表示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/005,418 US7461052B2 (en) | 2004-12-06 | 2004-12-06 | Abstract query plan |
US11/005,418 | 2004-12-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1786950A true CN1786950A (zh) | 2006-06-14 |
CN100424696C CN100424696C (zh) | 2008-10-08 |
Family
ID=36575596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200510115125XA Active CN100424696C (zh) | 2004-12-06 | 2005-11-10 | 处理抽象查询的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (2) | US7461052B2 (zh) |
CN (1) | CN100424696C (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591952A (zh) * | 2011-12-28 | 2012-07-18 | 用友软件股份有限公司 | 基于语义的数据查询装置和基于语义的数据查询方法 |
CN102822819A (zh) * | 2010-01-15 | 2012-12-12 | 起元技术有限责任公司 | 管理数据查询 |
CN103744888A (zh) * | 2013-12-23 | 2014-04-23 | 新浪网技术(中国)有限公司 | 反垃圾邮件网关查询数据库的方法和系统 |
CN104050264A (zh) * | 2014-06-19 | 2014-09-17 | 华为技术有限公司 | 一种生成sql语句的方法和装置 |
US9116955B2 (en) | 2011-05-02 | 2015-08-25 | Ab Initio Technology Llc | Managing data queries |
CN104866650A (zh) * | 2015-04-28 | 2015-08-26 | 北京海尔广科数字技术有限公司 | 一种创建抽象设备的方法和装置 |
CN105956012A (zh) * | 2016-04-21 | 2016-09-21 | 哈尔滨工程大学 | 基于图划分策略的数据库模式抽象方法 |
WO2017097160A1 (en) * | 2015-12-07 | 2017-06-15 | Huawei Technologies Co., Ltd. | System and method for caching and parameterizing ir |
US9891901B2 (en) | 2013-12-06 | 2018-02-13 | Ab Initio Technology Llc | Source code translation |
CN109062952A (zh) * | 2018-06-22 | 2018-12-21 | 北京奇艺世纪科技有限公司 | 一种数据查询方法、装置及电子设备 |
CN109710220A (zh) * | 2018-12-12 | 2019-05-03 | 平安科技(深圳)有限公司 | 关系型数据库查询方法、装置、设备及存储介质 |
US10417281B2 (en) | 2015-02-18 | 2019-09-17 | Ab Initio Technology Llc | Querying a data source on a network |
US10437819B2 (en) | 2014-11-14 | 2019-10-08 | Ab Initio Technology Llc | Processing queries containing a union-type operation |
CN110321355A (zh) * | 2019-07-12 | 2019-10-11 | 杭州美巴科技有限公司 | 一种自适应部分查询字段系统及执行方法 |
CN110489465A (zh) * | 2018-09-28 | 2019-11-22 | 北京数聚鑫云信息技术有限公司 | 一种数据库访问方法和装置 |
CN110651264A (zh) * | 2017-04-25 | 2020-01-03 | 米雷克斯简易股份公司 | 具有时态关系数据库的关系数据库管理系统中的查询计划生成和执行 |
US11093223B2 (en) | 2019-07-18 | 2021-08-17 | Ab Initio Technology Llc | Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7062502B1 (en) * | 2001-12-28 | 2006-06-13 | Kesler John N | Automated generation of dynamic data entry user interface for relational database management systems |
US8244702B2 (en) * | 2002-02-26 | 2012-08-14 | International Business Machines Corporation | Modification of a data repository based on an abstract data representation |
US6996558B2 (en) * | 2002-02-26 | 2006-02-07 | International Business Machines Corporation | Application portability and extensibility through database schema and query abstraction |
US7900133B2 (en) | 2003-12-09 | 2011-03-01 | International Business Machines Corporation | Annotation structure type determination |
US7302447B2 (en) * | 2005-01-14 | 2007-11-27 | International Business Machines Corporation | Virtual columns |
US20060116999A1 (en) * | 2004-11-30 | 2006-06-01 | International Business Machines Corporation | Sequential stepwise query condition building |
US7461052B2 (en) * | 2004-12-06 | 2008-12-02 | International Business Machines Corporation | Abstract query plan |
US8112459B2 (en) * | 2004-12-17 | 2012-02-07 | International Business Machines Corporation | Creating a logical table from multiple differently formatted physical tables having different access methods |
US7333981B2 (en) * | 2004-12-17 | 2008-02-19 | International Business Machines Corporation | Transformation of a physical query into an abstract query |
US8131744B2 (en) * | 2004-12-17 | 2012-03-06 | International Business Machines Corporation | Well organized query result sets |
US7321895B2 (en) * | 2005-01-14 | 2008-01-22 | International Business Machines Corporation | Timeline condition support for an abstract database |
US8122012B2 (en) | 2005-01-14 | 2012-02-21 | International Business Machines Corporation | Abstract record timeline rendering/display |
US7624097B2 (en) * | 2005-01-14 | 2009-11-24 | International Business Machines Corporation | Abstract records |
US8095553B2 (en) * | 2005-03-17 | 2012-01-10 | International Business Machines Corporation | Sequence support operators for an abstract database |
US7606829B2 (en) * | 2005-04-14 | 2009-10-20 | International Business Machines Corporation | Model entity operations in query results |
US7734619B2 (en) * | 2005-05-27 | 2010-06-08 | International Business Machines Corporation | Method of presenting lineage diagrams representing query plans |
US20070088735A1 (en) * | 2005-10-17 | 2007-04-19 | International Business Machines Corporation | Optimization-based visual context management |
US7444332B2 (en) * | 2005-11-10 | 2008-10-28 | International Business Machines Corporation | Strict validation of inference rule based on abstraction environment |
US7440945B2 (en) * | 2005-11-10 | 2008-10-21 | International Business Machines Corporation | Dynamic discovery of abstract rule set required inputs |
US7774355B2 (en) | 2006-01-05 | 2010-08-10 | International Business Machines Corporation | Dynamic authorization based on focus data |
US7945559B2 (en) * | 2006-03-22 | 2011-05-17 | Microsoft Corporation | Completion of partially specified paths |
US8527502B2 (en) * | 2006-09-08 | 2013-09-03 | Blade Makai Doyle | Method, system and computer-readable media for software object relationship traversal for object-relational query binding |
US20080168042A1 (en) * | 2007-01-09 | 2008-07-10 | Dettinger Richard D | Generating summaries for query results based on field definitions |
US20080168043A1 (en) * | 2007-01-09 | 2008-07-10 | Dettinger Richard D | System and method for optimizing query results in an abstract data environment |
US7668860B2 (en) * | 2007-04-02 | 2010-02-23 | Business Objects Software Ltd. | Apparatus and method for constructing and using a semantic abstraction for querying hierarchical data |
US7680780B2 (en) * | 2007-04-06 | 2010-03-16 | International Business Machines Corporation | Techniques for processing data from a multilingual database |
US8214351B2 (en) * | 2007-04-16 | 2012-07-03 | International Business Machines Corporation | Selecting rules engines for processing abstract rules based on functionality and cost |
US8595231B2 (en) * | 2007-04-26 | 2013-11-26 | International Business Machines Corporation | Ruleset generation for multiple entities with multiple data values per attribute |
US8140557B2 (en) * | 2007-05-15 | 2012-03-20 | International Business Machines Corporation | Ontological translation of abstract rules |
US7895192B2 (en) * | 2007-07-19 | 2011-02-22 | Hewlett-Packard Development Company, L.P. | Estimating the loaded execution runtime of a database query |
US7836071B2 (en) * | 2007-09-18 | 2010-11-16 | International Business Machines Corporation | Displaying relevant abstract database elements |
US7996384B2 (en) * | 2007-12-12 | 2011-08-09 | International Business Machines Corporation | Query based rule optimization through rule combination |
US8326847B2 (en) * | 2008-03-22 | 2012-12-04 | International Business Machines Corporation | Graph search system and method for querying loosely integrated data |
US10552391B2 (en) * | 2008-04-04 | 2020-02-04 | Landmark Graphics Corporation | Systems and methods for real time data management in a collaborative environment |
EP2266021A4 (en) * | 2008-04-04 | 2014-01-01 | Landmark Graphics Corp | SYSTEMS AND METHOD FOR CORRELATING METADATA MODELS AND ASSET LOGIC MODEL PRESENTATIONS |
US20090271360A1 (en) * | 2008-04-25 | 2009-10-29 | Bestgen Robert J | Assigning Plan Volatility Scores to Control Reoptimization Frequency and Number of Stored Reoptimization Plans |
US20090287638A1 (en) * | 2008-05-15 | 2009-11-19 | Robert Joseph Bestgen | Autonomic system-wide sql query performance advisor |
US9171077B2 (en) | 2009-02-27 | 2015-10-27 | International Business Machines Corporation | Scaling dynamic authority-based search using materialized subgraphs |
US8150882B2 (en) * | 2009-03-03 | 2012-04-03 | Microsoft Corporation | Mapping from objects to data model |
US8533220B2 (en) * | 2009-04-02 | 2013-09-10 | Microsoft Corporation | Retrieving data in batches from a line of business system |
US8229952B2 (en) * | 2009-05-11 | 2012-07-24 | Business Objects Software Limited | Generation of logical database schema representation based on symbolic business intelligence query |
US8478786B2 (en) | 2010-09-14 | 2013-07-02 | Microsoft Corporation | Automatic layout derivation and implementation |
US20120150913A1 (en) * | 2010-12-13 | 2012-06-14 | Microsoft Corporation | Multidimensional data-centric service protocol |
US8538976B2 (en) | 2011-02-14 | 2013-09-17 | International Business Machines Corporation | Abstract data model extension through managed physical statement structures |
US9177021B2 (en) | 2011-06-09 | 2015-11-03 | International Business Machines Corporation | Relational query planning for non-relational data sources |
US20130013284A1 (en) * | 2011-07-05 | 2013-01-10 | Haiqin Wang | System and methods for modeling and analyzing quality of service characteristics of federated cloud services in an open eco-system |
WO2013049715A1 (en) * | 2011-09-29 | 2013-04-04 | Cirro, Inc. | Federated query engine for federation of data queries across structure and unstructured data |
CN103577407B (zh) | 2012-07-19 | 2016-10-12 | 国际商业机器公司 | 用于分布式数据库的查询方法及查询装置 |
US10001897B2 (en) | 2012-08-20 | 2018-06-19 | Microsoft Technology Licensing, Llc | User interface tools for exploring data visualizations |
US9563674B2 (en) * | 2012-08-20 | 2017-02-07 | Microsoft Technology Licensing, Llc | Data exploration user interface |
CN102902777B (zh) * | 2012-09-28 | 2016-07-06 | 用友网络科技股份有限公司 | 跨数据源查询装置和跨数据源查询方法 |
US9244971B1 (en) * | 2013-03-07 | 2016-01-26 | Amazon Technologies, Inc. | Data retrieval from heterogeneous storage systems |
CN104123288B (zh) * | 2013-04-24 | 2018-06-01 | 阿里巴巴集团控股有限公司 | 一种数据查询方法及装置 |
US8954441B1 (en) | 2014-01-02 | 2015-02-10 | Linkedin Corporation | Graph-based system and method of information storage and retrieval |
US20150248461A1 (en) * | 2014-02-28 | 2015-09-03 | Alcatel Lucent | Streaming query deployment optimization |
US10416871B2 (en) | 2014-03-07 | 2019-09-17 | Microsoft Technology Licensing, Llc | Direct manipulation interface for data analysis |
CN104618130B (zh) * | 2014-12-09 | 2017-12-15 | 中国人民解放军国防科学技术大学 | 一种软件定义数据中心网络控制器的最小代价同步方法 |
CN104636478B (zh) * | 2015-02-13 | 2019-12-20 | 广州神马移动信息科技有限公司 | 信息查询方法和设备 |
US10102269B2 (en) | 2015-02-27 | 2018-10-16 | Microsoft Technology Licensing, Llc | Object query model for analytics data access |
US11327967B2 (en) | 2017-06-01 | 2022-05-10 | Brandeis University | Systems, methods, and media for improving the effectiveness and efficiency of database query optimizers |
CN111125758A (zh) * | 2019-12-19 | 2020-05-08 | 北京安华金和科技有限公司 | 一种基于全语法树解析的动态脱敏方法 |
US11928096B2 (en) * | 2020-12-16 | 2024-03-12 | Sap Se | Systems and methods using generic database search models |
US11323545B1 (en) | 2021-05-04 | 2022-05-03 | Microsoft Technology Licensing, Llc | Resilient and data-oriented approach for application data processing |
CN113821533B (zh) * | 2021-09-30 | 2023-09-08 | 北京鲸鹳科技有限公司 | 数据查询的方法、装置、设备以及存储介质 |
US20230118040A1 (en) * | 2021-10-19 | 2023-04-20 | NetSpring Data, Inc. | Query Generation Using Derived Data Relationships |
CN114328471B (zh) * | 2022-03-14 | 2022-07-12 | 杭州半云科技有限公司 | 一种基于数据虚拟化引擎的数据模型及其构建方法 |
CN117033497B (zh) * | 2023-09-28 | 2024-01-23 | 北京数元灵科技有限公司 | 数据湖上数据更新与读取的方法及相关设备 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9105367D0 (en) * | 1991-03-13 | 1991-04-24 | Univ Strathclyde | Computerised information-retrieval database systems |
US6578027B2 (en) | 1996-08-20 | 2003-06-10 | Business Objects, Sa | Relational database access system using semantically dynamic objects |
JPH0689307A (ja) | 1992-05-04 | 1994-03-29 | Internatl Business Mach Corp <Ibm> | データベース内の情報を表示する装置および方法 |
US5404510A (en) | 1992-05-21 | 1995-04-04 | Oracle Corporation | Database index design based upon request importance and the reuse and modification of similar existing indexes |
US5515488A (en) | 1994-08-30 | 1996-05-07 | Xerox Corporation | Method and apparatus for concurrent graphical visualization of a database search and its search history |
US6003034A (en) | 1995-05-16 | 1999-12-14 | Tuli; Raja Singh | Linking of multiple icons to data units |
US5734887A (en) | 1995-09-29 | 1998-03-31 | International Business Machines Corporation | Method and apparatus for logical data access to a physical relational database |
US5999933A (en) | 1995-12-14 | 1999-12-07 | Compaq Computer Corporation | Process and apparatus for collecting a data structure of a memory dump into a logical table |
US6442543B1 (en) * | 1997-07-25 | 2002-08-27 | Amazon.Com, Inc. | Method and apparatus for changing temporal database information |
US6553368B2 (en) | 1998-03-03 | 2003-04-22 | Sun Microsystems, Inc. | Network directory access mechanism |
US6725227B1 (en) | 1998-10-02 | 2004-04-20 | Nec Corporation | Advanced web bookmark database system |
JP4251726B2 (ja) | 1999-07-08 | 2009-04-08 | 三菱電機株式会社 | ファイル管理方法 |
US6721727B2 (en) | 1999-12-02 | 2004-04-13 | International Business Machines Corporation | XML documents stored as column data |
US7213017B2 (en) | 2000-03-17 | 2007-05-01 | Microsoft Corporation | Systems and methods for transforming query results into hierarchical information |
US7024425B2 (en) | 2000-09-07 | 2006-04-04 | Oracle International Corporation | Method and apparatus for flexible storage and uniform manipulation of XML data in a relational database system |
US6996558B2 (en) * | 2002-02-26 | 2006-02-07 | International Business Machines Corporation | Application portability and extensibility through database schema and query abstraction |
US8244702B2 (en) * | 2002-02-26 | 2012-08-14 | International Business Machines Corporation | Modification of a data repository based on an abstract data representation |
US6928431B2 (en) | 2002-04-25 | 2005-08-09 | International Business Machines Corporation | Dynamic end user specific customization of an application's physical data layer through a data repository abstraction layer |
US6954748B2 (en) | 2002-04-25 | 2005-10-11 | International Business Machines Corporation | Remote data access and integration of distributed data sources through data schema and query abstraction |
US7096229B2 (en) | 2002-05-23 | 2006-08-22 | International Business Machines Corporation | Dynamic content generation/regeneration for a database schema abstraction |
US7096217B2 (en) | 2002-10-31 | 2006-08-22 | International Business Machines Corporation | Global query correlation attributes |
US20040148278A1 (en) * | 2003-01-22 | 2004-07-29 | Amir Milo | System and method for providing content warehouse |
US20040158567A1 (en) | 2003-02-12 | 2004-08-12 | International Business Machines Corporation | Constraint driven schema association |
US7054877B2 (en) | 2003-03-31 | 2006-05-30 | International Business Machines Corporation | Dealing with composite data through data model entities |
US7146376B2 (en) | 2003-04-24 | 2006-12-05 | International Business Machines Corporation | Data abstraction model driven physical layout |
US7139774B2 (en) | 2003-06-12 | 2006-11-21 | International Business Machines Corporation | Singleton abstract model correspondence to multiple physical models |
US7519577B2 (en) * | 2003-06-23 | 2009-04-14 | Microsoft Corporation | Query intermediate language method and system |
US7472112B2 (en) | 2003-06-23 | 2008-12-30 | Microsoft Corporation | Distributed query engine pipeline method and system |
US7383255B2 (en) | 2003-06-23 | 2008-06-03 | Microsoft Corporation | Common query runtime system and application programming interface |
US20050076015A1 (en) | 2003-10-02 | 2005-04-07 | International Business Machines Corporation | Dynamic query building based on the desired number of results |
US20060047638A1 (en) | 2004-09-02 | 2006-03-02 | International Business Machines Corporation | Cartesian product detection |
US7461052B2 (en) | 2004-12-06 | 2008-12-02 | International Business Machines Corporation | Abstract query plan |
US8112459B2 (en) | 2004-12-17 | 2012-02-07 | International Business Machines Corporation | Creating a logical table from multiple differently formatted physical tables having different access methods |
US7526471B2 (en) | 2004-12-17 | 2009-04-28 | International Business Machines Corporation | Field-to-field join constraints |
US7333981B2 (en) | 2004-12-17 | 2008-02-19 | International Business Machines Corporation | Transformation of a physical query into an abstract query |
US8131744B2 (en) | 2004-12-17 | 2012-03-06 | International Business Machines Corporation | Well organized query result sets |
-
2004
- 2004-12-06 US US11/005,418 patent/US7461052B2/en not_active Expired - Fee Related
-
2005
- 2005-11-10 CN CNB200510115125XA patent/CN100424696C/zh active Active
-
2007
- 2007-12-11 US US11/953,935 patent/US8886632B2/en active Active
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102822819A (zh) * | 2010-01-15 | 2012-12-12 | 起元技术有限责任公司 | 管理数据查询 |
US11593369B2 (en) | 2010-01-15 | 2023-02-28 | Ab Initio Technology Llc | Managing data queries |
CN102822819B (zh) * | 2010-01-15 | 2016-05-11 | 起元技术有限责任公司 | 管理数据查询 |
US9665620B2 (en) | 2010-01-15 | 2017-05-30 | Ab Initio Technology Llc | Managing data queries |
CN106055584A (zh) * | 2010-01-15 | 2016-10-26 | 起元技术有限责任公司 | 管理数据查询 |
US9576028B2 (en) | 2011-05-02 | 2017-02-21 | Ab Initio Technology Llc | Managing data queries |
US10521427B2 (en) | 2011-05-02 | 2019-12-31 | Ab Initio Technology Llc | Managing data queries |
US9116955B2 (en) | 2011-05-02 | 2015-08-25 | Ab Initio Technology Llc | Managing data queries |
CN102591952A (zh) * | 2011-12-28 | 2012-07-18 | 用友软件股份有限公司 | 基于语义的数据查询装置和基于语义的数据查询方法 |
US10282181B2 (en) | 2013-12-06 | 2019-05-07 | Ab Initio Technology Llc | Source code translation |
US9891901B2 (en) | 2013-12-06 | 2018-02-13 | Ab Initio Technology Llc | Source code translation |
US11106440B2 (en) | 2013-12-06 | 2021-08-31 | Ab Initio Technology Llc | Source code translation |
US10289396B2 (en) | 2013-12-06 | 2019-05-14 | Ab Initio Technology Llc | Source code translation |
CN103744888A (zh) * | 2013-12-23 | 2014-04-23 | 新浪网技术(中国)有限公司 | 反垃圾邮件网关查询数据库的方法和系统 |
CN104050264A (zh) * | 2014-06-19 | 2014-09-17 | 华为技术有限公司 | 一种生成sql语句的方法和装置 |
US10437819B2 (en) | 2014-11-14 | 2019-10-08 | Ab Initio Technology Llc | Processing queries containing a union-type operation |
US10417281B2 (en) | 2015-02-18 | 2019-09-17 | Ab Initio Technology Llc | Querying a data source on a network |
US11308161B2 (en) | 2015-02-18 | 2022-04-19 | Ab Initio Technology Llc | Querying a data source on a network |
CN104866650B (zh) * | 2015-04-28 | 2021-07-16 | 海尔优家智能科技(北京)有限公司 | 一种创建抽象设备的方法和装置 |
CN104866650A (zh) * | 2015-04-28 | 2015-08-26 | 北京海尔广科数字技术有限公司 | 一种创建抽象设备的方法和装置 |
WO2017097160A1 (en) * | 2015-12-07 | 2017-06-15 | Huawei Technologies Co., Ltd. | System and method for caching and parameterizing ir |
US10339137B2 (en) | 2015-12-07 | 2019-07-02 | Futurewei Technologies, Inc. | System and method for caching and parameterizing IR |
CN105956012B (zh) * | 2016-04-21 | 2019-04-23 | 哈尔滨工程大学 | 基于图划分策略的数据库模式抽象方法 |
CN105956012A (zh) * | 2016-04-21 | 2016-09-21 | 哈尔滨工程大学 | 基于图划分策略的数据库模式抽象方法 |
CN110651264B (zh) * | 2017-04-25 | 2023-08-08 | 米雷克斯简易股份公司 | 具有时态关系数据库的关系数据库管理系统中的查询计划生成和执行 |
CN110651264A (zh) * | 2017-04-25 | 2020-01-03 | 米雷克斯简易股份公司 | 具有时态关系数据库的关系数据库管理系统中的查询计划生成和执行 |
CN109062952A (zh) * | 2018-06-22 | 2018-12-21 | 北京奇艺世纪科技有限公司 | 一种数据查询方法、装置及电子设备 |
CN109062952B (zh) * | 2018-06-22 | 2022-06-03 | 北京奇艺世纪科技有限公司 | 一种数据查询方法、装置及电子设备 |
CN110489465A (zh) * | 2018-09-28 | 2019-11-22 | 北京数聚鑫云信息技术有限公司 | 一种数据库访问方法和装置 |
CN109710220A (zh) * | 2018-12-12 | 2019-05-03 | 平安科技(深圳)有限公司 | 关系型数据库查询方法、装置、设备及存储介质 |
CN109710220B (zh) * | 2018-12-12 | 2023-08-22 | 平安科技(深圳)有限公司 | 关系型数据库查询方法、装置、设备及存储介质 |
CN110321355A (zh) * | 2019-07-12 | 2019-10-11 | 杭州美巴科技有限公司 | 一种自适应部分查询字段系统及执行方法 |
US11093223B2 (en) | 2019-07-18 | 2021-08-17 | Ab Initio Technology Llc | Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods |
Also Published As
Publication number | Publication date |
---|---|
CN100424696C (zh) | 2008-10-08 |
US8886632B2 (en) | 2014-11-11 |
US20080091668A1 (en) | 2008-04-17 |
US20060122993A1 (en) | 2006-06-08 |
US7461052B2 (en) | 2008-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1786950A (zh) | 处理抽象查询的方法和系统 | |
CN1705945A (zh) | 全局查询相关属性 | |
CN100541486C (zh) | 对数据的函数应用的结果进行结构化索引 | |
US7184998B2 (en) | System and methodology for generating bushy trees using a left-deep tree join enumeration algorithm | |
US8190595B2 (en) | Flexible query hints in a relational database | |
US7617179B2 (en) | System and methodology for cost-based subquery optimization using a left-deep tree join enumeration algorithm | |
US6801905B2 (en) | Database system providing methodology for property enforcement | |
US7167848B2 (en) | Generating a hierarchical plain-text execution plan from a database query | |
US8126870B2 (en) | System and methodology for parallel query optimization using semantic-based partitioning | |
US7577637B2 (en) | Communication optimization for parallel execution of user-defined table functions | |
CN1790322A (zh) | 从多个格式不同的物理表创建逻辑表的方法和系统 | |
US7693857B2 (en) | Clinical genomics merged repository and partial episode support with support abstract and semantic meaning preserving data sniffers | |
EP1684192A1 (en) | Integration platform for heterogeneous information sources | |
US20070061318A1 (en) | System and method of data source agnostic querying | |
US7103613B2 (en) | Object oriented query root leaf inheritance to relational join translator method, system, article of manufacture, and computer program product | |
US8326848B2 (en) | Proactive analytic data set reduction via parameter condition injection | |
US7426522B2 (en) | Object oriented query path expression to relational outer join translator method, system, article of manufacture, and computer program product | |
CN1647080A (zh) | 多数据库环境中存取数据的方法、计算机程序和计算机 | |
CN1864159A (zh) | 通过查询结果扩充和结果数据反馈的迭代数据分析过程 | |
CN1890643A (zh) | 异构型计算机系统间的复杂计算 | |
US20080263078A1 (en) | Runtime class database operation | |
US20080016048A1 (en) | Intelligent condition pruning for size minimization of dynamic, just in time tables | |
CN1761962A (zh) | 将非结构化数据实时聚集为结构化数据以便关系数据库引擎进行sql处理 | |
CN1862541A (zh) | 丰富数据源的方法 | |
CN1716249A (zh) | 延迟取出用户定义类型的指定成员的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |