CN1823335A - 抽象数据链接和联接接口 - Google Patents
抽象数据链接和联接接口 Download PDFInfo
- Publication number
- CN1823335A CN1823335A CNA2004800198604A CN200480019860A CN1823335A CN 1823335 A CN1823335 A CN 1823335A CN A2004800198604 A CNA2004800198604 A CN A2004800198604A CN 200480019860 A CN200480019860 A CN 200480019860A CN 1823335 A CN1823335 A CN 1823335A
- Authority
- CN
- China
- Prior art keywords
- field
- logical
- user
- data
- 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.)
- Pending
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/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- 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/242—Query formulation
- G06F16/2428—Query predicate definition using graphical user interfaces, including menus and forms
-
- 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/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- 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
- Y10S715/00—Data processing: presentation processing of document, operator interface processing, and screen saver display processing
- Y10S715/961—Operator interface with visual structure or function dictated by intended use
- Y10S715/965—Operator interface with visual structure or function dictated by intended use for process control and configuration
- Y10S715/966—Computer process, e.g. operation of computer
- Y10S715/968—Computer process, e.g. operation of computer interface for database querying and retrieval
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种方法、设备和产品提供了用户界面,该界面允许用户选择和排列在一个实施例中从逻辑模型所选择的结果字段。在一个实施例中,用户界面是图形用户界面(1400)并包括用于用户选择的逻辑结果字段的输入单元(1402)。单元被排列以定义逻辑结果字段(1402)之间的几何关系,该关系决定了组合语句类型,通过该类型,在查询中将单元中的逻辑结果字段(1402)。
Description
技术领域
一般而言,本发明涉及数据处理,具体来说,涉及通过逻辑框架访问数据。
背景技术
数据库是计算机化的信息存储和检索***。最普通的数据库类型是关系数据库,这是一种其中如此定义数据以便可以以许多不同的方式重新组织和访问它的表格数据库。关系数据库管理***(DBMS)是使用用于存储和检索数据的关系技术的数据库管理***。
不管特定体系结构如何,在DBMS中,请求性实体(例如,应用程序、操作***或用户)通过发出数据库访问请求来访问指定的数据库。这样的请求可以包括,例如,操作以读取、改变记录和在数据库中添加指定的记录的简单目录查询请求或事务和事务的组合。使用诸如结构化查询语言(SQL)之类的高级别的查询语言来作出这些请求。具体来说,使用SQL来作出交互式查询,以便从诸如IBM公司的DB2、微软的SQL Server和来自Oracle、Sybase和Computer Associates的数据库产品获取信息并更新这些数据库。术语“查询”表示一组用于从存储的数据库中检索数据的命令。一般而言,查询呈现让程序员和程序选择、***、更新、查找数据等等的位置的命令语言的形式。
查询可能常常需要对着多个表运行,以返回所需要的数据。当数据驻留在多个数据库(即,位于多个数据库服务器上)时,就是这种情况。例如,病人的记录(诊断、治疗等等)可以存储在一个数据库中,而涉及用于治疗该病人的药物的临床试验信息可以存储在另一个数据库中。因此,要访问数据,可以生成指向这些不同数据库中的每一个数据库的联合查询。如这里所使用的,术语“联合查询”一般是指需要组合针对不同的数据库运行的查询的结果的任何查询。用来完成此任务的操作这里被称为“组合语句”。举例来说,组合语句包括诸如JOIN语句(包括INNER、OUTER、LEFT和RIGHT)系列,UNION语句系列之类的语句。JOIN将来自两个不同的表或来自同一个表的数据配对。UNION可以对两个相同的表进行操作或可以用来连接来自相似字段的数据。例如,名为ADDRESS的字段可以与名为LOCATION的字段UNION起来。这些字段不相同,可以,也可以不必来自于同一个表,但它们包含类似的信息。作为说明,表I和II显示了其中表被分别JOIN和UNION的SQL语句的示例。
TABLEI
SELECT T1.ADDRESS,T1.CITY,T1.STATE,T1.ZIP,T2.LOCATION FROM ADDRESSES T1,NEIGHBORHOOD T2WHERE T1.ADDRESSID=T2.ADDRESSID AND T1.ZIP=55901
TABLE II
SELECT ADDRESS,CITY,STATE,ZIP FROM ADDRESSESWHERE ZIP=55901 UNION
SELECT LOCATION,NULL,NULL,NULL FROMNEIGHBORHOOD WHERE ZIP=55901
UNION示例(表II)将位置附加到ADDRESS之后,JOIN(表I)示例将位置与它属于的地址链接。
值得注意的是,JOIN和UNION只是组合语句的两个示例。组合语句的另一个示例是ACCEPT语句系列。此外,还存在对应的语句,或者也可以为SQL之外的查询语言(例如,XQuery)开发对应的语句。
通常,用户需要创建查询语句,理解基础物理数据,以便应用适当的组合语句,从而返回所希望的结果。然而,这会给用户带来很大的负担,只有具有足够的专门知识的用户才能访问。
因此,所需要的是具有灵活性的构建查询接口,具体来说,其数据可能需要链接起来或组合起来,以返回所希望的结果。
发明内容
本发明提供了使用诸如JOIN和UNION之类的组合语句访问抽象描述的物理数据的方法、***和产品。在一个实施例中,数据通过抽象模型来进行定义,该模型包括描述和定义多个逻辑字段的元数据。提供了用于创建抽象查询的用户界面工具。该工具的一个方面给用户提供了映射必须通过第一种语句类型(例如,UNION)组合的那些字段(列)和必须通过第二种语句类型(例如,JOIN)组合的那些字段的装置。
在一个实施例中,一种方法提供了物理数据实体的物理字段的逻辑表示以方便查询所述物理字段。该方法包括提供逻辑模型以在逻辑上描述所述物理字段,所述逻辑模型包括对应于相应的物理字段的逻辑字段;并提供运行时组件,该组件被配置为,将抽象查询转换为包含至少一个组合语句的可执行的查询,所述抽象查询包括条件和从逻辑模型的逻辑字段中选择的至少两个结果字段,每一个结果字段都在可执行的查询的至少一个组合语句中具有可执行的对应部分。
另一种方法提供了物理数据实体的物理字段的逻辑表示以方便查询所述物理字段。该方法包括提供逻辑模型以在逻辑上描述所述物理字段,所述逻辑模型包括对应于相应的物理字段的逻辑字段;接收相对于包括对应于相应的物理字段的逻辑字段的逻辑模型定义的抽象查询,所述抽象查询包括条件和从逻辑模型的逻辑字段中选择的至少两个组合结果字段;并将抽象查询转换为包含至少一个组合语句的可执行的查询,所述抽象查询包括条件和从逻辑模型的逻辑字段中选择的至少两个组合结果字段,每一个结果字段都在可执行的查询的组合语句中具有可执行的对应部分。
在另一个实施例中,一种方法允许构建查询。该方法包括提供一种图形用户界面,该界面允许用户选择和排列从在逻辑上定义数据的逻辑模型中选择的逻辑结果字段,其中,用户选择的逻辑结果字段之间的预先确定的相对几何排列定义用户选择的逻辑结果字段之间的组合关系。
在另一个实施例中,一种允许构建查询的方法包括提供一种图形用户界面,该界面允许用户选择和排列从在逻辑上定义数据的逻辑模型中选择的逻辑结果字段,其中,用户选择的逻辑结果字段之间的第一预先确定的相对几何排列定义用户选择的逻辑结果字段之间的第一种组合关系,其中,用户选择的逻辑结果字段之间的第二预先确定的相对几何关系定义用户选择的逻辑结果字段之间的第二种组合关系。
在另一个实施例中,一种允许构建查询的方法包括提供一种图形用户界面,该界面允许用户选择和排列从在逻辑上定义数据的逻辑模型中选择的逻辑结果字段,该图形用户界面包括表,该表包括多个单元,其中,相邻的单元中的用户选择的逻辑结果字段之间的预先确定的相对几何排列定义用户选择的逻辑结果字段之间的组合关系。
在另一个实施例中,一种用于构建查询的方法包括提供逻辑模型以在逻辑上描述所述物理字段,所述逻辑模型包括对应于相应的物理字段的逻辑字段;提供一种图形用户界面,该界面允许用户选择和排列从逻辑模型中选择的逻辑结果字段;接收用户在图形用户界面中指定第一逻辑结果字段的选择和位置的输入;接收用户在图形用户界面中指定第二逻辑结果字段的选择和位置的输入,其中,第一和第二逻辑结果字段具有相对几何关系并定义抽象查询的至少一部分;并将抽象查询转换为包含至少一个组合语句并作为相对几何关系的结果生成的可执行的查询,所述组合语句中包含第一和第二逻辑结果字段的表示。
再一个实施例提供了包含图形用户界面程序的计算机可读取的介质,该程序在执行时,执行用于构建相对于包括映射到数据的物理实体的物理字段的多个逻辑字段定义的逻辑模型而定义的抽象查询的操作。该操作包括接收用户在图形用户界面中指定第一逻辑结果字段的选择和位置的输入;其中,图形用户界面允许用户从逻辑模型中选择逻辑结果字段,并支持用户选择的逻辑结果字段之间的关系;并接收用户在图形用户界面中指定第二逻辑结果字段的选择和位置的输入,其中,第一和第二逻辑结果字段定义抽象查询的至少一部分,所述抽象查询被转换成包含至少一个组合语句的可执行的查询,其中包含第一和第二逻辑结果字段的对应部分。
再一个实施例提供了包含程序的计算机可读取的介质,该程序在执行时,执行用于构建相对于包括映射到数据的物理实体的物理字段的多个逻辑字段定义的逻辑模型而定义的抽象查询的操作。该操作包括接收用户在图形用户界面中指定第一逻辑结果字段的选择和位置的输入;其中,图形用户界面允许用户选择和排列从逻辑模型中选择的逻辑结果字段;接收用户在图形用户界面中指定第二逻辑结果字段的选择和位置的输入,其中,第一和第二逻辑结果字段具有相对几何关系并定义抽象查询的至少一部分;并将抽象查询转换为包含至少一个组合语句并作为相对几何关系的结果生成的可执行的查询,所述组合语句包含第一和第二逻辑结果字段的对应部分。
再一个实施例提供了计算机***,包括存储器和至少一个处理器,并进一步包括逻辑模型,该逻辑模型包括映射到数据的物理实体的物理字段的多个逻辑字段定义,从而,逻辑模型提供了数据的逻辑视图;允许用户选择和排列从逻辑模型中选择的逻辑结果字段的图形用户界面;
其中,图形用户界面包括用于用户选择的逻辑结果字段的输入单元,其中,单元之间的预先定义的几何关系指定单元中的用户选择的逻辑结果字段是根据两种或更多种组合语句类型中的哪一种类型相关联的。
附图说明
通过参考附图中所显示的实施例,可以获得实现本发明的上文列举的特点、优点和目标并可以对它们进行详细理解的方式,上文简要概括的本发明的比较具体的说明。
然而,值得注意的是,所附的图形只显示了本发明的典型的实施例,因此,不视为对其范围进行限制,对于本发明,可以允许其他同样有效的实施例。
图1是说明性的计算机体系结构的方框图;
图2是被配置为通过物理数据源的抽象表示形式来对物理数据源处理查询的本发明的一个实施例的软件组件的关系视图;
图3是说明运行时组件的操作的流程图;
图4是说明运行时组件的操作的流程图;
图5是用于启动向查询添加条件的过程的图形用户界面屏幕;
图6是用于作为条件将出生日期添加到查询中的图形用户界面屏幕;
图7是向查询显示现有条件并且用户可以从中将附加条件添加到查询并执行查询的图形用户界面屏幕;
图8是用附加条件更新之后的图4的图形用户界面屏幕;
图9是用户可以从中将条件组合起来以构成复合条件的图形用户界面屏幕;
图10是已经被更新以反映组合的条件之后的图4的图形用户界面屏幕;
图11是用户可以从中将复合条件的条件取消组合的图形用户界面屏幕;
图12是用户可以从中选择结果字段以包括在查询中的图形用户界面屏幕;
图13-15是其中用户UNION和/或JOIN了所选择的结果字段的图形用户界面屏幕;
图16是用结果字段选择更新之后图11的图形用户界面屏幕;以及
图17是说明产生包括UNION语句的抽象查询的流程图;
具体实施方式
引言
本发明的一个实施例是与计算机***一起使用的程序产品来实现的,下面将对其进行描述。程序产品的程序定义实施例(包括这里所描述的方法)的功能,并可以包含在各种承载信号的介质中。说明性的承载信号的介质包括,但不仅限于:(i)永久存储在非可写入的存储介质(例如,可由CD-ROM驱动器读取的诸如CD-ROM光盘之类的计算机内的只读存储器设备)中的信息;(ii)存储在可写入存储介质(例如,软盘驱动器内的软盘或硬盘驱动器)上的可变的信息;或(iii)诸如通过计算机或电话网络,包括无线通信,通过通信介质传输到计算机的信息。后一实施例特别包括从因特网和其他网络下载的信息。这样的承载的信号介质,当携带实现本发明的功能的计算机可读的指令时,表示本发明的实施例。
一般而言,被执行以实现本发明的实施例的例程,可以是操作***的一部分或特定的应用程序、组件、程序、模块、对象,或指令序列。本发明的软件通常包括将被本地计算机转换为机器可读的格式并因此转换为可执行的指令的多个指令。此外,程序还包括驻留在程序本地或被发现在存储器或者存储设备中的变量和数据结构。此外,可以基于应用程序(在本发明的特定实施例中实现了程序)识别下文所描述的各种程序。然而,应该理解,随后的任何特定的术语都只是为了方便,如此本发明不应该只限于在这样的术语所标识和/或暗指的任何特定的应用程序中。
本发明的实施例用于构建查询。在一个实施例中,用户指定条件(例如,如在SQL查询的WHERE子句中)以及结果标准(例如,如在SELECT子句中)。组合语句根据搜索到的结果将结果标准的组件关联。例如,组合语句包括JOIN、UNION、ACCEPT和它们相应的系列成员(例如,在JOIN的情况下,为INNER、OUTER、LEFT和RIGHT)。为了方便起见并为了说明,将强调JOIN和UNION。然而,应该理解,本发明不仅限于特定类型的组合语句,本发明也不涉及特定查询语言。如此,对SQL的引用只是为了说明,而不对本发明作出限制,同样地适用于已知或未知的任何查询语言。
在一个实施例中,提供了特定数据定义框架(这里也简称为数据抽象模型(DAM)),用于查询数据,与物理上表示数据的特定方式无关。DAM包括描述和定义映射到物理数据的多个逻辑字段的元数据。然而,虽然是就构建并相对于逻辑模型来执行的查询来描述本发明的实施例的,但是本发明不仅限于任何任何特定的逻辑模型。相应地,这里所说明的实施例只是说明性的。
环境的物理视图
图1描述了其中可以实现本发明的实施例的网络***100的方框图。一般而言,网络***100包括客户端(即,一般而言,诸如用户或应用程序之类的任何请求性实体)计算机102(显示了三个这样的客户端计算机)和至少一个服务器计算机104(显示了一个这样的服务器计算机)。客户端计算机102和服务器计算机104通过网络126连接在一起。一般而言,网络126可以是局域网(LAN)和/或广域网(WAN)。在特定实施例中,网络126是因特网。然而,值得注意的是,本发明的各个方面不必在分布式环境中实现。如此,一般而言,客户端计算机102和服务器计算机104分别代表发出查询的任何请求性实体(如用户或应用程序)和被配置为处理查询的接收性实体。
客户端计算机102包括通过总线130连接到存储器112、存储器114、输入设备116、输出设备119和网络接口设备118的中央处理单元(CPU)110。输入设备116可以是向客户端计算机102提供输入的任何设备。例如,可以使用键盘、小键盘、光笔、触摸屏、跟踪球、或语音识别单元、音频/视频播放器等等。输出设备119可以是向用户提供输出的任何设备,例如,任何常规显示屏幕。虽然所显示的是与输入设备116分开的,但是,输出设备119和输入设备116可以组合起来。例如,可以使用具有集成的触摸屏的显示屏幕,具有集成的键盘的显示器或与文字语言转换器结合的语音识别单元。
网络接口设备118可以是被配置为允许通过网络126在客户端计算机102和服务器计算机104之间进行网络通信的任何进入/退出设备。例如,网络接口设备118可以是网络适配器或其他网络接口卡(NIC)。
优选情况下,存储器114是直接访问存储器(DASD)。虽然显示为单个单元,但是,它可以是固定和/或可移动存储设备的组合,如固定磁盘驱动器、软盘驱动器、磁带驱动器、可移动存储卡或光存储器。存储器112和存储器114可以是跨多个主要和辅助存储设备的一个虚拟地址空间的一部分。
优选情况下,存储器112是充分大,可以容纳本发明的所需要的编程和数据结构的随机存取存储器。尽管存储器112被显示为单个实体,但是,应该理解,事实上,存储器112可以包括多个模块,存储器112可以在多个级别存在,从高速寄存器和高速缓存到较低速度的但较大的DAMM芯片。
为便于说明,存储器112包含操作***124。可以优先使用的说明性的操作***包括Linux和微软的Windows。一般而言,可以使用支持这里所说明的功能的任何操作***。
存储器112还包含浏览器程序122,当在CPU 110上执行该浏览器程序时,支持在各种服务器104之间浏览并将网络地址定位到一个或多个服务器104上。在一个实施例中,浏览器程序122包括基于Web的图形用户界面(GUI),该界面允许用户显示超文本标记语言(HTML)信息。然而,一般而言,浏览器程序122可以是能够呈现从服务器计算机104传输的信息的任何基于GUI的程序。
服务器计算机104在物理上可以以类似于客户端计算机102的方式进行配置。相应地,一般而言,显示的服务器计算机104包括CPU 130、存储器132,以及存储设备134,它们通过总线136彼此连接在一起。存储器132可以是充分大的随机存取存储器,可以容纳位于服务器计算机104上的所需要的编程和数据结构。
一般而言,服务器计算机104在驻留在存储器132中的操作***138的控制下。操作***138的示例包括IBM OS/400,UNIX,Microsoft Windows等等。一般而言,可以使用能够支持这里所描述的功能的任何操作***。
存储器132进一步包括一个或多个应用程序140和抽象查询界面146。应用程序140和抽象查询界面146是软件产品,包括在不同的时间驻留在计算机***100中的各种存储器和存储设备中的多个指令。当被服务器104中的一个或多个处理器130读取和执行时,应用程序140和抽象查询界面146使计算机***100执行那些实现本发明各个方面所需要的步骤或元素。应用程序140(一般而言,任何请求性实体,包括操作***138,在最高级别,用户)针对数据库发出查询。可以向其发出查询的说明性的源包括本地数据库1561...156N,远程数据库1571...157N,统称为数据库156-157。为便于说明,所显示的数据库156为存储器134中的数据库管理***(DBMS)154的一部分。一般而言,如这里所使用的,术语“数据库”是指任何数据集合,不管特定的物理表示形式。作为说明,可以根据关系架构(可通过SQL查询来进行访问)或根据XML架构(可通过XML查询来进行访问)来组织数据库156-157。然而,本发明不仅限于特定架构,并可以扩展到目前未知的架构。如这里所使用的,术语“架构”一般是指通过数据知识库抽象148描述的数据的特定布局。
在一个实施例中,根据每一个应用程序140中所包括的应用程序查询规范142来定义应用程序140发出的查询。应用程序140发出的查询可以是预先定义的(即,作为应用程序140的一部分被硬编码),也可以响应输入(例如,用户输入)来生成。不论是哪一种情况,都可以使用抽象查询界面146所定义的逻辑字段来构成查询(这里简称为“抽象查询”)。具体来说,在抽象查询中所使用的逻辑字段是通过抽象查询界面146的数据抽象模型(DAM)148来进行定义的。抽象查询被运行时组件150处理,该运行时组件将抽象查询转换为与一个或多个数据库156-157中所包含的数据的物理表示形式一致的形式(这里简称为“具体查询”)。具体来说,此处理是由运行时组件150的物理查询编制器161来执行的。运行时组件150还包括分析工具162,这样叫,是因为它能实现这里所描述的数据分析功能。为便于说明,分析工具162包括DAM生成器164、查询增强器166和表编制器168。值得注意的是,运行时组件150的功能只是说明性的。那些精通本技术的人员将认识到,可以在别处(例如,在数据库管理***154本身中)实现这些功能。下面将进一步描述抽象查询界面146的每一个组件/功能。
由运行时组件150处理的抽象查询可以被配置为访问数据和返回结果,或修改(即,***、删除或更新)数据。在一个实施例中,由用户通过图形用户界面(GUI)指定查询的元素。由应用程序140,具体来说,由图形用户界面(GUI)编制器144来生成GUI的内容。在特定实施例中,GUI内容是超文本标记语言(HTML)内容,可以用浏览器程序122呈现在客户端计算机***102上。相应地,存储器132包括超文本传输协议(http)服务器进程138(例如,Web服务器),用于服务于来自客户端计算机102的请求。例如,进程138可以响应访问说明性地驻留在服务器104上的数据库156的请求。传入的客户端的对数据库156-157中的数据的请求调用应用程序140。当由处理器130执行时,应用程序140使服务器计算机104执行实现本发明的各个方面的步骤或元素,包括访问数据库156-157。在一个实施例中,应用程序140包括多个被配置为构建GUI元素(然后,它们由浏览器程序122呈现)的多个servlet。在通过应用程序140访问远程数据库157的情况下,给数据抽象模型148配置了标识包含要被检索的数据的数据库的位置规范。下面将比较详细地描述此后一实施例。
图1只是网络客户端计算机102和服务器计算机104的一个硬件/软件配置。本发明的实施例可以应用于任何可比较的硬件配置,不管计算机***是复杂的多用户计算设备,单用户工作站,还是没有它们自己的非易失性存储器的网络设备。此外,应该理解,尽管引用了特定标记语言,包括HTML,但是,本发明不仅限于特定语言、标准或版本。相应地,那些精通本技术的人员将认识到,本发明可以适用于其他标记语言以及非标记语言,本发明还可以适用于特定标记语言中的未来的变化以及目前未知的其他语言。同样,图1所示的http服务器进程138只是说明性的,可以支持任何已知和未知的协议的其他实施例也是可以的。
环境的逻辑/运行时视图
图2A-B显示了本发明的多个相互关联的组件。请求性实体(例如,其中一个应用程序140)发出如请求性实体的相应的应用程序查询规范142所定义的查询202。所产生的查询202这里一般是指“抽象查询”,因为根据抽象(即,逻辑)字段而不是通过对数据库156-157中的基础物理数据实体的直接引用来构成。结果,可以定义与所使用的特定基础数据表示无关的抽象查询。在一个实施例中,应用程序查询规范142可以包括用于进行数据选择的标准(选择标准204)和基于选择标准204的要被返回的字段的显式规范(返回数据规范206)。
由应用程序查询规范142指定的并用于构成抽象查询202的逻辑字段是由数据抽象模型148定义的。一般而言,数据抽象模型148作为一组逻辑字段暴露信息,这些逻辑字段可以在应用程序140发出的查询(例如,抽象查询202)内使用,以指定进行数据选择的标准,并指定从查询操作返回的结果数据的形式。逻辑字段是独立于在数据库156-157中使用的基础数据表示而定义的,从而允许形成松散耦合到基础数据表示的查询。DAM 148的逻辑字段被映射到其中的数据可以位于单个数据的知识库(即,源)或多个不同的数据知识库中。如此,DAM 148可以提供一个或多个基础数据知识库的逻辑视图。通过使用数据知识库的抽象表示形式,可以比较轻松地改变或替换基础物理表示形式,而不会影响作出更改的应用程序。相反,抽象表示形式可以变化,而没有应用程序所需的更改。此外,可以定义多个抽象数据表示形式,以支持针对可以具有不同的默认值或所需的字段的相同基础数据库架构的不同的应用程序。
一般而言,数据抽象模型148包括多个字段规范2081、2082、2083、2084和2085(作为示例,显示了五个),统称为“字段规范208”。具体来说,为可用于构成抽象查询的每一个逻辑字段,提供了字段规范。每一个字段规范包括逻辑字段名称2101、2102、2103、2104、2105(统称为,字段名称210)和关联的访问方法2121、2122、2123、2124、2125(统称为,访问方法212)。访问方法根据这里被称为物理位置参数的参数将逻辑字段名称关联(即,映射)到数据库(例如,其中一个数据库156)中的特定物理数据表示形式2141,2142...214N。作为说明,显示了两个数据表示,XML数据表示2141和关系数据表示2142。然而,物理数据表示214N表示,任何其他数据表示,已知的或未知的,都是可以的。
取决于要支持的不同类型的逻辑字段的数量,可以有任意数量的访问方法。在一个实施例中,提供了简单字段、过滤的字段和合成字段的访问方法。字段规范2081、2082和2085分别示范了简单字段访问方法2121、2122和2125。直接将简单字段映射到基础物理数据表示中的特定实体(例如,映射到给定数据库表和列的字段)。作为说明,图2B所示的简单字段访问方法2121将逻辑字段名称2101(″FirstName″)映射到名为“contact”的表中的名为“f_name”的列,其中,表名称和列名称是访问方法2121的物理位置参数。字段规范2083示范了过滤的字段访问方法2123。过滤的字段标识关联的物理实体,并提供用于定义物理数据表示内的项目的特定子集的规则。在图2B中提供了一个示例,在该示例中,过滤的字段访问方法2123将逻辑字段名称2103(“AnytownLastName”)映射到名为“contact”的表中的名为“I_name”的列中的物理实体,并为城市Anytown中的个体定义过滤器。过滤的字段的另一个示例是纽约邮政编码字段,该字段映射到邮政编码的物理表示,并将数据只限制到为纽约州定义的那些邮政编码。字段规范2084示范了合成字段访问方法2124。合成访问方法使用作为访问方法定义的一部分提供的表达式从一个或多个物理字段来计算逻辑字段。如此,可以计算出不存在于基础数据表示的信息。在图2B中说明的示例中,合成字段访问方法2123将逻辑字段名称2103“AgeInDecades”映射到“AgeInYears/10”。另一个示例是通过将售价字段乘以营业税率构成的营业税字段。
值得注意的是,图2B所示的数据抽象模型148只是所选择的逻辑字段规范的说明,并不是全面的。如此,图2B所示的抽象查询202包括一些逻辑字段(在数据抽象模型148中没有显示规范),如“州”和“街道”。
基础数据的任何给定数据类型(例如,日期、十进制数字等等)的格式可以变化。相应地,在一个实施例中,字段规范208包括反映了基础数据的格式的类型属性。然而,在另一个实施例中,字段规范208的数据格式不同于关联的基础物理数据,在这样的情况下,访问方法负责以请求性实体采用的适当的格式返回数据。如此,访问方法必须知道采用什么格式的数据(即,根据逻辑字段)以及基础物理数据的实际格式。然后,访问方法可以将基础物理数据转换为逻辑字段的格式。
作为示例,图2A所示的数据抽象模型148的字段规范208是映射到以关系数据表示2142表示的数据的逻辑字段的代表。然而,数据抽象模型148的其他实例将逻辑字段映射到诸如XML之类的其他物理数据表示。此外,在一个实施例中,数据抽象模型148被配置有过程数据表示的访问方法。
下面的表I中显示了对应于图2所示的抽象查询202的说明性的抽象查询。作为说明,使用XML来定义数据知识库抽象148。然而,也可以使用任何其他语言。
表I-查询示例
001 <?xml version="1.0"?>
002 <!-Query string representation:(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 <Condition field="State"operator="EQ"value="NC"internalID="2"
013 relOperator="OR"></Condition>
014 </Selection>
015 <Results>
016 <Field name="FirstName"/>
017 <Field name="LastName"/>
018 <Field name="State"/>
019 </Results>
020 </QueryAbstraction>
为便于说明,表I中所显示的抽象查询包括选择规范(005-014行),其中,包含选择标准和结果规范(015-019行)。在一个实施例中,选择标准包括字段名称(对于逻辑字段),比较运算符(=,>,<,等等)和值表达式(什么是与其进行比较的字段)。在一个实施例中,结果规范是将作为查询执行的结果返回的抽象字段的列表。抽象查询中的结果规范可以包括字段名称和排序标准。
下面的表II中显示了对应于表I中的抽象查询的数据抽象模型148的说明性实例。作为说明,使用XML来定义数据抽象模型148。然而,也可以使用任何其他语言。
表II-数据抽象模型示例
001 <?xml version="1.0"?>
002 <DataRepository>
003 <Category name="Demographic">
004 <Field queryable="Yes"name="FirstName"displayable="Yes">
005 <AccessMethod>
006 <Simple columnName="f_name"table Name="contact"></Simple>
007 </AccessMethod>
008 <Type baseType="char"></Type>
009 </Field>
010 <Field queryable="Yes"name="LastName"displayable="Yes">
011 <AccessMethod>
012 <Simple columnName="I_name"tableName="contact"></Simple>
013 </AccessMethod>
014 <Type baseType="char"></Type>
015 </Field>
016 <Field queryable="Yes"name="State"displayable="Yes">
017 <AccessMethod>
018 <Simple columnName="state"tableName="contact"></Simple>
019 </AccessMethod>
020 <Type baseType="char"></Type>
021 </Field>
022 </Category>
023 </DataRepository>
注意,004-009行对应于图2B所示的DAM 148的第一字段规范2081,而010-015行对应于第二字段规范2082。为了简便起见,图2B没有显示表I中定义的其他字段规范。还请注意,表I说明了类别,在此情况下“Demographic”。类别是一个或多个逻辑字段的组合。在本示例中,“First Name”、“Last Name”和“State”是属于共同的类别“Demographic”的逻辑字段。
在任何情况下,数据抽象模型148包含(或引用)将逻辑字段映射到物理数据的至少一个访问方法。然而,前述的实施例只是说明性的,逻辑字段规范可以包括各种其他元数据。在一个实施例中,访问方法进一步配置有定义与逻辑字段关联的数据的位置的位置规范。如此,数据抽象模型148被延长,以包括许多数据源(可以是本地的和/或跨网络环境分布)的说明。数据源可以使用多个不同的数据表示和数据访问技术。如此,提供了基础结构,该基础结构能够利用当今流行的分布式环境。标题为“REMOTE DATA ACCESS ANDINTEGRATION OF DISTRIBUTED DATA SOURCES THROUGHDATA SCHEMA AND QUERY ABSTRACTION”的并授予给IBM公司的美国专利申请No.10/131,984中比较详细地描述了访问许多数据源的一个方法。
图3显示了示范了运行时组件150的操作的一个实施例的说明性运行时方法300。当运行时组件150作为输入接收到抽象查询(如图2所示的抽象查询202)的实例时,在步骤302中输入方法300。在步骤304中,运行时组件150读取并分析抽象查询的实例,并定位单个选择标准和所希望的结果字段。在步骤306中,运行时组件150进入处理抽象查询中存在的每一个查询选择标准语句的循环(包括步骤306、308、310和312),从而构建具体查询的数据选择部分。在一个实施例中,选择标准包括字段名称(对于逻辑字段),比较运算符(=,>,<,等等)和值表达式(什么是与其进行比较的字段)。在步骤308中,运行时组件150使用来自抽象查询的选择标准的字段名称,以查找数据知识库抽象148中的字段的定义。如上所述,字段定义包括用于访问与字段关联的物理数据的访问方法的定义。然后,运行时组件150为正在被处理的逻辑字段构建(步骤310)ConcreteQuery Contribution(具体查询成分)。如这里所定义的,ConcreteQuery Contribution是用于基于当前逻辑字段执行数据选择的具体查询的一部分。具体查询是以诸如SQL和XML Query之类的语言表示的查询,与给定物理数据知识库(例如,关系数据库或XML知识库)的数据一致。相应地,具体查询用于定位并从由图1所示的数据库156-157代表的物理数据知识库中检索数据。然后,将为当前字段生成的Concrete Query Contribution添加到Concrete QueryStatement(具体查询语句)。然后,方法300返回到步骤306,以开始抽象查询的下一字段的处理。相应地,为抽象查询中的每一个数据选择字段,重复进入步骤306中的过程,从而将额外的内容提供到要执行的最终查询。
在构建具体查询的数据选择部分之后,运行时组件150标识作为查询执行的结果返回的信息。如上所述,在一个实施例中,抽象查询定义将作为查询执行的结果返回的抽象字段的列表,这里被称为“结果规范”。抽象查询中的结果规范可以包括字段名称和排序标准。相应地,方法300在步骤314中进入循环(由步骤314、316、318和320进行定义),以将结果字段定义添加到正在生成的具体查询。在步骤316中,运行时组件150在数据知识库抽象148中查找结果字段名称(从抽象查询的结果规范中),然后从数据知识库抽象148中检索结果字段定义,以标识要为当前逻辑结果字段返回的数据的物理位置。然后,运行时组件150为逻辑结果字段构建(作为步骤318)(标识要返回的数据的物理位置的具体查询的)Concrete QueryContribution。然后,在步骤320中,将Concrete Query Contribution添加到Concrete Query Statement。一旦处理完成抽象查询中的每一个结果规范,就可以在步骤322中执行查询。
参考图4描述根据步骤310和318的为逻辑字段构建Concrete Query Contribution的方法400的一个实施例。在步骤402中,方法400查询与当前逻辑字段关联的访问方法是否为简单访问方法。如果是,则基于物理数据位置信息构建Concrete QueryContribution(步骤404),然后,根据上文所描述的方法300,继续处理过程。否则,处理过程持续到步骤406,以查询与当前逻辑字段关联的访问方法是否为过滤访问方法。如果是,则基于某些物理数据实体的物理数据位置信息,构建Concrete Query Contribution(步骤408)。在步骤410中,用使用的额外的逻辑(过滤器选择)将Concrete Query Contribution扩展到与物理数据实体关联的子集数据。然后,根据上文所描述的方法300,继续处理过程。
如果访问方法不是过滤访问方法,则处理从步骤406进入步骤412,在此,方法400查询访问方法是否为合成访问方法。如果访问方法是合成访问方法,则在步骤414中定位和检索合成字段表达式中的每一个子字段介绍信的物理数据位置。在步骤416中,用合成字段表达式的物理字段位置信息代替合成字段表达式的逻辑字段引用,从而生成Concrete Query Contribution。然后,根据上文所描述的方法300,继续处理过程。
如果访问方法不是合成访问方法,则处理从步骤412进入步骤418。步骤418是作为本发明的实施例的任何其他访问方法类型的代表。然而,应该理解,还可以有其中不必实现全部可用的访问方法的其他实施例。例如,在特定实施例中,只使用简单访问方法。在另一个实施例中,只使用简单访问方法和过滤访问方法。
如上所述,如果逻辑字段指定不同于基础物理数据的数据格式,则可能需要执行数据转换。在一个实施例中,当根据方法400为逻辑字段构建Concrete Query Contribution时,为每一个相应的访问方法执行初始转换。例如,可以作为步骤404、408和416的一部分、或紧后面的步骤来执行转换。在步骤322中执行查询之后,执行随后的从物理数据的格式到逻辑字段的格式的转换。当然,如果逻辑字段定义的格式与基础物理数据的格式相同,则不需要进行转换。
图形用户界面
如上所述,一个实施例为用户提供了GUI,通过该GUI,可以合成和执行查询。GUI屏幕(例如,由应用程序140的GUI编制器144构建)一般提供了搜索条件和用户可以选择的关联的值。用户的选择用于构建应用程序查询规范142。然后,查询可以以上文所描述的方式执行。
为了便于说明,定义某些术语是有帮助的。从上面的说明可以看出,为对知识库154内的一组所希望的数据库记录执行搜索,请求性实体(例如,应用程序140)通过将一个或多个“操作数”和“逻辑算子”组合以构成搜索表达式,来构建查询。操作数与算子一起标识所希望的搜索。每一个操作数都可以是为知识库154中的元素的参数定义值的比较操作(通过比较运算符定义,例如,>,<,=)。例如,操作数可以是表示具有等于日期值1942/01/01的″DateOfBirth″参数的搜索结果的请求的″(DateOfBirth=′1942/01/01′)″。另一个说明性的操作数可以是表示具有大于1942/01/01的″DateOfBirth″参数的搜索结果的请求的″(DateOfBirth>′1942/01/01′)″。可以通过表示操作数之间的逻辑关系的逻辑算子来将两个或更多操作数关联。逻辑算子是诸如逻辑AND、OR和NOT之类的逻辑连接符。每一个操作数,或具有逻辑算子的操作数都定义单个搜索条件。
为了便于说明,单一的操作数这里被称为“简单条件”或只是“条件”。通过逻辑算子相关联的两个或更多操作数/条件构成了“复合条件”或“复合条件”。简单条件或复合条件可以构成由应用程序140执行的搜索表达式(即,查询)的一部分。
现在请参看图5-16,显示了一系列图形用户界面,说明通过应用程序140定义的用户界面。作为说明,如图5-16所示的图形用户界面是访问医学数据所特定的。然而,可以使用本发明的实施例,它们具有任何信息类型,其中包括,财务信息、雇用信息等等。一般而言,如图5-16所示的图形用户界面允许用户构建包括由用户添加的条件的查询。回想一下,如这里所定义的,简单条件是比较操作。(DateOfBirth=′1942/01/01′)是说明性的简单条件。如此,将简单条件添加到查询中一般涉及允许用户选择操作数和比较运算符(例如,>,<,=)。在一个实施例中,当用户通过浏览器程序122最初调用应用程序140时,应用程序140(具体来说,GUI编制器144)返回由浏览器程序122以第一GUI 600的形式呈现的HTML内容,如图5所示。GUI 600是用户用来将条件添加到查询中的一系列屏幕中的第一个屏幕。一般而言,GUI 600包括多个条件类别602-610(每一个类别都具有关联的单选按钮),用户可以从中进行选择。所显示的条件类别包括“人口资料”602、“测试和实验室结果”604、“报告”606、“使用ICD-9的诊断”608,以及“使用DRG的诊断”610。每一个条件类别都具有关联的字段612-620,可以从中选择值/向其中输入值。一些字段(例如,字段612-616)是下拉菜单,而另一些字段是用于接收用户输入的文本框(例如,字段618-620)。在后一种情况下,字段可以具有关联的“浏览”按钮622-624帮助用户选择有效的值。
一旦选择条件类别和值,用户点击“下一步”按钮626。点击“下一步”按钮626使浏览器程序622呈现(根据应用程序640所提供的信息)继续添加条件的过程所需要下一个适当的图形用户界面。如此,可以向用户添加条件所需要的一系列图形用户界面。作为示例,假设用户从下拉菜单612选择了人口条件类别602和“出生日期”值。在按下“下一步”按钮626时,向用户呈现如图6所示的第二GUI 700。GUI 700包括比较运算符下拉菜单702(用户可以从中选择比较运算符(例如,>,<,=))和用户可以根据规定的格式(例如,″yyyy/mm/dd″)向其中输入日期的日期字段704。当用户点击OK按钮706时,完成添加“出生日期”条件的过程。
当用户完成添加条件的过程(例如,如在点击OK按钮706之后),向用户呈现如图7所示的GUI 800。在条件列802中显示了所产生的条件。在本示例中,条件列802的第一行显示了使用上文所描述的GUI 600和700添加“出生日期”条件。用户可以通过点击“添加条件”按钮804添加另一个条件。通过对于每一个其他可用的条件类别和值重复类似的步骤,可以将任意数量的条件添加到查询中。作为说明,如图8所示的刷新的/更新的GUI 800总共显示了三种条件(包括上文所描述的“出生日期”条件),通过一步一步地翻过用于添加条件的图形用户界面(例如,GUI 600和700)来添加每一个条件。此外,虽然未显示,添加条件可能需要任意数量的其他图形用户界面。具体来说,对于比较复杂的条件,如范围,可能需要多个额外的图形用户界面。根据本发明的各个方面,那些精通本技术的人员可以确定这样的图形用户界面的特定数量、内容、设计和元素。
在添加第一条件之后,通过布尔逻辑值/运算符,这里被称为第一级别的布尔逻辑值,每一个随后条件彼此关联到第一条件。请参看图8,在一对列902、904中显示了第一级别布尔逻辑值。从第一列902中的下拉菜单906、908中选择第一级别的布尔逻辑值AND和OR。AND/OR下拉菜单位于每一个条件之间。相应地,在如图8所示的例图中,第一下拉菜单906位于“出生日期”条件和“性别”条件之间,第二下拉菜单908位于“性别”条件和“血色素”条件之间。在一个实施例中,第一级别的布尔逻辑值默认到第一条件之后添加的每一个条件的AND。然后,用户可以使用下拉菜单将默认值改变为OR。或者,用户可以通过选中第二列904中的适当的NOT复选框来否定条件。
一旦将两个或更多条件添加到查询,然后,可以通过布尔逻辑值(这里被称为第二级别的布尔逻辑值)将两个或更多条件组合在一起,以产生复合(或组合的)条件。((employeeName=′Rich′)OR(employeeName=′John′))是复合条件的示例。此外,可以通过布尔逻辑值将简单条件和复合条件连接在一起,以产生条件的层次结构。在一个实施例中,用于将条件组合在一起的第一图形元素是“组合条件”按钮910。
在一个实施例中,按下“组合条件”按钮910使应用程序140生成如图9所示的GUI 1000。GUI 1000显示每一个可用的条件和每一个条件的关联的复选框1002。用户通过选中适当的复选框1002选择哪些条件将被组合在一起。为便于说明,选择“性别”和“血色素”条件。GUI 1000进一步提供了“AND组”按钮1004和“OR组”按钮1006,以便对所选择的组进行AND或OR运算。作为说明,假设用户点击“AND组”按钮1004。通过图10中的更新的GUI 800显示了此操作的结果。具体来说,只有两个条件1102、1104保留,第二条件1104是包括通过布尔AND相关联的子条件的复合条件。此外,两个条件1102、704本身通过布尔AND相关联,如下拉菜单906中所显示的。
现在假设,用户需要取消组合第二条件1104。为执行此任务,GUI 900(如图10所示)包括“撤消组合的条件”按钮1106。按下“撤消组合的条件”按钮1106使应用程序140生成如图11所示的GUI 1200。GUI 1200显示每一个现有的条件和关联的复选框1202。在其他实施例中,在GUI 1200中只显示了复合条件(在此情况下,如第二条件)。在任何情况下,为取消组合复合条件,用户选中适当的复选框1202,然后点击OK按钮1204。在此情况下,GUI 900和图8显示了取消组合第二条件1104的结果。即,将条件返回到它们的原始未组合的状态。
用户可以在如图8和图10所示的GUI 900的搜索摘要部分920中查看给定查询的当前结构。在一个实施例中,通过点击“刷新搜索摘要”按钮922,更新搜索摘要部分920中显示的查询。
一旦定义所希望的条件,甚至在定义条件之前,用户可以定义结果字段(即,用户希望返回的并满足条件标准的字段)。在一个实施例中,用户点击“改变输出数据”按钮1108(图10中所显示的)。作为响应,GUI编制器144呈现图12的“结果字段选择GUI 1300”。GUI 1300包括“可用的结果字段”窗口1302和“选择的结果字段”窗口1304。窗口1302显示用户可以从中选择的所有可用的结果字段。窗口1304显示用户所选择的字段。在本示例中,用户选择了“位置”、“地址”、“病人ID”、“临床信息”和“用户”。在一个实施例中,GUI 1300是支持拖放的,有助于选择结果字段。在作出所希望的选择之后,用户按下“下一步”按钮1306,并向用户呈现图13的“结果字段链接GUI 1400”。
“结果字段链接GUI”1400一般在“结果字段选择GUI”1300中包括由用户选择的结果字段的列表1402。GUI 1400还包括具有多个列1406A-D(显示了四个)的表1404。每一列都具有许多单元(显示了每一列有三个)。只作为说明,表1404包括四列,每一列都具有三个单元。然而,表1404的尺寸可以由用户随意地操纵。在一个实施例中,用户通过点击“添加列”按钮1408添加另一个列,并通过点击“添加行”按钮1410,将另一行添加到每一列。
用户通过选择表1404中的可用结果字段(在列表1402中)的相对位置,确定所产生的查询的结构。在一个实施例中,用户通过突出显示选择的单元,然后,突出显示列表1402中的一个结果字段,然后点击“添加”按钮1412,填充表1404的单元。通过点击“删除”按钮1414,可以将填充的单元解除填充。在另一个实施例中,用户只需(从列表1402中)拖动并将所选择的结果字段放到表1404的单元中。为便于说明,用户用“用户、地址、临床信息”填充第一行的开头三个单元,如图14所示。相应地,列表1402中的其余结果字段是“位置”和“病人”。在一个实施例中,同一行(即,水平地排列)上的相邻单元中的字段被JOIN,假设字段位于各自的表中。相应地,对应于如图14所示的表1404的SQL语句如下:
对应的SQL语句
SELECT T1.USER,T1.ADDRESS,T2.CLINICAL_INFOFROM TABLE1 T1,TABLE2 T2
在一个实施例中,UNION以垂直方式排列的字段。例如,图15显示了一种排列,其中,“病人”和“位置”被添加到“用户”和“地址”紧下面的下一行中的对应的单元。相应地,“病人”和“用户”被UNION,“位置”和“地址”被UNION。注意,“临床信息”紧下面的单元是空的。在SQL语句中,此空的单元将是空值。相应地,此排列的对应的SQL语句如下:
对应的SQL语句
SELECT USER,ADDRESS,CLINICAL_INFO FROM TABLE1
UNION
SELECT PATIENT AS USER,LOCATION AS ADDRESS,NULL,FROM TABLE2.
相应地,本发明的用户界面的一个实施例允许用户控制在数据被抽象地表示的图形环境中要JOIN哪些字段和要UNION哪些字段。一般而言,在两个数据源之间的数据的实例之间有对应关系的情况下,JOIN将比UNION优先。另一方面,当对于两个数据源定义相同的数据项,但在实例值中几乎没有重叠时,UNION优先。在前述的示例中,用户可能已经UNION了选择的字段,认为每一个UNION的字段相类似,因此,查询的结果应该返回每一个UNION的两个字段。虽然返回两个字段,字段在一个列中彼此附加到一起,因此,作为一个可查看的字段返回。将删除重复的数据。
除了给用户提供JOIN或UNION字段的灵活性之外,用户还能够对结果进行排序。即,根据表1404的各个单元中的字段的顺序(即,从左到右)对结果的顺序进行排序。如此,用户可以操纵每一个可用的结果字段的相对位置,以返回所希望的结果,并控制返回结果的顺序。
应该注意,上面的实施例只是说明性的,而不作出限制。那些精通本技术的人员将会想出本发明的范围内的其他实施例。例如,在一个实施例中,表1404可以用选定的字段“预先填充”。如此,管理员可以指定用户选择的字段的特定排列。或者,用户可以保存字段的特定排列。作为示例,在点击GUI 1300(图12)的“下一步”按钮1306之后,可以向用户呈现图14的GUI 1400,其中,已经为“用户”、“地址”和“临床信息”分配了第一行的默认单元。虽然未显示,但是,也可以预先填充多行,默认情况下,可以UNION一些单元。然后,用户可以排列列表1402中的其余可用的结果字段的相对位置(即,“位置”和“病人”),甚至可以改变默认布局(即,“用户”、“地址”和“临床信息”)。在这方面,需要注意的是,管理员可以不必位于最佳的位置来判断哪些字段可以被UNION,假定他们可能不会对基础数据有充分的理解。相应地,可以就某些字段是否应该被UNION(即,在查询创建表1404中垂直地相关)还是水平地JOIN作出最佳猜测估计。例如,可以通过一个算法来运行DAM,以判断哪些逻辑字段彼此类似,无论是由于同义还是具有相同的数据类型和长度,可以完成最佳猜测估计。例如,包含病人信息的两个表可能具有非常类似的架构,子表/超表定义(一个表比另一个表具有更多信息)除外。相比之下,病人表和雇员表具有一些通用信息(例如,姓名、地址),但每一个表都相对于另一个表具有大量的不同信息(例如,职务说明、经理、病人ID)。最佳猜测估计算法将认识到,病人和雇员表应该被JOIN,但两个病人表应该被UNION。
一旦排列结果字段以返回所希望的结果,用户点击OK按钮1502,如图15所示。在点击OK按钮1502时,从查询创建表1404中删除任何空列和/或行。然后,将用户返回到GUI 800的刷新的实例,如图16所示。注意,摘要部分920现在包括如图15的表1404中定义的结果字段规范1604。如果用户对构建的查询表示满意,则用户可以通过按下“运行搜索”按钮924来执行查询。具体来说,按下“运行搜索”按钮924会调用运行时组件150,哪些运行时组件开始执行。
在一个实施例中,按下“运行搜索”按钮924首先使摘要部分920中的指定的查询以抽象形式呈现。然后,以上文参考图3和4所描述的方式执行所产生的抽象查询。
下面将参考图17描述基于用户指定的结果字段布局(例如,如图15的表1404所指定的)呈现抽象查询的方法1700的一个实施例。为了便于说明,假设查询创建表1404不包括任何空列或行,虽然单个单元可以是空的。方法1700开始处理查询创建表1404中的第一行。具体来说,方法1700进入循环(在步骤1702中),该循环对于查询创建表1404中的第一行中的每一个单元重复执行。检查单元,以判断它是否包含数据,即,结果字段(步骤1704)。如果不,方法1700返回到步骤1702,以开始处理第一行的下一单元。然而,对于包含结果字段的单元,作为抽象查询的组件添加结果字段名称(步骤1706),然后,处理过程返回到步骤1702。一旦根据在步骤1702中进入的循环处理完第一行中的每一个单元,方法1700进入步骤1708。
在步骤1708中,方法1700对于查询创建表1404中的每一个其余行的每一个单元进入循环(循环在步骤1708和步骤1710中进入的循环)。对于给定行的给定单元,方法1700判断单元是否包含结果字段(步骤1712)。如果不,方法返回到步骤1710以开始处理下一单元。然而,对于确实包含结果字段的给定单元,方法1700判断给定单元紧上面的相邻单元是否包含数据(步骤1714)。如果是,则将两个单元UNION起来(步骤1716)。一旦处理完每一个其余的行中的每一个单元,方法1700退出。如此,每一个垂直相关的单元(即,列中的相邻单元)被UNION。
方法1700的结果是抽象查询。只作为说明,下面显示了对应于图15的查询创建表1404的典型的抽象查询。
具有UNION的抽象查询的示例
<QueryAbstraction version="1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="QueryAbstraction.xsd">
<Selection>
<Condition relOperator="AND"field="data://patient/User">
<Value val="John"/>
</Condition>
</Selection>
<Results format="HTML"distinct="Yes">
<Union>
<Field name="data://patient/User"fieldType="char"/>
<Field name="data://patient/Patient"fieldType="char"/>
</Union>
<Union>
<Field name="data://patient/Address"fieldType="char"/>
<Field name="data://patient/Location"fieldType="char"/>
</Union>
<Field name="data://patient/Clinial Info"fieldType="char"/>
</Results>
</QueryAbstraction>
然后,可以以基本上类似于参考图3-4所描述的方式将上述抽象查询转换成具体查询。运行时组件150将按预期的那样实现将数据返回到最终用户所需要的适当的UNION和JOIN。上面提供了抽象查询的结果字段部分的SQL表示(即,对应于SQL语句的SELECT语句的那一部分)。
尽管前述的内容是针对本发明的实施例进行说明的,但是,在不偏离本发明的基本范围的情况下,可以研究出本发明的其他实施例,其范围由随后的权利要求来确定。
Claims (33)
1.一种用于提供物理数据实体的物理字段的逻辑表示以方便查询所述物理字段的方法,该方法包括:
提供逻辑模型以在逻辑上描述所述物理字段,所述逻辑模型包括对应于相应的物理字段的逻辑字段;以及
提供运行时组件,该组件被配置为,将抽象查询转换为包含至少一个组合语句的可执行的查询,所述抽象查询包括条件和从逻辑模型的逻辑字段中选择的至少两个结果字段,每一个结果字段都在可执行的查询的组合语句中具有可执行的对应部分。
2.根据权利要求1所述的方法,其中,组合语句是UNION语句,其中,通过使运行时组件产生UNION语句的UNION信息将至少两个结果字段相关联。
3.根据权利要求1所述的方法,其中,抽象查询是用户定义的。
4.根据权利要求1所述的方法,其中,可执行的查询是SQL语句。
5.根据权利要求1所述的方法,其中,可执行的查询是XQuery语句。
6.根据权利要求1所述的方法,其中,物理数据实体包括数据库中的多个表。
7.根据权利要求1所述的方法,进一步包括提供图形用户界面,其中,在图形用户界面中指定至少两个结果字段。
8.一种用于提供物理数据实体的物理字段的逻辑表示以方便查询所述物理字段的方法,该方法包括:
提供逻辑模型以在逻辑上描述所述物理字段,所述逻辑模型包括对应于相应的物理字段的逻辑字段;
接收相对于包括对应于相应的物理字段的逻辑字段的逻辑模型而定义的抽象查询,所述抽象查询包括条件和从逻辑模型的逻辑字段中选择的至少两个结果字段;以及
将抽象查询转换为包含至少一个组合语句的可执行的查询,所述抽象查询包括条件和从逻辑模型的逻辑字段中选择的至少两个结果字段,每一个结果字段都在可执行的查询的组合语句中具有可执行的对应部分。
9.根据权利要求8所述的方法,其中,物理数据实体包括数据库中的多个表。
10.根据权利要求8所述的方法,进一步包括提供图形用户界面,其中,在图形用户界面中指定至少两个结果字段。
11.一种用于允许构建查询的方法,包括:
提供一种图形用户界面,该界面允许用户选择和排列从在逻辑上定义数据的逻辑模型中选择的逻辑结果字段,其中,用户选择的逻辑结果字段之间的预先确定的相对几何排列定义用户选择的逻辑结果字段之间的组合关系。
12.根据权利要求11所述的方法,其中,预先确定的相对几何排列包括用户选择的逻辑结果字段的垂直排列。
13.根据权利要求11所述的方法,其中,组合关系被表达为包含用户选择的逻辑结果字段的表示的查询中的UNION语句。
14.一种用于允许构建查询的方法,包括:
提供一种图形用户界面,该界面允许用户选择和排列从在逻辑上定义数据的逻辑模型中选择的逻辑结果字段,其中,用户选择的逻辑结果字段之间的第一预先确定的相对几何排列定义用户选择的逻辑结果字段之间的第一种组合关系,其中,用户选择的逻辑结果字段之间的第二预先确定的相对几何关系定义用户选择的逻辑结果字段之间的第二种组合关系。
15.根据权利要求14所述的方法,其中,第一预先确定的相对几何排列包括选择的逻辑结果字段的垂直排列,第二预先确定的相对几何排列包括选择的逻辑结果字段的水平排列。
16.根据权利要求14所述的方法,其中,第一种组合关系是JOIN,第二种组合关系是UNION。
17.一种用于允许构建查询的方法,包括:
提供一种图形用户界面,该界面允许用户选择和排列从在逻辑上定义数据的逻辑模型中选择的逻辑结果字段,该图形用户界面包括表,该表包括多个单元,其中,相邻的单元中的用户选择的逻辑结果字段之间的预先确定的相对几何排列定义用户选择的逻辑结果字段之间的组合关系,所述组合关系是从中至少两种不同类型的组合关系中选择的。
18.根据权利要求17所述的方法,其中,预先确定的相对几何排列包括用户选择的逻辑结果字段的垂直排列。
19.根据权利要求17所述的方法,其中,组合关系是UNION。
20.根据权利要求17所述的方法,其中,组合关系是从UNION和JOIN中选择的。
21.一种用于构建查询的方法,包括:
提供逻辑模型以在逻辑上描述所述物理字段,所述逻辑模型包括对应于相应的物理字段的逻辑字段;
提供一种图形用户界面,该界面允许用户选择和排列从逻辑模型中选择的逻辑结果字段;
接收用户在图形用户界面中指定第一逻辑结果字段的选择和位置的输入;
接收用户在图形用户界面中指定第二逻辑结果字段的选择和位置的输入,其中,第一和第二逻辑结果字段具有相对几何关系并定义抽象查询的至少一部分;以及
将抽象查询转换为包含至少一个组合语句并作为相对几何关系的结果生成的可执行的查询,所述组合语句中包含第一和第二逻辑结果字段的表示。
22.根据权利要求21所述的方法,其中,组合语句是UNION。
23.根据权利要求21所述的方法,进一步包括在图形用户界面中显示逻辑模型的每一个逻辑字段作为可选择的逻辑结果字段。
24.包含图形用户界面程序的计算机可读取的介质,该程序在执行时,执行用于构建相对于包括映射到数据的物理实体的物理字段的多个逻辑字段定义的逻辑模型而定义的抽象查询的操作,该操作包括:
接收用户在图形用户界面中指定第一逻辑结果字段的选择和位置的输入;其中,图形用户界面允许用户从逻辑模型中选择逻辑结果字段,并支持用户选择的逻辑结果字段之间的组合关系;以及
接收用户在图形用户界面中指定第二逻辑结果字段的选择和位置的输入,其中,第一和第二逻辑结果字段定义抽象查询的至少一部分,所述抽象查询被转换成包含至少一个组合语句的可执行的查询,所述组合语句包含第一和第二逻辑结果字段的对应部分。
25.根据权利要求24所述的方法,其中,组合语句是UNION。
26.包含程序的计算机可读取的介质,该程序在执行时,执行用于构建相对于包括映射到数据的物理实体的物理字段的多个逻辑字段定义的逻辑模型而定义的抽象查询的操作,该操作包括:
接收用户在图形用户界面中指定第一逻辑结果字段的选择和位置的输入;其中,图形用户界面允许用户选择和排列从逻辑模型中选择的逻辑结果字段;
接收用户在图形用户界面中指定第二逻辑结果字段的选择和位置的输入,其中,第一和第二逻辑结果字段具有相对几何关系并定义抽象查询的至少一部分;以及
将抽象查询转换为包含至少一个组合语句并作为相对几何关系的结果生成的可执行的查询,所述组合语句包含第一和第二逻辑结果字段的对应部分。
27.根据权利要求26所述的计算机可读取的介质,其中,组合语句是UNION。
28.根据权利要求26所述的计算机可读取的介质,其中,相对几何关系是垂直。
29.一种计算机***,包括存储器和至少一个处理器,并进一步包括:
一种逻辑模型,该逻辑模型包括映射到数据的物理实体的物理字段的多个逻辑字段定义,从而,逻辑模型提供了数据的逻辑视图;以及
允许用户选择和排列从逻辑模型中选择的逻辑结果字段的图形用户界面;其中,图形用户界面包括用于用户选择的逻辑结果字段的输入单元,其中,单元之间的预先定义的几何关系指定单元中的用户选择的逻辑结果字段是通过第一种组合语句类型还是通过第二种组合语句类型来相关联的。
30.根据权利要求29所述的***,其中,第一种组合语句类型是UNION,第二种组合语句类型是JOIN。
31.根据权利要求29所述的***,其中,预先定义的几何关系是垂直。
32.根据权利要求29所述的***,其中,水平相邻单元中的用户选择的逻辑结果字段被JOIN。
33.根据权利要求29所述的***,进一步包括包含数据的物理实体的关系数据库。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/618,409 US7085757B2 (en) | 2003-07-11 | 2003-07-11 | Abstract data linking and joining interface |
US10/618,409 | 2003-07-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1823335A true CN1823335A (zh) | 2006-08-23 |
Family
ID=33565128
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2004800198604A Pending CN1823335A (zh) | 2003-07-11 | 2004-07-01 | 抽象数据链接和联接接口 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7085757B2 (zh) |
CN (1) | CN1823335A (zh) |
WO (1) | WO2005008369A2 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004754A (zh) * | 2009-09-01 | 2011-04-06 | 商业对象软件有限公司 | 关系数据库的导航和可视化 |
CN101470978B (zh) * | 2007-12-25 | 2011-12-07 | 英业达股份有限公司 | 以关联性词句组合图形的语言学习***及方法 |
CN103620603A (zh) * | 2011-06-29 | 2014-03-05 | 微软公司 | 用于自动化关系查询的数据驱动自然界面 |
CN107943467A (zh) * | 2017-11-15 | 2018-04-20 | 阿里巴巴集团控股有限公司 | 条件语句创建方法及装置 |
CN108228916A (zh) * | 2018-04-08 | 2018-06-29 | 中国联合网络通信集团有限公司 | 数据的查询方法及装置 |
CN108628905A (zh) * | 2017-03-23 | 2018-10-09 | 深圳大学 | 一种数据处理的方法及医疗组信息录入*** |
CN110019314A (zh) * | 2017-12-29 | 2019-07-16 | ***通信集团湖南有限公司 | 基于数据项分析的动态数据封装方法、客户端和服务端 |
Families Citing this family (78)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002082962A (ja) * | 2000-09-08 | 2002-03-22 | Hitachi Ltd | エンジニアリングポータルサイトにおける情報提供方法 |
US6996558B2 (en) | 2002-02-26 | 2006-02-07 | International Business Machines Corporation | Application portability and extensibility through database schema and query abstraction |
US20040053880A1 (en) * | 2002-07-03 | 2004-03-18 | Coley Pharmaceutical Group, Inc. | Nucleic acid compositions for stimulating immune responses |
US9715678B2 (en) | 2003-06-26 | 2017-07-25 | Microsoft Technology Licensing, Llc | Side-by-side shared calendars |
US7707255B2 (en) | 2003-07-01 | 2010-04-27 | Microsoft Corporation | Automatic grouping of electronic mail |
US20050057566A1 (en) * | 2003-09-11 | 2005-03-17 | International Business Machines Corporation | Rich graphic visualization generation from abstract data representation |
US7900133B2 (en) | 2003-12-09 | 2011-03-01 | International Business Machines Corporation | Annotation structure type determination |
US20050210001A1 (en) * | 2004-03-22 | 2005-09-22 | Yeun-Jonq Lee | Field searching method and system having user-interface for composite search queries |
US7599924B2 (en) * | 2004-06-25 | 2009-10-06 | International Business Machines Corporation | Relationship management in a data abstraction model |
US8146016B2 (en) | 2004-08-16 | 2012-03-27 | Microsoft Corporation | User interface for displaying a gallery of formatting options applicable to a selected object |
US8255828B2 (en) | 2004-08-16 | 2012-08-28 | Microsoft Corporation | Command user interface for displaying selectable software functionality controls |
US7703036B2 (en) | 2004-08-16 | 2010-04-20 | Microsoft Corporation | User interface for displaying selectable software functionality controls that are relevant to a selected object |
US9015621B2 (en) | 2004-08-16 | 2015-04-21 | Microsoft Technology Licensing, Llc | Command user interface for displaying multiple sections of software functionality controls |
US20060116999A1 (en) * | 2004-11-30 | 2006-06-01 | International Business Machines Corporation | Sequential stepwise query condition building |
US8103624B2 (en) * | 2005-01-13 | 2012-01-24 | International Business Machines Corporation | Apparatus and method for automating the logging of table changes in a database |
US7984058B2 (en) * | 2005-06-02 | 2011-07-19 | Genius.Com Incorporated | Database query construction and handling |
US7734722B2 (en) * | 2005-06-02 | 2010-06-08 | Genius.Com Incorporated | Deep clickflow tracking |
US8103690B2 (en) * | 2005-06-03 | 2012-01-24 | Genius.Com | Realtime database architecture |
US9542667B2 (en) | 2005-09-09 | 2017-01-10 | Microsoft Technology Licensing, Llc | Navigating messages within a thread |
US8627222B2 (en) * | 2005-09-12 | 2014-01-07 | Microsoft Corporation | Expanded search and find user interface |
US9727989B2 (en) | 2006-06-01 | 2017-08-08 | Microsoft Technology Licensing, Llc | Modifying and formatting a chart using pictorially provided chart elements |
US20080016048A1 (en) * | 2006-07-12 | 2008-01-17 | Dettinger Richard D | Intelligent condition pruning for size minimization of dynamic, just in time tables |
US20080288869A1 (en) * | 2006-12-22 | 2008-11-20 | Apple Inc. | Boolean Search User Interface |
US8276098B2 (en) | 2006-12-22 | 2012-09-25 | Apple Inc. | Interactive image thumbnails |
US7730056B2 (en) * | 2006-12-28 | 2010-06-01 | Sap Ag | Software and method for utilizing a common database layout |
US8606799B2 (en) * | 2006-12-28 | 2013-12-10 | Sap Ag | Software and method for utilizing a generic database query |
US8417731B2 (en) | 2006-12-28 | 2013-04-09 | Sap Ag | Article utilizing a generic update module with recursive calls identify, reformat the update parameters into the identified database table structure |
US20080183725A1 (en) * | 2007-01-31 | 2008-07-31 | Microsoft Corporation | Metadata service employing common data model |
US9535810B1 (en) | 2007-04-24 | 2017-01-03 | Wal-Mart Stores, Inc. | Layout optimization |
US8762880B2 (en) | 2007-06-29 | 2014-06-24 | Microsoft Corporation | Exposing non-authoring features through document status information in an out-space user interface |
US8484578B2 (en) | 2007-06-29 | 2013-07-09 | Microsoft Corporation | Communication between a document editor in-space user interface and a document editor out-space user interface |
US8145703B2 (en) * | 2007-11-16 | 2012-03-27 | Iac Search & Media, Inc. | User interface and method in a local search system with related search results |
US20090132505A1 (en) * | 2007-11-16 | 2009-05-21 | Iac Search & Media, Inc. | Transformation in a system and method for conducting a search |
US20090132486A1 (en) * | 2007-11-16 | 2009-05-21 | Iac Search & Media, Inc. | User interface and method in local search system with results that can be reproduced |
US20090132513A1 (en) * | 2007-11-16 | 2009-05-21 | Iac Search & Media, Inc. | Correlation of data in a system and method for conducting a search |
US20090132645A1 (en) * | 2007-11-16 | 2009-05-21 | Iac Search & Media, Inc. | User interface and method in a local search system with multiple-field comparison |
US20090132927A1 (en) * | 2007-11-16 | 2009-05-21 | Iac Search & Media, Inc. | User interface and method for making additions to a map |
US8732155B2 (en) * | 2007-11-16 | 2014-05-20 | Iac Search & Media, Inc. | Categorization in a system and method for conducting a search |
US8090714B2 (en) * | 2007-11-16 | 2012-01-03 | Iac Search & Media, Inc. | User interface and method in a local search system with location identification in a request |
US7809721B2 (en) * | 2007-11-16 | 2010-10-05 | Iac Search & Media, Inc. | Ranking of objects using semantic and nonsemantic features in a system and method for conducting a search |
US20090132929A1 (en) * | 2007-11-16 | 2009-05-21 | Iac Search & Media, Inc. | User interface and method for a boundary display on a map |
US7921108B2 (en) | 2007-11-16 | 2011-04-05 | Iac Search & Media, Inc. | User interface and method in a local search system with automatic expansion |
US20090132572A1 (en) * | 2007-11-16 | 2009-05-21 | Iac Search & Media, Inc. | User interface and method in a local search system with profile page |
US20090132484A1 (en) * | 2007-11-16 | 2009-05-21 | Iac Search & Media, Inc. | User interface and method in a local search system having vertical context |
US20090132512A1 (en) * | 2007-11-16 | 2009-05-21 | Iac Search & Media, Inc. | Search system and method for conducting a local search |
US20090132485A1 (en) * | 2007-11-16 | 2009-05-21 | Iac Search & Media, Inc. | User interface and method in a local search system that calculates driving directions without losing search results |
US20090132514A1 (en) * | 2007-11-16 | 2009-05-21 | Iac Search & Media, Inc. | method and system for building text descriptions in a search database |
US20090132236A1 (en) * | 2007-11-16 | 2009-05-21 | Iac Search & Media, Inc. | Selection or reliable key words from unreliable sources in a system and method for conducting a search |
US20090132573A1 (en) * | 2007-11-16 | 2009-05-21 | Iac Search & Media, Inc. | User interface and method in a local search system with search results restricted by drawn figure elements |
EP2063364A1 (en) * | 2007-11-19 | 2009-05-27 | Siemens Aktiengesellschaft | Module for building database queries |
US8645424B2 (en) | 2007-12-19 | 2014-02-04 | Sam Stanley Miller | System for electronically recording and sharing medical information |
US9588781B2 (en) | 2008-03-31 | 2017-03-07 | Microsoft Technology Licensing, Llc | Associating command surfaces with multiple active components |
US8375014B1 (en) * | 2008-06-19 | 2013-02-12 | BioFortis, Inc. | Database query builder |
US9665850B2 (en) | 2008-06-20 | 2017-05-30 | Microsoft Technology Licensing, Llc | Synchronized conversation-centric message list and message reading pane |
US8402096B2 (en) | 2008-06-24 | 2013-03-19 | Microsoft Corporation | Automatic conversation techniques |
US8180771B2 (en) | 2008-07-18 | 2012-05-15 | Iac Search & Media, Inc. | Search activity eraser |
US8875055B1 (en) * | 2008-11-28 | 2014-10-28 | Google Inc. | Interface for creating and viewing medical decision support rules |
US8312038B2 (en) * | 2008-12-18 | 2012-11-13 | Oracle International Corporation | Criteria builder for query builder |
GB2466851A (en) * | 2009-01-13 | 2010-07-14 | Oracle Int Corp | Method and interface for defining a complex Boolean expression |
US20100274821A1 (en) * | 2009-04-22 | 2010-10-28 | Microsoft Corporation | Schema Matching Using Clicklogs |
US9046983B2 (en) | 2009-05-12 | 2015-06-02 | Microsoft Technology Licensing, Llc | Hierarchically-organized control galleries |
WO2011025892A1 (en) * | 2009-08-27 | 2011-03-03 | Mastercard International Incorporated | Multi-database query system and method |
US20110087991A1 (en) * | 2009-10-13 | 2011-04-14 | Fluke Corporation | Methods and Apparatus for Reliable Entry and Enhanced Presentation of IPv6 Addresses |
US8726147B1 (en) | 2010-03-12 | 2014-05-13 | Symantec Corporation | Systems and methods for restoring web parts in content management systems |
US20110276921A1 (en) * | 2010-05-05 | 2011-11-10 | Yahoo! Inc. | Selecting content based on interest tags that are included in an interest cloud |
US9996620B2 (en) | 2010-12-28 | 2018-06-12 | Excalibur Ip, Llc | Continuous content refinement of topics of user interest |
US8407199B2 (en) * | 2011-04-28 | 2013-03-26 | International Business Machines Corporation | Graphic query suggestion apparatus and program product |
US9135233B2 (en) * | 2011-10-13 | 2015-09-15 | Microsoft Technology Licensing, Llc | Suggesting alternate data mappings for charts |
US10061473B2 (en) | 2011-11-10 | 2018-08-28 | Microsoft Technology Licensing, Llc | Providing contextual on-object control launchers and controls |
US11455287B1 (en) * | 2012-08-01 | 2022-09-27 | Tibco Software Inc. | Systems and methods for analysis of data at disparate data sources |
USD845978S1 (en) * | 2013-01-23 | 2019-04-16 | Yandex Europe Ag | Display screen with graphical user interface |
WO2016008085A1 (en) | 2014-07-15 | 2016-01-21 | Microsoft Technology Licensing, Llc | Data model change management |
CN105518671B (zh) | 2014-07-15 | 2019-09-03 | 微软技术许可有限责任公司 | 在数据存储***上管理多个数据模型 |
CN105518670B (zh) | 2014-07-15 | 2021-09-07 | 微软技术许可有限责任公司 | 用于模型查询的数据模型索引 |
WO2016008088A1 (en) | 2014-07-15 | 2016-01-21 | Microsoft Technology Licensing, Llc | Data retrieval across multiple models |
CN107615277A (zh) * | 2015-03-26 | 2018-01-19 | 卡斯维尔公司 | 用于查询数据源的***和方法 |
US11379497B2 (en) | 2018-06-21 | 2022-07-05 | At&T Intellectual Property I, L.P. | Data model database |
US11194843B2 (en) * | 2019-10-25 | 2021-12-07 | International Business Machines Corporation | Methods and systems for visual management of relational data |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555403A (en) * | 1991-11-27 | 1996-09-10 | Business Objects, S.A. | Relational database access system using semantically dynamic objects |
CA2172514C (en) * | 1993-09-27 | 2000-02-22 | Gary Hallmark | Method and apparatus for parallel processing in a database system |
US5742806A (en) * | 1994-01-31 | 1998-04-21 | Sun Microsystems, Inc. | Apparatus and method for decomposing database queries for database management system including multiprocessor digital data processing system |
US5764973A (en) * | 1994-02-08 | 1998-06-09 | Enterworks.Com, Inc. | System for generating structured query language statements and integrating legacy systems |
US5584024A (en) * | 1994-03-24 | 1996-12-10 | Software Ag | Interactive database query system and method for prohibiting the selection of semantically incorrect query parameters |
EP0823092A1 (en) * | 1995-04-24 | 1998-02-11 | Aspect Development, Inc. | Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon |
US5724570A (en) * | 1995-06-07 | 1998-03-03 | Tandem Computers Incorporated | Method and apparatus for a complete SQL subquery elimination process |
US6014655A (en) * | 1996-03-13 | 2000-01-11 | Hitachi, Ltd. | Method of retrieving database |
US5963938A (en) * | 1996-05-17 | 1999-10-05 | Novell Inc. | Automatic, context-organizing, query interface |
US5924089A (en) * | 1996-09-03 | 1999-07-13 | International Business Machines Corporation | Natural language translation of an SQL query |
US5844554A (en) * | 1996-09-17 | 1998-12-01 | Bt Squared Technologies, Inc. | Methods and systems for user interfaces and constraint handling configurations software |
US5960426A (en) * | 1997-06-30 | 1999-09-28 | International Business Machines Corporation | Database system and method for supporting current of cursor updates and deletes from a select query from one or more updatable tables in single node and mpp environments |
US5974407A (en) * | 1997-09-29 | 1999-10-26 | Sacks; Jerome E. | Method and apparatus for implementing a hierarchical database management system (HDBMS) using a relational database management system (RDBMS) as the implementing apparatus |
US6408308B1 (en) * | 1998-01-29 | 2002-06-18 | Incyte Pharmaceuticals, Inc. | System and method for generating, analyzing and storing normalized expression datasets from raw expression datasets derived from microarray includes nucleic acid probe sequences |
US6161103A (en) | 1998-05-06 | 2000-12-12 | Epiphany, Inc. | Method and apparatus for creating aggregates for use in a datamart |
US6282539B1 (en) * | 1998-08-31 | 2001-08-28 | Anthony J. Luca | Method and system for database publishing |
US6725227B1 (en) | 1998-10-02 | 2004-04-20 | Nec Corporation | Advanced web bookmark database system |
US6263328B1 (en) * | 1999-04-09 | 2001-07-17 | International Business Machines Corporation | Object oriented query model and process for complex heterogeneous database queries |
JP4552242B2 (ja) * | 1999-10-06 | 2010-09-29 | 株式会社日立製作所 | 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法 |
US6490581B1 (en) * | 2000-05-24 | 2002-12-03 | At&T Corp. | System and method for providing an object-oriented interface to a relational database |
US6640221B1 (en) * | 2000-07-10 | 2003-10-28 | Sas Institute Inc. | System and method for configuring, sequencing and viewing joins in a query |
US6658429B2 (en) * | 2001-01-05 | 2003-12-02 | Symyx Technologies, Inc. | Laboratory database system and methods for combinatorial materials research |
US7146399B2 (en) * | 2001-05-25 | 2006-12-05 | 2006 Trident Company | Run-time architecture for enterprise integration with transformation generation |
US6882993B1 (en) * | 2002-01-28 | 2005-04-19 | Oracle International Corporation | Incremental refresh of materialized views with joins and aggregates after arbitrary DML operations to multiple tables |
US20030163461A1 (en) * | 2002-02-08 | 2003-08-28 | Decode Genetics, Ehf. | Method and system for defining sets by querying relational data using a set definition language |
US7152060B2 (en) * | 2002-04-11 | 2006-12-19 | Choicemaker Technologies, Inc. | Automated database blocking and record matching |
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 |
US7293024B2 (en) * | 2002-11-14 | 2007-11-06 | Seisint, Inc. | Method for sorting and distributing data among a plurality of nodes |
US7240059B2 (en) * | 2002-11-14 | 2007-07-03 | Seisint, Inc. | System and method for configuring a parallel-processing database system |
US7185003B2 (en) * | 2002-11-14 | 2007-02-27 | Seisint, Inc. | Query scheduling in a parallel-processing database system |
US7152073B2 (en) * | 2003-01-30 | 2006-12-19 | Decode Genetics Ehf. | Method and system for defining sets by querying relational data using a set definition language |
-
2003
- 2003-07-11 US US10/618,409 patent/US7085757B2/en not_active Expired - Fee Related
-
2004
- 2004-07-01 CN CNA2004800198604A patent/CN1823335A/zh active Pending
- 2004-07-01 WO PCT/US2004/021192 patent/WO2005008369A2/en active Application Filing
-
2006
- 2006-06-14 US US11/424,156 patent/US20060224574A1/en not_active Abandoned
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101470978B (zh) * | 2007-12-25 | 2011-12-07 | 英业达股份有限公司 | 以关联性词句组合图形的语言学习***及方法 |
CN102004754A (zh) * | 2009-09-01 | 2011-04-06 | 商业对象软件有限公司 | 关系数据库的导航和可视化 |
CN103620603A (zh) * | 2011-06-29 | 2014-03-05 | 微软公司 | 用于自动化关系查询的数据驱动自然界面 |
CN108628905A (zh) * | 2017-03-23 | 2018-10-09 | 深圳大学 | 一种数据处理的方法及医疗组信息录入*** |
CN107943467A (zh) * | 2017-11-15 | 2018-04-20 | 阿里巴巴集团控股有限公司 | 条件语句创建方法及装置 |
CN110019314A (zh) * | 2017-12-29 | 2019-07-16 | ***通信集团湖南有限公司 | 基于数据项分析的动态数据封装方法、客户端和服务端 |
CN108228916A (zh) * | 2018-04-08 | 2018-06-29 | 中国联合网络通信集团有限公司 | 数据的查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20060224574A1 (en) | 2006-10-05 |
US7085757B2 (en) | 2006-08-01 |
WO2005008369A3 (en) | 2005-07-28 |
WO2005008369A2 (en) | 2005-01-27 |
US20050010557A1 (en) | 2005-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1823335A (zh) | 抽象数据链接和联接接口 | |
CN1768325A (zh) | 公开内容的抽象数据库抽象中的规则应用管理 | |
CN100336059C (zh) | 智能使用用户数据以抢先阻止违反访问控制的查询的执行 | |
CN1705945A (zh) | 全局查询相关属性 | |
US7840584B2 (en) | Iterative data analysis enabled through query result abstraction | |
CN1864159A (zh) | 通过查询结果扩充和结果数据反馈的迭代数据分析过程 | |
CN1761962A (zh) | 将非结构化数据实时聚集为结构化数据以便关系数据库引擎进行sql处理 | |
US7752197B2 (en) | SQL query construction using durable query components | |
CN1218265C (zh) | 数据库检索装置及方法 | |
US8244702B2 (en) | Modification of a data repository based on an abstract data representation | |
US7689580B2 (en) | Search based application development framework | |
CN1647076A (zh) | 查询关系数据库的方法和设备 | |
CN1647080A (zh) | 多数据库环境中存取数据的方法、计算机程序和计算机 | |
CN1310824A (zh) | 用于数据仓库的选择聚集层和交叉产品层的方法和装置 | |
US20060161522A1 (en) | Context insensitive model entity searching | |
CN1759397A (zh) | 对数据的函数应用的结果进行结构化索引 | |
US20080228716A1 (en) | System and method for accessing unstructured data using a structured database query environment | |
CN1882943A (zh) | 使用超单元的搜索处理的***和方法 | |
CN1573753A (zh) | 数据库对象脚本生成方法和*** | |
CN1598768A (zh) | 信息处理装置及其控制方法 | |
CN101052948A (zh) | 对象过程图应用程序开发*** | |
CN1694100A (zh) | 改进文档检索的内容传播 | |
CN1556482A (zh) | 一种用于实现数据库多表查询的数据处理方法 | |
CN1379882A (zh) | 将二维数据转换为标准形式的方法 | |
CN1577350A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |