CN100428227C - 管理数据库系统中的表达式 - Google Patents

管理数据库系统中的表达式 Download PDF

Info

Publication number
CN100428227C
CN100428227C CNB038105705A CN03810570A CN100428227C CN 100428227 C CN100428227 C CN 100428227C CN B038105705 A CNB038105705 A CN B038105705A CN 03810570 A CN03810570 A CN 03810570A CN 100428227 C CN100428227 C CN 100428227C
Authority
CN
China
Prior art keywords
expression formula
data
expression
judgement
inquiry
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 - Lifetime
Application number
CNB038105705A
Other languages
English (en)
Other versions
CN1653452A (zh
Inventor
阿拉温达·亚拉曼基
迪特尔·加夫利克
贾甘纳坦·斯里尼瓦桑
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN1653452A publication Critical patent/CN1653452A/zh
Application granted granted Critical
Publication of CN100428227C publication Critical patent/CN100428227C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/84Mapping; Conversion
    • G06F16/86Mapping to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/137Hierarchical processing, e.g. outlines
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/961Associative
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Abstract

本发明提供了一种管理表达式的方法,其包括接收包括条件表达式的第一查询。然后该表达式被表示为表中一列的数据。第二查询被接收到,其规定标准的第一集合,且执行第二查询以至少基于该列中的表达式是否满足标准的第一集合选择数据。在一个实施例中,第二查询进一步规定标准的第二集合,其中执行第二查询包括基于多个列中数据而非表达式是否满足第二标准。定义特殊索引以有效过滤大表达式集合,该索引可以在存储表达式的列上创建。一种为作为数据存储在表中的表达式取值的方法,其将每个表达式中的判定分类,并基于该判定分类过滤表达式集合。

Description

管理数据库系统中的表达式
相关申请的交叉引用
本申请涉及2002年5月10日申请的美国临时专利申请No.60/378018,并要求其优先权,该临时申请的名称为“ManagingExpressions In A Database System”,该临时专利申请的全部内容结合于此作为参考。
技术领域
本发明一般涉及数据库管理系统,更具体地说,涉及管理数据库系统中条件表达式的技术。
背景技术
在基于事件和内容的订阅系统的情景中,事件定义为,遇到它时,触发一个动作。例如,订阅者可以定义包括事件的规则,这些事件定义内容的一种状态,遇到时,触发将内容发送给用户。将一种数据库管理系统作为基于内容的订阅系统的底层引擎(underlyingengine),用户可以在系统中登记查询,这些查询基于事件内容表达为条件表达式。在这样的订阅或具有类似功能的系统中,潜在极其庞大的查询的集合,或者说是基于内容的表达式集合,被注册来管理所需的内容数据的发布。当有一个给定数据项时,过滤这些条件表达式以找到与之匹配的表达式。
过滤表达式集合的一种简单但效率低下的方法是,对于每一个数据项,检验给定集合中所有的表达式。但这种方法对于大的表达式的集合或者高频率的事件的情况都是无法实现的。所以,大多数商业系统预处理这些表达式(expression)集合并且建立存储器内(in-memory)匹配网络(即专用的数据结构),它将表达式集合中的匹配的判定(predicates)分组并且通过多重表达式分担处理费用。
匹配网络是决策树,其中每个节点代表给定表达式集合中的一个判定组。仅在对于代表母节点的判定的数据被求值为真时,数据从母节点流向子节点。从决策树的根节点到叶节点的一条路径代表了表达式中所有与(conjunctions)。决策树中的叶节点被标记有表达式标识符,如果数据项通过叶节点上的判定测试,就数据项而言,相应的表达式认为是真。许多匹配网络的派生形式(像RETE,TREAT和Gator网络)适用于现有系统中。
现有系统中,任何需要过滤表达式和相关信息的操作都需要相当数量的顾客编码而降低了工作性能。而且,表达式数目的大小是有限制的,因为相应匹配网络必须匹配主储存器,表达式的改变是费用昂贵的,并且,用户不能调整表达式与相关数据的结构与用途方面的过滤策略。
如上所述,很明显有必要提供一种改进的机制来管理表达式,例如与订阅系统关联的表达式。并且,还更特别需求这样的机制,这种机制提供了能够与其他关联信息的过滤器联合起来过滤表达式的能力。
附图说明
本发明通过附图中的例子来进行说明,附图中的例子不是限定,图中相似的参考数字代表类似的元素,其中:
图1是示例表,其用于支持本文中描述的过程或步骤的实例;
图2是流程图,其说明用于管理数据库中表达式的过程;
图3A是流程图,其说明对以数据形式存储在表中一列中的表达式集合进行求值的过程;
图3B是流程图,其说明根据判定分类过滤表达式的步骤;以及
图4是框图,其说明本发明的实施例可以在其上执行的计算机系统。
具体实施方式
本发明涉及一种用于管理数据库系统中的表达式的方法和系统。而且,更具体地讲,涉及一种用于管理基于事件和内容的信息订阅系统关联的条件表达式的方法与系统。
在下面的说明中,为了解释的目的,阐述了许多具体的细节,以提供对本发明的完整的理解。但是,很明显,本发明没有这些具体细节也可实施。其他情形中,众所周知的结构和设备以框图形式示出以避免无谓的模糊本发明的特征。
概述
条件表达式,通常呈标准的数据库查询形式,表示成表的一列中的数据。这些表达式举例来说可能表示用于过滤信息订阅系统中的数据的数据过滤器。另一个标准的数据库查询指定标准,然后可以在此列上执行,以确定此列中的表达式是否满足指定的标准。这些标准举例来说可表示输入订阅系统的数据。
因此,通过将表达式视为可以与其他由用户指定的相关数据一起查询的数据,而将这里说明的表达式处理机制与数据库技术结合在一起。例如,发行者可以在查询中包括其他的与其订阅者相关的过滤标准。
在一种具体实施例中,接收包含第一条件表达式的第一查询。例如,第一查询可能通过插入(INSERT)或数据库载入操作被接收。第一表达式于是可以表示成表的一列中的数据。接收指定第一标准集合的第二查询,并且至少根据此列中的表达式是否满足第一标准集合来执行第二查询以选择数据。例如,可能从数据库应用程序的一个用户接收第二查询。
在一个具体实施例中,第二查询进一步指定第二标准集合,其中执行第二查询包括根据与此列不同的其他列中的数据是否满足第二标准来选择数据。
其他具体实施例包括订阅服务或系统从订阅者收到第一查询,其中第一表达式指定数据必须满足的标准,以使该数据是用户所感兴趣的;从与订约系统有关的发行者收到第二查询,其中第二查询指定数据必须满足的标准,相对于订阅者,因为数据是发行给用户的。于是数据被用户和发行者互相过滤。
根据本发明的一个方面,一种特殊的索引定义在将表达式作为数据存储的列上,以有效地过滤庞大的表达式集合。
一个具体实施例中,表达式中的判定根据它们左手边的同一性,也就是与第一表达式标准关联的共同标识进行分组。这些分组被永久存储在数据库中。进一步,与判定关联的算符和常量存储在与相应的判定分组关联的判定表中,并且根据这些算符与常量创建例如并置位图索引等索引。
管理数据库系统中的表达式
一般而言,在基于事件和内容的订阅系统中,为事件结构或背景(context)定义表达式或规则(例如,事件-条件-动作(ECA)规则)的集合,且事件的结构决定了可以在表达式中使用的基本属性。在这里,术语“事件”用在背景中是指给表达式或“条件”求值的数据项。例如,在股票交易的情景中,事件可能是获得一定价格的公开交易的股票,其被表示为数据项。因此,与这个事件关联的表达式的基本属性可能包括,例如,符号(SYMBOL),价格(PRICE)和变化(CHANGE)。ECA规则处于休眠状态直到被一件事件的发生激活。
为事件结构或背景的表达式定义的集合称为表达式集合。例如,订阅者A可能对表示成SYMBOL=ORCL、PRICE>30、CHANGE>5的事件感兴趣;订阅者B可能对表示成SYMBOL=CSCO、PRICE>25的事件感兴趣;订阅者C可能对表示成SYMBOL=INTC、CHANGE/PRICE>0.1的事件感兴趣。
基于规则的典型系统中,例如基于内容的订阅系统中,有效地过滤条件表达式庞大集合对于系统的可扩缩性至关重要。与典型的数据库设计不同,其中少量的查询执行于表中多个行中,基于规则的系统具有操作于一个数据项上的大量表达式(像查询中的WHERE从句)。
为一种应用定义的表达式相对稳定,且对这些表达式处理的新数据的速率很高。所以,根据一个方面,执行表达式的预处理以建立专用数据结构和数据存取机制(例如索引等),以容许快速地过滤新数据项。
表达式集合的预处理
假定系统中有大量的条件表达式,这些表达式倾向于在初级判定级别上具有相似性。也就是说,两个表达式,每一个都有一个或更多通过“与”连接的基本判定,可以有共同的判定。于是,表达式求值的费用(evaluation cost)在多个表达式之间分担,从而利用前面叙述的相似性。在一个实施例中,函数库,表达式类型库支持表达式集合的预处理。
表达式类型库提供了建立表达式匹配网络所需要的基本功能。这种库是作为Java类的集合供给的,其能够将表达式串转换为含初级判定的表达式树,且通过“与”和“或”结合。这种库可以在对这些表达式作增加修改时被任何索引方案用来预处理表达式集合中的表达式。
这种库如下分解和处理表达式:
(1)举例来说通过重组表达式中的判定并将之改写为析取规范形式(DNF),也就是,AND子从句的OR列表(list),标准化表达式。例如下面形式的表达式
SYMBOL=“GE”和(PRICE<25或PRICE>35)
经DNF转换后改写如下
(SYMBOL=“GE”和PRICE<25)或(SYMBOL=“GE”和PRICE>35)。
(2)通过改写表达式中每个判定以便其右边部分是纯常量,标准化判定。例如,如下形式的判定
PRICE>27+CHANGE
被重写成
PRICE-CHANGE>27
(3)通过如下分解解码判定:
左边部分(LHS):一个或多个属性的表达式或函数(例如,判定PRICE-CHANGE>27中的PRICE-CHANGE);
右边部分(RHS):一个常量(例如,判定PRICE-CHANGE>27中的“27”);
关系算符:关系算符连接LHS与RHS(例如,判定PRICE-CHANGE>27中的“>”)。
判定的左边部分,例如,属性SYMBOL,也称为复杂属性。它也可能是涉及一个或多个初级属性或用户定义的函数的次级表达式(sub-expression),例如,变化/价格。判定的算符被映射到预定整数值,但是,实施例并不局限于这种映射。被映射的算符和关联的判定常量(RHS)被存储在一种判定表中,下面会对它予以详细说明。执行时,涉及到IN列表,次级查询等结构的判定不用其他判定分组。
属性集合
根据本发明的一个方面,创建捕获事件结构或背景的属性集合。属性集合有一列在表达式集合中使用的基本属性及它们的数据类型。在其最简单的形式中,属性集合类似于数据库中的抽象类型定义。例如,用在表达式集合中的初级属性的集合构成了它的属性集。
一种非限定性的用于创建属性集合的技术可用如下命令表达:
EXECUTE dbms_expeng.create_attribute_set(
               attr_set=>’TICK’);
EXECUTE dbms_expeng.add_elementary_attribute(
               attr_set=>’TICK’,
               attr_name=>’SYMBOL’,
               attr_type=>’VARCHAR2(6)’);
EXECUTE dbms_expeng.add_elementary_attribute(
               attr_set=>’TICK’,
               attr_name=>’PRICE’,
               attr_type=>’NUMBER’);
EXECUTE dbms_expeng.add_elementary_attribute(
               attr_set=>’TICK’,
               attr_name=>’CHANGE’,
               attr_type=>’NUMBER’);
藉此创建属性集合“TICK”,其具有基本属性“SYMBOL”,“PRICE”,和“CHANGE”。
值得注意的是,属性集合被存储在表的一列中。例如表达式可以存储在一种数据库表的VARCHAR2或CLOB列中。例如,将一些表达式集合的元数据和该列关联,这样的列可视为表达式数据类型列。而且,存储表达式集合的列与为表达式集合创建的属性集合关联。一种非限定性的用于关联属性集合和表达式集合的技术用下列命令表达:
EXECUTE dbms_expeng.assign_attribute_set(
               attr_set=>’TICK’,
               tab_name=>’TRADER’,
               exp_column=>’INTERST’);
藉此属性集合“TICK”与存储在表“TRADER”的“INTEREST”列中的表达式集合关联。
与属性集合关联的VARCHAR2或CLOB列组成表达式列。存储在表达式列中的值被视为表达式,并且,起初它们应该遵守可包含XPATH表达式的SQL-WHERE从句格式。这些表达式可以使用所有的定义在属性集合中的属性以及任何系统变量和用户环境中有效的用户定义函数,例如,
UPPER(symbol)=‘INTC’AND change/price>0.1。
表达式过滤器
根据一个实施例,表达式过滤器是PL/SQL包和API的集合,用来管理用户表中的表达式和过滤给定数据项的表达式,也就是说,使用标准SQL或其他查询语言使表达式中的标准与给定数据项进行匹配。在一个发布系统中,表达式指定数据必须满足的标准以使订阅者对该数据感兴趣。表达式过滤器包括两部分:求值算符(下面就要讲到)和表达式过滤器索引类型(在“创建表达式集合的索引”部分予以说明)。
求值算符(EVALUATE OPERATOR)
引入一种用于处理存储在表达式列中的表达式集合的新算符。这种算符可以用在标准SQL或DML的WHERE从句中,为数据项过滤表达式。使用新算符EVALUATE对表达式集合的判定可与表上的任何其他判定结合。求值算符接收存储表达式列的名称,例如INTEREST,和作为变量的给定数据项。求值算符在内部使用表达式集合元数据来对输入的数据项的表达式求值。
使用求值算符查询的例子如下:
SELECT*FROM traders
WHERE EVALUATE(traders.exp,
‘symbol=intc”,price=>32,change=>3.3’)=1
AND traders.city=’New York’.
如果对于给定的数据项的值查询取值为真,此表达式视为真。
表达式存储于其中的表的查询可以扩展到包括多表连接(joins)和任何其他的使用GROUP BY从句,ORDER BY从句,HAVING等从句的数据库查询操作。而且,可想到,通过连接表达式存储于其中的表和存储数据项的表,而为一批数据项过滤表达式集合。这样的查询的例子如下:
SELECT distinct(dataitems.symbol),count(*)FROM traders,detaitems
WHERE EVALUATE(traders.exp,
        tick.getVarchar(dataitems.symbol,
                       dataitems.price,
                       dataitems.change))=1
AND traders.city=’New York’
GROUP BY dataitems.symbol;
其中,TICK是为表达式集合定义的属性集合名,TRADERS是存储表达式集合的表(例子见图1),DATAITEMS是存储被处理(即和表达式集合作比较)的数据项的表。
为表达式集合创建索引
为数据项验证每一个表达式是线性时域解(time solution)。当定义一个庞大的表达式集合时,对于大量的数据项而言,这种方法是无法实现的。所以,在一个实施例中,一种新的索引机制被用来有效地对一个庞大的集合中的表达式求值,以便加快用于给定数据项或数据串的表达式集合的求值。这种索引可以定义在表达式列上,于是,一种查询优化器可以根据索引使用费用来确定对于表达式集合求值的索引的使用。在一个实施例中,创建永久数据库对象,以保持用于表达式集合的索引,其中索引创建之时预处理表达式集合填充(populates)这些数据库对象。而且,储存在这些对象中的信息被保存,以对存储表达式的表使用DML操作来反映表达式集合的任何变化。
表达式过滤索引类型
在一个实施例中,索引方案被执行为一种新的索引类型,表达式过滤器,其使用可扩展的索引框架(framework)。在一个实施例中,索引方案被执行为一种新的索引类型,表达式过滤器,其使用Oracle可扩展索引框架。表达式过滤器索引类型可用来在任何存储在类型为VARCHAR2、CLOB、或BFILE的数据库列的表达式集合上创建索引。但是,可想到,也可使用不同于上述的可用在存储为数值类型的表达式上的另一种索引类型,因而也在本发明的实施例的范围之内。
表达式过滤器索引类型的执行分析集合中的表达式组,并将表达式中的判定分组为和左边部分匹配的拆散的集合。用来将表达式集合中的判定分组的数据结构本质上是关联的。在永久数据库对象用于表达式过滤器索引数据结构的实施例中,这样的数据库对象的例子如下:
判定表:存储出现在表达式中的判定的关系表;
位图索引:判定表上的一个或多个位图索引;以及
存取函数:为数据项过滤表达式而查询判定表的函数
基于等式和范围判定,这些对象共同地提供表达式的有效过滤。而且,由于索引结构对象永久地存储在数据库中,和现有方法(其中通常广泛使用主存储器)中表达式集合的大小关联的存储器限制不适用于本实施例。相反,使用本实施例的操作可以根据需要将必要的数据库单元存储在数据库高速缓冲存储器。
如上所述,给定表达式集合中的表达式指具有固定数据类型的基本属性的集合。而且,这些属性的有效值的集合构成一个数据项,其参照这些表达式取值。所以,为了以过滤器索引类型索引表达式集合,所有用在表达式集合中的基本属性都应该与存储表达式的数据库的列关联。这些基本属性与一些可选的复杂属性组成存储在一个或多个数据字典表中的表达式集合的属性集合。一种非限制性的如上所述的创建表达式过滤器索引的方法可用下列命令表达,这些命令在存储表达式的表TRADER的INTEREST列上创建索引TRADERFILTER。另外,通过在这些属性上定义位图索引,将该索引配置为用于有效地过滤涉及SYMBOL和PRICE属性的判定。
CREATE INDEX traderfilter ON trader(interest)
 INDEXTYPE IS EXPRIL.EXPFILTER
PARAMETERS(‘STOREATTRS(symbol,price,change)
   INDEXATTRS(symbol,price)’).
传递给CREATE INDEX语句的参数决定了用于表达式过滤器索引的对象的结构(判定表、位图索引、和存取函数),因而影响过滤器的性能。CREATE INDEX语句中的PARAMETERS从句是可选的,没有这个从句时,属性集合中的所有基本属性(有自然类型(native type))被存储和索引。
在一个实施例中,为常用的左边部分在判定表的算符列上和右边常量列上创建级联的位图索引。例如,左边部分的属性SYMBOL在涉及股票报价的表达式中经常使用,所以在与判定关联的算符和常量列上创建一个位图索引,该判定包括SYMBOL属性,并组合成级联的位图索引。在表达式集合求值时这些位图索引用作多维索引。
一般而言,这里叙述的索引方案的利用,作为一种新的索引类型(即,表达式过滤器索引类型)执行并应用到将表达式存储为数据的列上,其通过容许新的求值算符使用表达式过滤器索引,而提供一种有效的对庞大表达式集合求值的方法。
判定求值
在一个实施例中,在分析判定中,将表达式集合中的判定分为三个集合:
(1)用索引属性判定:为属于这个集合的判定分组创建位图索引,例如,常见判定,例如包括SYMBOL标识符的判定;
(2)用存储属性判定:属于这个集合的判定分组被分析和存储在没有在<算符,右边部分常量>列上定义索引的判定表中;以及
(3)稀疏判定:属于这个集合的判定以其原始形式存储。如果对于一个表达式有一个以上的稀疏判定存在,则它们被组合成“与”。注意,对于不能于其他判定归于同一组的判定增加新的列集合到判定表并不非总是有效。所以,根据一个实施例,分开的VARCHAR2列,PARTIAL_CONDITION,被定义在判定表中以保留用于稀疏判定的条件表达式。与表达式表中其他列不同,这一列并没有被索引,且其可以联合的形式保留一个或多个判定定义。
依赖于计算它的左边部分的费用和其左边部分在表达式集合中的出现频率,判定落入上面的集合之一。判定求值的费用依赖于它所属的集合。
对于上面叙述的分类,判定求值涉及的步骤如下。
(1)索引属性:复杂属性(即,判定分组的左边部分)的一次计算,使用计算出的值在位图索引上作一次或多次范围扫描;
(2)存储属性:复杂属性的一次计算,并将计算值与该组中所有判定的右端部分比较;以及
(3)稀疏判定:分析代表稀疏判定的子表达式,并通过数据值的置换求子表达式的值。
在对表达式集合求值时,根据一个实施例,表达式分三个阶段过滤,叙述如下。
第一阶段:属于有索引属性集合中的判定通过对在其上定义的位图索引执行若干范围扫描来验证。组合这些扫描结果(位图和操作)以获得表达式集合,对于这些集合来说,这些判定对于给定的数据项都是真。
该阶段的总费用定义如下
I*C11+N1*C12*log(E1)+C13*E2;
其中
I是用于过滤的位图索引的数目;
E1是待过滤的表达式数目;
C11是每个索引的平均位图索引处理费用;
C12*log(E1)是一次索引查找的平均费用;
C13是使用行标识符从判定表中取出一列的费用;
E2是在阶段1取值为真的表达式的数目;以及
N1是每一位图索引平均查找数目。
阶段1的结果是由属于有索引属性集合的所有判定取值为真的表达式的集合。
阶段2:对于所有在阶段1取值为真的表达式,验证属于存储属性集合的判定。
这一阶段的总费用定义如下
S*C2*E2;
其中
S是每个表达式的存储属性的平均数目;
C2是一次比较的平均费用;
E2是阶段1取值为真的表达式的总数目。一般而言,在阶段1工作集合(working set)显著缩小,且E2<<E1。
阶段2的结果是由属于索引或存储属性集合的判定取值为真的表达式集合。
阶段3:对于阶段2后所有为真的表达式,对这些表达式的稀疏判定(如果有的话)取值。
本阶段的所有费用定义如下
P*C3*E3;
其中
P是对表达式稀疏判定的概率;
C3是分析稀疏判定并对其求值的平均费用;以及
E3是过滤阶段2后为真的表达式的总数目。
阶段3的结果是对于给定数据项取值为真的表达式集合。注意可使用不同于上述基于索引的取值方法的替换存取方案。
考虑如图1所示的数据库表TRADERS,其将股票商人及其贸易利润的信息存储为条件表达式。为了找到30岁以下的住在纽约并且对数据项(SYMBOL=‘OROL’,PRICE=31,CHANGE=5.2)感兴趣的所有商人,如下的查询是一个可在TRADERS表上发出的查询例子。
SELECT name,phone FROM traders,
  WHERE EVALUATE(interest,
   ‘SYMBOL=’ORCL’,PRICE=>31,CHANGE=>5.2’)=1AND
   city=’New York’AND age<30;
实际上,这种查询可以利用判定表和判定表上的位图索引来过滤表达式。表达式过滤器索引返回对于给定数据项取值为真的所有表达式的行内部地址(rowids)。SELECT语句中的其余判定对相应的行取值以答复查询。除了INTEREST列上的表达式过滤索引之外,如果TRADERS表有定义在CITY和AGE列上固有的或扩展的索引,则优化器程序可以根据存取费用,选择这些索引的一个或多个来答复上面的查询。
当有一新行插入TRADERS表或某些现有表达式被更新时,表达式过滤器索引自动保持以反映这些变化。
如上面的查询例子所示,这里叙述的技术将表达式过滤操作集成到数据库操作中。在一个信息订阅-发布系统的环境下,作为将表达式和过滤机制集成到数据库系统中的结果,可从订阅者和发行者执行互相过滤,并且通过使用标准SQL语句而有效地执行互相过滤。所以,通过连接表和给查询增加判定来促进表达式过滤,多值域查询(multi-domain)是可能的。而且,对于给定的数据集合,通过连接储存表达式的表和存储数据项的表,成批给表达式集合求值是可能的。
现有方法将系统用户或客户的特征(例如名字,电话号码,住址)与他们各自对数据的兴趣分割开来,这一点在订阅表达式中表现出来。许多实际应用可以从这种兴趣与个人特征结合中获益。例如,可以执行一个查询来返回“纽约的对价格超过Y的股票X感兴趣的所有商人”或“住在离我的商店10英里以内对车辆Z感兴趣的所有顾客。”值得注意的是,本实施例基于其背景促进表达式的最佳过滤。例如,在股票交易的情况下,由于大多数用户对某一种股票符号代表的特定股票感兴趣,所以通过将判定根据符号属性分组,并建立与包含SYMBOL属性的判定关联的算符与常量的索引,这种情形导致数据的有效过滤。
管理数据库中的表达式的过程
图2是说明管理数据库中的表达式的过程的流程图。图2的叙述还参考图1中的表。
在框202,接收包含第一条件表达式的第一查询。例如,第一查询可能通过INSERT或数据库载入操作接收。在一个实施例中,希望条件表达式是SQL WHERE从句的形式。进一步,任何SQL的WHERE从句都可以视为一个表达式。在可替换的实施例中,也可想到不同于SQL查询形式的条件表达式和不同于任何类型的查询形式的条件表达式。例如,一个用户可能通过简单的文本输入指定感兴趣的数据,其中文本输入直接转化为一种合适的数据格式,例如VARCHAR2或CLOB等,用于存储表中的列。
在一个实施例中,第一查询从用户传到信息订阅系统,或其他的基于事件或内容的信息发布系统,其中表达式指定数据必须满足的标准,以便该数据是特定的用户感兴趣的数据。因此,第一查询可以作为对系统数据第一层过滤的机制,主要是处理数据,以分发或公布给合适的订阅者。
在框204,第一查询的第一条件表达式表达成表中一列中的数据,就像上面叙述的和图1中的列106描述的那样。例如,一个或多个判定构成表达式,其被编码为数据形式,SQL或其他查询语言可以在其上操作。注意,图1的表中的INTEREST列106中的表达式的表示是为了解释的目的,并没有采取描写的形式。相反,在其中存储有表达式表达的INTEREST列或任何相似列中存储的表达式实际上习惯被编码为合适的数据格式。
在可选框206,在表的一列上创建索引,其中,条件表达式在框204被存储为数据。在这个实施例中,如上所述创建索引。
创建索引的步骤包括根据与第一标准集合的各个标准关联的判定标识符将表达式集合中的判定分组。继续上面的例子,判定分组标识符可能包含SYMBOL、PRICE、和CHANGE。判定算符和常量的集合被存储在与各个判定标识符关联的判定表中。例如,对SYMBOL的判定分组可在代表算符和常量组合的集合的判定表中有条目(entry),例如算符是“等于”,且常量是“ORCL”,对PRICE的判定分组可能在包含例如“大于或等于”和“31”等算符和常量组合的判定表中有条目。这些算符和常量的集合可以适合于其目的的任何传统方式编码。其次,根据与特定判定标识符关联的判定算符和常量的集合创建一种级联位图索引或另一种形式的索引。例如,作为数据过滤过程的一部分,对于判定标识符SYMBOL,为了快速而有效地对判定,因此对表达式求值,为判定表中各个列表示的算符和常量组合的集合创建索引。
在框208,接收指定包含一个或多个标准的第一集合的第二查询。下面的查询是第二查询的一个例子。
   SELECT name,phone FROM traders
      WHERE EVALUATE(interest,
       ‘SYMBOL=’ORCL’,PRICE>=31,CHANGE=>5.2)=1
AND
        city=’New York’AND age<30;
所述查询指定标准:SYMBOL等于“ORCL”,PRICE大于或等于31,且PRICE中的CHANGE大于或等于5.2。举例来说可能收到来自数据库应用程序的用户的第二查询。
在一个实施例中,从信息订阅系统或其他基于事件或内容的信息发布系统的发布者收到第二查询,其中,表达式为待发布给特殊用户的数据指定数据必须满足的标准集合。于是,第二查询可以作为一种机制对系统数据进行第二层过滤,主要是处理数据以分发或公布给合适的用户。
在框210中,至少根据106列中的条件表达式是否满足第一标准集合,执行第二查询以选择数据。例如,除了其他的功能外,第二查询的执行确定特定数据项是否满足以数据列106中存储的表达式表示的条件或条件集合。换句话说,在订阅系统的环境中,通过表达式中指定的条件或判定,确定是否有订阅者对满足查询中WHERE从句的第一部分(在“与”连接之前)指定的标准的数据感兴趣。
在一个实施例中,第二查询还指定第二标准集合,其中,在方框210中执行第二查询包括根据与表达式列不同的一列或多个列(例如列102、104)中的数据是否满足第二标准选择数据。例如,WHERE从句的第二部分(在“与(AND)”连接之后)指定其他列,城市和年龄将被考虑以决定被处理的给定数据项是否还满足标准:城市CITY(104列)等于纽约(New York)和年龄AGE(102列)小于30。在框206中创建的索引是可选的,但是,在创建索引的情形中,执行第二查询可以利用这个索引来有效地对条件表达式取值。
实际上,对一层以上或一维以上的过滤,第二查询可以做为互相过滤机制执行。例如,上面的第二查询同时考虑订阅者和发行者的数据过滤兴趣。值得注意的是,所述的过程可以在信息安全的执行中操作,此时,第二标准集合表示特定信息发布给或提供给谁的标准的安全或授权。
作为数据存储在数据库表的列中的表达式取值过程
图3A是流程图,其说明用于存储为数据库表的列中数据的表达式集合的取值过程的流程图。
在框302中,形成表达式集合中的每个表达式的每个判定都分类为索引的属性判定、存储的属性判定、和稀疏判定中的一种。索引的属性判定是被选作索引的判定,如上所述,其中索引建立在算符和常量属性集合的基础上,算符和常量属性集合存储在与各个判定标识符关联的判定表中各个列上。
存储的属性判定是一种判定,对于这种判定,它的算符和常量属性存储在与各个标识符关联的判定表中各个列上,但没有创建索引。例如,存储的属性判定可能没有创建索引,因为它们的标识符在表达式集合中并不经常使用,或者可能它们是复杂判定,其包括具有基本属性(例如,CHANGE/PRICE)的操作。
如上所述,稀疏判定是这样一个判定,其中与其关联的判定标识符在表达式集合中是不常见的。例如,一个稀疏判定可能从具有一个BETWEEN算符,在同一属性上有多个算符的,有函数的,有一个LIKE算符的判定得到。一个稀疏判定和与它关联的算符和常量以数据存储在判定表中。
在框304中,根据在方框302中执行的判定分类,过滤表达式集合。图3B是说明基于判定分类过滤表达式的步骤的流程图,方框304。
在框304A中,第一,过滤索引属性判定以得到包含一个或多个表达式的第一表达式集合,对于这些表达式,它们索引属性判定对于给定的数据项为真。第二,在框304B中,过滤第一表达式集合的存储属性判定以得到包含一个或多个表达式的第二表达式集合,对于这些表达式,其所有存储的属性对于给定的数据项为真。第三,在框304C中,如果有的话,过滤第二表达式集合的稀疏判定以得到包含一个或多个表达式的第三表达式集合,对于这些表达式,其所有判定对于给定的数据项为真。因此,数据项满足表达式中指定的标准。
硬件概述
图4的方框图说明了一个实现本发明实施例的计算机系统400。计算机系统400包括总线402或用于信息通信的其它通信装置,以及处理器404与总线402相连用于信息处理。计算系统400还包括主存储器406,例如随机存取存储器(RAM)或其它动态存储装置,与总线402相连用于储存将被处理器404执行的信息和指令。在处理器404进行指令执行过程中,主存储器406还可以被用于存储临时变量或其它中间信息。计算机系统400还包括与总线402相连的只读存储器(ROM)408或其它静态存储装置,用于存储处理器404的静态信息和指令。存储装置410,例如磁盘或光盘,与总线402相连,用于存储信息和指令。
计算机系统400还可通过总线402与显示器412相连,例如阴极射线管(CRT),用来显示信息给计算机用户。输入装置414,包括文字数字以及其它按键,与总线402相连用来传达信息和命令给处理器404。另一种类型用户输入装置是光标控制器416,例如鼠标、轨迹球或光标方向键,用来传达方向信息和命令选择给处理器404以及用来控制显示器412上的光标移动。这个输入装置典型地具有两个自由度在两个轴上,第一个轴(例如x)和第二个轴(例如y),使得该装置在一个平面上确定位置。
本发明涉及计算机系统400的使用以实现这里描述的技术。根据本发明的一个实施例,这些技术通过计算机系统400响应处理器404执行主存储器406中的一组或更多组的单一或多个指令来完成。这样的指令可从另一个计算机可读介质中,例如存储装置410,读取到主存储器406中。在主存储器406内指令的执行导致处理器404完成这里所描述的处理步骤。在一个可供选择的实施例中,硬线电路可被用来代替软件指令或与软件指令相结合来实现本发明。因此,本发明的实施例并不局限于任何特殊的硬件电路和软件组合。
这里使用的术语“计算机可读介质”指任何参与提供指令给处理器404执行的介质。这样一个介质可以有许多种形式,包括但不局限于非易失性介质、易失性介质和传输介质。非易失性介质包括,例如光盘和磁盘,如存储装置410。易失性介质包括动态存储器,如主存储器406。传输介质包括同轴电缆、铜线和光纤,包括组成总线402的导线。传输介质还可以是声波和光波,例如那些在无线电波和红外数据通信时产生的波。
普通形式的计算机可读介质包括,例如软盘、软碟、硬盘、磁带或任何其它磁性介质,CD-ROM、任何其它光学介质,打孔卡片、打孔纸带、任何其它具有孔状图案的物理介质,RAM、PROM以及EPROM、FLASH-EPROM,任何其它存储芯片内存盒,载波如下文所描述的,或其它任何计算机可读的介质。
不同形式的计算机可读介质可用来传送一组或更多组的单一或多个指令到处理器404执行。例如,指令可能初始在一台远程计算机的磁盘上。该远程计算机可把指令装入到动态内存中然后利用调制解调器将指令送入电话线。计算机系统400的本地调制解调器可以接收到电话线上的数据,然后使用红外发射机将数据变成红外信号。红外探测器可接收红外信号上携带的数据,并且适当的电路可将数据放到总线402上。总线402传送数据给主存储器406,处理器404从那儿获取并执行指令。这些从主存储器406收到的指令在被处理器404执行前或执行后选择性地被存储在存储装置410上。
计算机系统400还包括通信接口418,其连接在总线402上。通信接口418提供双向数据通信,与连接在本地网络422上的网络链路420相连。例如,通信接口418可以是综合数据业务网(ISDN)网卡,或调制解调器用来提供数据通信连接到相应类型的电话线上。如另一个例子,通信接口418可以是局域网(LAN)网卡以提供数据通信连接到兼容的局域网上。无线连接也可以实现。在任一这样的实现方式中,通信接口418传送和接收电信号、电磁信号或光信号,它们都携带代表不同类型信息的数字数据流。
网络链路420通常通过一个或更多网络提供数据通信到其它数据服务器。例如,网络链路420可提供连接经由本地网络422到一个主机424上或到互联网服务供应商(ISP)426操作的数据设备上。接着ISP 426通过广域数据包通信网络,现在通常被称作为“互联网”428,提供数据通信服务。本地网络422和互联网428都使用电信号、电磁信号或光信号传送数字数据流。经过不同网络传送的信号、网络链路420上的信号和经过通信接口418的信号携带着数字数据到达通信系统400或离开通信系统400,这些信号只是传送信息的示范性载波。
通信系统400可通过网络、网络链路420和通信接口418发出和接收数据,包括程序代码。例如在互联网中,服务器430可从应用程序经过互联网428、网络服务供应商426、本地网络422和通信接口418传送请求代码。
收到的代码可由处理器404执行,和/或存储在存储装置410上,或其它非易失性存储器用来以后执行。按这种方式,计算机系统400可获得载波形式的应用程序代码。
扩展和可替换的方案
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。例如,提出了其中使用SQL的实施例;但是,此处所述的技术并不局限于使用SQL,也可使用其它的数据查询语言。另外一个例子,实施例在订阅者/发布者的情景中给出;但是,本发明的实施例的优势和用途并不局限于这种情景。还有例子,提出这样的实施例,其中级联的位图索引创建于判定表的列上。但是,实施例并不局限于这种索引,对于其他适合在数据表的多个列上创建索引的索引类型,也可以应用。所以,本发明的说明书和附图应视为说明性的,而不是限制性的。
此外,本说明书中,一些过程的步骤按某种特定的顺序陈述,字母和字母数字的标号被用来标记某些步骤。除非在说明中特别声明,本发明的实施例并非必须局限于执行这些步骤的任何特定顺序。特别是,这些标号仅仅是为了方便的识别步骤,而不是特意的规定或要求执行这些步骤的特定顺序。

Claims (11)

1.一种用于管理数据库中的表达式的计算机可执行的方法,包括以下步骤:
接收包含表达式的第一查询,所述表达式用于定义涉及第一属性的第一条件;
将所述第一条件表示为在表的行的列中的数据;
存储与所述数据相关的第一值,其中,所述第一值涉及第二属性;
接收第二查询,所述第二查询用于指定与所述第一属性相关的第二值和涉及所述第二属性的第二条件;以及
执行所述第二查询,其中,执行所述第二查询包括从所述行的所述列读取表示所述第一条件的所述数据;
确定所述第二值是否满足所述第一条件;
读取与所述数据相关的所述第一值;
确定所述第一值是否满足所述第二条件;以及
至少根据所述第二值是否满足所述第一条件以及所述第一值是否满足所述第二条件来选择数据,以回答所述第二查询。
2.根据权利要求1所述的方法,其中,所述表达式定义涉及多个属性的多个条件,并且其中,所述表的所述行的所述列存储所述多个条件的表示。
3.根据权利要求1所述的方法,其中,所述接收第一查询的步骤包括:接收来自数据库应用程序的第一用户的所述第一查询,并且其中,所述表达式定义特定数据必须满足的一个或多个条件,以使所述用户对所述特定数据感兴趣。
4.根据权利要求3所述的方法,其中,所述接收第二查询的步骤包括:接收来自数据库应用程序的第二用户的所述第二查询,其中,特定数据必须满足所述第二条件,以使所述第一用户可以使用所述特定数据,从而使所述第一用户和所述第二用户能够相互过滤数据。
5.根据权利要求1所述的方法,其中,所述接收第一查询的步骤包括:接收来自信息订阅系统的订阅者所述第一查询,并且其中,所述表达式定义特定数据必须满足的一个或多个条件,以使所述订阅者对所述特定数据感兴趣。
6.根据权利要求5所述的方法,其中,所述接收第二查询的步骤包括:接收来自订阅系统中的发布者的所述第二查询,并且其中,特定数据必须满足所述第二条件,以将所述特定数据发布给所述订阅者。
7.根据权利要求1所述的方法,其中,所述接收第二查询的步骤包括:接收来自信息订阅系统的发布者的第二查询,并且其中,特定数据必须满足所述第二条件,以将所述特定数据发布给所述订阅系统的订阅者。
8.根据权利要求1所述的方法,其中,将所述第一条件表示为在列中的数据的步骤包括:将来自多个第一查询的条件集合表示为在所述列中的数据,所述方法进一步包括以下步骤:
通过根据判定标识符对来自所述条件集合的判定进行分组来在所述表的所述列上创建索引,其中,所述判定标识符用于从所述条件集合所根据的属性集合识别相应的属性;
将与相应的判定标识符相关的判定算符和常量的集合存储在判定表中;
根据与特定判定标识符相关的判定算符和常量的集合创建级联的位图索引。
9.一种计算机可执行的方法,用于对作为数据存储在表的列中的表达式集合求值,包括以下步骤:
将来自所述表达式集合的每个表达式的每个判定分类为以下之一,
索引属性判定,其中,根据算符和常量属性的集合创建位图索引,所述算符和常量属性存储在与相应的判定标识符相关的判定表的相应的列中;
存储属性判定,其中,算符和常量属性的集合存储在与相应的判定标识符相关的判定表的相应的列中,并且其中,在所述算符和常量属性的集合上没有创建索引;
稀疏判定,其中,与稀疏判定相关的判定标识符在所述表达式集合中不常见,并且其中,稀疏判定作为数据存储在所述判定表中;以及
根据对来自所述表达式集合的判定的分类,过滤所述表达式集合。
10.根据权利要求9所述的方法,其中,所述过滤所述表达式集合的步骤包括以下步骤:
第一,过滤所述索引属性判定,以获得包括一个或多个表达式的第一表达式集合,其中,所述一个或多个表达式的所有索引属性判定对给定的数据项均为真;
第二,过滤所述第一表达式集合的存储的属性判定,以获得包括一个或多个表达式的第二表达式集合,其中,所述一个或多个表达式的所有存储的属性对所述给定的数据项均为真;
以及
第三,如果有,则过滤所述第二达式集合表的所述稀疏判定,以获得包括一个或多个表达式的第三表达式集合,其中,所述一个或多个表达式的所有判定对所述给定的数据项均为真。
11.根据权利要求10所述的方法,进一步包括以下步骤:
发布所述给定数据项到信息订阅系统的订阅者,所述订阅者已表达了对满足所述第三表达式集合中的表达式表示的标准的数据的兴趣。
CNB038105705A 2002-05-10 2003-05-08 管理数据库系统中的表达式 Expired - Lifetime CN100428227C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US37801802P 2002-05-10 2002-05-10
US60/378,018 2002-05-10
US10/254,383 2002-09-24
US10/254,383 US7127467B2 (en) 2002-05-10 2002-09-24 Managing expressions in a database system

Publications (2)

Publication Number Publication Date
CN1653452A CN1653452A (zh) 2005-08-10
CN100428227C true CN100428227C (zh) 2008-10-22

Family

ID=29406453

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038105705A Expired - Lifetime CN100428227C (zh) 2002-05-10 2003-05-08 管理数据库系统中的表达式

Country Status (7)

Country Link
US (4) US7127467B2 (zh)
EP (1) EP1504380A2 (zh)
JP (1) JP2005525657A (zh)
CN (1) CN100428227C (zh)
AU (1) AU2003249632B2 (zh)
CA (1) CA2484009C (zh)
WO (1) WO2003098479A2 (zh)

Families Citing this family (228)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6883168B1 (en) 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US7155667B1 (en) 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US7624356B1 (en) 2000-06-21 2009-11-24 Microsoft Corporation Task-sensitive methods and systems for displaying command sets
US6948135B1 (en) 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US7191394B1 (en) 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
US7346848B1 (en) 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
US7127467B2 (en) 2002-05-10 2006-10-24 Oracle International Corporation Managing expressions in a database system
US7185033B2 (en) 2002-08-01 2007-02-27 Oracle International Corporation Buffered message queue architecture for database management systems with unlimited buffered message queue with limited shared memory
US7613741B2 (en) 2002-08-01 2009-11-03 Oracle International Corporation Utilizing rules in a distributed information sharing system
US20040024771A1 (en) * 2002-08-01 2004-02-05 Oracle International Corporation Buffered message queue architecture for database management systems with transactional enqueue support
US8005802B2 (en) * 2002-08-01 2011-08-23 Oracle International Corporation Partial evaluation of rule sets
US6889231B1 (en) 2002-08-01 2005-05-03 Oracle International Corporation Asynchronous information sharing system
US7203706B2 (en) * 2002-08-01 2007-04-10 Oracle International Corporation Buffered message queue architecture for database management systems with memory optimizations and “zero copy” buffered message queue
US7185034B2 (en) 2002-08-01 2007-02-27 Oracle International Corporation Buffered message queue architecture for database management systems with guaranteed at least once delivery
US7181482B2 (en) * 2002-08-01 2007-02-20 Oracle International Corporation Buffered message queue architecture for database management systems
US7565379B2 (en) 2002-08-01 2009-07-21 Edwina Lu Preventing change cycling using rules and redo tags in a redo log
US7031974B1 (en) 2002-08-01 2006-04-18 Oracle International Corporation Replicating DDL changes using streams
JP4036718B2 (ja) * 2002-10-02 2008-01-23 インターナショナル・ビジネス・マシーンズ・コーポレーション 文書検索システム、文書検索方法、文書検索を実行するためのプログラム
US7133857B1 (en) * 2002-10-15 2006-11-07 Ximpleware, Inc. Processing structured data
US7761459B1 (en) * 2002-10-15 2010-07-20 Ximpleware, Inc. Processing structured data
US7263102B2 (en) * 2002-11-27 2007-08-28 At&T Intellectual Property, Inc. Multi-path gateway communications device
US6999968B1 (en) * 2002-11-27 2006-02-14 Microsoft Corporation Fast merge into large ordered sets
US7224698B2 (en) * 2002-11-27 2007-05-29 Bellsouth Intellectual Property Corporation Edge side assembler
US7379464B2 (en) * 2002-11-27 2008-05-27 At&T Bls Intellectual Property, Inc. Personal digital gateway
US20040177315A1 (en) * 2003-03-03 2004-09-09 International Business Machines Corporation Structured document bounding language
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7275216B2 (en) * 2003-03-24 2007-09-25 Microsoft Corporation System and method for designing electronic forms and hierarchical schemas
US7370066B1 (en) 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7296017B2 (en) 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
US7668902B2 (en) * 2003-05-30 2010-02-23 Microsoft Corporation Application programming interface for implementing directory service access using directory service markup language
US7451392B1 (en) 2003-06-30 2008-11-11 Microsoft Corporation Rendering an HTML electronic form by applying XSLT to XML using a solution
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US8365193B2 (en) 2003-08-14 2013-01-29 Oracle International Corporation Recoverable asynchronous message driven processing in a multi-node system
US7814047B2 (en) * 2003-08-25 2010-10-12 Oracle International Corporation Direct loading of semistructured data
US8001156B2 (en) * 2003-08-29 2011-08-16 Cybertrust Ireland Limited Processing XML node sets
US8694510B2 (en) * 2003-09-04 2014-04-08 Oracle International Corporation Indexing XML documents efficiently
US7315852B2 (en) * 2003-10-31 2008-01-01 International Business Machines Corporation XPath containment for index and materialized view matching
US8819072B1 (en) 2004-02-02 2014-08-26 Microsoft Corporation Promoting data from structured data files
US7430711B2 (en) * 2004-02-17 2008-09-30 Microsoft Corporation Systems and methods for editing XML documents
US20050216518A1 (en) * 2004-03-26 2005-09-29 Oracle International Corporation Database management system with persistent, user-accessible bitmap values
US20050222996A1 (en) * 2004-03-30 2005-10-06 Oracle International Corporation Managing event-condition-action rules in a database system
US7496837B1 (en) 2004-04-29 2009-02-24 Microsoft Corporation Structural editing with schema awareness
WO2005114494A1 (en) * 2004-05-21 2005-12-01 Computer Associates Think, Inc. Storing multipart xml documents
US7774620B1 (en) 2004-05-27 2010-08-10 Microsoft Corporation Executing applications at appropriate trust levels
US7108433B2 (en) * 2004-06-24 2006-09-19 Eastman Kodak Company Thermal processor employing varying roller spacing
US8000452B2 (en) * 2004-07-26 2011-08-16 General Motors Llc Method and system for predictive interactive voice recognition
US9767146B2 (en) * 2004-08-31 2017-09-19 International Business Machines Corporation Use of generated SQL for evaluation of decision point rules in a workflow system
US9171100B2 (en) 2004-09-22 2015-10-27 Primo M. Pettovello MTree an XPath multi-axis structure threaded index
US7692636B2 (en) 2004-09-30 2010-04-06 Microsoft Corporation Systems and methods for handwriting to a screen
US7792274B2 (en) 2004-11-04 2010-09-07 Oracle International Corporation Techniques for performing multi-media call center functionality in a database management system
US8185518B2 (en) * 2004-11-12 2012-05-22 International Business Machines Corporation Method, system and program product for rewriting structured query language (SQL) statements
US7712022B2 (en) 2004-11-15 2010-05-04 Microsoft Corporation Mutually exclusive options in electronic forms
US7721190B2 (en) 2004-11-16 2010-05-18 Microsoft Corporation Methods and systems for server side form processing
US7904801B2 (en) 2004-12-15 2011-03-08 Microsoft Corporation Recursive sections in electronic forms
US7818386B2 (en) * 2004-12-30 2010-10-19 Oracle International Corporation Repeatable message streams for message queues in distributed systems
US7779418B2 (en) * 2004-12-30 2010-08-17 Oracle International Corporation Publisher flow control and bounded guaranteed delivery for message queues
US7937651B2 (en) 2005-01-14 2011-05-03 Microsoft Corporation Structural editing operations for network forms
US20060190461A1 (en) * 2005-02-18 2006-08-24 Schaefer Brian M Apparatus, system, and method for managing objects in a database according to a dynamic predicate representation of an explicit relationship between objects
US7725834B2 (en) 2005-03-04 2010-05-25 Microsoft Corporation Designer-created aspect for an electronic form template
US7567975B2 (en) 2005-03-16 2009-07-28 Oracle International Corporation Incremental evaluation of complex event-condition-action rules in a database system
US8010515B2 (en) 2005-04-15 2011-08-30 Microsoft Corporation Query to an electronic form
US20060235848A1 (en) * 2005-04-18 2006-10-19 Research In Motion Limited Method and apparatus for searching, filtering and sorting data in a wireless device
US7836027B2 (en) * 2005-06-22 2010-11-16 Statware, Inc. Method and apparatus for communicating list orders
CA2510661A1 (en) * 2005-06-23 2006-12-23 Cognos Incorporated Filter manager system and method of managing filter expressions
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
US7480649B2 (en) * 2005-07-06 2009-01-20 International Business Machines Corporation Method for efficient evaluation of index screening predicates
US20070130206A1 (en) * 2005-08-05 2007-06-07 Siemens Corporate Research Inc System and Method For Integrating Heterogeneous Biomedical Information
US20070050364A1 (en) * 2005-09-01 2007-03-01 Cummins Fred A System, method, and software for implementing business rules in an entity
US20070083807A1 (en) * 2005-10-06 2007-04-12 Microsoft Corporation Evaluating multiple data filtering expressions in parallel
US7680793B2 (en) * 2005-10-07 2010-03-16 Oracle International Corporation Commit-time ordered message queue supporting arbitrary read and dequeue patterns from multiple subscribers
US8196150B2 (en) * 2005-10-07 2012-06-05 Oracle International Corporation Event locality using queue services
US7664742B2 (en) 2005-11-14 2010-02-16 Pettovello Primo M Index data structure for a peer-to-peer network
US7966315B2 (en) * 2005-11-15 2011-06-21 Vmware, Inc. Multi-query optimization
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US7941515B2 (en) * 2006-01-13 2011-05-10 Cisco Technology, Inc. Applying a filter set to information provided to a subscribing client
US7779343B2 (en) * 2006-01-30 2010-08-17 Microsoft Corporation Opening network-enabled electronic documents
US20070260976A1 (en) * 2006-05-02 2007-11-08 Slein Judith A Rule Engines and Methods of Using Same
US7801856B2 (en) * 2006-08-09 2010-09-21 Oracle International Corporation Using XML for flexible replication of complex types
US7979453B2 (en) * 2006-08-23 2011-07-12 Innovative Solutions, Inc. Efficient search result update mechanism
US8694524B1 (en) * 2006-08-28 2014-04-08 Teradata Us, Inc. Parsing a query
US20080104042A1 (en) * 2006-10-25 2008-05-01 Microsoft Corporation Personalized Search Using Macros
US20080104092A1 (en) * 2006-10-27 2008-05-01 Electronic Data Systems Corporation Integrating Business Rules into Automated Business Processes
US20080147615A1 (en) * 2006-12-18 2008-06-19 Oracle International Corporation Xpath based evaluation for content stored in a hierarchical database repository using xmlindex
US20080147710A1 (en) * 2006-12-19 2008-06-19 Microsoft Corporation Generating web pages utilizing user-defined search parameters
US7716210B2 (en) 2006-12-20 2010-05-11 International Business Machines Corporation Method and apparatus for XML query evaluation using early-outs and multiple passes
US7552119B2 (en) * 2006-12-20 2009-06-23 International Business Machines Corporation Apparatus and method for skipping XML index scans with common ancestors of a previously failed predicate
US20080228801A1 (en) * 2007-03-13 2008-09-18 Champion Technologies, Inc. Context-variable data framework for hierarchical data warehousing
US20080244380A1 (en) * 2007-03-27 2008-10-02 Canon Kabushiki Kaisha Method and device for evaluating an expression on elements of a structured document
US9027025B2 (en) 2007-04-17 2015-05-05 Oracle International Corporation Real-time database exception monitoring tool using instance eviction data
US7596584B2 (en) * 2007-04-25 2009-09-29 Microsoft Corporation Predicate based group management
US8108399B2 (en) * 2007-05-18 2012-01-31 Microsoft Corporation Filtering of multi attribute data via on-demand indexing
US20080320031A1 (en) * 2007-06-19 2008-12-25 C/O Canon Kabushiki Kaisha Method and device for analyzing an expression to evaluate
US7895189B2 (en) * 2007-06-28 2011-02-22 International Business Machines Corporation Index exploitation
US8086597B2 (en) * 2007-06-28 2011-12-27 International Business Machines Corporation Between matching
US9009292B2 (en) * 2007-07-30 2015-04-14 Sybase, Inc. Context-based data pre-fetching and notification for mobile applications
US7840609B2 (en) * 2007-07-31 2010-11-23 Oracle International Corporation Using sibling-count in XML indexes to optimize single-path queries
US7752165B2 (en) * 2007-08-01 2010-07-06 Sybase, Inc. Persistent query system for automatic on-demand data subscriptions from mobile devices
US8204870B2 (en) * 2007-08-03 2012-06-19 Sybase, Inc. Unwired enterprise platform
US7725448B2 (en) * 2007-08-31 2010-05-25 International Business Machines Corporation Method and system for disjunctive single index access
US8810190B2 (en) * 2007-09-14 2014-08-19 The Powerwise Group, Inc. Motor controller system and method for maximizing energy savings
US9171282B2 (en) * 2007-10-22 2015-10-27 Oracle International Corporation Interactive complex event pattern builder and visualizer
US7962490B1 (en) * 2008-01-07 2011-06-14 Amdocs Software Systems Limited System, method, and computer program product for analyzing and decomposing a plurality of rules into a plurality of contexts
US8862619B1 (en) 2008-01-07 2014-10-14 Amdocs Software Systems Limited System, method, and computer program product for filtering a data stream utilizing a plurality of contexts
US20090182689A1 (en) * 2008-01-15 2009-07-16 Microsoft Corporation Rule-based dynamic operation evaluation
US8145641B2 (en) * 2008-01-18 2012-03-27 Oracle International Corporation Managing feature data based on spatial collections
US8290950B2 (en) * 2008-01-31 2012-10-16 SAP France S.A. Identifying locale-specific data based on a total ordering of supported locales
US8566909B2 (en) * 2008-02-01 2013-10-22 Oracle International Corporation Row-level security with expression data type
US8706820B2 (en) * 2008-02-08 2014-04-22 Microsoft Corporation Rules extensibility engine
US7996444B2 (en) * 2008-02-18 2011-08-09 International Business Machines Corporation Creation of pre-filters for more efficient X-path processing
US8606757B2 (en) * 2008-03-31 2013-12-10 Intel Corporation Storage and retrieval of concurrent query language execution results
US7865502B2 (en) * 2008-04-10 2011-01-04 International Business Machines Corporation Optimization of extensible markup language path language (XPATH) expressions in a database management system configured to accept extensible markup language (XML) queries
US8131729B2 (en) * 2008-06-12 2012-03-06 International Business Machines Corporation System and method for best-fit lookup of multi-field key
US8533606B2 (en) * 2008-06-13 2013-09-10 At&T Intellectual Property I, L.P. System and method for personalized hold
US8375044B2 (en) * 2008-06-24 2013-02-12 Microsoft Corporation Query processing pipelines with single-item and multiple-item query operators
US8364750B2 (en) 2008-06-24 2013-01-29 Microsoft Corporation Automated translation of service invocations for batch processing
US8819046B2 (en) * 2008-06-24 2014-08-26 Microsoft Corporation Data query translating into mixed language data queries
US8713048B2 (en) * 2008-06-24 2014-04-29 Microsoft Corporation Query processing with specialized query operators
US8364751B2 (en) 2008-06-25 2013-01-29 Microsoft Corporation Automated client/server operation partitioning
US20100050153A1 (en) * 2008-08-21 2010-02-25 Clevest Solutions Inc. Method and system of editing workflow logic and screens with a gui tool
US20100049568A1 (en) * 2008-08-21 2010-02-25 Clevest Solutions Inc. System and Method for an Extensible Workflow Management
US9348499B2 (en) 2008-09-15 2016-05-24 Palantir Technologies, Inc. Sharing objects that rely on local resources with outside servers
US8336021B2 (en) * 2008-12-15 2012-12-18 Microsoft Corporation Managing set membership
US9128895B2 (en) 2009-02-19 2015-09-08 Oracle International Corporation Intelligent flood control management
IL205815A0 (en) 2009-05-18 2010-11-30 Tufin Software Technologies Ltd Method and system for management of security rule set
US8468113B2 (en) * 2009-05-18 2013-06-18 Tufin Software Technologies Ltd. Method and system for management of security rule set
US8676808B2 (en) * 2009-07-09 2014-03-18 Dillon Software Services, Llc Data store interface that facilitates distribution of application functionality across a multi-tier client-server architecture
US8631028B1 (en) 2009-10-29 2014-01-14 Primo M. Pettovello XPath query processing improvements
US9424365B2 (en) * 2009-10-30 2016-08-23 Oracle International Corporation XPath-based creation of relational indexes and constraints over XML data stored in relational tables
US9165086B2 (en) 2010-01-20 2015-10-20 Oracle International Corporation Hybrid binary XML storage model for efficient XML processing
US8918388B1 (en) * 2010-02-26 2014-12-23 Turn Inc. Custom data warehouse on top of mapreduce
US20120047223A1 (en) * 2010-08-20 2012-02-23 Nokia Corporation Method and apparatus for distributed storage
US8392466B2 (en) * 2010-08-27 2013-03-05 International Business Machines Corporation Method and apparatus for automated processing of a data stream
US20120072824A1 (en) * 2010-09-20 2012-03-22 Research In Motion Limited Content acquisition documents, methods, and systems
US8566702B2 (en) * 2010-09-20 2013-10-22 Blackberry Limited Methods and systems of outputting content of interest
US8458530B2 (en) 2010-09-21 2013-06-04 Oracle International Corporation Continuous system health indicator for managing computer system alerts
US8914841B2 (en) 2010-11-24 2014-12-16 Tufin Software Technologies Ltd. Method and system for mapping between connectivity requests and a security rule set
US8839132B2 (en) * 2010-12-02 2014-09-16 Tecsys, Inc. Method and system for providing visual instructions to warehouse operators
US9253156B2 (en) * 2011-06-09 2016-02-02 International Business Machines Corporation Dynamically defining network access rules
CN102831121B (zh) * 2011-06-15 2015-07-08 阿里巴巴集团控股有限公司 一种网页信息抽取的方法和系统
US9092482B2 (en) 2013-03-14 2015-07-28 Palantir Technologies, Inc. Fair scheduling for mixed-query loads
US8756509B2 (en) 2011-07-27 2014-06-17 International Business Machines Corporation Visually representing and managing access control of resources
US8732574B2 (en) 2011-08-25 2014-05-20 Palantir Technologies, Inc. System and method for parameterizing documents for automatic workflow generation
US8504542B2 (en) 2011-09-02 2013-08-06 Palantir Technologies, Inc. Multi-row transactions
US10534606B2 (en) 2011-12-08 2020-01-14 Oracle International Corporation Run-length encoding decompression
US9378526B2 (en) 2012-03-02 2016-06-28 Palantir Technologies, Inc. System and method for accessing data objects via remote references
CN103377252B (zh) * 2012-04-28 2018-03-27 国际商业机器公司 在物联网中进行数据过滤的方法和装置
US9043309B2 (en) * 2012-06-05 2015-05-26 Oracle International Corporation SQL transformation-based optimization techniques for enforcement of data access control
US9176999B2 (en) * 2012-09-13 2015-11-03 International Business Machines Corporation Multiplication-based method for stitching results of predicate evaluation in column stores
IL221975A (en) 2012-09-19 2015-02-26 Tufin Software Technologies Ltd A method and device for managing connectivity between resources in a computer network
US10922331B2 (en) 2012-09-28 2021-02-16 Oracle International Corporation Cloning a pluggable database in read-write mode
US10635674B2 (en) 2012-09-28 2020-04-28 Oracle International Corporation Migrating a pluggable database between database server instances with minimal impact to performance
US10210175B2 (en) * 2012-09-28 2019-02-19 Oracle International Corporation Techniques for lifecycle state management and in-database archiving
US9348677B2 (en) 2012-10-22 2016-05-24 Palantir Technologies Inc. System and method for batch evaluation programs
US9471370B2 (en) * 2012-10-22 2016-10-18 Palantir Technologies, Inc. System and method for stack-based batch evaluation of program instructions
US9367463B2 (en) 2013-03-14 2016-06-14 Palantir Technologies, Inc. System and method utilizing a shared cache to provide zero copy memory mapped database
US8909656B2 (en) 2013-03-15 2014-12-09 Palantir Technologies Inc. Filter chains with associated multipath views for exploring large data sets
US8868486B2 (en) 2013-03-15 2014-10-21 Palantir Technologies Inc. Time-sensitive cube
US10248962B2 (en) * 2013-04-08 2019-04-02 Oracle International Corporation Profitability simulator
US9965512B2 (en) * 2013-06-25 2018-05-08 Sap Se Operators for constants in aggregated formulas
US11113054B2 (en) 2013-09-10 2021-09-07 Oracle International Corporation Efficient hardware instructions for single instruction multiple data processors: fast fixed-length value compression
US9348888B1 (en) * 2013-09-24 2016-05-24 Emc Corporation Iterative filter expression processing for filtering embedded data objects
US9105000B1 (en) 2013-12-10 2015-08-11 Palantir Technologies Inc. Aggregating data from a plurality of data sources
US9495444B2 (en) 2014-02-07 2016-11-15 Quixey, Inc. Rules-based generation of search results
US20150261860A1 (en) * 2014-03-12 2015-09-17 Kaushal MITTAL Predicate execution in shared distributed computing environment
US8935201B1 (en) 2014-03-18 2015-01-13 Palantir Technologies Inc. Determining and extracting changed data from a data source
CN104102689B (zh) * 2014-05-12 2018-01-12 华迪计算机集团有限公司 基于数据模型对媒体数据进行检索的方法和装置
US20160026923A1 (en) 2014-07-22 2016-01-28 Palantir Technologies Inc. System and method for determining a propensity of entity to take a specified action
CN105447032A (zh) * 2014-08-29 2016-03-30 国际商业机器公司 用于处理消息与订阅信息方法和系统
US9785725B2 (en) 2014-09-26 2017-10-10 Oracle International Corporation Method and system for visualizing relational data as RDF graphs with interactive response time
CN107431664B (zh) 2015-01-23 2021-03-12 电子湾有限公司 消息传递系统和方法
US10425341B2 (en) 2015-01-23 2019-09-24 Ebay Inc. Processing high volume network data
CN105989060A (zh) * 2015-02-09 2016-10-05 阿里巴巴集团控股有限公司 数据管理方法、装置
US10025823B2 (en) * 2015-05-29 2018-07-17 Oracle International Corporation Techniques for evaluating query predicates during in-memory table scans
US9591489B2 (en) 2015-07-09 2017-03-07 International Business Machines Corporation Controlling application access to applications and resources via graphical representation and manipulation
US10067954B2 (en) 2015-07-22 2018-09-04 Oracle International Corporation Use of dynamic dictionary encoding with an associated hash table to support many-to-many joins and aggregations
US10366083B2 (en) 2015-07-29 2019-07-30 Oracle International Corporation Materializing internal computations in-memory to improve query performance
US10204135B2 (en) 2015-07-29 2019-02-12 Oracle International Corporation Materializing expressions within in-memory virtual column units to accelerate analytic queries
US10558339B1 (en) 2015-09-11 2020-02-11 Palantir Technologies Inc. System and method for analyzing electronic communications and a collaborative electronic communications user interface
US10789131B2 (en) 2015-10-23 2020-09-29 Oracle International Corporation Transportable backups for pluggable database relocation
US10289980B2 (en) * 2015-11-24 2019-05-14 Ariba, Inc. In-memory index for evaluating a complex expression
US9798787B1 (en) 2015-12-10 2017-10-24 Palantir Technologies Inc. System and user interfaces for searching resources and related documents using data structures
US10706368B2 (en) 2015-12-30 2020-07-07 Veritas Technologies Llc Systems and methods for efficiently classifying data objects
US10055358B2 (en) 2016-03-18 2018-08-21 Oracle International Corporation Run length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors
US10402425B2 (en) 2016-03-18 2019-09-03 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors
US10061714B2 (en) 2016-03-18 2018-08-28 Oracle International Corporation Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors
US10061832B2 (en) 2016-11-28 2018-08-28 Oracle International Corporation Database tuple-encoding-aware data partitioning in a direct memory access engine
CN107231283B (zh) * 2016-03-23 2020-12-18 阿里巴巴集团控股有限公司 消息管理方法及装置、消息预读方法及装置
US10554516B1 (en) 2016-06-09 2020-02-04 Palantir Technologies Inc. System to collect and visualize software usage metrics
US10552531B2 (en) 2016-08-11 2020-02-04 Palantir Technologies Inc. Collaborative spreadsheet data validation and integration
US10373078B1 (en) 2016-08-15 2019-08-06 Palantir Technologies Inc. Vector generation for distributed data sets
US10303894B2 (en) 2016-08-31 2019-05-28 Oracle International Corporation Fine-grained access control for data manipulation language (DML) operations on relational data
US10540217B2 (en) 2016-09-16 2020-01-21 Oracle International Corporation Message cache sizing
US10650086B1 (en) 2016-09-27 2020-05-12 Palantir Technologies Inc. Systems, methods, and framework for associating supporting data in word processing
US10152306B2 (en) 2016-11-07 2018-12-11 Palantir Technologies Inc. Framework for developing and deploying applications
US10459859B2 (en) 2016-11-28 2019-10-29 Oracle International Corporation Multicast copy ring for database direct memory access filtering engine
US10725947B2 (en) 2016-11-29 2020-07-28 Oracle International Corporation Bit vector gather row count calculation and handling in direct memory access engine
US10261763B2 (en) 2016-12-13 2019-04-16 Palantir Technologies Inc. Extensible data transformation authoring and validation system
FR3061337A1 (fr) 2016-12-23 2018-06-29 Dhatim Moteur de regles universel et optimise pour le traitement de documents de gestion
US10509844B1 (en) 2017-01-19 2019-12-17 Palantir Technologies Inc. Network graph parser
US10180934B2 (en) 2017-03-02 2019-01-15 Palantir Technologies Inc. Automatic translation of spreadsheets into scripts
US10572576B1 (en) 2017-04-06 2020-02-25 Palantir Technologies Inc. Systems and methods for facilitating data object extraction from unstructured documents
US10824604B1 (en) 2017-05-17 2020-11-03 Palantir Technologies Inc. Systems and methods for data entry
US10534595B1 (en) 2017-06-30 2020-01-14 Palantir Technologies Inc. Techniques for configuring and validating a data pipeline deployment
US10204119B1 (en) 2017-07-20 2019-02-12 Palantir Technologies, Inc. Inferring a dataset schema from input files
US10754820B2 (en) 2017-08-14 2020-08-25 Palantir Technologies Inc. Customizable pipeline for integrating data
US11016936B1 (en) 2017-09-05 2021-05-25 Palantir Technologies Inc. Validating data for integration
US11386058B2 (en) * 2017-09-29 2022-07-12 Oracle International Corporation Rule-based autonomous database cloud service framework
US11327932B2 (en) 2017-09-30 2022-05-10 Oracle International Corporation Autonomous multitenant database cloud service framework
CN107729496B (zh) * 2017-10-19 2018-08-28 珠海图思科软件有限公司 基于甲骨文In-Memory的SQL语句调优方法
US11379525B1 (en) 2017-11-22 2022-07-05 Palantir Technologies Inc. Continuous builds of derived datasets in response to other dataset updates
US10552524B1 (en) 2017-12-07 2020-02-04 Palantir Technolgies Inc. Systems and methods for in-line document tagging and object based data synchronization
US10360252B1 (en) 2017-12-08 2019-07-23 Palantir Technologies Inc. Detection and enrichment of missing data or metadata for large data sets
US11176116B2 (en) 2017-12-13 2021-11-16 Palantir Technologies Inc. Systems and methods for annotating datasets
US10853352B1 (en) 2017-12-21 2020-12-01 Palantir Technologies Inc. Structured data collection, presentation, validation and workflow management
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
GB201800595D0 (en) 2018-01-15 2018-02-28 Palantir Technologies Inc Management of software bugs in a data processing system
US10599762B1 (en) 2018-01-16 2020-03-24 Palantir Technologies Inc. Systems and methods for creating a dynamic electronic form
US10885021B1 (en) 2018-05-02 2021-01-05 Palantir Technologies Inc. Interactive interpreter and graphical user interface
US11263263B2 (en) 2018-05-30 2022-03-01 Palantir Technologies Inc. Data propagation and mapping system
US10795909B1 (en) 2018-06-14 2020-10-06 Palantir Technologies Inc. Minimized and collapsed resource dependency path
US11226955B2 (en) 2018-06-28 2022-01-18 Oracle International Corporation Techniques for enabling and integrating in-memory semi-structured data and text document searches with in-memory columnar query processing
CN109145013A (zh) * 2018-08-10 2019-01-04 上海达梦数据库有限公司 一种表达式转换方法、装置、设备及存储介质
CN110109957B (zh) * 2019-03-29 2021-10-01 奇安信科技集团股份有限公司 流式事件关联匹配方法及装置
US11636124B1 (en) * 2020-11-25 2023-04-25 Amazon Technologies, Inc. Integrating query optimization with machine learning model prediction
KR102490281B1 (ko) * 2020-12-21 2023-01-19 부산대학교 산학협력단 제품 불량 원인 분석 방법 및 장치

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5072405A (en) * 1988-10-31 1991-12-10 Digital Equipment Corporation RETE network with provisional satisfaction of node conditions
EP0959416A2 (en) * 1998-05-08 1999-11-24 International Business Machines Corporation Using database query technology for message subscriptions in messaging systems
US6067540A (en) * 1997-02-28 2000-05-23 Oracle Corporation Bitmap segmentation
WO2001008048A1 (en) * 1999-07-21 2001-02-01 Oracle Corporation Content based publish-and-subscribe system integrated in a relational database system
GB2354847A (en) * 1999-09-28 2001-04-04 Ibm Publish/subscribe data processing with subscription points for customised message processing
GB2354848A (en) * 1999-09-28 2001-04-04 Ibm Publish/subscribe data processing with subscriber requested messageflow for customised message processing
WO2001088795A1 (fr) * 2000-05-18 2001-11-22 Kabushiki Kaisha Daiwa Shoken Group Honsha Procede et systeme permettant de transmettre des informations relatives aux cours de bourse, base de donnees d'informations a cet effet, serveur de detection de conditions et terminal de client

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US193575A (en) * 1877-07-24 Improvement in names
US120642A (en) * 1871-11-07 Improvement in cutting up and punching sole-leather
US46421A (en) * 1865-02-14 Improved machine for
US181543A (en) * 1876-08-29 Improvement in dumb-waiters
US236834A (en) * 1881-01-18 Magazine fire-arm
US152149A (en) * 1874-06-16 Improvement in distributing apparatus for derricks
US47270A (en) * 1865-04-18 Improvement in feed-bags for horses
US32475A (en) * 1861-06-04 Clothes-wringer
US4815030A (en) * 1986-09-03 1989-03-21 Wang Laboratories, Inc. Multitask subscription data retrieval system
US8700458B2 (en) * 1989-05-01 2014-04-15 Catalina Marketing Corporation System, method, and database for processing transactions
US6044205A (en) * 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
US5466885A (en) * 1990-09-27 1995-11-14 Furukawa Denki Kogyo Kabushiki Kaisha Magnetically shielding structure
JP2929042B2 (ja) 1991-09-30 1999-08-03 国際電気株式会社 携帯型金融情報通報システムおよびその制御装置
US5627764A (en) 1991-10-04 1997-05-06 Banyan Systems, Inc. Automatic electronic messaging system with feedback and work flow administration
US5283856A (en) 1991-10-04 1994-02-01 Beyond, Inc. Event-driven rule-based messaging system
US5446885A (en) 1992-05-15 1995-08-29 International Business Machines Corporation Event driven management information system with rule-based applications structure stored in a relational database
US5530855A (en) * 1992-10-13 1996-06-25 International Business Machines Corporation Replicating a database by the sequential application of hierarchically sorted log records
GB2274182B (en) 1993-01-09 1996-09-25 Digital Equipment Int Database co-processor
JPH06319024A (ja) 1993-05-07 1994-11-15 Nippon Rojisuteikusu Kk ファクシミリサーバシステム
JPH0816378A (ja) * 1994-06-30 1996-01-19 Fujitsu Ltd プログラム・リバース解析方法および装置
US5870552A (en) * 1995-03-28 1999-02-09 America Online, Inc. Method and apparatus for publishing hypermedia documents over wide area networks
US5564047A (en) * 1995-04-11 1996-10-08 International Business Machines Corporation Trigger generation in an active database management system
US5692125A (en) * 1995-05-09 1997-11-25 International Business Machines Corporation System and method for scheduling linked events with fixed and dynamic conditions
CA2176164A1 (en) 1995-05-19 1996-11-20 Hosagrahar Visvesvaraya Jagadish Method for managing rule conflicts in active rule-based systems
US5870605A (en) * 1996-01-18 1999-02-09 Sun Microsystems, Inc. Middleware for enterprise information distribution
US5873084A (en) * 1996-01-18 1999-02-16 Sun Microsystems, Inc. Database network connectivity product
US5999946A (en) * 1996-04-10 1999-12-07 Harris Corporation Databases in telecommunications
US5864871A (en) 1996-06-04 1999-01-26 Multex Systems Information delivery system and method including on-line entitlements
US5870747A (en) 1996-07-09 1999-02-09 Informix Software, Inc. Generalized key indexes
US5995980A (en) * 1996-07-23 1999-11-30 Olson; Jack E. System and method for database update replication
US5852818A (en) * 1996-12-23 1998-12-22 Oracle Corporation Non-recursive method for parameter evaluation within an information management system
US5984786A (en) * 1997-01-03 1999-11-16 2 Am Inc. Run-time environment for simulations and games
JPH10222493A (ja) 1997-02-06 1998-08-21 Kokusai Denshin Denwa Co Ltd <Kdd> 相互因果関係解析システム
WO1998038587A1 (en) * 1997-02-26 1998-09-03 Siebel Systems, Inc. Method of using a cache to determine the visibility to a remote database client of a plurality of database transactions
US5940839A (en) 1997-04-04 1999-08-17 Hewlett-Packard Company Fault-tolerant system and method of managing transaction failures in hierarchies
US5873075A (en) 1997-06-30 1999-02-16 International Business Machines Corporation Synchronization of SQL actions in a relational database system
US6038601A (en) * 1997-07-21 2000-03-14 Tibco, Inc. Method and apparatus for storing and delivering documents on the internet
US5999931A (en) * 1997-10-17 1999-12-07 Lucent Technologies Inc. Concurrency control protocols for management of replicated data items in a distributed database system
US6490574B1 (en) * 1997-12-17 2002-12-03 International Business Machines Corporation Method and system for managing rules and events in a multi-user intelligent agent environment
US6122639A (en) * 1997-12-23 2000-09-19 Cisco Technology, Inc. Network device information collection and change detection
US6073129A (en) * 1997-12-29 2000-06-06 Bull Hn Information Systems Inc. Method and apparatus for improving the performance of a database management system through a central cache mechanism
US6182086B1 (en) * 1998-03-02 2001-01-30 Microsoft Corporation Client-server computer system with application recovery of server applications and client applications
US6560592B1 (en) * 1998-03-19 2003-05-06 Micro Data Base Systems, Inc. Multi-model computer database storage system with integrated rule engine
US6247017B1 (en) * 1998-03-20 2001-06-12 Sun Microsystems, Inc. Server-client communication over a network
US6304882B1 (en) * 1998-05-05 2001-10-16 Informix Software, Inc. Data replication system and method
JP3004008B1 (ja) * 1998-10-20 2000-01-31 三菱電機株式会社 更新履歴管理装置及び更新履歴管理方法
US6185555B1 (en) * 1998-10-31 2001-02-06 M/A/R/C Inc. Method and apparatus for data management using an event transition network
US6285997B1 (en) * 1998-11-16 2001-09-04 International Business Machines Corporation Query optimization with deferred update and autonomous sources
US6738975B1 (en) * 1998-11-18 2004-05-18 Software Ag, Inc. Extensible distributed enterprise application integration system
US6442568B1 (en) * 1998-12-11 2002-08-27 Compaq Computer Corporation Customer information control system application programming interface with transient data functions, in a loosely coupled data processing environment
US6473772B1 (en) * 1998-12-17 2002-10-29 International Business Machines Corporation Apparatus and methods for dynamic simulation event triggering
DE10003015A1 (de) * 1999-02-06 2000-08-17 Ibm Die Erzeugung von Ereignis-Bedingungs-Aktions-Regeln aus Prozessmodellen
US6233537B1 (en) 1999-03-26 2001-05-15 E.Piphany, Inc. Workflow modeling language
US6539381B1 (en) * 1999-04-21 2003-03-25 Novell, Inc. System and method for synchronizing database information
US6728879B1 (en) * 1999-06-02 2004-04-27 Microsoft Corporation Transactional log with multi-sector log block validation
US6801915B1 (en) 1999-07-28 2004-10-05 Robert Mack Paired keys for data structures
US6604093B1 (en) * 1999-12-27 2003-08-05 International Business Machines Corporation Situation awareness system
US7016910B2 (en) 1999-12-30 2006-03-21 Decode Genetics Ehf. Indexing, rewriting and efficient querying of relations referencing semistructured data
US7072934B2 (en) * 2000-01-14 2006-07-04 Saba Software, Inc. Method and apparatus for a business applications server management system platform
US6604100B1 (en) * 2000-02-09 2003-08-05 At&T Corp. Method for converting relational data into a structured document
WO2001061565A1 (en) * 2000-02-16 2001-08-23 Askit Systems Inc. Customer service system and method
US7080382B2 (en) * 2000-02-25 2006-07-18 Oracle International Corporation Accessing shorter-duration instances of activatable objects based on object references stored in longer-duration memory
US6427146B1 (en) * 2000-03-31 2002-07-30 Wesley W. Chu Database event detection and notification system using type abstraction hierarchy (TAH)
US6681383B1 (en) * 2000-04-04 2004-01-20 Sosy, Inc. Automatic software production system
US6925476B1 (en) * 2000-08-17 2005-08-02 Fusionone, Inc. Updating application data including adding first change log to aggreagate change log comprising summary of changes
WO2002021413A2 (en) 2000-09-05 2002-03-14 Zaplet, Inc. Methods and apparatus providing electronic messages that are linked and aggregated
US20020069157A1 (en) * 2000-09-15 2002-06-06 Jordan Michael S. Exchange fusion
US20030061061A1 (en) * 2000-10-27 2003-03-27 Cox Earl D. Uniform data model
US6493701B2 (en) 2000-11-22 2002-12-10 Sybase, Inc. Database system with methodogy providing faster N-ary nested loop joins
US7844666B2 (en) 2000-12-12 2010-11-30 Microsoft Corporation Controls and displays for acquiring preferences, inspecting behavior, and guiding the learning and decision policies of an adaptive communications prioritization and routing system
US6931644B2 (en) * 2000-12-21 2005-08-16 International Business Machines Corporation Hierarchical connected graph model for implementation of event management design
US20020091685A1 (en) * 2001-01-10 2002-07-11 Letmeknow Technology System and method for filtering data events
US7162467B2 (en) * 2001-02-22 2007-01-09 Greenplum, Inc. Systems and methods for managing distributed database resources
US7177866B2 (en) * 2001-03-16 2007-02-13 Gravic, Inc. Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only
US7103586B2 (en) * 2001-03-16 2006-09-05 Gravic, Inc. Collision avoidance in database replication systems
US6697791B2 (en) * 2001-05-04 2004-02-24 International Business Machines Corporation System and method for systematic construction of correlation rules for event management
US6868413B1 (en) * 2001-05-10 2005-03-15 Networks Associates Technology, Inc. System and method for customizing and processing business logic rules in a business process system
US6918107B2 (en) * 2001-07-02 2005-07-12 Bea Systems, Inc. Programming language extensions for processing data representation language objects and related applications
US6745209B2 (en) * 2001-08-15 2004-06-01 Iti, Inc. Synchronization of plural databases in a database replication system
US6901410B2 (en) * 2001-09-10 2005-05-31 Marron Pedro Jose LDAP-based distributed cache technology for XML
US7089228B2 (en) * 2002-04-18 2006-08-08 International Business Machines Corporation Computer apparatus and method for caching results of a database query
US7127467B2 (en) 2002-05-10 2006-10-24 Oracle International Corporation Managing expressions in a database system
US6691155B2 (en) * 2002-06-20 2004-02-10 Linda Gottfried Multimedia system for sharing brand information keeps history of modifications of production information by consumers to allow recreating multimedia interface in its previous formats
US6917946B2 (en) * 2002-08-12 2005-07-12 International Business Machines Corporation Method and system for partitioning filter rules for multi-search enforcement
US7149738B2 (en) * 2002-12-16 2006-12-12 International Business Machines Corporation Resource and data administration technologies for IT non-experts
US7644361B2 (en) * 2002-12-23 2010-01-05 Canon Kabushiki Kaisha Method of using recommendations to visually create new views of data across heterogeneous sources
US20040193575A1 (en) * 2003-03-25 2004-09-30 Chia-Hsun Chen Path expressions and SQL select statement in object oriented language
US7801851B2 (en) * 2003-06-30 2010-09-21 Gravic, Inc. Method for ensuring referential integrity in multi-threaded replication engines
US7289988B2 (en) * 2003-07-08 2007-10-30 Hewlett-Packard Development Company, L.P. Method and system for managing events
US7984021B2 (en) * 2003-12-05 2011-07-19 International Business Machines Corporation Optimal use of triggers for detecting database events
US8688634B2 (en) * 2004-02-27 2014-04-01 International Business Machines Corporation Asynchronous peer-to-peer data replication
US7406477B2 (en) * 2004-03-12 2008-07-29 Sybase, Inc. Database system with methodology for automated determination and selection of optimal indexes
US20050222996A1 (en) 2004-03-30 2005-10-06 Oracle International Corporation Managing event-condition-action rules in a database system
US7945569B2 (en) * 2004-03-31 2011-05-17 Hewlett-Packard Development Company, L.P. Method and apparatus for querying spatial data

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5072405A (en) * 1988-10-31 1991-12-10 Digital Equipment Corporation RETE network with provisional satisfaction of node conditions
US6067540A (en) * 1997-02-28 2000-05-23 Oracle Corporation Bitmap segmentation
EP0959416A2 (en) * 1998-05-08 1999-11-24 International Business Machines Corporation Using database query technology for message subscriptions in messaging systems
WO2001008048A1 (en) * 1999-07-21 2001-02-01 Oracle Corporation Content based publish-and-subscribe system integrated in a relational database system
GB2354847A (en) * 1999-09-28 2001-04-04 Ibm Publish/subscribe data processing with subscription points for customised message processing
GB2354848A (en) * 1999-09-28 2001-04-04 Ibm Publish/subscribe data processing with subscriber requested messageflow for customised message processing
WO2001088795A1 (fr) * 2000-05-18 2001-11-22 Kabushiki Kaisha Daiwa Shoken Group Honsha Procede et systeme permettant de transmettre des informations relatives aux cours de bourse, base de donnees d'informations a cet effet, serveur de detection de conditions et terminal de client

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IMPROVED RETE ALGORITHM - HASHINGTECHNIQUES APPLIED TO PARTIAL MATCH MEMORIES. IBM TECHNICAL DISCLOSURE BULLETIN,Vol.35 No.3. 1992
IMPROVED RETE ALGORITHM - HASHINGTECHNIQUES APPLIED TO PARTIAL MATCH MEMORIES. IBM TECHNICAL DISCLOSURE BULLETIN,Vol.35 No.3. 1992 *

Also Published As

Publication number Publication date
US7590650B2 (en) 2009-09-15
WO2003098479A3 (en) 2004-04-08
US20060218194A1 (en) 2006-09-28
WO2003098479A2 (en) 2003-11-27
AU2003249632A1 (en) 2003-12-02
EP1504380A2 (en) 2005-02-09
US7107282B1 (en) 2006-09-12
US20030212657A1 (en) 2003-11-13
CN1653452A (zh) 2005-08-10
CA2484009A1 (en) 2003-11-27
US7127467B2 (en) 2006-10-24
JP2005525657A (ja) 2005-08-25
US7366713B2 (en) 2008-04-29
US20030212670A1 (en) 2003-11-13
AU2003249632B2 (en) 2008-07-10
CA2484009C (en) 2012-12-11

Similar Documents

Publication Publication Date Title
CN100428227C (zh) 管理数据库系统中的表达式
US8019752B2 (en) System and method for information retrieval from object collections with complex interrelationships
CN100545835C (zh) 在xml文档和关系数据之间的映射中保留层次信息
CN100437558C (zh) 从一个集合的图象对象识别相互关联的图象对象的子集的方法和设备
CN100590617C (zh) 信息检索系统中基于短语的索引编制方法和系统
US20080114730A1 (en) Batching document identifiers for result trimming
US20040148278A1 (en) System and method for providing content warehouse
CN100517318C (zh) 用于存取xml数据的索引
US20090164387A1 (en) Systems and methods for providing semantically enhanced financial information
US20050131935A1 (en) Sector content mining system using a modular knowledge base
US20050120021A1 (en) Metadata driven intelligent data navigation
US6772137B1 (en) Centralized maintenance and management of objects in a reporting system
CN100390790C (zh) 存储和访问数据,以及提高数据库查询语言语句性能的方法和机制
JP2003518296A (ja) トークンを使用したデータ・リンキング・システムおよび方法
JP2003500748A (ja) データウェアハウスの集合体レベル及びクロス乗積レベルを選択するための方法及び装置
CN102708130A (zh) 计算用户微细分以用于要约匹配的可扩展引擎
CN101866347A (zh) 对结构化数据进行搜索的方法、系统以及使数据项结构化及可搜索的方法、系统
KR20080080098A (ko) 구조화된 데이터에 속성 및 라벨을 추가하는 방법
CN101606152A (zh) 通过分类而自动匹配主体到客户的内容的机制
CN102057376B (zh) 用于进行分布式搜索的方法
Sadath Data mining in E-commerce: a CRM platform
Gao et al. Semi-structured data extraction from heterogeneous sources
US9400814B2 (en) Hierarchy nodes derived based on parent/child foreign key and/or range values on parent node
Rudenko et al. A Preference-based Stream Analyzer.
Rosaci et al. A framework for abstracting data sources having heterogeneous representation formats

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
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20081022