基于细粒度数据实体建立数据管理费用结构的方法

文档序号:6475122阅读:200来源:国知局

专利名称::基于细粒度数据实体建立数据管理费用结构的方法
技术领域
:本发明一般地涉及数据处理,特别涉及通过逻辑框架访问数据。
背景技术
:信息技术(IT)包括用来以信息的各种形式(商业数据、语音交谈、静止图像、运动画面、多媒体呈现以及包含尚未认识到的那些形式的其它形式)创建、存储、交换和使用信息的所有形式的技术。尽管信息技术给用户提供了非常大的益处,但是这种技术的提供者往往承受相当大的费用。因而,提供者对所提供的服务收费很常见。例如,很多服务提供者管理信息数据库,并允许对该数据库的基于费用的访问。这种数据库在各种行业(例如医学、法律等)以及研究和开发中尤其普遍。然而,信息技术行业中的这种服务提供者使用相对僵化的和限制性的费用模型来向用户提供对数据库的访问。考虑拥有和管理信息储存库(repository)的服务提供者,其中,服务提供者提供对所述信息储存库的基于费用的访问。它可以是医学研究信息或在特定领域内有价值的任意其它种类的数据的数据库。目前,建立了很多管理用于这些种类的环境的费用结构的方法。在一些情况中,服务提供者可以对访问储存库中的信息的权利收取年费。在其它情况中,服务提供者可以对所检索的信息收取每笔交易(transaction)的费用。如果认为储存库中的所有数据价值相等,那么这些模型足够了,但是它们没有解决信息价值可能在储存库中的各种实体之间变化的问题。进一步考虑数据供应(host)业务中的服务提供者,即收费提供数据存储和管理服务的那些服务提供者。目前使用的一种模型包括基于所存储的数据量的费用结构。在此情况中,所有类型的数据均被认为是平等的;所有类型的数据均被简单地视为所存储的一组字节。如果在如何管理不同类型数据之间没有区别,则这一模型足以发挥作用,但是,如果对于不同类型的信息提供不同类型的服务,则它不是好的解决方案。例如,假设这样的服务提供者,其为给定客户存储病人人口统计(demographic)、账户、检验结果和医疗诊断信息。可能存在与每种信息相关的不同等级的服务。该服务提供者可以提供服务,以保护使用存储在数据储存库中的、适用于个别病人的数据以供研究的病人授权。服务提供者可能需要提供更严格的访问控制和对某些类型数据的数据加密支持。还可以有为某些类型的信息提供的一套数据分析服务。现有的费用模型没有说明关于所存储的数据类型以及与该数据相关的服务的这些变化。
发明内容根据第一方面,提供了这样的方法,其提供对数据的基于费用的访问,包括提供用于逻辑地定义访问数据的抽象(abstract)操作的抽象模型,该抽象模型包括(i)多个逻辑字段(field);(ii)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字段映射到数据的物理实体;以及(iii)用于所述多个逻辑字段的每一个的费率表(feeschedule),其中,用于给定逻辑字段的每个费率表定义当在抽象操作中包括该给定逻辑字段以访问对应于该给定逻辑字段的物理实体时要收取的费用。优选地提供了用于收费访问数据的系统、方法和产品。费率表被优选地定义用于任意粒度的数据,包括字段和数据结构(例如,数据库中的表)。可以根据要进行的操作类型计算费用。也可以对每个操作和/或操作中包含的每个数据条目(item)计算费用。优选的是,提供一种更加灵活的、用于访问数据的基于费用的模型。在特定实施例中,通过定义费率表的抽象模型来访问物理数据。该抽象模型包括描述和定义多个逻辑字段的元数据。在一个实施例中,元数据还描述多组逻辑字段之间的关联,其中,每组逻辑字段可对应(即,指向)单独的物理实体。所述多组逻辑字段被称为模型实体,其帮助访问物理数据。在一些情况中,也可以由对应于单个物理实体的单个逻辑字段来定义模型实体。无论是否定义了模型实体,费用都可以与一个或多个逻辑字段相关联。费用可基于例如操作类型、操作中包含的条目数目和/或对逻辑字段做出的请求数目。在优选实施例中,根据包括所述多个逻辑字段的至少两个的抽象操作来访问数据,并基于对应于所述多个逻辑字段的至少两个的每一个的单独的费率表来计算要收取的费用。在优选实施例中,提供了运行时间组件,其配置有变换指令,以<更将包括从所述多个逻辑字段选择的逻辑字段的每个抽象操作变换为与物理数据一致的物理操作。优选的是,还提供了费用计算器,其配置为基于费率表计算执行物理操作的费用。在优选实施例中,抽象操作是包括至少两个逻辑字段的抽象查询。优选的是,对于所述两个逻辑字段的每一个,访问对应的费率表。优选的是,对于所述至少两个逻辑字段的第一个确定每个请求的费用(perrequestfee),其中,对包含所述至少两个逻辑字段的第一个的每个抽象操作收取每个请求的费用。优选的是,对于所述至少两个逻辑字段的第二个确定每个条目的费用(peritemfee),其中,对给定抽象操作中包含的所述至少两个逻辑字段的第二个的每个实例收取每个条目的费用。优选的是,将每个条目的费用乘以所述至少两个逻辑字段的第二个的实例数目,以确定积,并对积和每个请求的费用求和,以确定要收取的费用。在优选实施例中,由抽象模型定义的至少一个费率表指定第一类操作的第一费用、以及第二类操作的第二费用。优选的是,基于所进行的操作类型计算要收取的费用。优选的是,第一类操作是查询,而第二类操作是插入和更新之一。根据第二方面,提供了这样的方法,其提供对物理数据的基于费用的访问,所述物理数据包括多个物理实体,每个物理实体包括多个物理字段。该方法包括提供定义抽象操作规范(specification)的抽象模型,所述抽象操作规范逻辑地描述访问数据的操作。抽象模型可包括(a)多个逻辑字段;(b)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字段的每一个映射到数据的至少一个物理实体;(c)多个模型实体定义,每个包括至少一个对应于物理实体的物理字段的逻辑字段;以及(d)用于所述多个逻辑字段的每一个的逻辑字段费率表,其中,这些费率表每个都指定作为物理操作一部分访问对应物理字段的费用。根据优选实施例,有可能根据抽象模型将抽象操作规范变换为与物理数据一致的物理操作规范,其中,每个抽象操作规范包括所述多个模型实体定义的至少一个。优选的是,基于费率表来计算执行物理操作的费用。根据优选实施例,由抽象模型定义的至少一个逻辑字段费率表指定第一类操作的第一费用和第二类操作的第二费用。优选的是,第一类操作是查询,而第二类操作是插入和更新之一。根据第三方面,提供了这样的方法,其提供对数据的基于费用的访问,所述数据包括多个物理实体,每个物理实体包括多个物理字段。该方法包括接收指令以执行访问数据的操作;执行该操作;确定该操作访问的多个物理字段的每一个的字段特定费用;以及计算对于该操作要向用户收取的总费用。物理实体可以是数据库表。操作可以是查询、插入和更新之一。根据优选实施例,确定字段特定费用包括确定字段特定费用是每个请求的费用还是每个条目的费用,其中,每个请求的费用是对操作收取的单一费用,而与在该操作中包括的对应的物理字段的实例数目无关,以及其中,对该操作中包括的对应物理字段的每个实例收取每个条目的费用。根据优选实施例,确定字段特定费用包括访问用于由操作访问的每个分别的物理字段的费率表。优选的是,每个费率表定义对于每种单独的操作类型的单独费用。优选的是,所述单独的操作类型包括查询、插入和更新。根据优选实施例,确定字段特定费用包括访问用于逻辑地定义访问数据的操作的抽象模型。优选的是,该抽象模型包括(i)多个逻辑字段;(ii)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字段映射到数据的物理实体;以及(iii)用于所述多个逻辑字段的每一个的费率表,其中,用于给定逻辑字段的每个费率表定义当抽象操作中包含该给定逻辑字段以访问对应于该给定逻辑字段的物理实体时要收取的费用。优选的是,每个映射规则包括对抽象操作规范的每个逻辑字段的访问方法,其中,所述抽象操作规范逻辑地定义访问数据的操作,该访问方法描述物理实体的物理位置。根据优选实施例,每个费率表定义每个请求的费用和每个条目的费用的至少一种,其中,每个请求的费用是对操作收取的单一费用,而与该操作中包括的对应逻辑字段的实例数目无关,以及其中,对该操作中包括的对应逻辑字段的每个实例收取每个条目的费用。根据优选实施例,有可能根据抽象模型将抽象操作变换为与物理数据一致的物理操作,其中,每个抽象操作包括所述多个模型实体定义的至少一个。优选的是,还有可能基于费率表计算执行物理操作的费用。根据优选实施例,根据抽象操作访问数据,该抽象操作包括所述多个逻辑字段的至少两个。优选的是,根据对应于所述多个逻辑字段的至少两个的每一个的单独费率表来计算费用。根据优选实施例,提供了一种运行时间组件,其配置有变换指令,以便将包括从所述多个逻辑字段中选择的逻辑字段的每个抽象操作变换为与物理数据一致的物理操作。优选的是,还提供了费用计算器,其配置为根据费率表来进行用于执行物理操作的费用的计算。根据优选实施例,抽象操作是包括至少两个逻辑字段的抽象查询,并且,对于所述至少两个逻辑字段的每一个,访问对应的费率表。优选的是,对于所述至少两个逻辑字段的第一个确定每个请求的费用,其中,对包含所述至少两个逻辑字段的第一个的每个抽象操作收取每个请求的费用。优选的是,对于所述至少两个逻辑字段的第二个确定每个条目的费用,其中,对给定抽象操作中包含的所述至少两个逻辑字段的第二个的每个实例收取每个条目的费用。优选的是,将每个条目的费用乘以所述至少两个逻辑字段的第二个的实例数目,以确定乘积,并对乘积和每个请求的费用求和,以确定要收取的费用。根据优选实施例,由抽象模型定义的至少一个费率表指定第一类操作的第一费用、以及第二类操作的第二费用。优选的是,基于所进行的操作类型计算要收取的费用。优选的是,第一类操作是查询,而第二类操作是插入和更新之一。根据第四方面,提供了一种包含程序的计算机可读介质,当处理器执行该程序时,其进行访问包括多个物理实体的物理数据的操作,每个物理实体具有多个物理字段。所述操作包括接收指令,以进行访问数据的操作;引起操作的执行;确定由该操作访问的多个物理字段的每一个的字段特定费用;以及计算对于该操作要向用户收取的总费用。物理实体可以是数据库表。操作可以是查询、插入和更新之一。根据优选实施例,确定字段特定费用包括确定该字段特定费用是每个请求的费用还是每个条目的费用,其中,每个请求的费用是对操作收取的单一费用,而与该操作中包括的对应物理字段的实例数目无关,以及其中,对该操作中包括的对应物理费用的每个实例收取每个条目的费用。根据优选实施例,确定字段特定费用包括访问用于被该操作访问的每个分别的物理字段的费率表。优选的是,每个费率表定义每种单独操作类型的单独费用。优选的是,所述单独操作类型包括查询、插入和更新。根据优选实施例,确定字段特定费用包括访问用于逻辑地定义访问数据的操作的抽象模型。优选的是,该抽象模型包括(i)多个逻辑字段;(ii)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字段映射到数据的物理实体;以及(iii)用于所述多个逻辑字段的每一个的费率表,其中,用于给定逻辑字段的每个费率表定义当抽象操作中包含该给定逻辑字段以访问对应于该给定逻辑字段的物理实体时要收取的费用。优选的是,每个映射规则包括对逻辑地定义访问数据的操作的抽象操作规范的每个逻辑字段的访问方法,该访问方法描述物理实体的物理位置。根据第五方面,提供一种用于构造由多个逻辑字段定义的抽象查询的方法,所述多个逻辑字段映射到数据库中具有特定物理数据表示(representation)的物理数据的多个物理实体。该方法包括通过用户界面接收用户输入,该输入包括对模型实体定义的引用(reference),所述模型实体定义包括(i)两个或多个逻辑字段,每个对应于单独的物理实体;以及(ii)用于根据模型实体定义访问物理实体的费率表。根据模型实体定义,所述两个或多个逻辑字段的至少一个被有选择地添加到抽象查询中。该方法还包括接收抽象查询的多个抽象查询组分(contribution),其中所述多个抽象查询组分由所选择的逻辑字段和所选择的逻辑字段的每一个的对应值定义;以及接收所接收的抽象查询的多个结果字段,其中,所述多个结果字段由所选择的逻辑字段定义。然后,抽象查询被转换为与数据的特定物理数据表示一致的物理查询。然后,执行该物理查询,并在费率表的基础上,计算对于执行物理查询要收取的费用。所述多个物理实体可以是数据库中的表。根据优选实施例,有选择地添加所述两个或多个逻辑字段的至少一个包括确定所述至少一个逻辑字段是否是由模型实体定义指定的必需字段;并且如果是这样,则将所述至少一个逻辑字段添加到抽象查询中。根据优选实施例,对于所述两个或多个逻辑字段的第一个定义每个请求的费用,而对于所述两个或多个逻辑字段的第二个定义每个结果的费用,并且其中,计算所述费用包括(i)计算每个结果的费用和所述两个或多个逻辑字段的第二个的结果数目的积;以及(ii)对这个积和每个请求的费用求和。才艮据优选实施例,将抽象查询转换为物理查询包括将抽象查询的每个逻辑字段映射到物理数据的各个物理实体。根据第六方面,提供了一种用于修改数据库中的物理数据的方法,所述物理数据包括多个物理实体,并具有特定的物理数据表示。该方法包括接收对抽象修改操作的选择;接收对在其上进行抽象修改操作的模型实体定义的选择,该模型实体定义包括两个或多个逻辑字段,每个对应于单独的物理实体;基于至少所接收的选择,产生至少两个物理修改语句,每个语句修改所述物理数据的两个单独物理实体之一;对所述至少两个物理修改语句排序(ordering);根据物理修改语句执行修改操作,由此修改数据;以及基于所定义的模型实体定义的费率表,计算对于执行修改操作要收取的费用。根据优选实施例,根据物理实体关系规范进行排序,所述物理实体关系规范定义数据的物理实体之间的分级关系,以保证数据的完整性。根据优选实施例,根据将所述两个或多个逻辑字段映射到其对应物理实体的映射规则,进行构建所述至少两个物理修改操作。根据第七方面,提供了这样的方法,其提供用于定义访问物理数据的抽象操作的逻辑框架,所述物理数据包括多个物理实体,每个物理实体包括多个物理字段,该方法包括提供用于定义抽象操作规范的抽象模型,所述抽象操作规范逻辑地描述访问数据的操作。抽象模型包括(a)多个逻辑字段;(b)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字段的每一个映射到数据的至少一个物理实体;(c)多个模型实体定义,每个包括至少一个对应于物理实体的物理字段的逻辑字段;以及(d)用于所述多个模型实体定义的每一个的模型实体费率表,其中,这些费率表每个都指定访问对应模型实体定义的物理字段的费用。该方法还包括提供运行时间組件,以根据抽象模型将抽象操作规范变换为与物理数据一致的物理操作规范,其中,每个抽象操作规范包括所述多个模型实体定义的至少一个由用户选择的模型实体定义。所述多个物理实体可以是数据库中的表。根据优选实施例,从插入语句和更新语句之一中选择每个物理操作规范,并且其中,模型实体费率表定义每个语句的不同费用。根据优选实施例,每个物理操作规范都是查询,并且模型实体费率表定义特定于查询的费用。根据优选实施例,抽象操作规范是抽象查询,并且有可能通过用户界面接收包括多个查询条件的抽象查询、结果字段和对模型实体定义之一的选择。优选的是,有可能访问对应于所述选择的模型实体定义,并确定对应于该选择的模型实体定义是否指定了一个或多个必需结果字段,并且如果是这样,则将所述一个或多个必需字段添加到查询中。根据优选实施例,运行时间组件有可能根据抽象模型将单个抽象操作规范变换为与物理数据一致的至少两个单独的物理操作规范,其中,每个物理操作规范修改数据的不同物理实体,并且其中,根据定义数据的物理实体之间的分级关系的物理实体关系规范,将每个物理操作规范排序以供执行。根据优选实施例,请求实体发出执行单个抽象操作规范的请求,并且运行时间組件将所述单个抽象操作规范变换为至少两个物理操作规范,以修改数据。优选的是,将单个抽象操作规范变换为至少两个物理操作规范包括产生所述至少两个物理操作规范;以及根据抽象模型的物理实体关系规范将所述至少两个物理操作规范排序。根据优选实施例,每个映射规则包括对所述多个逻辑字段之一的访问方法。优选的是,访问方法描述数据的物理实体的位置。根据优选实施例,提供了一种用于所述多个逻辑字段的每一个的逻辑字段费率表,其中,这些费率表每个都指定访问对应物理字段的费用,作为物理操作规范的一部分。优选的是,由抽象模型定义的至少一个费率表指定第一类操作的第一费用和第二类操作的第二费用。优选的是,第一类操作是查询,而第二类操作是插入和更新之一。根据第八方面,提供了一种包含程序的计算机可读介质,当由处理器执行该程序时,其提供用于定义抽象查询操作的逻辑框架。该程序包括用于定义抽象查询的抽象模型,所述抽象查询逻辑地描述查询数据的操作,该抽象模型包括(i)多个逻辑字段;(ii)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字段映射到数据的物理实体;以及(iii)用于所述多个逻辑字段的每一个的费率表。该程序还包括运行时间组件,其配置有变换指令,以便将包括从所述多个逻辑字段中选择的逻辑字段的抽象查询变换为与物理数据一致的物理查询;以及费用计算器,其配置为根据费率表计算执行物理查询的费用。优选的是,映射规则包括对所述多个逻辑字段的每一个的访问方法,其中,该访问方法描述数据的物理实体的位置。根据第九方面,提供了一种计算机,其包括存储器和至少一个处理器,并且还包括用于定义修改物理数据的抽象修改操作的逻辑框架,该逻辑框架包括用于定义抽象修改规范的抽象模型,所述抽象修改规范逻辑地描述修改数据的操作。该抽象模型包括(i)多个逻辑字段;(ii)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字段映射到数据的物理实体;以及(iii)用于所述多个逻辑字段的每一个的费率表。该逻辑框架还包括运行时间组件,以便将包括从所述多个逻辑字段中选择的逻辑字段的抽象查询变换为与物理数据一致的物理查询;以及费用计算器,其配置为根据费率表计算执行物理查询的费用。根据优选实施例,每个费率表定义每个请求的费用和每个条目的费用的至少一种,其中,每个请求的费用是对操作收取的单一费用,而与该操作中包括的对应逻辑字段的实例数目无关,以及其中,对该操作中包括的对应逻辑字段的每个实例收取每个条目的费用。根据优选实施例,映射规则包括对所述多个逻辑字段的每一个的访问方法,其中,该访问方法描述数据的物理实体的位置。根据第十方面,提供了这样的方法,该方法提供对数据的基于费用的访问,所述数据包括多个物理实体,每个物理实体包括多个物理字段,所述方法包括通过用户界面接收用户输入,该用户输入包括对于访问所述多个物理字段的所选择字段的数据的操作的指令;确定所选择字段的每一个的字段特定费用;计算对于访问所选字段要向用户收取的费用;以及通过用户界面向用户显示该费用。物理实体可以是数据库表。根据优选实施例,确定字段特定费用包括确定字段特定费用是每个请求的费用还是每个条目的费用,其中,每个请求的费用是对操作收取的单一费用,而与该操作中包括的对应物理字段的实例数目无关,以及其中,对该操作中包括的对应物理字段的每个实例收取每个条目的费用根据优选实施例,确定字段特定费用包括访问用于被所述操作访问的每个分别的物理字段的费率表。优选的是,每个费率表定义每种单独操作类型的单独费用。优选的是,所述单独操作类型包括查询、插入和更新。根据第十一方面,提供了用于显示对数据的基于费用的访问的费用信息的方法,所述数据包括多个物理实体,每个物理实体包括多个物理字段。该方法包括显示一个或多个用于构造查询的用户界面屏幕;通过所述一个或多个用户界面屏幕接收用户输入,该用户输入定义被配置为访问所述多个逻辑字段的所选字段的查询;以及通过一个或多个用户界面屏幕显示对于每个所选字段的字段特定访问费用。优选的是,有可能显示每个查询的费用,所述每个查询的费用是对查询收取的单一费用,而与该查询中包括的对应物理字段的实例数目无关。根据优选实施例,有可能通过访问用于逻辑地定义查询的抽象模型来确定字段特定费用。优选的是,抽象模型包括(i)多个逻辑字段;(ii)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字段映射到数据的物理实体;以及(iii)用于所述多个逻辑字段的每一个的费率表,其中,用于给定逻辑字段的每个费率表定义当查询中包含该给定逻辑字段以访问对应于该给定物理字段的物理实体时要收取的费用。优选的是,每个映射规则包括对抽象操作规范的每个逻辑字段的访问方法,其中所述抽象操作规范逻辑地定义访问数据的操作,该访问方法描述物理实体的物理位置。根据优选实施例,每个费率表定义每个请求的费用和每个条目的费用的至少一种,其中,每个请求的费用是对查询收取的单一费用,而与在该查询中包括的对应逻辑字段的实例数目无关,以及其中,对该查询中包括的对应逻辑字段的每个实例收取每个条目的费用。将意识到的是,可以用计算机软件来实现本发明。现在将参考附图,仅作为实例来描述本发明的优选实施例。图1是根据本发明优选实施例的说明性计算机架构的方框图。图2是本发明的一个实施例的软件组件的关系视图,该软件组件被配置为通过物理数据源的抽象表示处理对物理数据源的查询。图3是图示根据本发明优选实施例的运行时间组件的操作的流程图。图4是图示根据本发明优选实施例的运行时间组件的操作的流程图。图5是根据本发明优选实施例的抽象层的视图,该抽象层定义在物理数据源中具有物理对应物(counterpart)的模型实体。图6是病人实体和检验实体的说明性模型实体规范。图7图示根据指定模型实体的初始抽象查询的结果字段的增加。图8-12是用于使用模型实体创建抽象查询的说明性用户界面屏幕。图13是根据本发明优选实施例的按照指定模型实体增加查询结果字段的流程图。图14图示根据本发明优选实施例的基于模型实体规范产生物理查询。图15是根据本发明优选实施例的用于基于模型实体规范产生物理查询的方法的流程图。图16图示根据本发明优选实施例的表示一组查询结构字段的模型实体的使用。图17是根据本发明优选实施例的用于基于模型实体规范扩展抽象查询的结果字段的方法的流程图。图18是图5示出的环境的简化视图,并且图示根据本发明优选实施例的由基于模型实体构造的抽象修改操作进行的对数据源的修改。图19是图示根据本发明优选实施例的产生用来实现对物理数据的插入操作的抽象插入规范的流程图。图20A-B是图示根据本发明优选实施例的、在插入操作中确定必需和可选字段的流程图。图21是图示根据本发明优选实施例的将抽象插入操作转换为物理插入操作的流程图。图22是图示根据本发明优选实施例的、对插入语句列表进行排序以确保正确执行顺序的流程图。图29是图示根据本发明优选实施例的、产生用于抽象更新操作的选择逻辑的流程图。图27是图示根据本发明优选实施例的、产生用来实现对物理数据删除操作的删除操作的抽象删除规范的流程图。图28是图示根据本发明优选实施例的、将抽象删除操作转换为物理删除操作的流程图。图30是图示根据本发明优选实施例的、对删除语句列表进行排序以确保正确执行顺序的流程图。图31是根据本发明优选实施例的附加地配置有费率表的图5的抽象层。图32是说明性数据模型的详细视图。图33是病人实体和检验实体的说明性模型实体规范。图34A-B(统称为图34)是图示根据本发明优选实施例的基于费用的查询和插入操作的流程图。图35A-B(统称为图35)是图示根据本发明优选实施例的基于费用的更新操作的流程图。图36-41是根据本发明优选实施例的、用于创建查询并显示所计算的查询费用的一系列图形用户界面。具体实施方式引言提供了用于付费访问数据的系统、方法和产品。对于任意粒度的数据,包括字段和数据结构(例如,数据库中的表)定义了费率表。在一个实施例中,基于要进行的操作类型计算费用。还可以对每个操作和/或该操作中包含的每个数据条目计算费用。在特定实施例中,通过定义对应于所访问的物理数据的费率表的抽象才莫型来访问物理数据。在一个实施例中,提供了特定数据定义框架(在这里也称为数据抽象模型(DAM)),以便与物理地表示数据的特定方式无关地访问和修改数据。数据可位于单个数据储存库(即,源)或多个不同的数据储存库中。这样,DAM可提供一个或多个底层数据储存库的逻辑视图。通过使用数据储存库的抽象表示,底层物理表示可被更容易地改变或代替,而不影响做出这些改变的应用。取而代之的是,在应用程序不需要改变的情况下改变抽象表示。此外,可以定义多个抽象数据表示,以便对于相同的底层数据库方案支持可具有不同的缺省值或必需字段的不同应用程序。DAM包括描述和定义多个逻辑字段的元数据。该元数据还描述多组逻辑字段之间的关联。所述多组逻辑字段被称为模型实体。模型实体用来通过查询和修改操作访问数据。在一个方面,模型实体定义包含该模型实体的查询的必需输出字段。在另一方面,模型实体在数据环境中确定焦点(focalpoint),该数据环境可用来实现关联跨越底层物理数据储存库中的多个物理实体(例如,表)的信息所需的适当逻辑。在另一方面,模型实体定义最少的一组字段,其用来导出在对模型实体的实例的数据插入和删除操作中包含的完整的一组字段。在一个实施例中,DAM包括用于单独的逻辑字段、多个类别的逻辑字段或模型实体的费率表。例如,可以根据要进行的操作(例如,查询、插入、更新、删除)并在每个条目或每个请求的基础上构造费率表。本发明的一个实施例作为用于与计算机系统一起使用的程序产品来实现,并在下面进行描述。该程序产品的程序定义实施例的功能(包括在这里描述的方法),并且可被包含在各种信号承载介质上。说明性的信号承载介质包括但不限于(i)永久存储在不可写入存储介质(例如,诸如可由CD-ROM驱动器读取的CD-ROM盘的计算机内的只读存储设备)上的信息;(ii)存储在可写入存储介质(例如,盘驱动器中的软盘或硬盘驱动器)上的可更改信息;或(iii)通过通信介质,例如通过包括无线通信的计算机或电话网络,而传送给计算机的信息。后面的实施例具体包括从因特网和其它网络下载的信息。当这种信号承载介质携带了指引本发明功能的计算机可读指令时,其代表本发明的实施例。通常,被执行以实现本发明实施例的例行程序可以是操作系统或特定应用程序、组件、程序、模块、对象或指令序列的一部分。本发明的软件通常包括大量指令,所述指令将被本地计算机转换为机器可读的格式,并从而产生可执行指令。此外,程序包括局部存在于该程序中或者在存储器中或者在存储设备上找到的变量和数据结构。此外,在本发明的特定实施例中,可以基于为之实现在下文中描述的各种程序的应用程序来识别所述各种程序。然而,应当认识到,以下任何特定术语都只是为了方便而使用的,因而本发明不应被限制为仅用于由这样的术语识别和/或暗含的任何特定应用程序。环境的物理;现图图1示出了可实施本发明实施例的联网系统100的方框图。通常,联网系统100包括客户端(即,通常是诸如用户或应用程序的任何请求实体)计算机102(示出了3台这种客户端计算机102)、和至少一台服务器计算机104(示出了一台这种服务器104)。客户端计算机102和服务器计算机104通过网络126连接。通常,网络126可以是局域网(LAN)和/或广域网(WAN)。在特定实施例中,网络126是因特网。然而,注意本发明的多个方面不需要在分布式环境中实施。因此,客户端计算机102和服务器计算机104分别更一般地代表发出查询的任意请求实体(例如用户或应用程序)、和被配置为处理这些查询的接收实体。客户端计算机102包括通过总线130连接到存储器112、存储设备114、输入设备116、输出设备119以及网络接口设备118的中央处理单元(CPU)l10。输入设备116可以是向客户端计算机102提供输入的任意设备。例如,可以使用键盘、小键盘、光笔、触摸屏、轨迹球、或语音识别单元、音频/视频播放器等。输出设备119可以是向用户提供输出的任意设备,例如,任何传统显示屏。尽管输出设备119被示出为与输入设备116分离,但是输出设备119和输入设备116可组合在一起。例如,可以使用具有集成触摸屏的显示屏、具有集成键盘的显示器、或组合了文本语音转换器的语音识别单元。网络接口设备118可以是被配置为允许客户端计算机102和服务器计算机104之间通过网络126的网络通信的任意登录/退出设备。例如,网络接口设备118可以是网络适配器或其它网络接口卡(NIC)。存储设备114优选是直接存取存储器设备(DASD)。尽管它被示出为单个单元,但它可以是固定和/或可拆卸存储设备的组合,例如固定盘驱动器、软盘驱动器、磁带驱动器、可拆卸存储卡、或光存储设备。存储器112和存储设备114可以是跨越多个主和辅存储设备的一个虚拟地址空间的一部分。存储器112优选是足够大以保存本发明的必要程序和数据结构的随机存取存储器。尽管存储器112被示出为单个实体,但应当理解,存储器112实际上可包括多个模块,并且存储器112可以以从高速寄存器和高速緩冲存储器到速度较低但较大的DRAM芯片的多个等级存在。作为说明,存储器112包含操作系统124。可有利地使用的说明性操作系统包括Linux和Microsoft的Windows。更一般地,可以使用支持在此公开的功能的任意操作系统。存储器112还被示出为包含浏览器程序122,当在CPU110上执行浏览器程序122时,浏览器程序122支持在各种服务器104之间导航、并将网络地址定位于一个或多个服务器104上。在一个实施例中,浏览器程序122包括基于网络的图形用户界面(GUI),其允许用户显示超文本标记语言(HTML)信息。然而,更一般地,浏览器程序122可以是能够呈现从服务器计算机104传送的信息的任何基于GUI的程序。可以按照类似于客户端计算机102的方式来物理地布置服务器计算机104。因此,服务器计算机104被一般地示出为包括通过总线136互相耦接的CPU130、存储器132和存储设备134。存储器132可以是足够大以保存位于服务器计算机104上的必要程序和数据结构的随机存取存储器。服务器计算机104通常处于被示出为驻留在存储器132中的操作系统138的控制之下。操作系统138的示例包括IBMOS/400⑧、UNIX、MicrosoftWindows⑧等。更一般地,可以使用能够支持在此描述的功能的任何操作系统。存储器132还包括一个或多个应用程序140和抽象查询接口146。应用程序140和抽象操作接口146是包括多个指令的软件产品,所述指令在各种时刻驻留在计算机系统100内的各种存储器和存储设备中。当被服务器104中的一个或多个处理器130读取并执行时,应用程序140和抽象操作接口146需的步骤。应用程序140(以及更一般地,包括操作系统138以及处于最高等级的用户的任何请求实体)发出对数据库的查询。可对其发出查询的说明性资源包括统称为数据库156-157的本地数据库156卜.156n和远程数据库157卜.157n。作为说明,数据库156被示出为存储设备134中的数据库管理系统(DBMS)154的一部分。更一般地,如在此使用的那样,术语"数据库"是指数据的任意集合,而与特定物理表示无关。通过说明,可以根据关系大纲(schema)(可通过SQL操作访问)或根据XML大纲(可通过XML操作访问)来组织数据库156-157。然而,本发明不限于特定大纲,并且考虑了向当前未知的大纲的延伸。如图在此使用的那样,术语"大纲"一般地指由诸如在此描述的DAM的数据定义框架描述的特定数据排列。在一个实施例中,根据每个应用程序140包括的应用程序操作规范142来定义应用程序140发出的操作(例如查询、插入、更新、删除)。应用程序140发出的操作可^皮预先定义(即,净皮硬编码为应用程序140的一部分)、或者可以响应于输入(例如,用户输入)而产生。在任一情况中,使用抽象操作接口146定义的逻辑字段来组成操作(在这里,其被称为"抽象操作")。具体地说,在抽象操作中使用的逻辑字段由抽象操作接口146的数据抽象模型148定义。抽象操作由运行时间组件150执行,运行时间组件150将抽象操作变换为与一个或多个数据库156-157中包含的数据的物理表示一致的形式。所述操作可被配置为访问数据并返回结果(即,查询该数据)、或修改(即插入、删除或更新)该数据。参考图2A-B进一步描述应用程序操作规范142和抽象操作接口146。在一个实施例中,服务器计算机104还配置有费用计算器151。作为说明,尽管费用计算器151可替换地可以是单独的组件,但是它被示出为运行时间组件150的一部分。在任意情况中,调用费用计算器151来计算诸如查询、插入、更新和删除的操作的费用。在一个实施例中,用户通过图形用户界面(GUI)指定抽象操作的元素。GUI的内容由应用程序140产生。在特定实施例中,GU1内容是超文本标记语言(HTML)内容,其可被呈现在具有浏览器程序122的客户端计算机系统102上。因此,存储器132包括超文本传输协议(http)服务器进程152(例如,网络服务器),其适配为为来自客户端计算机102的请求服务。例如,进程152可响应访问数据库156的请求,数据库156说明性地驻留在服务器104内。所输入的对数据库156-157的数据的客户端请求调用应用程序140。当被处理器130执行时,应用程序140使服务器计算机104执行实施本发明各方面的步骤或元素,包括访问数据库156-157。在一个实施例中,应用程序140包括被配置为构建GUI元素的多个小服务程序(servlet),这些小服务程序随后由浏览器程序122呈现。在通过应用程序140访问远程数据库157的情况中,数据抽象模型148配置有位置规范,其识别包含要检索的数据的数据库。后面的这个实施例将在下面更详细地进行描述。图1只是联网的客户端计算机102和服务器计算机104的一个硬件/软件配置。本发明的实施例可适用于任何相似的硬件配置,而不管计算机系统是复杂的多用户计算装置、单用户工作站、还是不具有其自己的非易失性存储器的网络设备。此外,应当理解,尽管参考了包括HTML的特定标记语言,但本发明不限于特定语言、标准或版本。因此,本领域技术人员将认识到,本发明适用于其它标记语言以及非标记语言,并且,本发明还适用于未来的特定标记语言的改变、以及目前未知的其它语言。同样,图l示出的http月良务器进程152只是说明性的,并且已考虑到适配为支持任何已知和未知协议的其它实施例。环境的逻辑/运行时间视图图2A-B示出了本发明的多个相互关联的组件。作为说明,参考查询来描述图2A-B(以及图3-4)代表的实施例。然而,更一般地是,要执行的操作可以是影响数据的任意操作(例如插入、删除、更新)。请求实体(例如,应用程序140之一)发出由请求实体的各个应用程序操作规范142定义的查询202。因为根据抽象(即,逻辑)字段而不是通过直接引用数据库156-157中的底层物理数据实体来组成该查询,所以所产生的查询通常被称为"抽象查询"。因此,可以定义与所使用的特定底层数据表示无关的抽象查询。在一个实施例中,应用操作规范142可既包括用于数据选择的标准(选择标准204)又包括由应用程序操作规范142指定并用来组成抽象查询202的逻辑字段由数据抽象模型148定义。通常,数据抽象模型148将信息作为可在应用程序140发出的查询(例如,抽象查询202)中使用的一组逻辑字段进行披露(expose),以指定数据选择标准,并指定从查询操作返回的结果数据的形式。逻辑字段被与数据库156-157中使用的底层数据表示无关地定义,从而允许形成松散地结合到底层数据表示的查询。通常,数据抽象模型148包括统称为字段规范208的多个字段规范208,、2082、2083、2084和2085(作为示例,示出了5个字段规范)。具体地说,为可用于组成抽象查询的每个逻辑字段提供字段规范。每个字段规范包括逻辑字段名210i、2102、2103、2104、2105(统称为字段名210)和相关的访问方法212!、2122、2123、2124、2125(统称为访问方法212)。访问方法将逻辑字段名关联(即,映射)到数据库(例如,数据库156之一)中的特定物理数据表示214"2142、...、214N。作为说明,示出了两种数据表示,即XML数据表示214!和关系数据表示2142。然而,物理数据表示214n表明考應了任何其它已知或未知的数据表示。根据要支持的不同类型逻辑字段的数目,构思任何数目的访问方法。在一个实施例中,提供了针对简单字段、过滤字段和组合字段的访问方法。字段规范208!、2082和2085分别例示了筒单字段访问方法212j、2122和2125。简单字段被直接映射到底层物理数据表示中的特定实体(例如,映射到给定数据库表和列的字段)。作为说明,图2B示出的简单字段访问方法212,将逻辑字段名210《"名")映射到名称为"联系"的表中名称为"f—name"的列。字段规范2083举例示出过滤字段访问方法2123。过滤字段标识相关的物理实体,并提供用来定义该物理数据表示内的特定条目子集的规则。在图2B中提供了示例,其中,过滤字段访问方法2123将逻辑字段名称2103("AnytownLastName,,)映射到命名为"联系"的表中名称为"1—name"的列内的物理实体,并定义对于Anytown(任何城镇)的城市中的个体的过滤器。过滤字段的另一示例是纽约邮政编码(ZIP)字段,其映射到邮政编码的物理表示,并将数据限制为仅为纽约州定义的那些邮政编码。字段规范2084例示组合字段访问方法2124。组合访问方法使用作为访问方法定义的一部分提供的表达式来从一个或多个物理字段计算逻辑字段。以这一方式,可以计算出底层数据表示中不存在的信息。在图2B示出的示例中,组合字段访问方法2123将逻辑字段名称2103"AgelnDecades"映射到"AgelnYears/10"。另一示例是销售税字段,其通过将销售价格字段乘以销售税率而组成。注意,图2B示出的数据抽象模型148只是说明所选择的逻辑字段规范,而不是全面的。因此,图2B示出的抽象查询202包括未在数据抽象模型148中未示出其规范的某些逻辑字段,例如"州"和"街道"。已经考虑到底层数据的任何给定数据类型(例如,日期、十进制数等)的格式可能变化。因此,在一个实施例中,字段规范208包括反映底层数据格式的类型属性。然而,在另一实施例中,字段规范208的数据格式与相关底层物理数据不同,在此情况中,访问方法负责以请求实体采取的适当格式返回数据。这样,该访问方法必须知道釆取了哪种数据格式(即,根据逻辑字段)、以及底层物理数据的实际格式。然后,该访问方法可以将底层物理数据转换为逻辑字段的格式。作为示例,图2A示出的数据抽象模型148的字段规范208代表被映射到关系数据表示2142中表示的数据的逻辑字段。然而,数据抽象模型148的其它实例将逻辑字段映射到其它物理数据表示,例如XML。此外,在一个实施例中,数据抽象模型148配置有对程序性数据表示的访问方法。下面,参考图8来描述这种数据抽象模型148的一个实施例。在下面的表I中示出了对应于图2B示出的抽象查询202的说明性抽象查询。作为说明,使用XML来定义数据储存库抽象148。然而,可以有利地使用任何其它语言。表1-查询示例001<xmlversion="1.0,,?>002<!—Querystringrepresentation:(FirstName="Mary"ANDLastName=003"McGoon")ORState="NC"-->004<QueryAbstraction>005<Selection>006<ConditioninternalID="4,,>007<Conditionfield="FirstName"operator="EQ"value="Mary"008internalID="l,,/>009〈Conditionfield="LastName"operator="EQ"value="McGoon"010internalID="3"relOperator="AND"></Condition>011</Condition>012<Conditionfield="State"operator="EQ"value="NC"internalID="2"013relOperator="OR,,></Condition>014</Selection>015<Results>016<Fieldname="FirstName,7>017<Fieldname="LastName,,/>018<Fieldname="State,7>019</Results>020</QueryAbstraction>作为说明,表I示出的抽象查询包括含有选择标准的选择规范(第005-014行)和结果规范(第015-019行)。在一个实施例中,选择标准由(逻辑字賴二的)字段名、比较运算符(=、>、<等)以及(所述字段与之进行比较的)值表达式組成。在一个实施例中,结果规范是将作为查询执行结果返回的抽象字段的列表。抽象查询中的结果规范可由字段名和分类标准组成。下面,表II示出对应于表I中的抽象查询的数据抽象模型148的说明性实例。作为说明,使用XML来定义数据抽象模型148。然而,可以有利地4吏用任何其它语言。表II-数据储存库抽象示例001〈xmlversion="1.0">002<DataRepository>003<Categoryname="Demographic,,>004<Fiddqueryable="Yes"name="FirstName,,displayable="Yes">005<AccessMethod>006<SimplecolumnName="f_name,,tableName="contact,,></Simple>007</AccessMethod>008<TypebaseType="char,,></Type>009</Field>010<Fieldqueryable="Yes,,name="LastName,,displayable="Yes,,>011<AccessMethod>012<SimplecolumnName="l_name,,tableName="contact,,></Simple>013</AccessMethod>014<TypebaseType="char,,></Type>015</Field>016<Fieldqueryable="Yes"name="State"displayable="Yes">017<AccessMethod>018<SimplecolumnName="state,,tableName="contact,,></Simple>019</AccessMethod>020<TypebaseType="char,,></Type>021</Field〉022<Category>023</DataRepository>注意,第004-009行对应图2B示出的DAM148的第一字段规范208i,而第010-015行对应第二字段规范2082。为简便起见,图2B没有示出表I中定义的其它字段规范。还应当注意,表I示出了类别,即此情况中的"人口统计"。类别是一个或多个逻辑字段的分组。在本示例中,"名"、"姓"和"州,,是属于共同类别即"人口统计"的逻辑字段。图3示出了例示运行时间组件150的操作的一个实施例的说明性运行时间方法300。当运行时间组件150接收到抽象查询(例如图2示出的抽象查询202)的实例作为输入时,在步骤302进入方法300。在步骤304,运行时间组件150读取并分析该抽象查询实例,并定位单独的选择标准和所希望的结果字段。在步骤306,运行时间组件150进入用于处理在抽象查询中出现的每个查询选纟奪标准语句的循环(包括步骤306、308、310和312),从而构建具体查询的数据选择部分。在一个实施例中,选择标准由(逻辑字段的)字段名、比较运算符(=、>、<等)和(字段与之比较的)值表达式组成。在步骤308,运行时间组件150使用来自抽象查询的选择标准的字段名来在数据储存库抽象148中查找该字段的定义。如上所述,该字段定义包括对用来访问与该字段相关联的物理数据的访问方法的定义。然后,运行时间组件150为正被处理的逻辑字段构建(步骤310)具体查询组分。如同在这里定义的那样,具体查询组分是用来基于当前逻辑字段进行数据选择的具体查询的一部分。具体查询是采用例如SQL和XML查询的语言表示的查询,并与给定物理数据储存库(例如,关系数据库或XML储存库)的数据一致。因此,使用具体查询来从由图1示出的数据库156-157表示的物理数据储存库中定位和检索数据。然后,将为当前字段产生的具体查询组分添加到具体查询语句中。然后,方法300返回步骤306,以便开始对抽象查询的下一字段的处理。因此,对抽象查询中的每个数据选择字段重复在步骤306进入的过程,从而贡献出(contribute)要进行的最终查询的附加内容。在构建具体查询的数据选4奪部分之后,运行时间组件150识别将作为查询执行结果返回的信息。如上所述,在一个实施例中,抽象查询定义在这里称为结果规范的、将作为查询执行结果返回的抽象字段的列表。抽象查询中的结果规范可包括字段名和分类标准。因此,方法300在步骤314处进入循环(由步骤314、316、318和320定义),以便将结果字段定义添加到所产生的具体查询中。在步骤316,运行时间组件150在数据储存库抽象148中查找(来自抽象查询的结果规范的)结果字段名,然后从数据储存库抽象148中检索结果字段定义,以便识别将为当前逻辑结果字段返回的数据的物理位置。然后,运行时间组件150为该逻辑结果字段构建(如步骤318)(识别要返回的数据的物理位置的具体查询的)具体查询组分。然后,在步骤320,将具体查询組分添加到具体查询语句中。一旦处理了抽象查询中的每个结果规范,就在步骤322执4亍该查询。参考图4来描述用于根据步骤310和318为逻辑字段构建具体查询组分的方法400的一个实施例。在步骤402,方法400查询与当前逻辑字段相关的访问方法是不是简单访问方法。如果是,则基于物理数据位置信息构建(步骤404)具体查询组分,并且,随后,处理根据上述方法300而继续进行。否则,处理继续进行到步骤406,以查询与当前逻辑字^a相关的访问方法是否是过滤访问方法。如果是,则基于某个物理数据实体的物理数据位置信息来构建(步骤408)具体查询组分。在步骤410,利用用于对与该物理数据实体相关的数据进行子集构造(subset)的附加逻辑(过滤器选择)来扩展具体查询组分。然后,处理根据上述方法300而继续进行。如果该访问方法不是过滤访问方法,则处理从步骤406前进到步骤412,在步骤412,方法400查询访问方法是不是组合访问方法。如果该访问方法是组合访问方法,则在步骤414,定位并检索组合字段表达式中每个子字段引用(reference)的物理数据位置。在步骤416,用组合字段表达式的物理字殺:位置信息代替该组合字段表达式的逻辑字段引用,由此产生具体查询组分。然后,处理根据上述方法300而继续进行。如果该访问方法不是组合访问方法,则处理从步骤412前进到步骤418。应当理解,构思了并不实施所有可用的访问方法的实施例。例如,在特定实施例中,仅使用简单访问方法。在另一实施例中,仅使用简单访问方法和过滤访问方法。如上所述,如果逻辑字段指定了与底层物理数据不同的数据格式,则可能有必要进行数据转换。在一个实施例中,当根据方法400建立逻辑字段的具体查询組分时,对于每个分别的访问方法进行初始转换。例如,可以作为步骤404、408和416的一部分或紧跟其后进行转换。在步骤322执行了查询之后,进行从物理数据的格式到逻辑字段的格式的随后的转换。当然,如果逻辑字段定义的格式与底层物理数据相同,则没有必要进行转换。数据储存库抽象组件的其它实施例在一个实施例中,为每个单独的物理数据表示214提供了不同的单个数据抽象模型148。在替换实施例中,单个数据抽象模型148包含用于两个或多个物理数据表示214的字段规范(具有相关的访问方法)。在另一实施例中,提供了多个数据抽象模型148,其中,每个数据抽象模型148披露同一底层物理数据(其可包括一个或多个物理数据表示214)的不同部分。以这一方式,多个用户可同时使用单个应用程序140来访问同一底层数据,其中,由各个数据抽象模型148确定向应用程序披露的底层数据的特定部分。后面的这一实施例在标题为"DYNAMICENDUSERSPECIFICCUSTOMIZATIONOFANAPPLICATION'SPHYSICALDATALAYERTHROUGHADATAREPOSITORYABSTRACTIONLAYER"、并被转让给国际商业机器公司的美国专利申请第10/132,228号(公开号为US20030208486)中更详细地进行了描述。在任意情况中,数据抽象模型148包含(或者是指)将逻辑字段映射到物理数据的至少一个访问方法。为此,如前述实施例所示,访问方法描述定位和操纵对应于逻辑字段的数据的物理表示的手段。在一个实施例中,访问方法还配置有定义与逻辑字段相关的数据的位置的位置规范。以这一方式,数据抽象模型148被扩展为包括对多个数据源的描述,所述数据源可以是本地的,以及/或者分布在网络环境中。数据源可以使用大量不同的数据表示和数据访问技术。以这一方式,提供了能够利用当今流行的分布式环境的基础结构。在标题为"REMOTEDATAACCESSANDINTEGRATIONOFDISTRIBUTEDDATASOURCESTHROUGHDATASCHEMAANDQUERYABSTRACTION",并被转让给国际商业机器公司的美国专利申请第10/131,984号(公开号为US20030208458)中更详细地描述了一种用于访问多个数据源的方法。在各个实施例中,提供了超越现有技术的众多优点。在一个方面,通过定义应用程序操作规范和底层数据表示之间的松散结合来获得这些优点。如使用SQL的情况,不是利用特定的表、列和关系信息来将应用程序编码,而是该应用程序以更抽象的方式定义数据操作需求,该数据操作需求随后在运行时间被绑定到特定的物理数据表示。本发明的松散操作数据结合使得请求实体(例如应用程序)能够在即使底层数据表示被修改、或者将与全新的而不是在开发该请求实体时曾使用的物理数据表示一起使用该请求实体时,也能发挥作用。在修改或重新构造给定物理数据表示的情况中,更新对应的数据储存库抽象,以反映对底层物理数据模型所做的改变。查询可使用同一组逻辑字段,并且,所述同一组物理字段仅被绑定到物理数据模型中的不同实体或位置。因此,即使对应的物理数据模型已经经历了重大改变,写入到抽象操作接口的请求实体也继续执行未被改变的功能。如果将与全新的而不是在开发请求实体时曾使用的物理数据表示一起使用该请求实体,则可以使用相同的但遵循不同命名和组织信息(例如,不同大纲)策略的技术(例如,关系数据库)来实施这个新物理数据模型。新大纲将包含可使用简单、过滤和组合字賴:访问方法技术映射到应用程序必需的一组逻辑字段的信息。可替换地,新物理表示可使用表示相似信息的替换技术(例如,基于XML的数据储存库和关系数据库系统的使用)。在任一情况中,被写入以使用抽象操作接口的现有请求实体可容易地转移为使用新物理数据表示,并且提供将查询中引用的字段与新物理数据模型中的位置和物理表示相映射的替换数据储存库抽象。在另一方面,使应用程序构建者和最终用户容易使用。使用抽象层来表示底层数据储存库中的逻辑字段使应用程序开发者能够致力于关键应用程序数据需要,而不关心底层数据表示的细节。因此,在应用程序开发期间,实现了更高的生产率和减小的错误率。对于最终用户,数据储存库抽象提供了数据过滤机制,其披露相关数据,并隐藏开发给定查询的特定等级的最终用户所不需要的不必要内容。实施本模型的解决方案使用所提供的抽象操作规范来描述其信息需求,而不考虑所包含的数据的位置或表示。例如查询的操作被提交给运行时间组件,其使用数据抽象模型来确定用来访问在该查询中表示的每个逻辑信息的位置和方法。在一个方面,此模型允许与由解决方案使用的数据的物理位置或表示无关地开发解决方案,使得有可能容易地将该解决方案用于多种不同的数据拓朴,并且允许该解决方案在随着时间的过去而重新定位或重新组织数据的情况中发挥作用。在另一方面,此方法还简化了扩展解决方案以利用附加信息的任务。扩展是在抽象查询的级别上进行的,并且不需要增加对于正在访问的新数据的位置或表示为唯一的软件。此方法向软件应用程序提供了共同的数据访问方法,其与用来访问数据的特定方法和所引用的数据的每个条目的位置无关。通过抽象查询访问的物理数据可被相关地(在现有关系数据库系统中)、分级地(如XML)或以某个其它物理数据表示模型表示。还支持大量的数据访问方法,包括基于现有数据查询方法的那些方法,例如SQL和XQuery,以及包含对信息的有计划访问的方法,例如通过网络服务调用(例如使用SOAP)或HTTP请求检索数据。模型实体本发明的多个方面提供用来通过表示单独逻辑字段的组合来识别更高级别的底层数据抽象的数据抽象模型实体。模型实体向最终用户和应用程序提供更高级别的底层数据的概念视图,其可以简化数据查询和修文任务(即,插入和删除)。用户/应用程序可以在更概念化的模型实体级别上工作,而不是必须理解组成实体例如病人或实验室检验结果的所有单独字段。如同将在下面更详细地描述的那样,模型实体的定义包含足够的元数据,以便使对模型实体的实例进行的处理更有效率并得以简化。在本实施例中,通过附加元数据将模型实体定义到已经在抽象数据模型表示(即,DAM)中发现的模型实体。然而,更一般地,可以在抽象数据模型定义内定义模型实体,或者可以在抽象数据模型定义之外定义模型实体。此外,参考关系数据库来描述实施例。然而,本发明适用于包括例如诸如XML的标记语言的任意其它数据表示。现在参考图5,环境500包括代表性的数据抽象模型(DAM)502,其配置为支持对物理数据源的访问(即,查询和修改操作)。仅作为说明,通过数据抽象模型502访问的物理数据源是包含多个表520-523的关系数据源504。然而,如上所述,考虑了任意数据类型。数据抽象模型502通常包括多个类别508m、多个逻辑字段规范510w6、模型实体规范525和物理实体关系规范526。类别508可针对单个逻辑字段定义,或者更一般地,将两个或多个逻辑字段规范510相关联。逻辑字段规范510包括上面针对图2描述的元数据,为简单起见,没有示出该元数据。上面针对图2描述的逻辑字段规范的一些方面以简化的形式示出。例如,在"年龄"逻辑字段规范5105和"支付天数"逻辑字段规范51016的情况中,用箭头来表示对定义组合字段时使用的逻辑字段的引用。此外,逻辑字賴^见范510包括用于实现本发明多个方面的补充元数据。例如,所选择的逻辑字段配置有各种属性,包括"必需"属性514、"产生"属性516和"缺省"属性518。作为说明,"名"逻辑字段规范5102、"姓"逻辑字段规范5103、"城市"逻辑字段规范5108、"州"逻辑字段规范5109、"邮政编码"逻辑字段规范510,。、"葡萄糖4全验"逻辑字段规范51012、"账户号码"逻辑字段规范51013、以及"余额"逻辑字段规范51014配置有"必需"属性514。"病人ID,,逻辑字段规范510i配置有"产生,,属性516,而检验日期逻辑字段规范510配置有"缺省值"属性518,其中,缺省值被指定为"Current_Date(当前日期)"。模型实体规范525定义多个模型实体506,.3(作为说明,示出3个模型实体;然而,可以定义任意数目的模型实体)。每个模型实体具有名称。作为说明,"病人"模型实体506p"检验"模型实体5062和"账户"模型实体5063由DAM502定义。作为说明,现在参考图6来描述病人和检验模型实体506的附加细节。尽管没有示出,但是"账户"模型实体5063的细节可具有相似的组成。除了名称602以外,每个模型实体还定义了多组字段,用来实现对与模型实体相对应的物理数据的查询、插入和删除操作。具体地说,每个模型实体506被分为包括查询部分604l2、插入部分606w和删除部分608w。才艮据对^^莫型实体506执行的操作类型,访问适当的部分。注意,对于查询,指定了定义模型实体(即,病人)的字段的全部,而在插入和删除的情况中,指定定义模型实体的所有字段的子集。如同将在下面更详细地描述的,所述字段的子集包括用于模型实体的每个对应物理实体的"种子"字段。在任何情况中,应当清楚模型实体506的一部分可以只包括指向单个物理实体的单个逻辑字段。此外,模型实体506自身可以只具有指向单个物理实体的单个逻辑字段。模型实体提供特定的优点,然而,当它们跨越多个字段/实体时,由于在此情况中用户能够利用单一抽象表示工作,而不承担知晓什么逻辑字段组成抽象实体的任务。在这一点上,注意,实际上,模型实体506的每个部分(查询、插入和删除)本身都是模型实体,其中,每个部分定义对于给定操作的抽象实体,而不管该抽象实体是否跨越多个逻辑字段和/或多个物理字段。除了模型实体元数据以外,本发明的多个方面通过物理实体关系规范526来实现,现在,参考图5来描述该物理实体关系规范526。物理实体关系规范526定义物理模型中的实体之间的分级关系(即,关系数据库520)。作为说明,图5示出的物理实体关系规范526将数据源504中的病人信息表520关联到其它表521-523的每一个。在每种情况中,病人信息表520是相对于次要(secondary)表的主要表。尽管未在图5的物理实体关系规范526中示出,但是已经考虑到可以定义分级的附加等级。例如,相对于图5未示出的一些其它次要表(为方便起见,将其称为"表A"),地址信息表521可被定义为主要实体。在此情况中,定义了3层分级结构,其中,病人信息表520是主要实体,地址信息表521是次要实体,而表A是第三位的实体。在这种配置中,病人信息表520和地址信息表521、以及地址信息表521和表A明显为主要-次要关系,并且,通过演绎,病人信息表520和表A为主要-次要关系。物理实体关系规范526还指明了实体之间的主要-次要关系的基础。具体地说,所述关系所根据的字段(即,歹'o在方括号[]中指定。在本说明中,为病人标识符(分别为"ID"和"PID")定义了实体关系。尽管示出为只给每个实体指定了一个字段名,但是可以指定两个或多个,使得每个实体与两对或多对字段相关。考虑以下关系示例实体l[字段1、字段3、字段6]和实体2[字段2、字段3、字段4]。在此示例中,主要实体即实体1的字段1、3和6分别关联到次要实体即实体2的字段2、3和4。物理实体关系规范526还指明两个实体之间的关系是一对一、一对多、多对一还是多对多。这一关系在每个实体的圆括号()中指定。例如,实体"病人信息(Patientlnfo)"和"地址信息(AddressInfo)"是一对一关系,而实体"病人信息"和"检验信息(Testlnfo)"是一对多关系。DAM502允许请求实体512(例如,图1的应用程序140)通过发出对来自数据源504的结果的请求、或者通过发出修改数据源504中的数据的请求来访问数据源504。通常,这些请求都可被称为"查询"。然而,为方便起见,在以下描述中,将只把对结杲的请求称为查询。使用模型实体的查询操作在查询操作的情况中,在查询部分604中由模型实体506定义的一组字段服务于各种目的。首先,查询部分604指定从包含该模型实体的查询输出的必需的那些字段。利用"必需"属性在模型实体的查询部分中识别查询结果的必需字段。例如,"病人"模型实体506!定义"病人id"作为必需字段,并在查询部分604中提供必需属性610,从而保证对病人的所有查询结果都包括病人id。作为如何应用必需属性610的示例,考虑图7示出的初始抽象查询700。例如,抽象查询700表示由用户指定的抽象查询的初始形式。注意指向"病人"模型实体506!的明显标记702。作为此引用的结果,应用DAM502的逻辑,具体地说是病人^^莫型实体506i的元数据,以便将初始抽象查询700转换为有效抽象查询704。在此情况中,由于"病人"实体模型506!定义"病人id"作为必需字段,并提供了必需属性610,因此"病人ID"被添加到有效抽象查询704中指定的结果字段中。参考图8-12,描述从最终用户的观点进行的有效抽象查询704的增加,其中,图8-12示出了一系列用户界面屏幕。首先参考图8,屏幕800配置有用户从中选择查询焦点(focus)的选择菜单802。每个可用的选择对应所定义的模型实体506之一。作为说明,用户选择"病人"作为查询焦点,并点击"下一步"按钮804,这使用户界面显示图9示出的下一个屏幕900。也就是说,用户选择了产生(craft)调用"病人"模型实体506i的查询。然后,用户在输入区(field)1002中指定各种查询条件,如图IO所示。点击"下一步"按钮1004使用户界面显示图11示出的下一个屏幕UOO。屏幕1100包括结果字段输入区1102。作为说明,输入区1102被填充以"病人ID"字段。也就是说,由于"病人"模型实体506,定义"病人ID"作为必需字段,并提供了必需属性610(在图6中示出),因此"病人ID"字段被自动添加到结果字段输入区1102中。然后,用户可以指定其它结果字^:,如图12所示。在替换实施例中,"病人ID"在用户提交查询以供执行之前不会被添加到查询结果字段中。现在参考图13,描述说明查询的结果字段增加的方法1300的一个实施例。该增加过程以接收到初始抽象查询1304A例如参考图7描述的初始抽象查询700开始(步骤1302)。然后,将有效抽象查询1304B(例如参考图7描述的有效抽象查询704)设为初始查询1304A(步骤1306)。此时,有效抽象查询1304B的组成与初始抽象查询1304A相同。然后,4全查有效抽象查询,以查找对模型实体的引用(步骤1308)。当不存在这种引用时,处理完成,并且方法1300退出。然而,如果有效抽象查询1304B包括对模型实体的引用,则从数据抽象模型502中检索适当的模型实体定义506。对于模型实体中的每个必需查询字段(由必需属性610指示)(在步骤1312处进入的循环),方法1300确定是否已经在初始抽象查询1304A中将该必需字段指定为结果字段(步骤1314)。如果没有,则将该必需字段添加到有效抽象查询1304B的结果字段中。在另一方面,模型实体在数据环境中确定焦点,所述数据环境可用来实现将跨越底层物理数据储存库中的多个实体(例如,表)的信息相互关联所需的适当逻辑。从该焦点开始,可以建立解释表之间关系的方向。例如,由于每个病人可具有多个实验室检验结果,因此物理实体关系规范526描述病人信息表520和检验信息表521之间的一对多关系。针对病人实体的模型实体将建立引用点,以便将病人信息与实验室检验结果相关联。例如,在关系数据库的情况中,"病人"的模型实体将用来确定最佳表结合(join)逻辑。由于每个病人可具有多个实验室检验结果,因此查找具有多个检验结果的病人的查询将多次结合实验室检验表,以允许选择具有所有所希望的检验结果的病人。然而,针对实验室检验的模型实体将只结合一次病人信息表,这是因为这一焦点是针对实验室检验,并且从"实验室检验"到"病人信息"这一方向上的关系为程度1(1)。模型实体对查询构造的影响可根据图14来说明。说明性的抽象查询1400包括多个查询条件1402,结果字段1404、和对模型实体的引用1406,在此情况中,模型实体是"病人"。也就是说,"病人,,模型实体506,被指定为查询1400的焦点。查询条件1402包括关于葡萄糖检验的两个条件,其中,这两个条件被逻辑地与运算(AND)到一起。由于"病人,,实体是焦点,因此查询条件1402被解释为意思是"查找葡萄糖检验值=5并且葡萄糖检验值=10的病人"。此外,在物理实体关系规范526中定义的"病人信息"表520和"检验信息"表521之间的关系是一对多,表明病人可具有多于一个检验结果。给出此信息以后,确定对应于抽象查询1400的物理查询1408(作为说明,SQL查询)将需要"检验信息,,表521的两个实例,以便比较同一病人的两个检验结果。在物理查询1408的选择子句(clause)中,"检验信息"表521的这两个实例被标识为T2和T3。此外,使用物理实体关系规范526来产生查询中包含的每个物理实体之间的必需关联逻辑1410。在关系模型中,该关联逻辑是指明如何结合表的结合逻辑。现在参考图15,描述物理查询产生过程1500,其用于根据模型实体中的抽象查询引用产生物理查询。当接收到完整的抽象查询(步骤1502)时,过程1500开始。对于抽象查询中的每个抽象查询条件(步骤1504),进行一系列步骤。具体地说,对于给定的抽象查询条件,过程1500确定是否为给定抽象查询条件的字段指定多于一个被与运算的条件(步骤1506)。如果没有,则对与给定抽象查询条件的字段相对应的物理实体的单个实例产生物理查询组分(步骤1508)。然而,如果步骤1506被肯定地回答,则确定与给定抽象查询条件的字段相对应的物理实体(步骤1510)。此外,确定对应于指定^t型实体的物理实体(步骤1512)。然后,检查物理实体关系规范526,以确定在对应于模型实体的任意物理实体和给定抽象查询条件的字段的物理实体之间是否存在一对多关系。如果不存在,则对与给定抽象查询条件的字段相对应的物理实体的单个实例产生物理查询組分(步骤1508)。然而,如果步骤1514^C肯定地回答,则对与给定抽象查询条件的字段相对应的物理实体的另一个实例产生物理查询组分(步骤1516)。在处理了每个抽象查询条件之后,产生查询的结果字段组分(步骤1518)。最后,使用物理实体关系规范526中包含的关系元数据来产生查询中所包含的每个物理实体之间的关联逻辑(步骤1520)。然后,可以执行所产生的物理查询。在另一方面,可以使用模型实体506来表示一组查询结果字段。通过将多组逻辑字段(以及因此引入的物理字段)应用抽象化,用户能够处理更高等级的实体(例如病人),而不必了解组成该实体的细节。参考图16来描述使用模型实体来表示一组查询结果字段的说明。利用说明性的查询条件1602和结果字段1604来示出初始抽象查询1600。在此示例中,初始抽象查询1600包括对"病人"模型实体506,的引用1604。作为该引用1604的结果,采取多个步骤将结果字段1604扩展为包括为"病人"模型实体506,定义的所有逻辑字段,从而产生有效查询1608。参考图17来描述结果字段增加过程1700。对于给定初始抽象查询1704A(步骤1702),设置对应的有效查询1704B(步骤1706)。然后,检查查询1704A的结果字段,以确定对模型实体的引用(步骤1708)。如果没有识别出这种引用,则过程1700完成。如果该查询中存在模型实体引用,则检索模型实体定义506(步骤1710)。对于模型实体中的每个必需字段(步骤1712),过程1700确定该必需字段是否在初始抽象查询1704A的指定结果字段中(步骤1714)。如果不在,则将该必需字段添加到有效抽象查询1704B的结果字段中(步骤1716)。当完成对每个必需字段的这一处理时,有效抽象查询1704B包括指定模型实体定义506的逻辑字段的全部补充。应当注意,可以组合使用分别参考图13、15和17描述的各个方面。例如,假设图14示出的初始抽象查询1400在结果字段1404中不包括"病人id,,字段。可以根据方法1300进行处理的第一阶段,由此将"病人id,,字段添加到结果字段1404中。然后,根据过程1500进行处理的第二阶段,以产生物理查询1408。本领域技术人员将认识到可被执行的其它过程组合。使用模型实体的修改操作在上面,参考出于返回结果的目的而访问数据描述了本发明的多个方面。在SQL的情况中,这些是选择(SELECTION)操作。然而,修改操作也得到了支持,其包括公知的修改操作,例如插入(INSERT)、删除(DELETE)和更新(UPDATE)等。因此,下文描述扩展和增强上述抽象框架的功能性以支持使用模型实体的修改操作的实施例。由于模型实体可跨越多个物理实体(例如,表),因此可能需要多个数据库操作来实现修改操作。也就是说,提供用于通过单个逻辑操作修改物理数据的实施例,所述单个逻辑操作跨越对物理数据发出的多个语句(例如,多个SQL语句)。为此,模型实体定义最小的一组字段,其用来导出在对模型实体的实例的数据插入和删除操作中包含的完整的一组字段。例如,在图5示出的关系数据源504实现中,病人信息跨越两个表(例如,"病人信息"表520和"地址信息,,表521)。为了实现插入和删除,病人的模型实体标识每个表中的至少一个字段,以充当确定将新病人插入数据库所需的完整的一组字段,以及所包含的用来从数据库中删除病人的完整的一组表时的"种子"。具体地说,在图6示出的DAM502中的对于"病人"的模型实体定义506i的插入部分606i和删除部分608,中指定种子字段。在插入部分606i的情况中,对应于"病人信息"表520的种子字段是"姓",而对应于"地址信息"表521的种子字段是"街道"。在DAM502中定义的每个模型实体506可具有类似的指定种子字段的部分。根据种子字段,对数据储存库执行多个物理操作,以实现单个抽象操作。例如,对于插入到关系数据源504中,这将包含创建用于所包含的表的多个物理SQL插入语句。应用程序/用户只需指定模型实体,然后使用该模型实体来识别修改操作中包含的对应物理实体和相关逻辑字段。例如,可以从HTML形式的下拉菜单中选择该模型实体。此外,删除允许指定可用来将物理数据储存库中需要的改变作为目标的条件。图18示出了环境500的筒化视图,并且包括说明性抽象插入操作规范1802!和删除操作规范18022(统称为抽象操作规范1802),所述规范分别用来实现对关系数据源504的插入操作和删除操作。根据由请求实体512(例如用户/应用程序)提供的规范,通过数据抽象模型502来组成抽象操作规范1802。在每种情况中,抽象操作规范1802为每个受影响的物理实体指定种子值。从由请求实体512选择的模型实体506的适当部分中检索该种子值。基于该种子值,确定相关逻辑字段,并使其成为抽象操作规范1802的一部分。这样,如同在查询的情况中那样,本申请的框架将根据指定的模型实体506提供具有相关字段的请求实体512,而不需要了解应用程序级或最终用户处的数据库大纲。然后,可以将值,人请求实体512(例如,用户)或/人一些其它的源例如值生成器524提供给每个字段。尽管在本示例中,每个抽象操作包括两个种子字段,但是也可以只利用单个种子字段来实现抽象操作。例如,种子字段可以是具有相关外部关键字(key)的主要关键字。在此情况中,指定种子字段的抽象操作可影响在其上定义了外部关键字的物理数据。应当注意,在某些情况中,这一结果可能是不理想的。也就是说,可能不希望基于主要关键字/外部关键字的关系来传播(propagate)改变。如果希望传播,则只需要一个旨在修改包含主要关键字的表的语句。DBMS将处理对相关表的修改,在某些实例中,DBMS可能不支持传播,在此情况中,需要多个语句。尽管未被示出,但是数据抽象模型可包括指定对于给定逻辑字段是否希望传播的属性。除了种子字段以外,DAM还定义用来实现修改操作的其它字段类型。通常,这种字段可以是必需的或可选的。"必需"是指由于不存在合适的缺省值、不存在产生值的算法、并且该字段不能为空,因此请求实体必须提供该字段的值。必需字段由图5示出的必需属性514定义。可选字段是不需要请求实体做出的值的规范的字段。可选字段包括l)可被分配空值的字段;2)具有可用来产生该字段的值的算法的字段(在此称为"产生字段");以及3)在DAM中具有所定义的缺省值的字段(在此称为"缺省字段")。产生的字段值由值生成器524(即,算法)产生。产生字段由图5示出的产生属性516定义。缺省值在没有为与种子字段定义的实体相关的特定字段指定名称/值对的情况中使用。缺省字段由缺省属性518定义。可以统计地定义或产生缺省值。作为所产生的缺省值的示例,说明性抽象删除规范5063中的检验日期值缺省为当前日期。请求实体(例如,用户)可被赋予提供不同值的选择权。作为必需和可选字段的示例,考虑对应于病人实体的逻辑字段。在上面描述过病人实体由"病人ID"逻辑字段规范51(h、"名"逻辑字段规范5102、和"姓,,逻辑字段规范5103逻辑地定义。"名"逻辑字段规范5102和"姓"逻辑字段规范5103包括必需属性,并且是必需字段。相比之下,定义病人实体的其它逻辑字段(即,出生日期和性别)是可选的。因此,对数据源504的插入和更新提供了对实际字段(即,列)的识别,其中,将随同要放置到数据源中的新值一起修改所述实际字段。一组名称/值对表示对应于要修改的物理字段/值的数据抽象模型502中的字段/值。名称表示通过数据抽象模型502映射到底层物理表示的逻辑字段的抽象名称。值是对于该字段要在数据源中插入或更新的抽象值。在一个方面,使用抽象数据模型(即,数据抽象模型502)允许抽象值自动转换为要插入到数据库中的正确物理值。例如,当底层物理数据储存库可使用"F"和"M"的值来表示诸如用于性别的"男"和"女"的值时,数据抽象模型502可被定义为使用诸如用于性别的"男"和"女"的值,如同包含在性另'J(末尾)列中具有值"F"的记录的病人信息表520所示。插入操作的输入值利用那些抽象值规范,来提供对不仅到该底层数据储存库的结构的、而且来自数据储存库中包含的数据的物理形式的底层物理表示的改变的緩沖。一些情形需要专门的考虑。在很多情况中,可以在物理数据储存库的多个字段中物理地表示逻辑字段。一个示例是关系数据源504中的情况,其中,一个表中的列被定义另一数据库表中的列的外部关键字。例如,病人ID可以是病人信息表520中的主要关键字,并且还可以被定义为检验信息表522中的外部关键字。尽管这是典型示例,但是两个字段之间的抽象关系不必通过底层数据储存库中的物理关系(例如主要/外部关键字)来强制实行。使用关于这两个物理位置之间的关系(即,第一表中的列和第二表中的列之间的关系)的元数据,抽象数据表示的单个字段可用来处理该字段的两个物理位置。应用程序被阻止得知在数据库大纲中使用特定值的各种场所。当插入或删除操作包括这些相关字段时,必须考虑特殊的因素。当执行插入操作时,运行时间/DAM逻辑必须识别出该单个抽象数据字段的各种物理表示。必须根据插入操作的焦点条目使用正确的物理表示。例如,如果病人标识符被表示为病人信息表520中的列"ID"、和检验信息表522中的列"PID",则必须根据通过焦点条目为插入操作定义的表来识别正确的列名称。此外,当确定插入操作的缺省值和必需值时,必须考虑物理表示的这些附加形式。例如,如果焦点条目识别出该操作的底层物理表是检验信息表522,则运行时间/DAM逻辑必须认识到当查找缺省和必需值时,必须考虑抽象病人ID字段("PID,,)。也就是说,不能产生新病人ID。当处理表示物理数据储存库中的多个位置的抽象字段时,必须对删除操作给予附加考虑,以确保保持该数据的完整性。底层数据储存库可强制执行对这些类型字段的附加限制。关系数据库提供多个方面,例如限制对利用主要关键字/外部关键字关系定义的列的更新或删除、或者通过外部关键字表联结(cascade)那些更新和删除。也就是说,可以建立对主要表例如病人信息表520的删除,以指示该删除应当根据病人ID、基于主要关键字/外部关键字关系、从检验信息表522中联结和删除对应的行。使用数据储存库的抽象表示,实施可以选择是否限制这些操作或者尝试通过基于抽象字段的关系的定义的各种物理实体来传播这些改变。由于基于模型实体的规范的修改可包含多个物理操作,因此还必须考虑执行这些操作应当遵循的顺序。例如,在基于SQL的当前数据挖掘(mining)应用中,需要该应用具有操作之间的顺序相关性的知识。本发明的一个方面从应用中截取(decoupage)这一知识。在一个实施例中,在物理实体关系规范526中指定操作之间的顺序相关性。现在参考图19,方法1900图示了在组成抽象插入规范的情况中、请求实体512和数据抽象模型502之间的交互。出于说明的目的,将假设请求实体512代表应用程序140(图1),其通过用户界面(例如,图11的浏览器程序122)接收用户的输入。最初,用户选才奪模型实体(步骤1902)。然后,确定所选择的模型实体的种子字段,并利用该种子字段更新抽象插入规范1802"步骤1906),—旦确定了每个种子字段,请求实体512就根据指定种子字段发出对必需和可选字段的请求(步骤1908)。调用数据抽象模型502,以确定插入操作的必需和可选字段(步骤1910)。下面参照图20A-B描述在步骤1910发生的处理的说明性表示。在步骤1910进行了确定之后,利用必需和可选字段来将抽象插入规范1802!初始化(步骤1912)。然后,将必需和可选字段返回给请求实体(步骤1914),其提示用户提供每个字段的值(步骤1916)。可以使用用户界面的本领域公知技术来为用户识别和区分必需字段和可选字段。例如,必需字段可用红色加亮、用星号标出、或者包括指示该字段为必需的插入注释。在替换实施例中,应用程序140本身可以提供所有或部分值。一旦指定了至少每个必需字段(和任意可选字段)的值(步骤1918),就用所指定的值来填充抽象插入规范1802"步骤1920)。现在参考图20A-B,其示出了用于确定必需和可选字段的步骤1910的一个实施例。在访问抽象插入规范1802,以;险索由请求实体512指定的种子字段(步骤2002)之后,查阅数据抽象模型502的适当逻辑字段规范,以便确定对应于种子字段的物理实体(例如,图5示出的关系数据源504中的表)(步骤2004)。在插入操作的情况中,对于每个识别出的物理实体,使用数据储存库抽象来确定与同一物理实体相关的其它逻辑字段(步骤2006和2008)。然后,对于每一个所确定的、定义由种子字段引用的特定物理实体的相关逻辑字段,进入循环(在步骤2010)。也就是说,对每个物理实体的每个相关逻辑字段,进行一系列步骤。对于给定物理实体的给定逻辑字段,对是否已经处理了给定逻辑字段的关键字关系进行确定(步骤2012)。对于在步骤2006进入的循环的第一次重复,在步骤2012进行的确定被否定地回答。在随后的重复期间,步骤2012确保一旦为字段指定了值,就不会指定后续和沖突的值。然后,进行处理,以确定该字段是否是必需字段(在步骤2020)、该字段是否是缺省值字段(步骤2026)、或者该字段是否是产生值字段(步骤2034)。字段类型是根据正由所述循环处理的当前字段的逻辑字段规范中存在的属性(即,必需属性514、产生属性516或缺省属性518)确定的。如果该字段是必需的(步骤2020),则将该字段添加到必需字段列表2024中(步骤2022)。在缺省属性的情况中(步骤2026),利用缺省值将字段值初始化(步骤2028)。在逻辑字段规范包括产生属性518(步骤2034)的情况中,利用产生值将该字段初始化(步骤2036)。在产生值和缺省值两种情况中,将对应字段添加(步骤2030)到可选字段列表2032中。如果该字段没有被定义为必需、缺省或产生的任意一个,则利用空值将该字段初始化(步骤2038),然后将其添加(步骤2030)到可选字段列表2032中。返回步骤2012,如果正被处理的当前字段与已经被处理的另一字段是关键字关系(例如,主要关键字/外部关键字关系),则将当前字段的值设置为先前处理的相关字段的值(步骤2014)。然后,将当前字段添加到隐含字段列表2018中(步骤2016),因此,利用抽象操作中包含的多个物理实体创建隐含字段,并且那些字段具有关键字关系。在此情况中,仅通过界面披露了一个字段和一个值,关键字字段对中的另一字段被认为是隐含的;它不必被指定为抽象插入的一部分,并且将取与所述对中的对应关键字相同的值。隐含字段不会被披露给请求实体,但是当抽象插入被转换为具体(即,可执行)插入语句时对其进行说明,如下面将参考图21描述的那样。当根据在步骤2010进入的循环处理了每个识别出的相关字段时,对于下一个实体重复该处理(步骤2006)。当处理了每个实体时,确定必需和可选字段的处理完成。因此,根据必需字段列表2014和可选字段列表2022更新了抽象插入规范1802i(步骤1912),并且必需字段和可选字段随后被提供给请求实体512(步骤1914),如图19所示。在组成了抽象插入规范1802i之后,可以执行该插入操作。图21示出了用于根据抽象插入规范1802!执行插入操作的方法2100的一个实施例。通常,当从请求实体512提交执行插入的请求时,(在上文中参考图1描述的)运行时间组件150被调用,以便将抽象插入规范1802i转换为物理插入操作。然后,执行该物理插入操作。通过根据字段(来自隐含字段列表2018、必需字段列表2024和可选字段列表2032)各自的物理实体将它们分组,开始抽象插入规范1802!到物理插入操作的转换(2104)。具体地说,运行时间组件150随后进入用于每个物理实体对于给定逻辑字段,从数据抽象模型502中确定字段的物理位置(步骤2110),然后,利用所确定的物理位置更新物理位置列表2114(步骤2112)。在一些情况中,逻辑字段可具有内部值(在步骤2116确定)。也就是说,逻辑字段的值可以和物理字段的值不同。例如,逻辑字段名称可以是"男,,,而物理字段名称是"M"。在此情况中,必须使所述值与物理值一致。这通过利用内部值更新值列表2122(步骤2118)来实现。如果字段值并没有不同(即,步骤2116被否定地回答),则利用物理字段的给定值更新值列表2122(步骤2120)。当针对抽象插入规范1802t中的每个逻辑字段执行在步骤2108处进入的循环的处理时,对于给定的物理实体,从位置列表2114和值列表2122构建物理插入语句(步骤2124)。然后,将该物理插入语句添加到插入语句列表2122中(步骤2126)。然后,对于每个实体连续重复前述处理(步骤2106)。随后,对插入语句列表2128执行排序算法(步骤2130)。参考图22描述排序算法的一个实施例。然后,执行物理插入操作(步骤2132)。现在参考图22,其描述在步骤2130进行的排序算法的实施例。最初,将"排序标志"设置为假(步骤2202)。然后,对插入语句列表2128中的每个插入语句执行一系列步骤,直到"排序标志"被设置为真为止(步骤2206、2208和2210)。具体地说,对于插入语句列表2128中的给定插入语句(以列表中的第一插入语句开始),确定对应实体(步骤2212)。然后,确定给定插入语句的对应实体和插入语句列表2128中剩余插入语句的每个相关实体之间的关系(步骤2214和2216)。具体地说,运行时间组件150确定(针对物理实体关系规范526)给定插入语句的实体是否是相对于另一插入语句的主要相关实体的次要实体(步骤2216)。如果是这样,则将给定插入语句移动到该相关实体的插入语句之后的位置(步骤2218)。重复这一过程,直到可以在没有遇到相对于插入语句列表2128中的后续语句的实体为次要的当前实体的情况下遍历插入语句列表2128为止。此时,根据在物理实体关系规范526中指定的分级关系将插入语句列表2128中的物理插入语句排序。这一过程确保包含主要/外部关键字对的主要关键字的主要实体在修改次要实体(包含外部关键字)之前#皮首先插入。如上所述,本发明的多个方面可以通过构建抽象修改操作的过程来"引导"请求实体512(即,应用程序140)。可以参考图23-26来说明对于插入搮:作的这一方面,其中,巧妙地填充HTML表格160(在图1中示出)以指示各种字段的特性。首先参考图23,示出了用户界面屏幕2300,其可以在用户选择创建抽象插入时显示。屏幕2300包括可被插入的可用实体的菜单2302。用户从菜单2302中选择的实体显示在"所选实体"区2304中,如图24所示。在此示例中,用户选择了"病人"。当做出了所希望的选择时,用户点击"下一步"按钮2306,以提交这一选择,并前进到图25示出的下一个屏幕2500。屏幕2500布置有多个输入区2502AI,它们是根据用户在"所选实体"区2304中指定的实体而选择的。也就是说,使用为所选实体定义的字段(即,此示例中的"姓"和"州")作为确定在屏幕2500上显示哪些字段的种子字段。在此情况中,"姓"是对应于"病人信息"表520的逻辑字段5103,其中,还为其指定了"名,,逻辑字段5102、"出生日期"逻辑字段5104和"性别"逻辑字段5106,作为相关实体。因而,这些逻辑字段的每一个都作为输入区(分别为输入区2502C、2502E和2502F)显示在屏幕2500中。类似地,使用种子字段"州,,来识别对应的物理实体(即,地址信息表521)及其相关逻辑字段。此外,必需字段(通过DAM502中的必需属性514的存在定义)被星号(*)标出。在此情况中,输入区2502A、2502B和2502C被标记为必需字段。此外,利用适当的值填充缺省字段中的产生字段。在本示例中,利用产生的值填充"病人ID"输入区2502D。由于输入区2502都不对应具有缺省属性518的逻辑字段规范,因此没有示出缺省值。通常,方法2700描述请求实体512和数据储存库抽象502之间的交互,其实现抽象删除。如同每个先前的抽象修改操作那样,抽象删除需要组成抽象规范。为此,请求实体512指定要删除的模型实体(步骤2702)。然后,确定所选择的模型实体的种子字段(步骤2704),其中,数据抽象模型502使用该种子字段来创建/更新抽象删除规范18022的抽象删除逻辑(步骤2706)。然后,请求实体512提供对于要删除的数据的选择条件(步骤2708)。将该选择条件添加到抽象删除规范18022的选择部分(步骤2710)。然后,运行时间组件150使用该抽象删除规范来产生可执行的物理删除规范。参考图28描述用于将抽象删除转换为物理删除的一种转换方法2800。当请求实体512提交执行删除操作的请求时,转换过程开始。运行时间组件150首先根据所指定的种子字段各自的物理实体将所指定的种子字段分组(步骤2802)。也就是说,运行时间组件150使用种子值(由请求实体512在步骤2702指定)和数据抽象模型502来定位要从中进行删除的物理实体。具体地说,识别对应于种子字段的数据抽象模型502的逻辑字段规范。所识别的逻辑字法)。对于每个物理实体(步骤2804),运行时间组件150根据在抽象删除规范24022中指定的选择条件产生选择逻辑(步骤2806)。使用所确定的物理实体和所产生的选择逻辑,运行时间组件构建物理删除语句(步骤2808),其被添加到删除语句列表2812中(步骤2810)。然后,删除语句列表2812中的语句被排序(步骤2814)和执行(步骤2816)。图29示出了用于在方法2800的步骤2806处产生选择逻辑的一个实施例。注意,步骤2806实质上包含执行图3的步骤306、308、310和312。因此,对于每个选择标准(步骤2902),从抽象组件502中检索指定字段定义(步骤2904)。构建具体/物理选择组分(步骤2卯6),然后将其添加到更新语句的选择部分(步骤2卯8)。用于构建具体/物理选择组分的逻辑基本上与关于图4针对查询所描述的相同,从而在这里将不再对其进行详细描述。参考图30描述在步骤2814执行的排序的一个实施例。最初,将"排序标志,,设置为假(步骤3002)。然后,对于删除语句列表2812中的每个删除语句执行一系列步骤,直到"排序标志"被设置为真为止(步骤3006、3008和第一删除语句开始),确定对应实体(步骤3012)。然后,确定给定插入语句的对应实体和删除语句列表2812中剩余删除语句的每个相关实体之间的关系(步骤3014和3016)。具体地说,运行时间组件150确定(针对物理实体关系规范526)给定删除语句的实体是否是相对于另一删除语句的次要相关实体的主要实体(步骤3016)。如果是这样,则将给定删除语句移动到相关实体的删除语句之后的位置(步骤3018)。重复这一过程,直到可以在没有遇到相对于删除语句列表2812中的后续语句的实体为主要的当前实体的情况下遍历删除语句列表2812为止。此时,根据在物理实体关系规范526中指定的关系,将删除语句列表2812中的物理删除语句排序。这一过程确保包含主要/夕卜部关键字对的主要关键字的主要实体在删除次要实体(包含外部关键字)之后被最后删除。应当注意,上述实施例仅仅是说明性的而不是唯一的。本领域技术人员将认识到本发明范围内的其它实施例。例如,上文描述了将顺序相关性定义为DAM148的一部分(例如,在物理实体关系规范526中定义顺序相关性)的实施例。这样,顺序相关性的改变需要抽象数据表示的改变,但允许不加改变地使用应用程序。替换实施例通过允许确定相关性时的更高程度的自动化来提供较不严格的顺序相关性的定义。也就是说,给定在抽象数据表示中定义的物理实体关系规范526,可以通过应用诸如以下内容的规则组来动态地确定操作排序(l)包含关键字字段的插入操作需要插入到任意相关实体之前的主要实体;(ii)可以限制包含关键字字段的更新操作,或者首先从主要实体然后是所有相关实体来自动传播该更新操作;(iii)可以限制含有包括关键字字段的行的删除操作,或者从次要实体向主要实体自动传播该删除操作;以及(iv)以任意顺序执行对完全不相关的实体的操作。在另一实施例中,考虑检查数据库,以查找引用完整性联结操作。在此情况中,数据库自己处理部分工作,并允许DAM148有效地"忽略"那些低级操作,而只执行高级操作。因而,本发明可"修补"传统数据库中的引用完整性漏洞,其中,所述漏洞由于被建立为使用该数据库的传统应用程序的假设而在数据库层上不再是固定的。在一个实施例中,数据抽象模型配置有单独地或共同地用于一个或多个逻辑字段规范的费率表。通常,费率表指示在抽象操作例如查询、插入、删除或更新中包含特定逻辑字段的费用。考虑到可以将费用结构施加到单个逻辑字段规范、逻辑字段的类别和/或模型实体上。在每种情况中,作为数据抽象模型的元数据来实现对应的费用结构。例如,参考图31,示出了图5的简化表示,其中,用于葡萄糖检验的逻辑字段规范51012具有相关的费率表530A。为简单起见,只有一个逻辑字段规范510被示出为具有费率表;然而,任意数目的DAM502的逻辑字段规范可包括费率表。配置有费率表530B的类别由人口统计类别508,来表示。同样,为简单起见,只有一个类别被示出为具有费率表。最后,模型实体506w的每一个被示出为分别具有相关的费率表530C-E。费率表530A-E的实施例可在图32中看到,图32示出了图31所示的DAM502的代表性详细视图。例如,人口统计类别508i的费率表530B包括为查询、插入和更新单独定义的费用。对于每个操作,费用可以是针对每个请求的(如查询费用和更新费用所示)、或者针对每个条目(如插入费用所示)。类似地,葡萄糖检验字段规范51012包括每个条目的查询费率表530A(在此情况中,其为一个属性)。现在参考图33,示出了模型实体规范602w的实施例。在上面参考图6描述了模型实体规范602w的其它元素,因而不在这里重复。在模型实体的情况中,各个费率表的属性可分布在用于每个操作的各部分上。因而,"病人,,模型实体506i包括实体的查询部分604!中的每个请求的查询费用属性、以及实体的插入部分6042中的每个条目的插入费用属性,而"检验"模型实体5062包括实体的查询部分6042中的每个条目的查询费用属性。为简-使起见,未示出"账户"模型实体5063。参考图31-33描述的实施例说明费用可基于各种粒度等级的数据。这些实施例仅仅是说明性的,并且本领域技术人员将认识到本发明范围内的其它实施例。例如,可以使费用随着量而改变,使得(i)返回大量结果的查询招致处罚(这可理想地阻止用户耗尽系统的性能资源);(ii)或者,返回大量结果的查询得到折扣(这可有助于数据提供者通过鼓励增多的使用来建立有竟争力的优点和/或增大利润)。图34-35示出了用于各种抽象操作的费用计算算法的实施例。为方便和简单起见,参考图34来一起描述对于查询和插入的费用计算。参考图35来单独描述对于更新的费用计算。在每种情况中,由图1示出的费用计算器151来实施该费用计算。注意,费用计算器151的至少一部分操作可以作为抽象操作运行时间的一部分来执行,或者可以使用交易和审计日志来在执行交易之后的某个时间计算适用的收费、作为"事后(afterthefact)"过程来实施。在此情况中,考虑到可以在执行交易之前警告用户(通过费用计算器151的操作)将对给定交易收费。现在参考图34,示出了对于查询和插入的费用计算算法3400的一个实施例。对于给定抽象操作,费用计算算法3400开始(在步骤3402)。然后,费用计算器151确定该抽象操作是否包括对模型实体的引用(步骤3404)。如果是这样,则费用计算器151确定(在步骤3406)引用模型实体是否定义了特定操作的费用(即,查询费用或插入费用)。如果是这样,则费用计算器151确定该费用是否是每个条目的费用(在步骤3408)。如果是这样,则更新"每个条目费用列表"(在步骤3410)。否则,假设该费用是每个请求的费用,在此情况中,更新"每个请求费用列表"3416(步骤3414)。在一个实施例中,每个条目费用列表3412包括对费用所施加的每个条目的引用以及对应的费用。相比之下,每个请求费用列表3416只需包括对于给定字段做出的每个请求的费用的记录。在任一情况中,对于给定抽象操作中指定的每个字段,算法3400随后进入循环(步骤3418)。如果任一步骤被否定地回答,则还从步骤3404和3406进入该循环。对于抽象操作的给定字段,算法3400确定(在步骤3420)是否为该字段定义操作费用(即,查询费用或插入费用)。如果没有,则处理前进到下述步骤3428。否则,费用计算器151确定(在步骤3422)该操作费用是否是针对每个条目。如果是这样,则费用计算器151更新每个条目费用列表3412(在步骤3426)。否则,更新每个请求费用列表3416(在步骤3424)。然后,费用计算器151识别(在步骤3428)正在被处理的给定字段的父类别。然后,对于包含正在处理的给定字段的每个类别(即,父类别、祖父类别、曾祖父类别等)进入(在步骤3430)循环。对于给定类别,费用计算器151确定是否为该类别定义了操作费用(在步骤3432)。对于具有所定义的操作费用的任意给定类别,费用计算器151随后确定该费用是否是每个条目的费用(在步骤3434)。如果是这样,则更新每个条目费用列表3412(步骤3436);否则,更新每个请求费用列表3416(步骤3438)。在处理了给定父类别的每个类别之后,算法3400返回到步骤3418,以开始处理抽象操作中的下一个字段。一旦以前述方式处理了抽象操作的每个字段,就可以根据每个条目费用列表3412和每个请求费用列表3416中包含的信息来计算抽象操作的总费用。在一个实施例中,费用计算器151首先将总费用初始化为O(在步骤3440)。然后,执行所述操作(在步骤3442)。在这一点上,考虑到费用计算器151不负责执行该操作,并且只是为了解释方便而示出步骤3442。在执行之前、期间和之后,费用计算器151对每个请求费用(基于每个请求费用列表3416中的信息)求和(在步骤3444),将和(在步骤3446)加到总费用上。然后,费用计算器151确定(步骤3444)查询结果(在所述操作是查询的情况中)的数目(N)、或条目(在所述操作是插入的情况中)的数目。对于每笔每个条目费用(F),费用计算器151计算N和F的积,并将积加到总费用上(步骤3450和3452)。现在参考图35,描述对于更新操作的费用计算算法3500(由费用计算器151执行)的一个实施例,对于给定抽象更新操作,算法3500开始(在步骤3502)。然后,对于更新中的每个字段,费用计算器151进入循环(步骤3504)。对于给定字段,费用计算器151确定(步骤3506)是否为该字段定义了更新费用。如果是这样,则费用计算器151确定(步骤3508)该更新费用是否针对每个条目。如果是这样,则更新每个条目费用列表3412(在步骤3512)。否则,费用计算器151更新每个请求费用列表3416(在步骤3560)。然后,费用计算器151识别(在步骤3514)正在处理的给定字段的父类别。然后,对于包含正在处理的给定字段的每个类别(即,父类别和该父类别的祖先类别),进入循环(在步骤3516)。对于给定类别,费用计算器151确定(在步骤3516)是否为该类别定义了更新费用。对于具有所定义的更新费用的任意给定类别,费用计算器151随后确定(在步骤3520)该费用是否是每个条目的费用。如果是这样,则更新每个条目费用列表3412(在步骤3522);否则,更新每个请求费用列表3416(步骤3524)。在处理了给定父类别的每个类别之后,算法3500返回到步骤3516,以开始处理抽象更新操作中的下一字段。当以前述方式处理了抽象更新操作的每个字段时,费用计算器151确定(在步骤3526)在模型实体中是否引用了给定字段。如果是这样,则费用计算器151确定(在步骤3528)引用模型实体是否定义了更新操作的费用。如果是这样,则费用计算器151确定(在步骤3530)该费用是否是每个条目的费用。如果是这样,则更新每个条目费用列表3412(在步骤3532)。否则,该费用是每个请求的费用,在此情况中,更新每个请求费用列表3416(步骤3534)。当处理了更新操作中包含的每个字段时,可以基于每个条目费用列表3412和每个请求费用列表3416中包含的信息计算抽象操作的总费用。在一个实施例中,费用计算器151首先将总费用初始化为O(在步骤3540)。然后,执行该操作(在步骤3542)。在这一点上,考虑到费用计算器151不负责执行该操作,并且只是为了解释方便而示出步骤3542。在执行之前、期间和之后,费用计算器151对每个请求费用(基于每个请求费用列表3516中的信息)求和(在步骤3544),并将和加(在步骤3546)到总费用上。然后,费用计算器151确定(在步骤3544)所更新的条目的数目(N)。对于每笔每个条目费用(F),费用计算器151计算N和F的积,并将积加到总费用上(步骤3550和3552)。参考图36-40来说明用于施加基于费用的模型的一个实施例,其中,图36-40示出了用于创建抽象查询的用户界面屏幕(例如,图1示出的浏览器程序122的用户界面屏幕),本领域技术人员将认识到可以对插入和更新操作使用类似的屏幕。首先参考图36,用户界面屏幕3600被示出为具有模型实体选择列表3602。在用于由图31所示的DAM502定义的三个模型实体(即,账户、病人和检验)的每一个的列表3602中提供了表示。屏幕3600还包括任意"每个请求费用,,区3604和"每个条目费用,,区3606。区3604、3606显示对于正由用户创建的抽象查询产生的连续的总费用。因此,区3604、3606最初是空白的、或者指示O美元的数量。然后,用户从列表3602中选择模型实体之一,并点击下一步按钮3608,从而向该用户呈现图37所示的用户界面屏幕3700。出于说明的目的,假设用户从列表3602中选择了病人模型实体。因此,"每个请求费用,,区3604现在显示一美元($1.00)的费用。这一美元的费用是参照图33示出的模型实体规范525计算的,其中,病人模型实体506i的查询部分60^对每个请求定义了一美元的费用。屏幕3700还包括输入区3702,其中,用户通过点击添加(ADD)按钮3707来指定所希望的查询条件,输入区3702调用条件选择菜单(未示出)。然后,用户点击下一步按钮3608。在图38中示出了说明性的查询条件。在本示例中,用户的查询包括逻辑字段葡萄糖检验,其具有每个条目的相关费用$0.50(如图32的费率表530A所示)。因此,3606的"每个条目费用"区显示$0.50的费用。如果查询包括具有相关的每个条目费用的其它逻辑字段,则可以在界面3700中提供另外的"每个条目费用"区。当指定了所希望的查询条件时,用户点击下一步按钮3608,并且随后,向该用户呈现图39示出的用户界面屏幕3900。用户界面屏幕3900包括用于显示由查询返回的结果字段的输入区3902。输入区3902显示为所选模型实体定义的任意必需字段,对于所选择的病人模型实体,其包括"病人ID"。输入区3902还显示由用户选择的任意结果字段,在一个实施例中,通过点击添加按钮3904来添加所述结果字段,以调用结果字段选择菜单(未示出)。在此示例中,用户指定的结果字段包括性别、葡萄糖冲全验和年龄,如图40所示。对于所指定的每个结果字段,费用计算器151确定附加费用是否适用。在本示例中,没有附加费用适用于所指定的结果字段。当完成所希望的抽象查询时,用户点击完成按钮3616,由此执行查询并返回结果。在图41中示出了说明性的结果屏幕4100。"总费用"区4102显示查询的总计算费用,在此示例中是$4.00。这$4.00是$2.00的每个请求费用和对于包含葡萄糖检验字段的4个结果的$2.00的和,其中每个结果为$0.50(4*$0.50=$2.00)。当计算了操作的总费用时,可以向用户显示该费用。可以应用各种支付模型来从用户收款。例如,在一个实施例中,用户可以是具有由数据提供者维护的帐号的订户。在每笔交易之后、或者在用户退出之后,可以对用户的账户自动收取所述总费用。在另一实施例中,可以在商业实体的控制下对计算机,即向用户提供网络访问的商店的计算机,执行所述操作。在此情况中,可以在用户离开商店之前向其收费。因此,在此描述的实施例提供了基于元数据的模型,该模型用于建立各个数据条目或数据集合的使用费用,由此,与一组数据相关的费用可以与为同一数据仓库或联合(federated)数据环境中的其它信息所建立的费用不同。除了基于所访问的信息的费用变化以外,所提出的费用模型还考虑了所执行的操作的类型(例如,数据检索、数据插入或数据更新)。这一模型允许与用于检索现有信息的费率表不同的用于存储新信息的费率表。费用计算器考虑由请求实体执行的交易、以及对于所访问的信息的适当费率表,以便达到对数据存储库的每笔交易的纯收费。在一个实施例中,该方法允许使用相同的数据更新在同一IT基础结构内管理高值和低值信息,并访问对于每个信息的应用程序,同时基于所访问的信息的值和/或向所存储的信息提供的服务等级建立不同的收费。在各种实施例中,可以提供众多的优点,在某些情况中,这些优点可以是优于现有技术的实质进步。现在参考特定的IT上下文描述这些优点的一部分(并且在上面提到了其它优点)。然而,实施例是否取得优点,以及这种优点是否可以被视为实质进步不是对本发明的限制。因此,下面描述的优点和上下文不会限定或限制本发明,本发明仅受到所附权利要求的限制。在一个实施例中,医学研究数据库包含每个对象的人口统计信息和相关的基因表达数据。数据库管理员将对包含更多时间消耗和昂贵的导出过程的基因表达数据的使用收取额外费用。与基因表达结果相关的逻辑字段可具有所确定的特定费用,其将允许向其它团体回收由此信息的值所导致的费用(和利润)。在另一实施例中,由于添加新病人需要一活动流程来建立病人希望提供给其个人信息的访问等级,因此管理多个机构的医疗记录信息的存储的医疗记录服务提供者将对存储关于新病人的信息收取额外费用。基于"病人"模型实体,以及具体地说,基于对此实体执行的插入操作建立特定费用结构的能力允许此类型请求的费用与提供较少相关服务(例如病人街道地址的更新)的其它请求的费用之间的差别。在另一实施例中,服务提供者建立提供相似值的字段集合的访问费率表。基于字段的逻辑组或字段类别建立费用的能力使这成为可能。部分前述实施例参考数据抽象模型描述了基于费用的数据访问。然而,本发明的实施例不限于在数据抽象模型中实现的费用配置(arrangement)。而是,构思了任意费用配置,其提供基于正在被访问的特定信息和/或要对该信息执行的操作的性质(查询、插入和更新)的费用。因而,例如,上述数据抽象模型的费用元数据也可以直接(即,不是由抽象模型逻辑地描述)表示物理字段(例如,图5示出的数据库504的物理字段)的费率表。例如,构思了数据库中的费用表,其中,该费用表定义访问或修改实体(表)或实体内的条目(表中的列)的请求的费率表。这一费率表还可被定义为对所执行的操作类型敏感,并且可以指示该费用是每个请求的费用还是每个条目的费用。例如,可以使用下面的表作为基于物理、关系模型的费率表。出于说明的目的,考虑检验实体,这一费率表将导致对于从检验表返回的信息的$0.50的每个条目费用、以及对于来自葡萄糖列的查询返回数据的附加的$0.50的每个条目费用。表1<table>tableseeoriginaldocumentpage52</column></row><table>尽管上文针对本发明的实施例,但是,在不背离本发明的基本范围、以及由所附权利要求确定的本发明的范围的情况下,可以设计出本发明的其它和另外的实施例。权利要求1.一种用于提供基于费用对数据进行访问的方法,包括提供逻辑地定义访问数据的抽象操作的抽象模型,该抽象模型包括(i)多个逻辑字段;(ii)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字段映射到数据的物理实体;以及(iii)用于所述多个逻辑字段的每一个的费率表,其中,用于给定逻辑字段的每个费率表定义当在抽象操作中包含该给定逻辑字段以访问对应于给定逻辑字段的物理实体时要收取的费用。2.如权利要求l所述的方法,还包括根据包括所述多个逻辑字段的至少两个的抽象操作来访问数据;以及根据对应于所述多个逻辑字段的至少两个的每一个的单独费率表计算要收取的费用。3.如权利要求l所述的方法,还包括提供运行时间组件,其配置有变换指令,以便将包括从所述多个逻辑字段中选择的逻辑字段的每个抽象操作变换为与物理数据一致的物理操作;以及提供费用计算器,其被配置为基于费率表计算执行物理操作的费用。4.如权利要求l所述的方法,其中,抽象操作是包括至少两个逻辑字段的抽象查询,该方法还包括访问用于所述至少两个逻辑字段的每一个的对应费率表;确定对于所述至少两个逻辑字段的第一个的每个请求的费用,其中,每个请求的费用是对包含所述至少两个逻辑字段的第一个的每个抽象操作收取的;以及确定对于所述至少两个逻辑字段的第二个的每个条目的费用,其中,每个条目的费用是对给定抽象操作中包含的所述至少两个逻辑字段的第二个的每个实例收取的。5.如权利要求4所述的方法,还包括将每个条目的费用乘以所述至少两个逻辑字段的第二个的实例数目,以确定积,并对这个积和每个请求的费用求和,以确定要收取的费用。6.如权利要求l的方法,其中,由抽象模型定义的至少一个费率表指定第一类操作的第一费用和第二类操作的第二费用;并且还包括基于所执行的操作类型计算要收取的费用。7.—种用于提供基于费用对物理数据进行访问的方法,所述物理数据包括多个物理实体,每个物理实体包括多个物理字段,该方法包括提供用于定义抽象操作规范的抽象模型,所述抽象操作规范逻辑地描述访问数据的操作,该抽象模型包括(a)多个逻辑字段;(b)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字段的每一个映射到数据的至少一个物理实体;(c)多个模型实体定义,每个包括对应于物理实体的物理字段的至少一个逻辑字段;以及(d)用于所迷多个逻辑字段的每一个的逻辑字段费率表,其中,这些费率表每个都指定用于作为物理操作一部分而访问对应物理字段的费用。8.如权利要求7所述的方法,还包括根据抽象模型将抽象操作规范变换为与物理数据一致的物理操作规范,其中,每个抽象操作规范包括所述多个模型实体定义的至少一个;以及基于费率表来计算执行物理操作的费用。9.一种用于提供基于费用对数据进行访问的方法,所述数据包括多个物理实体,每个物理实体包括多个物理字段,该方法包括接收执行访问数据的操作的指令;执行该操作;确定该操作访问的多个物理字段的每一个的字段特定费用;以及计算对于该操作要向用户收取的总费用。10.如权利要求9所述的方法,其中,物理实体是数据库表。11.如权利要求9所述的方法,其中,确定字段特定费用包括确定字段特定费用是每个请求的费用还是每个条目的费用,其中,每个请求的费用是对操作收取的单一费用,而与在该操作中包括的对应物理字段的实例数目无关,以及其中,对该操作中包括的对应物理字段的每个实例收取每个条目的费用。12.如权利要求9所述的方法,其中,确定字段特定费用包括访问用于由操作访问的每个分别的物理字段的费率表。13.如权利要求9所述的方法,其中,确定字段特定费用包括访问用于逻辑地定义访问数据的操作的抽象模型,该抽象模型包括(i)多个逻辑字段;(ii)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字^^映射到数据的物理实体;以及(iii)用于所述多个逻辑字段的每一个的费率表,其中,用于给定逻辑字段的每个费率表定义当抽象操作中包含该给定逻辑字段时要收取的费用,所述抽象操作访问对应于该给定逻辑字段的物理实体。14.如权利要求13所述的方法,其中,每个费率表定义每个请求的费用和每个条目的费用的至少一种,其中,每个请求的费用是对操作收取的单一费用,而与该操作中包括的对应逻辑字段的实例数目无关,以及其中,对该操作中包括的对应逻辑字段的每个实例收取每个条目的费用。15.如权利要求13所述的方法,还包括根据抽象模型将抽象搡作变换为与物理数据一致的物理操作,其中,每个抽象操作包括所述多个模型实体定义的至少一个;以及基于费率表计算执行物理操作的费用。16.—种包含程序的计算机可读介质,当处理器执行该程序时,其进行访问物理数据的操作,所述物理数据包括多个物理实体,每个物理实体具有多个物理字段,所述操作包括接收指令,以进行访问数据的操作;使得执行该操作;确定由该操作访问的多个物理字段的每一个的字段特定费用;以及计算对于该操作要向用户收取的总费用。17.—种用于构造由多个逻辑字段定义的抽象查询的方法,所述多个逻辑字段映射到数据库中具有特定物理数据表示的物理数据的多个物理实体,该方法包括通过用户界面接收用户输入,该输入包括对模型实体定义的引用,所述模型实体定义包括(i)两个或多个逻辑字段,每个都对应于单独的物理实体;以及(ii)用于根据模型实体定义访问物理实体的费率表;根据模型实体定义,将所述两个或多个逻辑字段的至少一个有选择地添加到抽象查询中;接收抽象查询的多个抽象查询组分,其中所述多个抽象查询组分由所选择的逻辑字段和所选择的逻辑字段的每一个的对应值定义;接收抽象查询的多个结果字段,其中所述多个结果字段由所选择的逻辑字段定义;将抽象查询转换为与数据的特定物理数据表示一致的物理查询;执行该物理查询;以及在费率表的基础上,计算对于执行该物理查询要收取的费用。18.如权利要求17所述的方法,其中,有选择地添加所述两个或多个逻辑字段的至少一个包括确定所述至少一个逻辑字段是否是由模型实体定义指定的必需字段;并且如果是这样,则将所述至少一个逻辑字段添加到抽象查询中。19.如权利要求17所述的方法,其中,对于所述两个或多个逻辑字段的第一个定义每个请求的费用,而对于所述两个或多个逻辑字段的第二个定义每个结果的费用,并且其中,计算所述费用包括(i)计算每个结果的费用和所述两个或多个逻辑字段的第二个的结果数目的积;以及(ii)对这个积和每个请求的费用求和。20.如权利要求17所述的方法,其中,将抽象查询转换为物理查询包括将抽象查询的每个逻辑字段映射到物理数据的各个物理实体。21.—种用于修改数据库中的物理数据的方法,所述物理数据包括多个物理实体、并具有特定的物理数据表示,该方法包括接收对抽象修改操作的选择;接收对在其上进行抽象修改操作的模型实体定义的选择,该模型实体定义包括两个或多个逻辑字段,每一个都对应于单独的物理实体;至少基于所接收的选择,产生至少两个物理修改语句,每个语句修改所述物理数据的两个单独物理实体之一;对所述至少两个物理修改语句排序;根据物理修改语句执行修改操作,由此修改数据;以及基于所定义的模型实体定义的费率表,计算用于执行修改操作要收取的费用。22.如权利要求21所述的方法,其中,根据物理实体关系规范进行排序,所述物理实体关系规范定义数据的物理实体之间的分级关系,以保证数据的完整性。23.如权利要求21所述的方法,其中,根据将所述两个或多个逻辑字段映射到其对应物理实体的映射规则,构建所述至少两个物理修改操作。24.—种提供用于定义访问物理数据的抽象操作的逻辑框架的方法,所述物理数据包括多个物理实体,每个物理实体包括多个物理字段,该方法包括提供用于定义抽象操作规范的抽象模型,所述抽象操作规范逻辑地描述访问数据的操作,该抽象模型包括(a)多个逻辑字段;(b)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字段的每一个映射到数据的至少一个物理实体;(c)多个模型实体定义,其每一个都包括对应于物理实体的物理字段的至少一个逻辑字段;以及(d)用于所述多个模型实体定义的每一个的模型实体费率表,其中,这些费率表每一个都指定用于访问对应模型实体定义的物理字段的费用;以及提供运行时间组件,以便根据抽象模型将抽象操作规范变换为与物理数据一致的物理操作规范,其中,每个抽象操作规范包括所述多个模型实体定义的至少一个用户选择的模型实体定义。25.如权利要求24所述的方法,其中,抽象操作规范是抽象查询,并且还包括通过用户界面接收包括多个查询条件的抽象查询、结果字段和对模型实体定义之一的选择;访问对应于所述选择的模型实体定义;确定对应于所述选择的模型实体定义是否指定了一个或多个必需结果字段;并且如果是这样,则将所述一个或多个必需字段添加到查询中。26.如权利要求24所述的方法,还包括通过运行时间组件变换并且根据抽象模型,将单个抽象操作规范变换为与物理数据一致的至少两个单独的物理操作规范,其中,每个物理操作规范修改数据的不同物理实体,并且其中,根据定义数据的物理实体之间的分级关系的物理实体关系规范,将每个物理操作规范排序以便执行。27.如权利要求24所述的方法,还包括请求实体发出执行单个抽象操作规范的请求;以及运行时间组件将所述单个抽象操作规范变换为至少两个物理操作规范,以修改数据。28.如权利要求27所述的方法,其中,将单个抽象操作规范变换为所述至少两个物理操作规范包括产生所述至少两个物理操作规范;以及根据抽象模型的物理实体关系规范,将所述至少两个物理操作规范排序。29.如权利要求24所述的方法,其中,每个映射规则包括对所述多个逻辑字段之一的访问方法,其中该访问方法描述数据的物理实体的位置。30.如权利要求24所述的方法,还包括用于所述多个逻辑字段的每一个的逻辑字段费率表,其中,这些费率表每个都指定用于作为物理操作规范一部分而访问对应物理字段的费用。31.—种包含程序的计算机可读介质,当由处理器执行该程序时,其提供用于定义抽象查询操作的逻辑框架,该程序包括用于定义抽象查询的抽象模型,所述抽象查询逻辑地描述查询数据的操作,该抽象模型包括(i)多个逻辑字段;(ii)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字段映射到数据的物理实体;以及(iii)用于所述多个逻辑字段的每一个的费率表;运行时间组件,其配置有变换指令,以便将包括从所述多个逻辑字段中选择的逻辑字段的抽象查询变换为与物理数据一致的物理查询;以及费用计算器,其配置为根据费率表计算用于执行物理查询的费用。32.—种计算机,包括存储器和至少一个处理器,并且还包括用于定义修改物理数据的抽象修改操作的逻辑框架,该逻辑框架包括用于定义抽象修改规范的抽象模型,所述抽象修改规范逻辑地描述修改数据的操作,该抽象模型包括(i)多个逻辑字段;(ii)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字段映射到数据的物理实体;以及(iii)用于所述多个逻辑字段的每一个的费率表;运行时间组件,用于将包括从所述多个逻辑字段中选择的逻辑字段的抽象查询变换为与物理数据一致的物理查询;以及费用计算器,其配置为根据费率表计算用于执行物理查询的费用。33.如权利要求31所述的计算机,其中,每个费率表定义每个请求的费用和每个条目的费用的至少一种,其中,每个请求的费用是对操作收取的单一费用,而与该操作中包括的对应逻辑字段的实例数目无关,以及其中,对该操作中包括的对应逻辑字段的每个实例收取每个条目的费用。34.—种用于提供基于费用对数据进行访问的方法,所述数据包括多个物理实体,每个物理实体包括多个物理字段,所述方法包括通过用户界面接收用户输入,该用户输入包括用于访问所述多个物理字段的所选择字段的数据的操作指令;确定所选择字段的每一个的字段特定费用;计算对于访问所选字段要向用户收取的费用;以及通过用户界面向用户显示该费用。35.如权利要求34所述的方法,其中,确定字段特定费用包括访问用于由所述操作访问的每个分别的物理字段的费率表。36.—种用于显示基于费用对数据进行访问的费用信息的方法,所述数据包括多个物理实体,每个物理实体包括多个物理字段,该方法包括显示一个或多个用于构造查询的用户界面屏幕;通过所述一个或多个用户界面屏幕接收用户输入,该用户输入定义被配置为访问所述多个物理字段的所选字段的查询;以及通过一个或多个用户界面屏幕,显示对于每个所选字段的字段特定访问费用。全文摘要一种用于提供基于费用对数据进行访问的方法,包括提供逻辑地定义访问数据的抽象操作的抽象模型,该抽象模型包括(i)多个逻辑字段;(ii)用于所述多个逻辑字段的每一个的映射规则,其将所述多个逻辑字段映射到数据的物理实体;以及(iii)用于所述多个逻辑字段的每一个的费率表,其中,用于给定逻辑字段的每个费率表定义当在抽象操作中包含该给定逻辑字段以访问对应于给定逻辑字段的物理实体时要收取的费用。文档编号G06Q30/00GK101410865SQ200480001554公开日2009年4月15日申请日期2004年6月23日优先权日2003年6月23日发明者理查德·史蒂文斯,理查德·德廷杰申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1