CN1790322A - 从多个格式不同的物理表创建逻辑表的方法和系统 - Google Patents
从多个格式不同的物理表创建逻辑表的方法和系统 Download PDFInfo
- Publication number
- CN1790322A CN1790322A CNA2005101175714A CN200510117571A CN1790322A CN 1790322 A CN1790322 A CN 1790322A CN A2005101175714 A CNA2005101175714 A CN A2005101175714A CN 200510117571 A CN200510117571 A CN 200510117571A CN 1790322 A CN1790322 A CN 1790322A
- Authority
- CN
- China
- Prior art keywords
- logical
- data
- database
- relation
- databases
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/256—Integrating or interfacing systems involving database management systems in federated or virtual databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施例提供了用于构建包括映射到一逻辑表的逻辑字段的数据库抽象模型的方法。该逻辑表是通过使用从多个格式不同的物理表获取的数据构建的。该逻辑表允许存储在多个数据库中的逻辑上相关的数据表现为来自单个表的数据。维护存储在多个格式不同的数据库中的数据之间的关系,并且包括映射到多个数据库的多个访问方法的逻辑字段由映射到该逻辑表的单个访问方法来取代。修改为该数据库抽象模型定义的数据关系以反映该逻辑表。
Description
技术领域
本发明涉及计算机数据库。更具体地说,本发明涉及用于在一组单独的、格式不同的、用于存储逻辑上相似或相关的数据的数据库上创建数据库抽象模型的技术。
背景技术
数据库是用于信息存储和检索的公知系统。目前使用的最普遍的数据库类型是关系数据库,这是一种表格式的数据库,其中定义了数据从而可以若干不同方式重新组织和访问该数据。关系数据库管理系统(DBMS)使用关系技术来存储和检索数据。
数据库模式描述了数据库的结构。例如,一关系模式描述了一组表、列、以及定义这些表之间的关系的主键和外键。开发了根据数据库模式查询数据的应用。例如,通常使用前端查询应用来访问关系数据库,该前端应用被配置为执行数据访问例程,包括搜索、排序、和查询构造例程。前端应用根据关系模式来查询数据。在后端,软件程序控制数据存储并响应由与前端交互的用户发送的请求(查询)。
每年各实体花费数百万美元雇用数据建模专家来设计数据仓库。数据仓库提供了用于将来自很多源的数据聚合到单个集中的数据库中的中央储存库。然而,数据仓库常常不是一合适的或甚至可行的模型。在一些情况下,数据量过大或者过于迅速地改变,以至于不能将其聚合到单个位置。这是例如很多大的生物信息数据库的情况。在其他情况下,数据源的数量可非常大,从而使得创建数据仓库的成本大得令人望而却步。
数据仓库技术的一种替代方案是数据库联邦(database federation)。数据库联邦允许在远程系统上的关系表显得是本地系统上的表。联邦数据库是运行在不共享共同的资源并通过网络相连接的独立服务器上的多个底层数据库的逻辑联合(union)。然后应用可被配置为从远程系统访问数据,而无需将数据聚合到数据仓库中。
申请日为2002年2月26日的、标题为“Application Portability andExtensibility through Database Schema and Query Abstraction”的、转让给相同受让人的美国专利申请No.10/083,075(’075申请)公开了一种提供底层数据库系统和模式的抽象视图的框架。该’75申请的框架向请求实体(即最终用户或前端应用)提供了存储在底层物理存储机制例如关系数据库中的数据的抽象表示。这样,当访问底层DBMS时,请求实体就与底层物理数据相分离。可构建基于该框架的抽象查询而不管物理数据的组成。此外,对物理数据模式的改变并不也要求前端查询应用中的相应改变;相反,可改变由该框架提供的抽象以反映所述改变。与本申请一起申请的、标题为“Abstract Query Plan”(代理人卷号ROC920040198US1)的、转让给相同受让人的美国专利申请公开了用于处理抽象查询的技术,其包括生成抽象查询的中间表示,并随后使用该中间表示来生成已解析的查询。
使用所述数据库抽象模型,定义了描述存储在底层数据库中的数据的逻辑字段,所述底层数据库包括其中数据被存储在多个数据库系统中的联邦环境。用户通过选择逻辑字段并指定条件来构造抽象查询。然后系统通过从抽象查询生成底层数据库的已解析查询来检索数据。每个逻辑字段包括指定了如何从对应于该逻辑字段的底层数据库系统中检索数据的访问方法。如果存在多于一个用于对应于该逻辑字段的数据的源,则可为单个逻辑字段定义多个访问方法,每个访问方法将该字段映射到一不同的数据库。
然而,简单地拥有每个逻辑字段的多于一个访问方法并将为每个访问方法检索的查询结果合并并不足以总是检索到正确的查询结果。就是说,该方法不一定保证检索到所希望的信息。此外,多次执行一个查询(每个数据源一次)是低效率的,并且也未能考虑到数据与该底层数据库中的其他表的关系。然而,表之间的关系在任何关系数据库中对于数据的组织都是根本性的。因此,如果查询结果依赖于分布在多个数据源中的数据的关系,则对不同格式的数据库重复地执行一查询将不能检索出正确的结果。例如,第一逻辑字段可能映射到存储在一数据库的单个表中的人口统计数据。来自该表的一个列的数据逐行地与其他列中的数据相关联。第二逻辑字段可能映射到存储在另一个使用两个表的数据库中的逻辑上相关的人口统计数据,并且数据在这两个表之间使用一定义的关系例如存储在两个表中的病人ID相关联。没有对这种关系的指示,则将数据在第一个数据库(使用单个表)和第二个数据库(使用多个表)之间链接起来是不可能的。
在多个数据库系统的格式和模式中的这些种类的差别对于创建数据库抽象模型造成了困难。考虑一下具有多个地点的一研究机构。每个地点可维护其自己的用来存储逻辑上相似的信息的数据库系统。这样,每个地点可维护一包括人口统计表(存储关于病人的信息)、检验表(存储检验结果)等等的数据库。此外,在每个地点使用的数据库模式可使用格式不同的表。例如,第一个地点可使用单个表来存储病人人口统计数据,而第二个地点可将病人人口统计数据细分到多个表中。在这种情景中,同一病人可具有存储在该研究机构的多个地点的数据库中的数据。可定义这样一逻辑字段,该逻辑字段将使用多个访问方法从每个相应的表中检索数据。因此,包括这样一逻辑字段的抽象查询可映射到具有所需数据的多个表。因为该多个表是以不同方式组织的,来自每个表的数据的简单联合会不能产生希望的查询结果。
因此,仍然需要在使用格式不同的物理表存储逻辑上相关或相似的信息的多个数据库上构建数据库抽象模型的技术。
发明内容
本发明的实施例提供了用于构建数据库抽象模型的方法,该数据库抽象模型包括映射到一逻辑表的逻辑字段。该逻辑表是使用从多个格式不同的物理表提取的数据构建的。该逻辑表允许存储在多个数据库中的逻辑上相关的数据显得是来自单个表的数据。换言之,将来自多个表的数据视为来自该逻辑表的单个列的数据。此外,维护存储在多个分离的数据库中的数据之间的关系。进一步地,可使用映射到该逻辑表的单个访问方法来取代映射到多个数据库的多个访问方法。修改了为所述数据库抽象模型定义的数据关系以反映该逻辑表。
本发明的一个实施例提供了一种用于创建存储在多个数据库中的逻辑上相关的数据的数据模型的方法。该方法一般包括,提供定义了多个逻辑字段的一数据库抽象模型,其中每个逻辑字段提供了用于该逻辑字段的名称,以及至少一个将该逻辑字段映射到该多个数据库之一中的数据的访问方法,且其中该数据库抽象模型还定义了存储在该多个数据库中的数据之间的一组关系,以及识别至少一个提供了多个访问方法的逻辑字段,其中每个访问方法映射到存储在该多个数据库的不同一个中的数据。该方法一般还包括生成一逻辑表,其中该逻辑表包括来自由所述至少一个逻辑字段的多个访问方法引用的该多个数据库的每一个的数据,使用将该至少一个逻辑字段映射到该逻辑表的单个访问方法来取代该至少一个逻辑字段的多个访问方法,以及更新所述一组关系以反映该逻辑表和该多个数据库中的其他数据之间的关系。
本发明的另一个实施例提供了一种用于从在格式不同的物理表中存储数据的多个数据库生成一逻辑表的方法。该方法一般包括,提供定义了多个逻辑字段的一数据库抽象模型,其中每个逻辑字段指定了用于该逻辑字段的名称和至少一个将该逻辑字段映射到所述物理表之一中的数据的访问方法,以及识别指定了多个访问方法的逻辑字段,其中每个访问方法映射到存储在该多个数据库之一中的一数据列。并且对于每个这种访问方法,(i)识别由该多个访问方法引用的格式不同的物理表,以及(ii)向该逻辑表的一列添加来自由该多个访问方法引用的格式不同的物理表的列的数据。该方法一般还包括,确定是否具有多个访问方法的另一逻辑字段引用了来自任何一个所述物理表的、尚未被包括到该逻辑表中的数据列,并且如果是这样,则将该数据列添加到该逻辑表,以及更新一数据库模式以包括该逻辑表,其中该数据库模式定义了存储在该多个数据库中的数据之间的关系以及包括在该逻辑表中的列之间的关系。
本发明的另一个实施例提供了一种包含多个指令的计算机可读介质,当所述指令在计算机系统上执行时被配置为执行操作。所述操作一般包括,提供定义了多个逻辑字段的一数据库抽象模型,其中每个逻辑字段提供了用于该逻辑字段的名称,以及至少一个将该逻辑字段映射到该多个数据库之一中的数据的访问方法,且其中该数据库抽象模型还定义了存储在该多个数据库中的数据之间的一组关系,以及识别至少一个提供了多个访问方法的逻辑字段,其中每个访问方法映射到存储在该多个数据库的不同一个中的数据。该方法一般还包括生成一逻辑表,其中该逻辑表包括来自由所述至少一个逻辑字段的多个访问方法引用的该多个数据库的每一个的数据,使用将该至少一个逻辑字段映射到该逻辑表的单个访问方法来取代该至少一个逻辑字段的多个访问方法,以及更新所述一组关系以反映该逻辑表和该多个数据库中的其他数据之间的关系。
本发明的另一个实施例提供了一种包含多个指令的计算机可读介质,当所述指令在计算机系统上执行时被配置为执行操作。所述操作一般包括定义了多个逻辑字段的一数据库抽象模型,其中每个逻辑字段提供了用于该逻辑字段的名称和至少一个将该逻辑字段映射到所述数据库之一中的数据的访问方法,且其中至少一个逻辑字段提供了多个各映射到存储在该多个数据库的不同一个中的逻辑上相关的数据的访问方法,以及识别具有多个映射到存储在该多个数据库中的数据的访问方法的逻辑字段。并且对于每个这种访问方法,识别由所述多个访问方法引用的格式不同的物理表,向该逻辑表添加来自由所述多个访问方法引用的表的列的数据,以及确定是否具有多个访问方法的任何其他逻辑字段引用了来自一表的尚未被包括到该逻辑表中的列,并且如果是这样,则将该列添加到该逻辑表。所述操作一般还包括更新一数据库模式以包括该逻辑表,其中该数据库模式定义了存储在该多个数据库中的数据之间的关系。
本发明的另一个实施例提供了一种用于处理抽象查询的系统。该系统一般包括多个数据库系统,以及一定义了多个逻辑字段的数据库抽象模型,其中每个逻辑字段提供了用于该逻辑字段的名称,以及至少一个将该逻辑字段映射到所述数据库系统之一中的数据的访问方法,且其中该数据库抽象模型还定义了存储在该多个数据库系统中的数据之间的一组关系。该系统一般还包括被配置为允许用户从所述多个逻辑字段构造抽象查询的用户界面,以及被配置为接收抽象查询、并作为响应生成该多个数据库系统的已解析的查询的运行时组件。
附图说明
为了更详细地理解现实本发明的上述特征、优点和目标的方式,参照在附图中示出的本发明的实施例对以上简述的本发明进行更具体的描述。
然而,附图示出了本发明的典型实施例,并因此不应被认为限制了其范围,因为本发明可允许其他同等有效的实施例。
图1示出了根据本发明的一个实施例的软件和硬件组件的关系视图。
图2A示出了根据本发明的一个实施例的软件组件的关系视图。
图2B、2C示出了一组数据库和根据本发明的一个实施例在多个分离的数据库上构建的数据库抽象模型。
图3示出了根据本发明的一个实施例的一种用于使得获自多个源的数据对所述数据库抽象模式显得好象数据都存储在单个数据库中的方法。
图4示出了根据本发明的一个实施例的一种用于生成逻辑表的方法。
图5A-5E示出了根据图4中示出的方法的逻辑表的构建。
图6A示出了一种用于生成一逻辑表和底层物理数据库中的其他表之间的一组关系的方法。
图6B示出了根据本发明的一个实施例包括对一逻辑表的引用的一示例性数据库抽象模型。
图7示出了根据本发明的一个实施例在根据图4的方法生成的逻辑表中的数据与来自其他源的数据之间的关系的视图。
具体实施方式
本发明的实施例提供了一种在存储逻辑上相关的数据的多个数据库上构建的数据库抽象模型。使用来自多个源的数据来构建一逻辑表,该逻辑表保留了存在于该多个数据库中的格式不同的表之间的关系。可通过使用不同的一组表以使表具有不同的格式,来表示相同的数据。就是说,通过使用不同的数据库模式来表示相同的数据。逻辑表是创建格式不同的物理表之间的“公分母”的一种方法,其保留了该逻辑表中的数据和该多个数据库中的其他数据之间的关系。使用映射到该逻辑表的单个访问方法来重写使用多个访问方法来映射到来自该多个数据库的数据的逻辑字段。
一般地说,该数据库抽象模型提供了到多个底层数据库的一接口,该接口符合用户的真实数据视图,而不是由底层物理存储机制用来表示该数据的视图。在该抽象模型后面是一组底层物理数据库。当多个数据储存库包括逻辑上相关的信息时,本发明的实施例生成一包括获自多个底层物理表的数据的逻辑表。因为可使用不同的关系模式将逻辑上相关的数据存储在不同数据库中,所以该逻辑表不仅是该多个底层表的简单联合。该逻辑表保留了来自不同格式的表的数据与底层数据库中的其他表和其他数据之间的关系。因此,可将该逻辑表插入数据库模式中,而不会扰乱整个数据库模式。
在以下描述中,提及本发明的实施例。然而,本发明不局限于任何具体描述的实施例。相反,以下特征和要素的任何组合,不管是否相关于所描述的一实施例,都实施和实现了本发明。此外,在各实施例中,本发明提供了相对于现有技术的大量优点。虽然本发明的实施例可实现相对于其他可能的解决方案和现有技术的优点,一给定实施例是否实现一特定优点并不限制本发明的范围。因此,以下方面、特征、实施例和优点是说明性的,而不被认为是所附权利要求的要素或限制,除非在权利要求中被明确地陈述。同样,对“本发明”的提及既不应被认为是对这里公开的任何发明主题的概括,也不应被认为是所附权利要求的要素或限制,除非在权利要求中被明确地陈述。
本发明的一个实施例被实现为与一计算机系统例如图1中所示并在下面描述的计算机系统10一起使用的程序产品。该程序产品定义了这里描述的实施例(包括方法)的功能,并可被包含在各种信号承载介质中。示例性的信号承载介质包括但不限于(i)永久性地存储在非可写存储介质(例如计算机中的只读存储装置例如可由CD-ROM驱动器读取的CD-ROM盘;(ii)存储在可写存储介质(例如软盘驱动器中的软盘或硬盘驱动器)中的可变信息;以及(iii)通过通信介质(例如计算机网络或电话网络)包括无线通信传送的信息。后一实施例具体包括在因特网或其他计算机网络上共享的信息。这种信号承载介质当载有执行本发明的方法的计算机可读指令时代表本发明的实施例。
一般地说,实现本发明的实施例的软件例程可以是操作系统的一部分或特定应用、组件、程序、模块、对象、或指令序列例如可执行脚本的一部分。这种软件例程通常包括能够通过使用计算机而被执行的多个指令。此外,程序通常包括驻留在存储器或存储设备中的、作为其操作的一部分的变量和数据结构。另外,这里描述的各种程序可基于为其实现它们的应用而被识别。然而,本领域的技术人员可理解以下任何特定术语或特定应用是为了便于描述本发明,而不是将本发明限制为仅仅用于特定应用或术语。此外,这里描述的程序的功能使用彼此交互的离散的模块或组件。然而,本发域的技术人员可理解,不同实施例可以许多不同方式组合或合并这样的组件或模块。以下描述首先描述了所述数据库抽象模型,并随后描述了生成包括获自多个格式不同的物理表的逻辑上相关的数据的逻辑表。
数据库抽象模型
图1示出了一客户机-服务器结构中的连网的计算机系统。客户计算机系统1051-N包括允许它们通过网络104与其他系统通信的网络接口。网络104可包括其中客户机系统105和服务器系统110都位于相同的大体位置的局域网,或者可包括地理上分布的系统之间的网络连接,包括通过因特网的网络连接。客户机系统105一般包括通过总线连接到存储器和存储设备(未示出)的中央处理器(CPU)。客户机系统105运行一操作系统(例如,Linux发布、Microsoft Windows、IBM的AIX、FreeBSD等),该操作系统管理硬件组件和运行在客户机系统105上的高级软件应用之间的交互。
在一个实施例中,用户在客户机系统105和服务器系统110之间建立网络连接。这种连接可包括一登录过程,其中用户使用例如用户名和口令或其他认证方案(例如,数字证书或生物测定认证)向服务器系统110认证该用户的身份。也考虑了不需要认证的系统。服务器系统110可包括与客户机系统105使用的硬件组件相似的硬件组件。因此,服务器系统110一般包括连接到总线(未示出)的CPU、存储器和存储设备。服务器系统110也运行一管理硬件组件和软件应用之间的交互的操作系统(例如,Linux发布、Microsoft Windows、IBM的AIX、FreeBSD等)。
然而,图1中所示的计算机系统仅例示了一种硬件/软件配置。本发明的实施例可使用其他配置来实现,不管该计算机系统是复杂的多用户计算系统例如由高速网络连接的单个计算机的群集,单用户工作站,还是缺乏其自己的非易失存储装置的网络电器(network appliance)。此外,尽管这里使用客户机/服务器网络配置描述了实施例,也考虑到使用分布式计算或对等处理技术的实施例。
在一个实施例中,用户使用一图形用户界面(GUI)与服务器系统110交互。在一特定实施例中,GUI内容可包括使用web浏览器122呈现在客户计算机系统1051上的HTML文档(例如网页)。在这种实施例中,服务器系统110包括一超文本传输协议(http)服务器118(例如,象开源Apache web服务器程序或IBM的Web Sphere程序那样的web服务器),该服务器适应于响应来自客户机系统105的HTTP请求,并将HTML文档传送给客户机系统105。网页本身可以是存储在服务器系统110上的静态网页,或通过使用与web服务器118交互以服务来自客户机系统105的请求的应用服务器112而动态生成的。网页可包括向与系统110交互的用户呈现查询构建界面115的页。
作为另一种选择,或作为附加,客户机应用120可提供一数据库前端,或运行在客户机系统105N上的查询应用程序。应用120和查询构建界面115允许用户构造抽象查询。在任一情况下,查询构建界面115允许用户根据一数据库抽象模型148来构造查询。数据库抽象模型148定义了可用于查询构造的逻辑字段。将查询提交给运行时组件114,该组件生成数据库156的已解析查询。
如图1所示,服务器系统110还可包括运行时组件114、DBMS服务器116、和数据库抽象模型148。这些组件的每一个都可包括在服务器系统110上执行的一软件程序(和数据文件)。DBMS服务器116(或多个服务器)通常包括被配置为管理数据库2141-3的软件应用。作为例示,可通过DBMS服务器116访问的单个数据库可包括使用SQL查询来查询的关系数据库2142,或使用XML查询来查询的XML数据库2141。然而,本发明并不限于任何特定的物理数据库存储机制,而是可被容易地扩展以在其他当前已知的或未知的这样的机制上运行。因此,数据存储机制2143示出了由DBMS服务器116管理的其他存储机制。
数据库214可存在于服务器系统110的本地存储系统中,或者可通过网络104经由远程服务器117访问。因此,既可在本地数据库系统也可在远程数据库系统上构造所述数据库抽象模型148。数据库联邦156(由虚线示出)表示本地数据库1241-3和远程数据库2144-5的联合。逻辑上相关的数据可物理地存在于作为数据库联邦156的部分的多个数据库214中。
在一个实施例中,用户使用由数据库抽象模型148定义的逻辑字段来构造抽象查询。每个逻辑字段可标识一字段名和一访问方法。该访问方法标识了数据所在的底层数据库(例如数据库2141-5),以及用于访问底层物理存储机制中的该数据的方法。在申请日为2002年2月26日、标题为“Application Portability and Extensibility through Database Schema andQuery Abstraction”的共同拥有的共同待决的专利申请No.10/083,075中更详细地描述了该数据库抽象模型、逻辑字段和访问方法的实施例。
运行时组件114被配置为生成与包含在一个或多个数据库214中的数据的物理表示一致的查询。换句话说,运行时组件是用于从抽象查询生成物理查询(例如,SQL语句)的“变换引擎”。运行时组件114获取由用户构造的抽象查询,识别与包括在该查询中的每个逻辑字段对应的信息,并生成由DBMS 116针对底层物理存储机制运行的已解析查询。在一个实施例中,运行时组件114获取抽象查询并生成与该抽象查询对应的抽象查询计划,并随后使用该抽象查询计划生成已解析查询。针对底层数据库2141-5发出该已解析查询。在与本申请一起申请的标题为“Abstract QueryPlan”的共同拥有的专利申请(代理人卷号ROC920040198US1)中更详细地讨论了抽象查询处理和抽象查询计划。
图2A示出了本发明的多个相互关连的组件,以及在由数据库抽象模型148提供的数据的抽象视图(图2A的左边)与用于存储数据的数据库系统214提供的数据的视图(图2A的右边)之间的变换。在一个实施例中,请求实体使用查询构建界面115来构造抽象查询202。查询构建界面可由应用120提供,或者可被呈现为web浏览器122上的网页。所产生的查询在这里一般被称为“抽象查询”,因为它是从逻辑字段而不是从对底层数据库2141-5中的数据实体的直接引用构造的。结果,可独立于特定底层数据表示(例如,关系数据库和模式)来构造抽象查询。
图2B进一步示出了数据库抽象模型148的一个实施例。如图所示,数据库抽象模型148包括多个逻辑字段规定2081-4(作为示例示出了4个)。各逻辑字段规定208共同创建了数据库250和251上的抽象。每个逻辑字段208创建该抽象的一部分。就是说,每个逻辑字段将数据的一逻辑项目关联到存储在一底层数据库例如数据库250和251中的数据。此外,本发明的实施例提供了从多个数据库获得数据的逻辑字段。该数据库抽象模型148还包括一关系部分270,该部分标识了存储在数据库250和251中的数据元素之间的关系。如图2B所示,数据库抽象模型148包括以下关系:
DS1.Demographic.ID=DS1.Demo_extended.ID
DS1.Demographic.ID=DS2.Demographic.ID
DS1.Demographic.ID=DS1.Test.ID
DS2.Demographic.ID=DS2.BirthAndDeath.ID这些关系中的每一个被用于关联来自两个表的数据。在某些情况下,这些表可位于同一数据库中,而在另一些情况下,所述关系可以是位于不同数据库中的表之间的关系。
如图2B所示,数据库250和251的每一个都存储了与病人有关的逻辑上相关的信息,但是使用不同的数据库模式和格式不同的数据库表存储的。数据库250和数据库251可位于地理上不同的位置(例如图1中所示的2142和2144)。数据库250包括3个表,每个表通过一ID值相关联。人口统计(Demographic)表260包括ID、姓名、和出生日期列。人口统计扩展(Demo_Extended)表264包括ID列和死亡日期列。最后,检验(Tests)表266也包括ID值,但还包括检验值(表示检验结果的值)列和检验类型列(表示与该值相关的检验的类型)。
数据库251包括相似的数据,并且同一病人可具有存储在两个数据库250和251中、由病人ID值相关联的数据。然而,这些表的格式是不同的。数据库251包括人口统计表266,该表包括姓名和ID列,但略去了包括在数据库250中的人口统计表中的出生日期。生死表268包括出生日期列,以及ID列和死亡日期列。
数据库抽象模型148是在数据库250和251上构造的。如图所示,数据库抽象模型148包括4个逻辑字段规定208以及描述数据元素如何相互关联的关系数据270。逻辑字段规定208创建存在于数据库250和251中的关系表的抽象。每个逻辑字段规定(简称为“逻辑字段”)包括一名称和对访问方法的引用,该访问方法将该逻辑字段映射到数据库250和251中的数据。例如,逻辑字段2082包括引用病人的姓名的名称2542“姓名”。逻辑字段2082包括两个访问方法。访问方法1映射到数据库250中的一表和列,而访问方法2映射到数据库251中的一表和列。类似地,逻辑字段2081、2083、2084每个都包括两个访问方法。此外,数据库抽象模型148包括关系部分270,该部分标识了存储在数据库250和251中的数据之间的关系。关系部分270包括来自一个数据库250中的表的列之间的关系(例如,DS1.Demographic.ID=DS1.Test.ID)以及来自两个数据库中的表的列之间的关系。
虽然在该示例性数据库抽象模型148中示出的访问方法使用了“简单”访问方法,也考虑到其他访问方法。例如,可使用一逻辑字段来从一存储有很多不同检验的结果的表中抽象出一特定的检验类型。这种逻辑字段可包括一过滤器,该过滤器指定为该逻辑字段返回的结果应当仅包括指定检验的结果。在’075申请以及上面提及的抽象查询计划应用中更详细地讨论了访问方法的类型。
生成逻辑表
在使用多个数据库来存储同样的逻辑数据(例如存储在数据库250和251中的病人数据)的情况下,可使用本发明的实施例来生成一使用获自该多个数据库的数据的逻辑表。因为逻辑上相关或相似的数据可出现在来自底层数据库的多个表中,单个逻辑字段可指定多个访问方法(例如,图2B所示的逻辑字段规定2081-4)。例如,病人姓名存储在表260和266中。此外,人口统计数据是使用格式不同的物理表存储在数据库250和251中的。数据库250在单个表中存储人口统计数据,而数据库251使用两个分开的表来存储人口统计数据。在一个实施例中,一逻辑表包括获自一个或多个物理表的数据(例如,来自数据库250和251的列),并形成该逻辑表中的单个列。于是所述多个访问方法可由这样的单个访问方法所取代,该方法将一逻辑字段映射到该逻辑表中的这样的一列,该列包含来自包含逻辑上相关的数据的多个数据源的每一个的数据。
图3示出了使用获自多个源的数据(例如,来自数据库250和251的数据)来生成一逻辑表的方法300。该方法300创建一逻辑表,该逻辑表被该数据库抽象模型视为好象它完全存储在单个数据库中那样。此外,可使用本发明的实施例来合并多个使用相同的逻辑字段但不同的访问方法来映射到数据的数据库抽象模型。操作300使用将该逻辑字段映射到逻辑表中的一列的单个访问方法来取代多个将该逻辑字段映射到格式不同的表的访问方法。这使得一逻辑表对数据库抽象模型148和运行时组件114显得是单个物理表,而不会扰乱该逻辑表和底层数据库中的其他表之间的关系。
操作300在步骤302开始,其中识别具有多个访问方法的一逻辑字段。接着,在步骤304,生成一逻辑表。在一个实施例中,逻辑表从不同物理表中创建一保留了与多个数据库中的其他数据的关系的“公分母”表。参照图4描述了生成逻辑表的方法的一个实施例。在步骤306,重写在步骤302识别的具有多个访问方法的逻辑字段,以便该访问方法引用在步骤304生成的逻辑表。在步骤308,更新由关系部分270所定义的关系数据信息以反映该新生成的逻辑表。删除到现在全部由该逻辑表包含的各表和列的关系,而重写部分地引用被并入该逻辑表中的列的关系以将该逻辑表连接到底层数据库的其余部分。参照图6描述了更新关系信息的方法的一个实施例。
图4示出了根据本发明的一个实施例用于生成一逻辑表的示例性操作400。生成逻辑表被示为图3的步骤304。这里参照在图2B中示出的示例性数据库250和251来描述图4。另外,结合图4中示出的方法描述了图5A-5F。操作400在步骤402开始,其中识别包括多个访问方法的一逻辑字段(这意味着存在多个具有该逻辑字段的目标数据的数据源)。接着,在步骤406,将来自由在步骤402识别的该逻辑字段的多个访问方法引用的表的列添加到该逻辑表。例如,从“ID”逻辑字段2081开始,在步骤406,将来自数据库250的表260和数据库251的表266的ID列添加到该逻辑表。
图5A示出了在添加了由ID逻辑字段2081引用的各表之后的逻辑表502的状态。具体地,将来自人口统计表260的ID列512和来自人口统计表266的ID列522添加到该逻辑表。返回到图4,在添加了来自在步骤402标识的逻辑字段的列之后,该方法在步骤408查询在前一步骤中被包括的表中的其他列是否由具有多个访问方法的其他逻辑字段所引用。如果是这样,则在步骤410,将与任何这样的逻辑字段对应的列添加到该逻辑表502。例如,图5B示出人口统计表260和266每个都包括“姓名”列。因此,在步骤410,将由多个访问方法的姓名逻辑字段2082所引用的姓名列514和524添加到该逻辑表502。在此示例中,在步骤410,只有一个附加的列被添加到该逻辑表,然而在该步骤,根据访问方法和所涉及的实际的物理数据库,可添加多个列。
在步骤412,方法400查询是否包括在该逻辑表中的任何列被具有这样的多个访问方法的逻辑字段所引用,所述多个访问方法包括对来自尚未被包括在该逻辑表502中的表的列的引用。例如,表260包括出生日期列516。然而,表266不包括对应的出生日期列。在步骤414,由来自逻辑字段2083的第二个访问方法所引用的表被包括在该逻辑表502中。图5C示出了在包括来自数据库251的表268之后逻辑表502的状态。表268包括由逻辑字段2083中的多个访问方法所引用的出生日期列526。
然后,操作400返回到步骤408,并查询在步骤414中被包括到该逻辑表502中的表本身是否包括由具有多个访问方法的一逻辑字段所引用的其他列。例如,图5D示出了来自表268的死亡日期列528由逻辑字段2084所引用。于是操作400重复步骤412和414以将来自表264的死亡日期列518添加到逻辑表502。在图5E示出了所添加的来自表266的列。现在包括了死亡日期列。在图5E中还示出了表262和268之间的联结(join)关系532。联结关系532保留了这两个表之间的对单个表来说不需要的关系。从步骤414,该方法返回到步骤408、410、和412,而没有任何其他可添加到该逻辑表的东西。在步骤416,该方法400确定是否仍有任何具有多个访问方法的逻辑字段。如果是这样,则该方法返回到步骤402,并选择另一个具有多个访问方法的逻辑字段以进行处理。否则,该方法在步骤418结束。
操作400生成了一包括来自多个格式不同的表的数据的逻辑表502。在一个实施例中,可使用一存储SQL语句例如一共用表表达式(commontable expression)来表示该逻辑表502。在运行时执行期间,当需要从该逻辑表检索数据时,可使用该存储SQL语句。为了使用SQL生成该表,将逻辑表502中上一排的所有表(即图5E中的表260和264)联结在一起,并与联结在一起的下一排的表(即表266和268)相联合。表1示出了可用于表示使用由图5A-5E进一步示出的操作400生成的逻辑表502的两个示例性SQL语句。
表1-示例性SQL
select ID,Name,Birthdate,Deathdate from DS1.Demographic T1
left join DS2.Demographic_extended T2 on T1.ID=T2.ID
union
select ID,Name,Birthdate,Deathdate from DS2.Demographic T3
left join DS2.BirthAndDeath T4 on T3.ID=T4.ID
如果需要将来自其他数据库的表加入到该逻辑表中,则可重复该过程。当多于两个数据库包含具有逻辑上相关的信息的表,并且相应的逻辑字段具有三个(或更多)的访问方法时,可发生这样的情况。
访问方法重写和更新数据库关系
一旦完成了逻辑表502,则使用映射到逻辑表502的单个访问方法来取代所述多个访问方法。图6A示出了与首先在图2C所示相似的重写的数据储存抽象组件148。每个逻辑字段208现在包括引用该逻辑表502中的一列的单个访问方法,并且逻辑字段“姓名”、“ID”、“出生日期”、和“死亡日期”都映射到逻辑表502中的一列。此外,使用更新的关系部分270保留了该逻辑表与数据库中的其他表的关系。图6B示出了用于重写包括在数据库抽象模型中的关系数据以反映根据图4中所示的方法生成的逻辑表的方法。更新包括在数据库抽象模型148中的关系数据以在数据库中保留该新形成的逻辑表与数据库中的其他表之间的关系。
操作600在步骤602开始,其中将存储在数据库抽象模型148中的引用该逻辑表502中的多个表的任何关系从关系270中删除。就是说,从关系270中删除包括在该逻辑表中的两个列之间的关系。这些关系现在被保留在该逻辑表的结构中,因而对于抽象查询处理是不需要的。在步骤604,将在关系270中定义的相关于来自该逻辑表502之外的表的一列与该逻辑表之内的一列的关系重定向以指向该逻辑表。例如,图6B示出的关系610被重写为:
logtableschmea.demographic.id=DS1.tests.ID
这将表260和表262之间的初始关系改变为逻辑表502和检验表262之间的关系。图7进一步示出了使用这样的逻辑表的关系,该逻辑表是在图5A-5E中使用在图2中首先示出的数据库250和251生成的。
如果这些关系引用了尚未被包括在该逻辑表中的一列,则在步骤606将该列添加到该逻辑表。包括在该逻辑表中的表可包括由这样的一关系所引用的列,该关系未被具有多个访问方法的一逻辑字段所引用。例如,表260可包括与表262相关的其他列。
图6A示出了访问方法已被重写且关系信息已被更新之后的数据库抽象模型148(来自图2C)。在该示例性关系270中,现在仅包括单个条目:
logtabschema.Demographic.ID=DS1.Tests.ID此外,逻辑字段2081现在包括引用根据上述方法生成的逻辑表502的单个访问方法。图7示出了该新的关系,以及与底层数据库250有关的已完成逻辑表502。关系702指示存储在该逻辑表的ID列的数据与检验表262的ID列之间的关系。
完成的逻辑表
一旦完成逻辑表,则可由为一逻辑字段定义的一访问方法来引用该逻辑表,就如同它是底层数据库模式的一部分那样。起初出现在多个格式不同的物理表中的所有逻辑上相关的数据现在被包括在该逻辑表中。此外,保留了包括在该逻辑表中的数据之间的关系,以及该逻辑表中和数据库中的其他表中的数据之间的关系。因此,当处理抽象查询时,运行时组件114可生成引用存储在逻辑表中的数据的已解析查询。起初使用多个查询方法引用的逻辑上相关的数据可使用映射到逻辑表502的单个访问方法来引用。
尽管以上讨论涉及本发明的一些实施例,可设计本发明的其他和进一步的实施例而不脱离本发明的基本范围,本发明的范围由附后的权利要求确定。
Claims (25)
1.一种用于创建存储在多个数据库中的逻辑上相关的数据的数据模型的方法,包括:
提供定义了多个逻辑字段的数据库抽象模型,其中每个逻辑字段指定了用于该逻辑字段的名称,以及至少一个将该逻辑字段映射到该多个数据库之一中的数据的访问方法,且其中该数据库抽象模型还定义了存储在该多个数据库中的数据之间的一组关系;
识别至少一个指定了多个访问方法的逻辑字段,其中每个访问方法映射到存储在该多个数据库的不同一个中的数据;
生成逻辑表,其中该逻辑表包括来自由该至少一个逻辑字段的多个访问方法引用的该多个数据库的每一个的数据;
使用将该至少一个逻辑字段映射到该逻辑表的单个访问方法来取代该至少一个逻辑字段的该多个访问方法;
以及更新所述一组关系以反映该逻辑表和该多个数据库中的其他数据之间的关系。
2.根据权利要求1的方法,其中所述多个数据库包括关系数据库系统。
3.根据权利要求2的方法,其中所述多个数据库的每一个是使用一组格式不同的用于存储逻辑上相关的数据的表构建的。
4.根据权利要求1的方法,其中所述提供数据库抽象模型的步骤包括将为不同数据库创建的多个数据库抽象模型合并成单个数据库抽象模型,其中该合并的数据库抽象模型的至少一个逻辑字段提供了多个访问方法,每个访问方法映射到存储在不同的一个数据库中的逻辑上相关的数据。
5.根据权利要求2的方法,其中所述多个数据库包括本地数据库系统和远程数据库系统,该远程数据库系统位于相对于该本地数据库系统的远程位置。
6.根据权利要求2的方法,其中存储在所述多个数据库中的数据之间的所述关系包括在关系表的列之间的主键或外键关系。
7.根据权利要求2的方法,其中所述逻辑表包括关系表,其中该逻辑表的每一列是存储在所述多个数据库中的逻辑上相关的数据的聚合。
8.根据权利要求2的方法,其中由所述一组关系定义的每个关系包括对来自第一表的第一列和来自第二表的第二列的指示,其中该第一列和第二列存储逻辑上相关的数据。
9.根据权利要求8的方法,其中所述更新所述一组关系的步骤包括:
从该组关系中删除任何其中第一列和第二列的每一个都指定包括在该逻辑表中的一列的关系;以及
以第二关系取代第一关系,其中该第一关系指示被包括在该逻辑表中的一列与来自未被包括在该逻辑表中的表的一列之间的关系,且其中该第二关系指示未包括在该逻辑表中的该列与该逻辑表的相应列之间的关系。
10.根据权利要求2的方法,其中所述生成逻辑表的步骤包括:
识别由所述至少一个逻辑字段的所述多个访问方法引用的表;
向该逻辑表添加来自由该至少一个逻辑字段的该多个访问方法引用的表的列的数据;以及
确定是否具有多个访问方法的另一逻辑字段引用了来自尚未被包括到该逻辑表中的表的数据列,并且如果是这样,则将该数据列添加到该逻辑表。
11.根据权利要求2的方法,其中使用存储SQL语句来表示该逻辑表。
12.一种用于从在格式不同的物理表中存储逻辑上相关的数据的多个数据库生成逻辑表的方法,包括:
提供定义了多个逻辑字段的数据库抽象模型,其中每个逻辑字段指定了用于该逻辑字段的名称,以及至少一个将该逻辑字段映射到所述物理表之一中的数据的访问方法;
识别指定了多个访问方法的逻辑字段,其中每个访问方法映射到存储在所述多个数据库之一中的数据列,并且对于每个这种访问方法:
识别由所述多个访问方法引用的格式不同的物理表;
向该逻辑表的一列添加来自由所述多个访问方法引用的
格式不同的物理表的列的数据;以及
确定是否具有多个访问方法的另一逻辑字段引用了来自
任何一个所述物理表的、尚未被包括到该逻辑表中的数据列,
并且如果是这样,则将该数据列添加到该逻辑表;以及
更新数据库模式以包括该逻辑表,其中该数据库模式定义了存储在该多个数据库中的数据之间的关系以及包括在该逻辑表中的列之间的关系。
13.一种包含多个指令的计算机可读介质,当所述指令在计算机系统上执行时被配置为执行操作,所述操作包括:
提供定义了多个逻辑字段的数据库抽象模型,其中每个逻辑字段提供了用于该逻辑字段的名称,以及至少一个将该逻辑字段映射到该多个数据库之一中的数据的访问方法,且其中该数据库抽象模型还定义了存储在该多个数据库中的数据之间的一组关系;
识别至少一个提供了多个访问方法的逻辑字段,其中每个访问方法映射到存储在该多个数据库的不同一个中的数据;
生成逻辑表,其中该逻辑表包括来自由所述至少一个逻辑字段的多个访问方法引用的该多个数据库的每一个的数据;
使用将该至少一个逻辑字段映射到该逻辑表的单个访问方法来取代该至少一个逻辑字段的多个访问方法;以及
更新所述一组关系以反映该逻辑表和该多个数据库中的其他数据之间的关系。
14.根据权利要求13的计算机可读介质,其中所述多个数据库包括关系数据库系统。
15.根据权利要求14的计算机可读介质,其中所述多个数据库的每一个是使用一组格式不同的用于存储逻辑上相关的数据的表构建的。
16.根据权利要求13的计算机可读介质,其中所述提供数据库抽象模型的步骤包括将为不同数据库创建的多个数据库抽象模型合并成单个数据库抽象模型,其中该合并的数据库抽象模型的至少一个逻辑字段提供了多个访问方法,每个访问方法映射到存储在不同的一个数据库中的逻辑上相关的数据。
17.根据权利要求14的计算机可读介质,其中所述多个数据库包括本地数据库系统和远程数据库系统,该远程数据库系统位于相对于该本地数据库系统的远程位置。
18.根据权利要求14的计算机可读介质,其中存储在所述多个数据库中的数据之间的所述关系包括在所述多个数据库中的表之间的主键或外键关系。
19.根据权利要求14的计算机可读介质,其中所述逻辑表包括关系表,其中该逻辑表的每一列是存储在所述多个数据库中的逻辑上相关的数据的聚合。
20.根据权利要求14的计算机可读介质,其中所述一组关系中的每个关系包括对来自第一表的第一列的指示和对第二表中的第二列的关系。
21.根据权利要求20的计算机可读介质,其中所述更新所述一组关系的步骤包括:
从该组关系中删除任何其中第一列和第二列的每一个都指定包括在该逻辑表中的一列的关系;以及
将来自未被包括在该逻辑表中的表的第一列与来自被包括在该逻辑表中的表的第二列之间的关系替换为该第一列与该逻辑表的相应列之间的关系。
22.根据权利要求14的计算机可读介质,其中所述生成逻辑表的步骤包括:
识别由所述至少一个逻辑字段的所述多个访问方法引用的表;
向该逻辑表添加来自由该至少一个逻辑字段的该多个访问方法引用的表的列的数据;以及
确定是否具有多个访问方法的另一逻辑字段引用了来自尚未被包括到该逻辑表中的表的数据列,并且如果是这样,则将该数据列添加到该逻辑表。
23.一种包含多个指令的计算机可读介质,当所述指令在计算机系统上执行时被配置为执行用于从在格式不同的物理表中存储数据的多个数据库生成逻辑表的操作,所述操作包括:
访问定义了多个逻辑字段的数据库抽象模型,其中每个逻辑字段指定了用于该逻辑字段的名称,以及至少一个将该逻辑字段映射到所述物理表之一中的数据的访问方法;
识别指定了多个映射到存储在该多个数据库中的逻辑上相关的数据的访问方法的逻辑字段,并且对于每个这种访问方法:
识别由所述多个访问方法引用的格式不同的物理表;
向该逻辑表的一列添加来自由该多个访问方法引用的物理表的列的数据;以及
确定是否具有多个访问方法的任何其他逻辑字段引用了来自任何所述物理表的、尚未被包括到该逻辑表中的数据列,并且如果是这样,则将该数据列添加到该逻辑表;以及
更新数据库模式以包括该逻辑表,其中该数据库模式定义了存储在该多个数据库中的数据之间的关系。
24.一种用于处理抽象查询的系统,包括:
多个数据库系统;
定义了多个逻辑字段的数据库抽象模型,其中每个逻辑字段指定了用于该逻辑字段的名称,以及至少一个将该逻辑字段映射到所述数据库系统之一中的数据的访问方法,且其中至少一个逻辑字段提供了多个访问方法,每个访问方法映射到存储在该多个数据库的不同一个中的逻辑上相关的数据;
被配置为允许用于从所述多个逻辑字段构造抽象查询的用户界面;以及
运行时组件,其被配置为接收抽象查询、并作为响应生成该多个数据库系统的已解析的查询,其进一步被配置为(i)生成逻辑表,其中该逻辑表包括来自由该至少一个逻辑字段的多个访问方法引用的该多个数据库系统的每一个的数据;(ii)使用将该至少一个逻辑字段映射到该逻辑表的单个访问方法来取代该至少一个逻辑字段的多个访问方法;以及(iii)更新为该数据库抽象模型定义的一组关系。
25.权利要求24的系统,其中所述多个数据库系统包括至少一个关系数据库系统,且其中所述逻辑表包括关系表。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/016,203 | 2004-12-17 | ||
US11/016,203 US8112459B2 (en) | 2004-12-17 | 2004-12-17 | Creating a logical table from multiple differently formatted physical tables having different access methods |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1790322A true CN1790322A (zh) | 2006-06-21 |
CN100397398C CN100397398C (zh) | 2008-06-25 |
Family
ID=36597412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101175714A Active CN100397398C (zh) | 2004-12-17 | 2005-11-04 | 从多个格式不同的物理表创建逻辑表的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8112459B2 (zh) |
CN (1) | CN100397398C (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103455641A (zh) * | 2013-09-29 | 2013-12-18 | 方正国际软件有限公司 | 交叉多次检索的系统和方法 |
CN103605699A (zh) * | 2013-11-07 | 2014-02-26 | 远光软件股份有限公司 | 一种数据关联配置方法及装置 |
CN104462350A (zh) * | 2014-12-04 | 2015-03-25 | 北京国双科技有限公司 | 数据库文本聚合处理方法及装置 |
CN105706084A (zh) * | 2013-09-06 | 2016-06-22 | 超级医疗系统公司 | 元数据自动化系统 |
CN106250227A (zh) * | 2016-08-02 | 2016-12-21 | 合肥奇也信息科技有限公司 | 一种寻求计算机程序执行定义目标的方法 |
CN110019215A (zh) * | 2017-10-26 | 2019-07-16 | Sap欧洲公司 | 多重租赁数据库系统中的键模式管理 |
CN112214509A (zh) * | 2019-07-12 | 2021-01-12 | 深圳市优必选科技股份有限公司 | 数据检索方法、系统、终端设备及存储介质 |
CN112966004A (zh) * | 2021-03-04 | 2021-06-15 | 北京百度网讯科技有限公司 | 数据查询方法、装置、电子设备以及计算机可读介质 |
WO2024092926A1 (zh) * | 2022-10-31 | 2024-05-10 | 蚂蚁区块链科技(上海)有限公司 | 生成数据表的方法及装置 |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8244702B2 (en) | 2002-02-26 | 2012-08-14 | International Business Machines Corporation | Modification of a data repository based on an abstract data representation |
US6996558B2 (en) * | 2002-02-26 | 2006-02-07 | International Business Machines Corporation | Application portability and extensibility through database schema and query abstraction |
US7900133B2 (en) | 2003-12-09 | 2011-03-01 | International Business Machines Corporation | Annotation structure type determination |
US9053149B2 (en) * | 2003-12-23 | 2015-06-09 | Open Text S.A. | Method and system to provide composite view of components |
US7302447B2 (en) * | 2005-01-14 | 2007-11-27 | International Business Machines Corporation | Virtual columns |
US20060116999A1 (en) * | 2004-11-30 | 2006-06-01 | International Business Machines Corporation | Sequential stepwise query condition building |
US7461052B2 (en) * | 2004-12-06 | 2008-12-02 | International Business Machines Corporation | Abstract query plan |
US8131744B2 (en) * | 2004-12-17 | 2012-03-06 | International Business Machines Corporation | Well organized query result sets |
US7333981B2 (en) * | 2004-12-17 | 2008-02-19 | International Business Machines Corporation | Transformation of a physical query into an abstract query |
US7634492B2 (en) * | 2004-12-20 | 2009-12-15 | Microsoft Corporation | Aggregate data view |
US7624097B2 (en) * | 2005-01-14 | 2009-11-24 | International Business Machines Corporation | Abstract records |
US7321895B2 (en) * | 2005-01-14 | 2008-01-22 | International Business Machines Corporation | Timeline condition support for an abstract database |
US8122012B2 (en) * | 2005-01-14 | 2012-02-21 | International Business Machines Corporation | Abstract record timeline rendering/display |
US8095553B2 (en) * | 2005-03-17 | 2012-01-10 | International Business Machines Corporation | Sequence support operators for an abstract database |
US7440945B2 (en) * | 2005-11-10 | 2008-10-21 | International Business Machines Corporation | Dynamic discovery of abstract rule set required inputs |
US7444332B2 (en) * | 2005-11-10 | 2008-10-28 | International Business Machines Corporation | Strict validation of inference rule based on abstraction environment |
US8095531B2 (en) | 2006-10-03 | 2012-01-10 | Salesforce.Com, Inc. | Methods and systems for controlling access to custom objects in a database |
US7627595B2 (en) * | 2006-12-06 | 2009-12-01 | Verizon Data Services Inc. | Apparatus, method, and computer program product for synchronizing data sources |
US7668860B2 (en) * | 2007-04-02 | 2010-02-23 | Business Objects Software Ltd. | Apparatus and method for constructing and using a semantic abstraction for querying hierarchical data |
US8140557B2 (en) | 2007-05-15 | 2012-03-20 | International Business Machines Corporation | Ontological translation of abstract rules |
US8150850B2 (en) * | 2008-01-07 | 2012-04-03 | Akiban Technologies, Inc. | Multiple dimensioned database architecture |
US8285710B2 (en) * | 2008-10-09 | 2012-10-09 | International Business Machines Corporation | Automated query path reporting in distributed databases |
US8458166B2 (en) * | 2008-10-09 | 2013-06-04 | International Business Machines Corporation | Dynamic context definitions in distributed databases |
US8301583B2 (en) | 2008-10-09 | 2012-10-30 | International Business Machines Corporation | Automated data conversion and route tracking in distributed databases |
US9183260B2 (en) * | 2008-10-09 | 2015-11-10 | International Business Machines Corporation | Node-level sub-queries in distributed databases |
US8145652B2 (en) * | 2008-10-09 | 2012-03-27 | International Business Machines Corporation | Automated propagation of non-conflicting queries in distributed databases |
US8458208B2 (en) * | 2008-10-09 | 2013-06-04 | International Business Machines Corporation | Automated data source assurance in distributed databases |
US8335981B2 (en) | 2009-08-03 | 2012-12-18 | Business Objects Software Ltd. | Metadata creation |
JP2011198245A (ja) * | 2010-03-23 | 2011-10-06 | Canon Inc | 文書管理システム |
US8250113B2 (en) | 2010-04-30 | 2012-08-21 | International Business Machines Corporation | Web service discovery via data abstraction model |
US8275806B2 (en) | 2010-04-30 | 2012-09-25 | International Business Machines Corporation | Web service discovery via data abstraction model and condition creation |
US8949280B2 (en) * | 2010-04-30 | 2015-02-03 | International Business Machines Corporation | Web service discovery via data abstraction model with input assistance |
US8583699B2 (en) | 2010-04-30 | 2013-11-12 | International Business Machines Corporation | Web service discovery via data abstraction model augmented by field relationship identification |
US8321451B2 (en) * | 2010-04-30 | 2012-11-27 | International Business Machines Corporation | Automatic web service discovery and information retrieval via data abstraction model |
US8433714B2 (en) | 2010-05-27 | 2013-04-30 | Business Objects Software Ltd. | Data cell cluster identification and table transformation |
GB2509978A (en) * | 2013-01-21 | 2014-07-23 | Ibm | Polymorphic columns in database |
GB2510429A (en) | 2013-02-05 | 2014-08-06 | Ibm | Assessing response routes in a network |
US9922101B1 (en) * | 2013-06-28 | 2018-03-20 | Emc Corporation | Coordinated configuration, management, and access across multiple data stores |
US9305044B2 (en) * | 2013-07-18 | 2016-04-05 | Bank Of America, N.A. | System and method for modelling data |
US10915525B2 (en) * | 2015-06-15 | 2021-02-09 | International Business Machines Corporation | Traversing a SPARQL query and translation to a semantic equivalent SQL |
US10657116B2 (en) * | 2015-10-19 | 2020-05-19 | Oracle International Corporation | Create table for exchange |
US10657115B2 (en) * | 2016-03-31 | 2020-05-19 | Mckesson Corporation | Methods and apparatuses for improved data modeling using a relational database management system |
US11442953B2 (en) | 2016-03-31 | 2022-09-13 | Mckesson Corporation | Methods and apparatuses for improved data ingestion using standardized plumbing fields |
US11086941B2 (en) * | 2016-12-13 | 2021-08-10 | Sap Se | Generating suggestions for extending documents |
US10956386B2 (en) | 2018-03-30 | 2021-03-23 | Mckesson Corporation | Methods and apparatuses for automated performance tuning of a data modeling platform |
CN109559808B (zh) * | 2018-11-07 | 2024-06-25 | 深圳平安医疗健康科技服务有限公司 | 一种数据处理方法、装置、设备及存储介质 |
US11366858B2 (en) * | 2019-11-10 | 2022-06-21 | Tableau Software, Inc. | Data preparation using semantic roles |
CN111930820A (zh) * | 2020-08-19 | 2020-11-13 | 武汉众邦银行股份有限公司 | 一种基于web端操作的自助数据提取方法 |
JP2022102671A (ja) * | 2020-12-25 | 2022-07-07 | 株式会社日立製作所 | 情報システム及び情報収集方法 |
CN113742312A (zh) * | 2021-01-28 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种数据库的运维管理方法和装置 |
Family Cites Families (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5369778A (en) * | 1987-08-21 | 1994-11-29 | Wang Laboratories, Inc. | Data processor that customizes program behavior by using a resource retrieval capability |
GB9105367D0 (en) * | 1991-03-13 | 1991-04-24 | Univ Strathclyde | Computerised information-retrieval database systems |
US6578027B2 (en) * | 1996-08-20 | 2003-06-10 | Business Objects, Sa | Relational database access system using semantically dynamic objects |
US5412804A (en) * | 1992-04-30 | 1995-05-02 | Oracle Corporation | Extending the semantics of the outer join operator for un-nesting queries to a data base |
JPH0689307A (ja) * | 1992-05-04 | 1994-03-29 | Internatl Business Mach Corp <Ibm> | データベース内の情報を表示する装置および方法 |
US5404510A (en) * | 1992-05-21 | 1995-04-04 | Oracle Corporation | Database index design based upon request importance and the reuse and modification of similar existing indexes |
US5345586A (en) * | 1992-08-25 | 1994-09-06 | International Business Machines Corporation | Method and system for manipulation of distributed heterogeneous data in a data processing system |
US5630121A (en) * | 1993-02-02 | 1997-05-13 | International Business Machines Corporation | Archiving and retrieving multimedia objects using structured indexes |
US5506984A (en) * | 1993-06-30 | 1996-04-09 | Digital Equipment Corporation | Method and system for data retrieval in a distributed system using linked location references on a plurality of nodes |
US5701453A (en) * | 1993-07-01 | 1997-12-23 | Informix Software, Inc. | Logical schema to allow access to a relational database without using knowledge of the database structure |
US5592663A (en) * | 1993-12-17 | 1997-01-07 | Nagamori; Nobuhiko | Graphing method and apparatus for data base retrieval |
US5515488A (en) * | 1994-08-30 | 1996-05-07 | Xerox Corporation | Method and apparatus for concurrent graphical visualization of a database search and its search history |
US6003034A (en) * | 1995-05-16 | 1999-12-14 | Tuli; Raja Singh | Linking of multiple icons to data units |
US5682524A (en) * | 1995-05-26 | 1997-10-28 | Starfish Software, Inc. | Databank system with methods for efficiently storing non-uniform data records |
US6061506A (en) * | 1995-08-29 | 2000-05-09 | Omega Software Technologies, Inc. | Adaptive strategy-based system |
US5734887A (en) * | 1995-09-29 | 1998-03-31 | International Business Machines Corporation | Method and apparatus for logical data access to a physical relational database |
US5999933A (en) * | 1995-12-14 | 1999-12-07 | Compaq Computer Corporation | Process and apparatus for collecting a data structure of a memory dump into a logical table |
US5761654A (en) * | 1996-06-05 | 1998-06-02 | Oracle Corporation | Memory structure and method for tuning a database statement using a join-tree data structure representation, including selectivity factors, of a master table and detail table |
US5987446A (en) * | 1996-11-12 | 1999-11-16 | U.S. West, Inc. | Searching large collections of text using multiple search engines concurrently |
US6442543B1 (en) * | 1997-07-25 | 2002-08-27 | Amazon.Com, Inc. | Method and apparatus for changing temporal database information |
US6006264A (en) * | 1997-08-01 | 1999-12-21 | Arrowpoint Communications, Inc. | Method and system for directing a flow between a client and a server |
US5943666A (en) * | 1997-09-15 | 1999-08-24 | International Business Machines Corporation | Method and apparatus for optimizing queries across heterogeneous databases |
US5918232A (en) * | 1997-11-26 | 1999-06-29 | Whitelight Systems, Inc. | Multidimensional domain modeling method and system |
US6009422A (en) * | 1997-11-26 | 1999-12-28 | International Business Machines Corporation | System and method for query translation/semantic translation using generalized query language |
US6460043B1 (en) * | 1998-02-04 | 2002-10-01 | Microsoft Corporation | Method and apparatus for operating on data with a conceptual data manipulation language |
US6553368B2 (en) * | 1998-03-03 | 2003-04-22 | Sun Microsystems, Inc. | Network directory access mechanism |
US6233586B1 (en) * | 1998-04-01 | 2001-05-15 | International Business Machines Corp. | Federated searching of heterogeneous datastores using a federated query object |
US6513041B2 (en) * | 1998-07-08 | 2003-01-28 | Required Technologies, Inc. | Value-instance-connectivity computer-implemented database |
US6725227B1 (en) * | 1998-10-02 | 2004-04-20 | Nec Corporation | Advanced web bookmark database system |
US6457009B1 (en) * | 1998-11-09 | 2002-09-24 | Denison W. Bollay | Method of searching multiples internet resident databases using search fields in a generic form |
US6377943B1 (en) * | 1999-01-20 | 2002-04-23 | Oracle Corp. | Initial ordering of tables for database queries |
US20010016843A1 (en) * | 1999-02-08 | 2001-08-23 | Todd Olson | Method and apparatus for accessing data |
JP4251726B2 (ja) * | 1999-07-08 | 2009-04-08 | 三菱電機株式会社 | ファイル管理方法 |
US6457003B1 (en) * | 1999-08-16 | 2002-09-24 | International Business Machines Corporation | Methods, systems and computer program products for logical access of data sources utilizing standard relational database management systems |
US20020123984A1 (en) * | 1999-08-23 | 2002-09-05 | Naveen Prakash | Dynamic query of server applications |
CA2281331A1 (en) * | 1999-09-03 | 2001-03-03 | Cognos Incorporated | Database management system |
JP3573012B2 (ja) * | 1999-09-29 | 2004-10-06 | 三菱電機株式会社 | データ管理装置およびデータ管理方法 |
US6721727B2 (en) * | 1999-12-02 | 2004-04-13 | International Business Machines Corporation | XML documents stored as column data |
US6516310B2 (en) * | 1999-12-07 | 2003-02-04 | Sybase, Inc. | System and methodology for join enumeration in a memory-constrained environment |
US7213017B2 (en) * | 2000-03-17 | 2007-05-01 | Microsoft Corporation | Systems and methods for transforming query results into hierarchical information |
US7752024B2 (en) * | 2000-05-05 | 2010-07-06 | Computer Associates Think, Inc. | Systems and methods for constructing multi-layer topological models of computer networks |
US20020062258A1 (en) * | 2000-05-18 | 2002-05-23 | Bailey Steven C. | Computer-implemented procurement of items using parametric searching |
US6978324B1 (en) * | 2000-06-27 | 2005-12-20 | Emc Corporation | Method and apparatus for controlling read and write accesses to a logical entity |
US20020026630A1 (en) * | 2000-08-28 | 2002-02-28 | John Schmidt | Enterprise application integration methodology |
CA2318299C (en) * | 2000-09-01 | 2005-03-22 | Cognos Incorporated | Metadata exchange |
US6567802B1 (en) * | 2000-09-06 | 2003-05-20 | The Trustees Of The University Of Pennsylvania | Systematic approach to query optimization |
US7024425B2 (en) * | 2000-09-07 | 2006-04-04 | Oracle International Corporation | Method and apparatus for flexible storage and uniform manipulation of XML data in a relational database system |
US7047518B2 (en) * | 2000-10-04 | 2006-05-16 | Bea Systems, Inc. | System for software application development and modeling |
US6999956B2 (en) * | 2000-11-16 | 2006-02-14 | Ward Mullins | Dynamic object-driven database manipulation and mapping system |
US6601065B1 (en) * | 2000-12-21 | 2003-07-29 | Cisco Technology, Inc. | Method and apparatus for accessing a database through a network |
US6651055B1 (en) * | 2001-03-01 | 2003-11-18 | Lawson Software, Inc. | OLAP query generation engine |
US20040172305A1 (en) * | 2001-03-09 | 2004-09-02 | Soerensen Jesper Leck | Method and appartus for delivering healthcare |
CA2454778A1 (en) * | 2001-07-06 | 2003-01-16 | Computer Associates Think, Inc. | System and method for managing object based clusters |
CN1416078A (zh) * | 2001-10-30 | 2003-05-07 | 艾默生网络能源有限公司 | 监控系统的数据处理方法 |
US6996558B2 (en) * | 2002-02-26 | 2006-02-07 | International Business Machines Corporation | Application portability and extensibility through database schema and query abstraction |
US7398263B2 (en) * | 2002-02-26 | 2008-07-08 | International Business Machines Corporation | Sequenced modification of multiple entities based on an abstract data representation |
US8244702B2 (en) * | 2002-02-26 | 2012-08-14 | International Business Machines Corporation | Modification of a data repository based on an abstract data representation |
US6928431B2 (en) * | 2002-04-25 | 2005-08-09 | International Business Machines Corporation | Dynamic end user specific customization of an application's physical data layer through a data repository abstraction layer |
US6954748B2 (en) * | 2002-04-25 | 2005-10-11 | International Business Machines Corporation | Remote data access and integration of distributed data sources through data schema and query abstraction |
US7437349B2 (en) * | 2002-05-10 | 2008-10-14 | International Business Machines Corporation | Adaptive probabilistic query expansion |
US7249118B2 (en) * | 2002-05-17 | 2007-07-24 | Aleri, Inc. | Database system and methods |
US7162469B2 (en) * | 2002-07-20 | 2007-01-09 | Microsoft Corporation | Querying an object for properties |
AU2003252065A1 (en) * | 2002-07-22 | 2004-02-09 | Thought, Inc. | Dynamic object- driven database manipulation and mapping system |
US20040148278A1 (en) * | 2003-01-22 | 2004-07-29 | Amir Milo | System and method for providing content warehouse |
US7054877B2 (en) * | 2003-03-31 | 2006-05-30 | International Business Machines Corporation | Dealing with composite data through data model entities |
US7089235B2 (en) * | 2003-04-17 | 2006-08-08 | International Business Machines Corporation | Method for restricting queryable data in an abstract database |
US7139774B2 (en) * | 2003-06-12 | 2006-11-21 | International Business Machines Corporation | Singleton abstract model correspondence to multiple physical models |
US7299226B2 (en) * | 2003-06-19 | 2007-11-20 | Microsoft Corporation | Cardinality estimation of joins |
US7519577B2 (en) * | 2003-06-23 | 2009-04-14 | Microsoft Corporation | Query intermediate language method and system |
US7383255B2 (en) * | 2003-06-23 | 2008-06-03 | Microsoft Corporation | Common query runtime system and application programming interface |
US7472112B2 (en) * | 2003-06-23 | 2008-12-30 | Microsoft Corporation | Distributed query engine pipeline method and system |
US20060047638A1 (en) * | 2004-09-02 | 2006-03-02 | International Business Machines Corporation | Cartesian product detection |
US7461052B2 (en) * | 2004-12-06 | 2008-12-02 | International Business Machines Corporation | Abstract query plan |
US8131744B2 (en) * | 2004-12-17 | 2012-03-06 | International Business Machines Corporation | Well organized query result sets |
US7333981B2 (en) * | 2004-12-17 | 2008-02-19 | International Business Machines Corporation | Transformation of a physical query into an abstract query |
US7526471B2 (en) * | 2004-12-17 | 2009-04-28 | International Business Machines Corporation | Field-to-field join constraints |
-
2004
- 2004-12-17 US US11/016,203 patent/US8112459B2/en not_active Expired - Fee Related
-
2005
- 2005-11-04 CN CNB2005101175714A patent/CN100397398C/zh active Active
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105706084B (zh) * | 2013-09-06 | 2019-08-06 | 超级医疗系统公司 | 元数据自动化系统 |
CN105706084A (zh) * | 2013-09-06 | 2016-06-22 | 超级医疗系统公司 | 元数据自动化系统 |
CN103455641B (zh) * | 2013-09-29 | 2017-02-22 | 北大医疗信息技术有限公司 | 交叉多次检索的系统和方法 |
CN103455641A (zh) * | 2013-09-29 | 2013-12-18 | 方正国际软件有限公司 | 交叉多次检索的系统和方法 |
CN103605699A (zh) * | 2013-11-07 | 2014-02-26 | 远光软件股份有限公司 | 一种数据关联配置方法及装置 |
CN104462350A (zh) * | 2014-12-04 | 2015-03-25 | 北京国双科技有限公司 | 数据库文本聚合处理方法及装置 |
CN106250227A (zh) * | 2016-08-02 | 2016-12-21 | 合肥奇也信息科技有限公司 | 一种寻求计算机程序执行定义目标的方法 |
CN110019215A (zh) * | 2017-10-26 | 2019-07-16 | Sap欧洲公司 | 多重租赁数据库系统中的键模式管理 |
CN110019215B (zh) * | 2017-10-26 | 2023-10-20 | Sap欧洲公司 | 多重租赁数据库系统中的键模式管理 |
CN112214509A (zh) * | 2019-07-12 | 2021-01-12 | 深圳市优必选科技股份有限公司 | 数据检索方法、系统、终端设备及存储介质 |
CN112966004A (zh) * | 2021-03-04 | 2021-06-15 | 北京百度网讯科技有限公司 | 数据查询方法、装置、电子设备以及计算机可读介质 |
CN112966004B (zh) * | 2021-03-04 | 2023-07-28 | 北京百度网讯科技有限公司 | 数据查询方法、装置、电子设备以及计算机可读介质 |
WO2024092926A1 (zh) * | 2022-10-31 | 2024-05-10 | 蚂蚁区块链科技(上海)有限公司 | 生成数据表的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US8112459B2 (en) | 2012-02-07 |
CN100397398C (zh) | 2008-06-25 |
US20060136469A1 (en) | 2006-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1790322A (zh) | 从多个格式不同的物理表创建逻辑表的方法和系统 | |
US11372855B2 (en) | Metadata-based general request translator for distributed computer systems | |
CN1705945B (zh) | 提供查询的属性的方法和系统 | |
US7599948B2 (en) | Object relational mapping layer | |
CN100424696C (zh) | 处理抽象查询的方法和系统 | |
US9965500B2 (en) | Mixed join of row and column database tables in native orientation | |
CN105009111B (zh) | 使用键值存储系统的分布式sql查询处理 | |
US20190026336A1 (en) | Retrieving data from a data storage system | |
CN101067823B (zh) | 优化联合数据库管理系统的方法和系统 | |
US5895465A (en) | Heuristic co-identification of objects across heterogeneous information sources | |
US9292575B2 (en) | Dynamic data aggregation from a plurality of data sources | |
US7792817B2 (en) | System and method for managing complex relationships over distributed heterogeneous data sources | |
US8495007B2 (en) | Systems and methods for hierarchical aggregation of multi-dimensional data sources | |
US8392464B2 (en) | Easily queriable software repositories | |
US8171014B2 (en) | Apparatus, system, and method for executing a distributed spatial data query | |
CN1749999B (zh) | .net数据类型和实例的持久存储 | |
US8239368B2 (en) | Apparatus, system, and method for executing a distributed spatial data query | |
US7103613B2 (en) | Object oriented query root leaf inheritance to relational join translator method, system, article of manufacture, and computer program product | |
CN1755677A (zh) | 使用索引关键词的范围搜索系统和方法 | |
CN102364464A (zh) | 对象实例版本化 | |
CN113704300B (zh) | 供数据检索方法使用的数据印记技术 | |
US8639717B2 (en) | Providing access to data with user defined table functions | |
US8060528B2 (en) | Business intelligence OLAP consumer model and API | |
US7860879B2 (en) | SMO scripting optimization | |
US20090171926A1 (en) | Processing Structured Documents Stored in a Database |
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 |