專利名稱::處理數(shù)據(jù)庫查詢的系統(tǒng)和方法
技術(shù)領(lǐng)域:
:本發(fā)明一般涉及處理數(shù)據(jù)庫查詢,并更具體地涉及基于關(guān)聯(lián)于所查詢的實(shí)體的限制來過濾查詢結(jié)果。
背景技術(shù):
:數(shù)據(jù)庫是計(jì)算機(jī)化的信息存儲(chǔ)和檢索系統(tǒng)。關(guān)系數(shù)據(jù)庫管理系統(tǒng)是使用用于存儲(chǔ)和檢索數(shù)據(jù)的關(guān)系技術(shù)的計(jì)算機(jī)數(shù)據(jù)庫管理系統(tǒng)(DBMS)。最普遍類型的數(shù)據(jù)庫是關(guān)系數(shù)據(jù)庫,其是表格式的數(shù)據(jù)庫,其中數(shù)據(jù)被定義從而數(shù)據(jù)可用多種不同方式來重新組織和訪問。分布式數(shù)據(jù)庫是可在網(wǎng)絡(luò)的不同點(diǎn)之間分散或復(fù)制的數(shù)據(jù)庫。面向?qū)ο缶幊虜?shù)據(jù)庫是與在對(duì)象類和子類中定義的數(shù)據(jù)相一致的數(shù)據(jù)庫。不管具體的體系結(jié)構(gòu)如何,DBMS都可被結(jié)構(gòu)化,以支持多種不同類型的操作。所述操作可被配置來檢索、添加、修改和刪除由DBMS存儲(chǔ)和管理的信息。標(biāo)準(zhǔn)的數(shù)據(jù)庫訪問方法使用高級(jí)查詢語言(諸如結(jié)構(gòu)化查詢語言(SQL))來支持這些操作。術(shù)語“查詢”命名了一組命令,其導(dǎo)致了用于處理來自存儲(chǔ)的數(shù)據(jù)庫中的數(shù)據(jù)的操作的執(zhí)行。例如,SQL支持四類查詢操作,即,SELECT、INSERT、UPDATE和DELETE。SELECT操作從數(shù)據(jù)庫中檢索數(shù)據(jù),INSERT操作將新數(shù)據(jù)添加到數(shù)據(jù)庫,UPDATE操作修改數(shù)據(jù)庫中的數(shù)據(jù),而DELETE操作從數(shù)據(jù)庫中移除數(shù)據(jù)。包括應(yīng)用、操作系統(tǒng)和用戶在內(nèi)的任何請(qǐng)求實(shí)體可發(fā)出對(duì)于數(shù)據(jù)庫中的數(shù)據(jù)的查詢。查詢可以是預(yù)定義的(即,硬編碼作為應(yīng)用的一部分)或可以響應(yīng)于輸入(例如用戶輸入)而生成。一旦執(zhí)行了對(duì)數(shù)據(jù)庫的查詢,就向請(qǐng)求實(shí)體返回結(jié)果集合。用戶運(yùn)行查詢時(shí)的困難之一是辨別來自結(jié)果集合的相關(guān)信息。具體而言,用戶通常嘗試從“實(shí)體”的角度理解結(jié)果集合,即,用戶通常將查詢結(jié)果關(guān)聯(lián)于與結(jié)果集合有關(guān)的邏輯實(shí)體。例如,在醫(yī)療數(shù)據(jù)環(huán)境中,研究的重點(diǎn)通常是患者(一類實(shí)體)。醫(yī)療數(shù)據(jù)環(huán)境中的大多數(shù)相關(guān)數(shù)據(jù)的形式是連續(xù)范圍的值,這意味著患者可以有多次測(cè)試,其中對(duì)于每次測(cè)試具有不同值。結(jié)果,給定結(jié)果集合可包含每個(gè)患者的多個(gè)數(shù)據(jù)記錄。例如,假設(shè)在醫(yī)院中執(zhí)行用于確定關(guān)于患者的信息的統(tǒng)計(jì)分析的研究者,當(dāng)所述患者服用了特定藥品時(shí)在某時(shí)間內(nèi)對(duì)所述患者執(zhí)行了一次或多次血紅蛋白測(cè)試。此外,假設(shè)研究者想要查看每個(gè)患者的僅僅前三次血紅蛋白測(cè)試值的顯示。這樣做可以協(xié)助研究者標(biāo)識(shí)出具有反常的高血紅蛋白級(jí)別的患者。通過示例,假設(shè)所述反常的高血紅蛋白級(jí)別值可被用于標(biāo)識(shí)出是否需要對(duì)所關(guān)心的患者進(jìn)行進(jìn)一步的診斷測(cè)試?,F(xiàn)在假設(shè)研究者發(fā)出對(duì)于一個(gè)或多個(gè)底層數(shù)據(jù)庫的單個(gè)查詢,以確定關(guān)于患者的所需信息。再假設(shè)該查詢對(duì)于底層數(shù)據(jù)庫執(zhí)行,由此獲得單個(gè)結(jié)果集合,其對(duì)于每個(gè)患者具有多個(gè)數(shù)據(jù)記錄。為了查看每個(gè)患者的僅僅前三次血紅蛋白測(cè)試值的顯示,研究者需要從所獲得的結(jié)果集合中手動(dòng)標(biāo)識(shí)出相關(guān)的數(shù)據(jù)記錄。不過,從結(jié)果集合中手動(dòng)標(biāo)識(shí)出相關(guān)的數(shù)據(jù)記錄的過程是乏味的過程,其易于出錯(cuò)并且耗時(shí),尤其是當(dāng)該結(jié)果集合很龐大時(shí)。因此,需要一種用于限制在查詢的結(jié)果集合中返回的數(shù)據(jù)記錄的數(shù)量的高效技術(shù),尤其是當(dāng)查詢可能關(guān)注與所查詢的實(shí)體實(shí)例有關(guān)的某些數(shù)據(jù)時(shí)。
發(fā)明內(nèi)容本發(fā)明一般地涉及一種用于過濾查詢結(jié)果的方法、系統(tǒng)和制品,并更具體地涉及一種用于限制在查詢的結(jié)果集合中返回的數(shù)據(jù)記錄的數(shù)量的方法、系統(tǒng)和制品。本發(fā)明的一實(shí)施例包括一種處理對(duì)具有多個(gè)數(shù)據(jù)記錄的數(shù)據(jù)庫的數(shù)據(jù)庫查詢的計(jì)算機(jī)實(shí)現(xiàn)的方法。所述方法一般包括從請(qǐng)求實(shí)體接收抽象查詢,所述抽象查詢標(biāo)識(shí)定義所述查詢的重點(diǎn)的模型實(shí)體,并包括至少一個(gè)結(jié)果字段規(guī)范,所述結(jié)果字段規(guī)范包括將從數(shù)據(jù)庫返回?cái)?shù)據(jù)的一個(gè)或多個(gè)結(jié)果字段,其中在抽象地描述數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)抽象模型中定義所述模型實(shí)體。所述方法一般還包括接收被配置限制所述抽象查詢的結(jié)果集合的限制請(qǐng)求,所述限制請(qǐng)求指定與響應(yīng)于所述查詢被返回的所述底層模型實(shí)體的一個(gè)或多個(gè)實(shí)例的數(shù)據(jù)記錄集合有關(guān)的限制;以及從所述抽象查詢中并關(guān)于所述數(shù)據(jù)抽象模型生成能夠被查詢引擎執(zhí)行的可執(zhí)行查詢。所述方法一般還包括基于所述限制請(qǐng)求修改所述可執(zhí)行查詢;執(zhí)行對(duì)所述數(shù)據(jù)庫的經(jīng)修改的可執(zhí)行查詢,以得到結(jié)果集合,由此所述結(jié)果集合按照所述限制請(qǐng)求所請(qǐng)求的那樣被限制;以及將受限制的結(jié)果集合輸出到所述請(qǐng)求實(shí)體。本發(fā)明的另一實(shí)施例包括一種包含程序的計(jì)算機(jī)可讀媒體,所述程序當(dāng)被處理器執(zhí)行時(shí),執(zhí)行用于處理對(duì)具有多個(gè)數(shù)據(jù)記錄的數(shù)據(jù)庫的數(shù)據(jù)庫查詢的操作。所述操作一般包括從請(qǐng)求實(shí)體接收抽象查詢,所述抽象查詢標(biāo)識(shí)定義所述查詢的重點(diǎn)的模型實(shí)體,并包括至少一個(gè)結(jié)果字段規(guī)范,所述結(jié)果字段規(guī)范包括將從數(shù)據(jù)庫返回?cái)?shù)據(jù)的一個(gè)或多個(gè)結(jié)果字段,其中在抽象地描述數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)抽象模型中定義所述模型實(shí)體;以及接收被配置限制所述抽象查詢的結(jié)果集合的限制請(qǐng)求,所述限制請(qǐng)求指定與響應(yīng)于所述查詢被返回的所述底層模型實(shí)體的一個(gè)或多個(gè)實(shí)例的數(shù)據(jù)記錄集合有關(guān)的限制。所述操作一般還包括從所述抽象查詢中并關(guān)于所述數(shù)據(jù)抽象模型生成能夠被查詢引擎執(zhí)行的可執(zhí)行查詢;基于所述限制請(qǐng)求修改所述可執(zhí)行查詢;執(zhí)行對(duì)所述數(shù)據(jù)庫的經(jīng)修改的可執(zhí)行查詢,以得到結(jié)果集合,由此所述結(jié)果集合按照所述限制請(qǐng)求所請(qǐng)求的那樣被限制;以及將受限制的結(jié)果集合輸出到所述請(qǐng)求實(shí)體。本發(fā)明的再一實(shí)施例提供一種包含程序的計(jì)算機(jī)可讀媒體,所述程序當(dāng)被處理器執(zhí)行時(shí),執(zhí)行用于處理對(duì)具有多個(gè)數(shù)據(jù)記錄的數(shù)據(jù)庫的數(shù)據(jù)庫查詢的操作。所述操作一般包括從請(qǐng)求實(shí)體接收抽象查詢,所述抽象查詢標(biāo)識(shí)定義所述查詢的重點(diǎn)的模型實(shí)體,并包括至少一個(gè)結(jié)果字段規(guī)范,所述結(jié)果字段規(guī)范包括將從數(shù)據(jù)庫返回?cái)?shù)據(jù)的一個(gè)或多個(gè)結(jié)果字段,其中所述抽象查詢的每個(gè)結(jié)果字段是抽象地描述數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)抽象模型的邏輯字段,所述數(shù)據(jù)抽象模型被配置允許基于所述抽象查詢的一個(gè)或多個(gè)邏輯字段,以與數(shù)據(jù)庫中的數(shù)據(jù)的物理表示相一致的形式來生成可執(zhí)行查詢。所述操作一般還包括接收被配置限制所述抽象查詢的結(jié)果集合的限制請(qǐng)求,所述限制請(qǐng)求指定與響應(yīng)于所述查詢被返回的所述底層模型實(shí)體的一個(gè)或多個(gè)實(shí)例的數(shù)據(jù)記錄集合有關(guān)的限制;從所述抽象查詢中生成能夠被查詢引擎執(zhí)行的可執(zhí)行查詢。所述操作一般還包括基于所述限制請(qǐng)求修改所述可執(zhí)行查詢;執(zhí)行對(duì)所述數(shù)據(jù)庫的經(jīng)修改的可執(zhí)行查詢,以得到結(jié)果集合,由此所述結(jié)果集合按照所述限制請(qǐng)求所請(qǐng)求的那樣被限制;以及將受限制的結(jié)果集合輸出到所述請(qǐng)求實(shí)體。由于本發(fā)明的上述特征、優(yōu)點(diǎn)和目的被獲得并可被詳細(xì)理解的方式,可以通過參考在附圖中示出的的本發(fā)明實(shí)施例得到以上簡(jiǎn)要概述的本發(fā)明的更具體的描述。不過,需要注意,附圖僅示出本發(fā)明的典型實(shí)施例,并因此不會(huì)被認(rèn)為是限制其范圍,因?yàn)楸景l(fā)明可容許其它等效實(shí)施例。圖1示出可根據(jù)本發(fā)明使用的計(jì)算機(jī)系統(tǒng);圖2是在一實(shí)施例中的定義查詢創(chuàng)建和執(zhí)行環(huán)境的軟件組件的關(guān)系視圖;圖3A-3B是在一實(shí)施例中的定義抽象查詢創(chuàng)建和執(zhí)行環(huán)境的軟件組件的關(guān)系視圖;以及圖4-6是示出在一實(shí)施例中的運(yùn)行時(shí)組件的操作的流程圖。具體實(shí)施例方式本發(fā)明一般涉及一種用于過濾查詢結(jié)果的方法、系統(tǒng)和制品,并具體而言涉及一種用于基于模型實(shí)體限制而限制在查詢的結(jié)果集合中返回的數(shù)據(jù)記錄的數(shù)量的方法、系統(tǒng)和制品。一般而言,響應(yīng)于執(zhí)行對(duì)于一個(gè)或多個(gè)底層數(shù)據(jù)庫(每個(gè)具有多個(gè)數(shù)據(jù)記錄)的查詢而獲得查詢的結(jié)果集合。查詢包括來自底層數(shù)據(jù)庫的數(shù)據(jù)將被返回結(jié)果集合中的至少一個(gè)結(jié)果字段。根據(jù)一方面,使用抽象地描述底層數(shù)據(jù)庫中的物理數(shù)據(jù)的一個(gè)或多個(gè)數(shù)據(jù)抽象模型來訪問底層數(shù)據(jù)庫中的多個(gè)數(shù)據(jù)記錄。因此,通過使用數(shù)據(jù)抽象模型,對(duì)物理數(shù)據(jù)的抽象查詢可被構(gòu)建,而不管底層物理數(shù)據(jù)庫所使用的結(jié)構(gòu)或表示。數(shù)據(jù)抽象模型提供的查詢單元被用于生成來自抽象查詢的可執(zhí)行查詢。例如,如以下更詳細(xì)描述的,被用于組成抽象查詢的查詢單元可定義一種訪問方法,所述方法被用于從向用戶呈現(xiàn)的查詢單元的邏輯表示到由底層物理數(shù)據(jù)庫使用的物理表示進(jìn)行映射。以與物理數(shù)據(jù)的物理表示相一致的形式生成可執(zhí)行查詢。在一實(shí)施例中,抽象查詢標(biāo)識(shí)出定義將在抽象查詢的結(jié)果集合中返回的數(shù)據(jù)記錄的重點(diǎn)的模型實(shí)體,諸如醫(yī)療機(jī)構(gòu)的患者。一般而言,“模型實(shí)體”定義從提交查詢的用戶或應(yīng)用的角度看來的重點(diǎn)。在一實(shí)施例中,抽象查詢可關(guān)聯(lián)于限制請(qǐng)求,其被用于響應(yīng)于抽象查詢而限制數(shù)據(jù)記錄的結(jié)果集合。為此目的,限制請(qǐng)求指定在結(jié)果集合中返回的底層模型實(shí)體的一個(gè)或多個(gè)實(shí)例的數(shù)據(jù)記錄的限制。例如,限制請(qǐng)求可指示從底層數(shù)據(jù)庫返回的對(duì)于每個(gè)患者(或根據(jù)具體情況而定的其它模型實(shí)體)的數(shù)據(jù)記錄的最大數(shù)量?;诔橄蟛樵?,能夠被查詢引擎執(zhí)行的可執(zhí)行查詢被生成??蓤?zhí)行查詢基于限制查詢被修改,以反映所請(qǐng)求的限制。接著,經(jīng)修改的可執(zhí)行查詢對(duì)于底層數(shù)據(jù)庫執(zhí)行,以獲得按照限制請(qǐng)求所請(qǐng)求那樣被限制的經(jīng)過濾的結(jié)果集合。優(yōu)選實(shí)施例在下文中參考本發(fā)明實(shí)施例。不過,應(yīng)該理解,本發(fā)明并不限于特定描述的實(shí)施例。而是,以下特征和單元的任何組合不論是否涉及不同實(shí)施例均被預(yù)期實(shí)現(xiàn)和實(shí)踐本發(fā)明。此外,在各種實(shí)施例中,本發(fā)明提供優(yōu)于現(xiàn)有技術(shù)的多種優(yōu)點(diǎn)。不過,盡管本發(fā)明的實(shí)施例可實(shí)現(xiàn)優(yōu)于其它可能的解決方案和/或優(yōu)于現(xiàn)有技術(shù)的優(yōu)點(diǎn),但是是否由給定實(shí)施例實(shí)現(xiàn)特定優(yōu)點(diǎn)不會(huì)限制本發(fā)明。因此,以下方面、特征、實(shí)施例和優(yōu)點(diǎn)僅是說明性的,并且除非明確表示之外,它們均不被認(rèn)為是權(quán)利要求的要素或限制。本發(fā)明的一實(shí)施例被實(shí)現(xiàn)為用于與計(jì)算機(jī)系統(tǒng)(例如圖1所示并在以下描述的計(jì)算機(jī)系統(tǒng)110)一起使用的程序產(chǎn)品。程序產(chǎn)品的程序定義實(shí)施例的功能(包括此處描述的方法),并可被包含在多種計(jì)算機(jī)可讀媒體中。說明性的計(jì)算機(jī)可讀媒體包括但不限于(i)永久存儲(chǔ)在不可寫存儲(chǔ)媒體(例如,計(jì)算機(jī)內(nèi)的只讀存儲(chǔ)器設(shè)備,諸如可由CD-ROM驅(qū)動(dòng)器讀取的CD-ROM盤)上的信息;(ii)存儲(chǔ)在可寫存儲(chǔ)媒體(例如,軟盤驅(qū)動(dòng)器內(nèi)的軟盤或硬盤驅(qū)動(dòng)器)上的可變信息;或者(iii)通過包括無線通信的通信媒體(諸如通過計(jì)算機(jī)或電話網(wǎng)絡(luò))傳送到計(jì)算機(jī)的信息。后一實(shí)施例特別包括到/來自因特網(wǎng)和其它網(wǎng)絡(luò)的信息。所述計(jì)算機(jī)可讀媒體當(dāng)承載引導(dǎo)本發(fā)明功能的計(jì)算機(jī)可讀指令時(shí)表示了本發(fā)明實(shí)施例。一般而言,被執(zhí)行來實(shí)現(xiàn)本發(fā)明實(shí)施例的例程可以是操作系統(tǒng)或者特定應(yīng)用、組件、程序、模塊、對(duì)象或指令序列的一部分。本發(fā)明的軟件典型地包括將被本地計(jì)算機(jī)翻譯成機(jī)器可讀格式(并從而成為可執(zhí)行指令)的多個(gè)指令。同樣,程序包括變量和數(shù)據(jù)結(jié)構(gòu),其本地駐留于程序中或在存儲(chǔ)器或存儲(chǔ)設(shè)備上找到。此外,下文中描述的多種程序可基于在本發(fā)明的特定實(shí)施例中實(shí)現(xiàn)所述程序的應(yīng)用而被標(biāo)識(shí)。不過,應(yīng)該理解,使用以下的任何特定命名法僅是為了方便起見,并因此本發(fā)明不應(yīng)被限制于僅在由這種命名法所標(biāo)識(shí)和/或暗示的任何特定應(yīng)用中使用。示例性計(jì)算環(huán)境圖1示出根據(jù)本發(fā)明實(shí)施例的、當(dāng)配置了這里描述的特征和功能之時(shí)即成為專用計(jì)算機(jī)的計(jì)算機(jī)100(其是計(jì)算機(jī)系統(tǒng)110的一部分)。計(jì)算機(jī)100可代表任何類型的計(jì)算機(jī)、計(jì)算機(jī)系統(tǒng)或其它可編程電子設(shè)備,包括客戶機(jī)計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、便攜式計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、嵌入式控制器、基于PC的服務(wù)器、小型計(jì)算機(jī)、中型計(jì)算機(jī)、大型計(jì)算機(jī)、以及適于支持本發(fā)明的方法、裝置和制品的其它計(jì)算機(jī)。說明性地,計(jì)算機(jī)100是連網(wǎng)系統(tǒng)110的一部分。在這點(diǎn)上,本發(fā)明可在分布式計(jì)算環(huán)境中實(shí)踐,在分布式計(jì)算環(huán)境中由通過通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備來執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。在另一實(shí)施例中,計(jì)算機(jī)100是獨(dú)立設(shè)備。出于解釋權(quán)利要求的目的,術(shù)語“計(jì)算機(jī)”意味著具有至少一個(gè)處理器的任何計(jì)算機(jī)化的設(shè)備。計(jì)算機(jī)可以是單獨(dú)設(shè)備或網(wǎng)絡(luò)的一部分,在網(wǎng)絡(luò)的情形中計(jì)算機(jī)可以被通信裝置(例如,局域網(wǎng)或廣域網(wǎng))耦合到另一設(shè)備(即,另一計(jì)算機(jī))。在任一情形中,應(yīng)該理解,圖1僅是計(jì)算機(jī)系統(tǒng)的一種配置。本發(fā)明的實(shí)施例可應(yīng)用于任何可比擬的配置,而不管計(jì)算機(jī)100是復(fù)雜的多用戶裝置、單用戶工作站、還是其本身不具有非易失性存儲(chǔ)裝置的網(wǎng)絡(luò)設(shè)備。計(jì)算機(jī)100可包括多個(gè)操作者和外圍系統(tǒng),如圖所示,它們例如通過海量存儲(chǔ)接口137操作連接于存儲(chǔ)設(shè)備138,通過視頻接口140操作連接于顯示器142,并且通過網(wǎng)絡(luò)接口144經(jīng)由適當(dāng)?shù)木W(wǎng)絡(luò)操作連接于多個(gè)連網(wǎng)設(shè)備146(其可以表示因特網(wǎng))。盡管存儲(chǔ)裝置138被示為單個(gè)設(shè)備,但其可以是固定和/或可移除存儲(chǔ)設(shè)備的任何組合,諸如固定盤驅(qū)動(dòng)器、軟盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、可移除存儲(chǔ)卡或光學(xué)存儲(chǔ)裝置。顯示器142可以是用于輸出可查看信息的任何視頻輸出設(shè)備。所示出的計(jì)算機(jī)100包括至少一個(gè)處理器112,處理器112包含經(jīng)由總線114來自主存儲(chǔ)器116的指令和數(shù)據(jù)。處理器112可以是適于支持本發(fā)明的方法的任何處理器。具體而言,計(jì)算機(jī)處理器112被選擇來支持本發(fā)明的特征。說明性地,處理器是可從紐約Armonk的國(guó)際商業(yè)機(jī)器公司買到的PowerPC處理器。主存儲(chǔ)器116是大到足以保有必須的程序和數(shù)據(jù)結(jié)構(gòu)的任何存儲(chǔ)器。主存儲(chǔ)器116可以是包括隨機(jī)存取存儲(chǔ)器、非易失性或后備存儲(chǔ)器(例如,可編程或閃速存儲(chǔ)器、只讀存儲(chǔ)器等)在內(nèi)的存儲(chǔ)器設(shè)備之一或其組合。此外,存儲(chǔ)器116可以被看成包括物理上位于計(jì)算機(jī)系統(tǒng)110之外的別處的存儲(chǔ)器,例如,被用作虛擬存儲(chǔ)器或被存儲(chǔ)在海量存儲(chǔ)設(shè)備(例如直接存取存儲(chǔ)設(shè)備138)上或經(jīng)由總線114耦合于計(jì)算機(jī)100的另一計(jì)算機(jī)上的任何存儲(chǔ)容量。因此,主存儲(chǔ)器116和存儲(chǔ)設(shè)備138可以是跨多個(gè)主存儲(chǔ)設(shè)備和次級(jí)存儲(chǔ)設(shè)備的一個(gè)虛擬地址空間的一部分。示例性查詢創(chuàng)建和執(zhí)行環(huán)境現(xiàn)在參考圖2,示出了在一實(shí)施例中的軟件組件的關(guān)系視圖。軟件組件說明性地包括用戶界面210、DBMS250、一個(gè)或多個(gè)應(yīng)用220(為了簡(jiǎn)明僅示出一個(gè)應(yīng)用)和抽象模型接口230。抽象模型接口230說明性地提供到數(shù)據(jù)抽象模型232和運(yùn)行時(shí)組件234的接口。DBMS250說明性地包括數(shù)據(jù)庫214和具有查詢引擎256的查詢執(zhí)行單元254。根據(jù)一方面,應(yīng)用220(以及更一般地,任何請(qǐng)求實(shí)體)發(fā)出對(duì)數(shù)據(jù)庫214的查詢。為了簡(jiǎn)明數(shù)據(jù)庫214被示為單個(gè)數(shù)據(jù)庫。不過,給定查詢可對(duì)于多個(gè)數(shù)據(jù)庫執(zhí)行,所述多個(gè)數(shù)據(jù)庫可以彼此相對(duì)分布。此外,一個(gè)或多個(gè)數(shù)據(jù)庫可被分布于一個(gè)或多個(gè)連網(wǎng)設(shè)備(例如圖1的連網(wǎng)設(shè)備146)。數(shù)據(jù)庫214表示任何數(shù)據(jù)集合,而不管該數(shù)據(jù)的具體物理表示。數(shù)據(jù)的具體物理表示定義數(shù)據(jù)的組織模式。通過圖示,數(shù)據(jù)庫214可根據(jù)關(guān)系模型(可通過SQL查詢來訪問)或根據(jù)XML模式(可通過XML查詢?cè)L問)來組織。不過,本發(fā)明并不限于特定模式,并預(yù)期擴(kuò)展到當(dāng)前未知的模式。如這里所使用的,術(shù)語“模式”指代數(shù)據(jù)的具體排列。應(yīng)用220發(fā)出的查詢可以是預(yù)定義的(即,硬編碼作為應(yīng)用220的一部分)或可以響應(yīng)于輸入(例如用戶輸入)而生成。在一實(shí)施例中,應(yīng)用220發(fā)出的查詢可通過用戶使用用戶界面210來創(chuàng)建,用戶界面210可以是被配置創(chuàng)建/提交查詢的任何適當(dāng)?shù)挠脩艚缑?。根?jù)一方面,用戶界面210是圖形用戶界面。不過,應(yīng)該注意,用戶界面210僅通過示例示出;任何適當(dāng)?shù)恼?qǐng)求實(shí)體可以創(chuàng)建和提交對(duì)數(shù)據(jù)庫214的查詢(例如應(yīng)用220、操作系統(tǒng)或終端用戶)。從而,所有這樣的實(shí)現(xiàn)都是被廣泛預(yù)期的。在一實(shí)施例中,使用抽象模型接口230來組成應(yīng)用220發(fā)出的查詢。換句話說,基于由數(shù)據(jù)抽象模型232定義的邏輯字段來創(chuàng)建查詢。這樣的查詢?cè)诖吮环Q為“抽象查詢”。運(yùn)行時(shí)組件234可被配置將抽象查詢翻譯成用于執(zhí)行的查詢。這樣的查詢?cè)诖吮环Q為“具體”或“物理”查詢。以下參考圖3A-6描述了示例性的抽象模型接口。說明性地,應(yīng)用220發(fā)出與模型實(shí)體有關(guān)的抽象查詢240,所述模型實(shí)體定義了將從數(shù)據(jù)庫214返回的抽象查詢240的結(jié)果集合中的數(shù)據(jù)記錄的重點(diǎn)。例如,假設(shè)數(shù)據(jù)庫214包括與醫(yī)療機(jī)構(gòu)的患者有關(guān)的信息。從而,抽象查詢240可以與表示數(shù)據(jù)記錄的重點(diǎn)的模型實(shí)體“患者”有關(guān)。不過,應(yīng)該注意,數(shù)據(jù)庫214中的數(shù)據(jù)記錄可以與不止一個(gè)模型實(shí)體有關(guān)。例如,盡管數(shù)據(jù)記錄的一部分與模型實(shí)體“患者”有關(guān),但另一部分可以與模型實(shí)體“雇員”有關(guān),其關(guān)注于具有與醫(yī)療機(jī)構(gòu)的雇員有關(guān)的信息的數(shù)據(jù)記錄。此外,某些數(shù)據(jù)記錄可以與不止一個(gè)模型實(shí)體相關(guān)聯(lián)。所有這樣的實(shí)現(xiàn)都是被廣泛預(yù)期的。抽象查詢240說明性地包括來自數(shù)據(jù)庫214的數(shù)據(jù)將被返回的一個(gè)或多個(gè)結(jié)果字段、以及一個(gè)或多個(gè)條件244。條件244被配置用于過濾在數(shù)據(jù)庫214中包含的哪些數(shù)據(jù)記錄被返回結(jié)果字段214中的每一個(gè)。不過,應(yīng)該注意,條件244僅通過示例示出。換句話說,預(yù)期了條件未被實(shí)現(xiàn)的抽象查詢的其它實(shí)施例。在一實(shí)施例中,抽象查詢240與限制請(qǐng)求246相關(guān)聯(lián),限制請(qǐng)求246被配置限制抽象查詢240的結(jié)果集合。限制請(qǐng)求246指定對(duì)于從數(shù)據(jù)庫214返回的底層模型實(shí)體的一個(gè)或多個(gè)實(shí)例的數(shù)據(jù)記錄的限制。根據(jù)一方面,用戶可使用用戶界面210來指定限制請(qǐng)求246。為此目的,用戶界面210可被配置顯示用于指定限制請(qǐng)求246的一個(gè)或多個(gè)適當(dāng)?shù)膱D形用戶界面(GUI)屏幕。例如,GUI屏幕可被配置顯示多個(gè)用戶可選擇的單元,每個(gè)單元表示定義了數(shù)據(jù)庫214包括的數(shù)據(jù)記錄的重點(diǎn)的模型實(shí)體?,F(xiàn)在假設(shè)在給定示例中,GUI屏幕顯示作為用戶可選擇的單元的模型實(shí)體“患者”和模型實(shí)體“雇員”,并且用戶選擇模型實(shí)體“患者”作為限制請(qǐng)求246的指定。GUI屏幕還可顯示圖形單元,圖形單元允許選擇將在限制請(qǐng)求246中定義對(duì)其的限制的數(shù)據(jù)抽象模型232的邏輯字段?,F(xiàn)在假設(shè)用戶選擇具有醫(yī)療機(jī)構(gòu)的患者的血紅蛋白測(cè)試值的“血紅蛋白”字段。圖形單元還可被配置允許選擇對(duì)所選擇的邏輯字段的所請(qǐng)求的限制。通過示例,圖形單元可顯示用于選擇對(duì)所選擇的邏輯字段的限制“頂部”、“最高”、“最低”、“底部”、“最近”的按鈕?,F(xiàn)在假設(shè)用戶已按下了按鈕“頂部”。GUI屏幕接著可顯示輸入字段,其通過示例允許輸入將在相應(yīng)的結(jié)果集合中返回的對(duì)于所選擇的模型實(shí)體的每個(gè)實(shí)例的數(shù)據(jù)記錄的最大所允許數(shù)量。換句話說,在給定示例中,所述限制包括把被返回的對(duì)于模型實(shí)體的每個(gè)實(shí)例的數(shù)據(jù)記錄的數(shù)量限制為最大所允許數(shù)量。現(xiàn)在假設(shè)用戶將值“3”輸入所顯示的輸入字段中。從而,在給定示例中,用戶已指定限制請(qǐng)求246,從而最多返回每個(gè)患者的前3個(gè)血紅蛋白測(cè)試值。不過,僅通過示例描述了使用GUI來指定限制請(qǐng)求246,但其并不意味著限制本發(fā)明。換句話說,用于指定限制請(qǐng)求246的任何可能的技術(shù)都是被廣泛預(yù)期的。此外,應(yīng)該注意,允許選擇用于指定限制請(qǐng)求246的數(shù)據(jù)抽象模型232的任何邏輯字段可能導(dǎo)致限制請(qǐng)求246中的無用限制。更具體地,假設(shè)用戶選擇“患者ID”和“血紅蛋白”字段作為抽象查詢240的結(jié)果字段242,并接著在限制請(qǐng)求246中指示出把相應(yīng)的結(jié)果集合限制為與模型實(shí)體“患者”有關(guān)的數(shù)據(jù)記錄。再假設(shè)限制請(qǐng)求246指示出把數(shù)據(jù)記錄限制為與三個(gè)年齡最大的患者有關(guān)(即,關(guān)于邏輯字段“年齡”)的數(shù)據(jù)記錄。不過,因?yàn)槌橄蟛樵?40未被配置檢索用于邏輯字段“年齡”的數(shù)據(jù),其是定義所述限制所需的,因此該限制將不會(huì)影響結(jié)果集合。因此,根據(jù)一方面,限制請(qǐng)求246僅可被指定抽象查詢240的結(jié)果字段242之一。此外,在一實(shí)施例中,被選擇用于指定限制請(qǐng)求246的結(jié)果字段指代返回可根據(jù)限制請(qǐng)求246進(jìn)行排序的數(shù)據(jù)結(jié)果的邏輯字段。在一實(shí)施例中,數(shù)據(jù)抽象模型232的每個(gè)邏輯字段包括指示底層數(shù)據(jù)是否可被排序的元數(shù)據(jù)。更具體地,對(duì)數(shù)據(jù)排序需要可能獨(dú)立于底層數(shù)據(jù)類型。通過示例,排序可以對(duì)字符數(shù)據(jù)、整數(shù)值、浮點(diǎn)值、日期和時(shí)間戳來執(zhí)行。對(duì)數(shù)據(jù)排序允許標(biāo)識(shí)出被用于定義限制請(qǐng)求246的所選擇的結(jié)果字段的數(shù)據(jù)值“頂部”、“最高”、“最低”、“底部”和/或“最近”。換句話說,對(duì)數(shù)據(jù)值排序允許限制請(qǐng)求246被應(yīng)用于對(duì)于抽象查詢240檢索的數(shù)據(jù)。例如,當(dāng)用戶已指定限制請(qǐng)求246從而應(yīng)該返回每個(gè)患者的前3個(gè)血紅蛋白測(cè)試值時(shí),每個(gè)患者的血紅蛋白值可用降序排序,從而為每個(gè)患者生成列表。從而,在給定患者的列表中,在該列表頂部的前三個(gè)值是將返回的3個(gè)值?;诔橄蟛樵?40,運(yùn)行時(shí)組件234使用數(shù)據(jù)抽象模型232生成能夠由查詢引擎256執(zhí)行的可執(zhí)行查詢。接著可執(zhí)行查詢基于限制請(qǐng)求246被運(yùn)行時(shí)組件234修改,以反映所請(qǐng)求的限制。以下參考圖4-6更詳細(xì)地描述了運(yùn)行時(shí)組件234生成和修改可執(zhí)行查詢的操作的一實(shí)施例。經(jīng)修改的可執(zhí)行查詢被提交給查詢執(zhí)行單元254用以對(duì)數(shù)據(jù)庫214執(zhí)行,并使用查詢引擎256來執(zhí)行以確定臨時(shí)結(jié)果集合270。注意,如圖所示,為了簡(jiǎn)明查詢執(zhí)行單元254僅包括查詢引擎256。不過,查詢執(zhí)行單元254可包括其它組件,諸如查詢解析器和查詢優(yōu)化器。查詢解析器一般被配置接受從請(qǐng)求實(shí)體(諸如應(yīng)用220)接收的查詢輸入,并接著解析所接收的查詢。接著查詢解析器可將經(jīng)解析的查詢轉(zhuǎn)發(fā)給查詢優(yōu)化器用以優(yōu)化。查詢優(yōu)化器是被配置構(gòu)建對(duì)于給定搜索參數(shù)集合的接近最優(yōu)的搜索策略(已知為“訪問計(jì)劃”)的應(yīng)用程序,其是根據(jù)底層數(shù)據(jù)庫(例如數(shù)據(jù)庫214)的已知特性、將在其上執(zhí)行搜索策略的底層系統(tǒng)(例如圖1的計(jì)算機(jī)系統(tǒng)110)和/或最優(yōu)的用戶指定的優(yōu)化目標(biāo)來進(jìn)行的。一般而言,所述搜索策略確定對(duì)用來執(zhí)行查詢的可用硬件/軟件組件的最優(yōu)使用。一旦選擇了訪問計(jì)劃,接著查詢引擎256就根據(jù)訪問計(jì)劃執(zhí)行查詢。當(dāng)執(zhí)行對(duì)數(shù)據(jù)庫214的可執(zhí)行查詢時(shí),查詢引擎256標(biāo)識(shí)出數(shù)據(jù)庫214中滿足抽象查詢240的每個(gè)數(shù)據(jù)記錄。每個(gè)所標(biāo)識(shí)的數(shù)據(jù)記錄被包括在臨時(shí)結(jié)果集合270。接著,在一實(shí)施例中,查詢引擎256根據(jù)限制請(qǐng)求246過濾臨時(shí)結(jié)果集合270。從而,經(jīng)過濾的結(jié)果集合290被生成,其通過限制請(qǐng)求246所請(qǐng)求那樣被限制。接著經(jīng)過濾的結(jié)果集合290被返回給應(yīng)用220。環(huán)境的邏輯/運(yùn)行時(shí)視3A-3B示出在一實(shí)施例中的軟件組件的關(guān)系視圖。根據(jù)一方面,軟件組件被配置用于查詢執(zhí)行管理,并說明性地包括圖2的應(yīng)用220、數(shù)據(jù)抽象模型232、運(yùn)行時(shí)組件234和數(shù)據(jù)庫214。通過示例,數(shù)據(jù)庫214包括多個(gè)示例性的物理數(shù)據(jù)代表2141、2142、...、214N。如上參考圖2所述,應(yīng)用220發(fā)出對(duì)數(shù)據(jù)庫214的抽象請(qǐng)求240。在一實(shí)施例中,應(yīng)用220發(fā)出由相應(yīng)的應(yīng)用查詢規(guī)范222所定義的查詢240。根據(jù)邏輯字段而不是通過對(duì)數(shù)據(jù)庫214中的底層物理數(shù)據(jù)實(shí)體進(jìn)行直接引用而組成抽象查詢240。邏輯字段被數(shù)據(jù)抽象模型232定義,數(shù)據(jù)抽象模型232一般揭示作為可在由應(yīng)用220發(fā)出的查詢(例如抽象查詢240)內(nèi)使用的邏輯字段集合的信息,以指定數(shù)據(jù)選擇標(biāo)準(zhǔn)并指定從查詢操作返回的結(jié)果數(shù)據(jù)的形式。此外,抽象查詢240可包括對(duì)指定抽象查詢240的重點(diǎn)(模型實(shí)體302)的底層模型實(shí)體的引用。在一實(shí)施例中,應(yīng)用查詢規(guī)范222可包括用于數(shù)據(jù)選擇的標(biāo)準(zhǔn)(選擇標(biāo)準(zhǔn)304;例如圖2的條件244)和將基于選擇標(biāo)準(zhǔn)304返回的字段的明確規(guī)范(返回?cái)?shù)據(jù)規(guī)范306;例如,圖2的結(jié)果字段242),如圖3B所示的。數(shù)據(jù)抽象模型232的邏輯字段獨(dú)立于在數(shù)據(jù)庫214中使用的底層數(shù)據(jù)表示(即,多個(gè)示例性物理數(shù)據(jù)表示2141-N中之一)而被定義,從而允許查詢松散耦合于底層數(shù)據(jù)表示而形成。更具體地,邏輯字段定義數(shù)據(jù)的抽象視圖,或者作為獨(dú)立數(shù)據(jù)項(xiàng),或者作為以例如數(shù)據(jù)庫表形式的數(shù)據(jù)結(jié)構(gòu)。結(jié)果,獨(dú)立于所使用的特定底層數(shù)據(jù)表示的諸如查詢240的抽象查詢可被定義。所述抽象查詢可被轉(zhuǎn)換為與底層物理數(shù)據(jù)表示2141-N相一致的形式,用以對(duì)數(shù)據(jù)庫214執(zhí)行。通過示例,抽象查詢240被運(yùn)行時(shí)組件234翻譯成可執(zhí)行查詢,其對(duì)數(shù)據(jù)庫214執(zhí)行以便確定抽象查詢240的相應(yīng)結(jié)果集合(例如,圖2的臨時(shí)結(jié)果集合270)。在圖3B所示的一實(shí)施例中,數(shù)據(jù)抽象模型232包括多個(gè)字段規(guī)范3081、3082、3083、3084和3085(通過示例示出五個(gè)),統(tǒng)稱為字段規(guī)范308(下文中也被稱為“字段定義”)。特別地,字段規(guī)范被提供用于可用于組成抽象查詢的每個(gè)邏輯字段。每個(gè)字段規(guī)范可包含一個(gè)或多個(gè)屬性。說明性地,字段規(guī)范308包括邏輯字段名稱屬性3201、3202、3203、3204、3205(統(tǒng)稱為字段名稱320)以及相關(guān)聯(lián)的訪問方法屬性3221、3222、3223、3224、3225(統(tǒng)稱為訪問方法322)。每個(gè)屬性可具有值。例如,邏輯字段名稱屬性3201具有值“FirstName”,而訪問方法屬性3221具有值“Simple”。此外,每個(gè)屬性可包括一個(gè)或多個(gè)相關(guān)聯(lián)的抽象性質(zhì)。每個(gè)抽象性質(zhì)描述數(shù)據(jù)結(jié)構(gòu)的特性并具有相關(guān)聯(lián)的值。在本發(fā)明的上下文中,數(shù)據(jù)結(jié)構(gòu)指代由對(duì)應(yīng)于邏輯字段的數(shù)據(jù)的一個(gè)或多個(gè)物理實(shí)體所定義的底層物理表示的一部分。具體而言,抽象性質(zhì)可表示抽象描述了對(duì)應(yīng)于數(shù)據(jù)結(jié)構(gòu)的物理數(shù)據(jù)實(shí)體的位置的數(shù)據(jù)位置元數(shù)據(jù),諸如數(shù)據(jù)庫表的名稱或數(shù)據(jù)庫表中的列的名稱。說明性地,訪問方法屬性3221包括數(shù)據(jù)位置元數(shù)據(jù)“Table”和“Column”。此外,數(shù)據(jù)位置元數(shù)據(jù)“Table”具有值“contact”,而數(shù)據(jù)位置元數(shù)據(jù)“Column”具有值“f_name”。從而,假設(shè)本示例中的底層關(guān)系數(shù)據(jù)庫模式,數(shù)據(jù)位置元數(shù)據(jù)“Table”和“Column”的值指向具有列“f_name”的表“contact”。在一實(shí)施例中,邏輯字段的組(例如兩組或多組)可以是分類的一部分。因而,數(shù)據(jù)抽象模型232包括多個(gè)分類規(guī)范3101和3102(通過示例示出兩個(gè)),統(tǒng)稱為分類規(guī)范。在一實(shí)施例中,分類規(guī)范被提供用于兩個(gè)或多個(gè)邏輯字段的每個(gè)邏輯分組。例如,邏輯字段3081-3和3084-5分別是分類規(guī)范3101和3102的一部分。分類規(guī)范在此也被簡(jiǎn)稱為“分類”。分類根據(jù)分類名稱進(jìn)行區(qū)分,例如,分類名稱3301和3302(統(tǒng)稱為分類名稱330)。在本圖示中,邏輯字段3081-3是分類“NameandAddress”的一部分,而邏輯字段3084-5是分類“BirthandAge”的一部分。訪問方法322一般地將邏輯字段名稱關(guān)聯(lián)于(映射到)數(shù)據(jù)庫(例如圖2的數(shù)據(jù)庫214)中的數(shù)據(jù)。如圖3A所示,訪問方法將邏輯字段名稱關(guān)聯(lián)于數(shù)據(jù)庫中的特定物理數(shù)據(jù)表示2141-N。通過圖示,示出了兩個(gè)數(shù)據(jù)表示XML數(shù)據(jù)表示2141和關(guān)系數(shù)據(jù)表示2142。不過,物理數(shù)據(jù)表示214N指示出已知或未知的任何其它數(shù)據(jù)表示都是預(yù)期的。在一實(shí)施例中,單個(gè)數(shù)據(jù)抽象模型232包含用于兩個(gè)或多個(gè)物理數(shù)據(jù)表示2141-N的字段規(guī)范(以及相關(guān)聯(lián)的訪問方法)。在可替換實(shí)施例中,不同的單個(gè)數(shù)據(jù)抽象模型232被提供用于每個(gè)單獨(dú)的物理數(shù)據(jù)表示2141-N。取決于所支持的不同類型的邏輯字段的數(shù)量,任何數(shù)量的訪問方法都是預(yù)期的。在一實(shí)施例中,提供了用于簡(jiǎn)單字段、經(jīng)過濾字段和組合字段的訪問方法。字段規(guī)范3081、3082和3085分別例示了簡(jiǎn)單字段訪問方法3221、3222和3225。簡(jiǎn)單字段被直接映射到底層物理表示中的特定實(shí)體(例如,被映射到給定數(shù)據(jù)庫表和行的字段)。通過圖示,如上所述,圖3B中示出的簡(jiǎn)單字段訪問方法3221將邏輯字段名稱3201(“FirstName”)映射到名為“contact”的表中名為“f_name”的列。字段規(guī)范3083例示了經(jīng)過濾字段訪問方法3223。經(jīng)過濾字段標(biāo)識(shí)相關(guān)聯(lián)的物理實(shí)體并提供被用于定義物理表示內(nèi)的項(xiàng)目的特定子集的過濾器。圖3B中提供了示例,其中經(jīng)過濾字段訪問方法3223將邏輯字段名稱3203(“AnyTownLastName”)映射到名為“contact”的表中名為“l(fā)_name”的列中的物理實(shí)體,并定義用于城市“AnyTown”中的個(gè)體的過濾器。經(jīng)過濾字段的另一示例是NEWYORKZIP代碼字段,其映射到ZIP代碼的物理表示,并將數(shù)據(jù)限制為僅是對(duì)于紐約州定義的那些ZIP代碼。字段規(guī)范3084例示了組合字段訪問方法3224。組合訪問方法使用被提供為訪問方法定義的一部分的表達(dá)式來從一個(gè)或多個(gè)邏輯字段中計(jì)算邏輯字段。以此方式,可以計(jì)算在底層物理數(shù)據(jù)表示中不存在的信息。在圖3B中示出的示例中,組合字段訪問方法3224將邏輯字段名稱3204“AgeInDecades”映射到“AgeInYears/10”。另一示例是銷售稅字段,其通過用銷售稅率乘以銷售價(jià)格字段而組成。可以預(yù)期,用于底層數(shù)據(jù)的任何給定數(shù)據(jù)類型(例如日期、小數(shù)等)的格式可以不同。從而,在一實(shí)施例中,字段規(guī)范308包括反映底層數(shù)據(jù)的格式的類型屬性。不過,在另一實(shí)施例中,字段規(guī)范308的數(shù)據(jù)格式不同于相關(guān)聯(lián)的底層物理數(shù)據(jù),在此情形中需要底層物理數(shù)據(jù)到邏輯字段的格式的轉(zhuǎn)換。通過示例,圖3B中示出的數(shù)據(jù)抽象模型232的字段規(guī)范308表示被映射到圖3A中示出的關(guān)系數(shù)據(jù)表示2142中所表示的數(shù)據(jù)的邏輯字段。不過,數(shù)據(jù)抽象模型232的其它實(shí)例將邏輯字段映射到其它物理表示,諸如XML。以下在表I中示出了對(duì)應(yīng)于圖3B中示出的抽象查詢240的說明性抽象查詢。通過圖示,使用XML定義了說明性的抽象查詢。不過,任何其它語言可被用來獲得優(yōu)勢(shì)。表I-抽象查詢示例001<?xmlversion=”1.0”?>002<!--Querystringrepresentation:(AgeInYears>”55”-->003<QueryAbstraction>004<Selection>005<ConditioninternalID=”4”>006<Conditionfield=”AgeInYears”operator=”GT”value=”55”007internalID=”1”/>008</Selection>009<Results>010<Fieldname=”FirstName”/>011<Fieldname=”AnyTownLastName”/>012<Fieldname=”Street”/>013</Results>014<Entityname=”Patient”>015<EntityFieldrequired=”Hard”>016<FieldRefname=”data://Demographic/PatientID”/>017<Usagetype=”query”/>018</EntityField>019</Entity>020</QueryAbstraction>說明性地,表I中示出的抽象查詢包括包含選擇標(biāo)準(zhǔn)的選擇規(guī)范(行004-008)和結(jié)果規(guī)范(行009-013)。在一實(shí)施例中,選擇標(biāo)準(zhǔn)包括字段名稱(對(duì)于邏輯字段)、比較操作符(=、>、<等)以及值表達(dá)式(字段與什么進(jìn)行比較)。在一實(shí)施例中,結(jié)果規(guī)范是將被返回作為查詢執(zhí)行結(jié)果的抽象字段的列表。抽象查詢中的結(jié)果規(guī)范可包括字段名稱和排序標(biāo)準(zhǔn)。表I中示出的抽象查詢還包括行014-019中的模型實(shí)體規(guī)范,其指定了所述查詢是模型實(shí)體“患者”的查詢。以下在表II中示出了對(duì)應(yīng)于圖3B中示出的數(shù)據(jù)抽象模型232的說明性的數(shù)據(jù)抽象模型(DAM)。通過圖示,使用XML定義了說明性的數(shù)據(jù)抽象模型。不過,任何其它語言可被用來獲得優(yōu)勢(shì)。表II-數(shù)據(jù)抽象模型示例001<?xmlversion=”1.0”?>002<DataAbstraction>003<Categoryname=”NameandAddress”>004<Fieldqueryable=”Yes”name=”FirstName”displayable=”Yes”>005<AccessMethod>006<SimplecolumnName=”f_name”tableName=”contact”></Simple>007</AccessMethod>008</Field>009<Fieldqueryable=”Yes”name=”LastName”displayable=”Yes”>010<AccessMethod>011<SimplecolumnName=”l_name”tableName=”contact”></Simple>012</AccessMethod>013</Field>014<Fieldqueryable=”Yes”name=”AnyTownLastName”displayable=”Yes”>015<AccessMethod>016<FiltercolumeName=”l_name”tableName=”contact”017Filter=”contact.city=Anytown”></Filter>018</AccessMethod>019</Field>020</Category>021<Categoryname=”BirthandAge”>022<Fieldqueryable=”Yes”name=”AgeInDecades”displayable=”Yes”>023<AccessMethod>024<ComposedcolumnName=”age”tableName=”contact”025Expression=”columnName/10”></Composed>026</AccessMethod>027</Field>028<Fieldqueryable=”Yes”name=”AgeInYears”displayable=”Yes”>029<AccessMethod>030<SimplecolumnName=”age”tableName=”contact”></Simple>031</AccessMethod>032</Field>033</Category>034</DataAbstraction>通過示例,注意,行004-008對(duì)應(yīng)于圖3B中示出的DAM232的第一字段規(guī)范3081,而行009-013對(duì)應(yīng)于第二字段規(guī)范3082。如上面所述,可基于表I的抽象查詢而生成可執(zhí)行查詢,用于對(duì)底層數(shù)據(jù)庫(例如,圖3A的數(shù)據(jù)庫214)執(zhí)行。以下參考圖4-6描述用于基于抽象查詢生成可執(zhí)行查詢的示例性方法?;诔橄蟛樵兩煽蓤?zhí)行查詢現(xiàn)在參考圖4,示出例示了使用圖2的運(yùn)行時(shí)組件234基于抽象查詢(例如圖2的抽象查詢240)生成可執(zhí)行查詢(下文也被稱為“具體”查詢)的一實(shí)施例的說明性運(yùn)行時(shí)方法400。當(dāng)運(yùn)行時(shí)組件234接收作為輸入的抽象查詢(諸如表I中示出的抽象查詢)時(shí),在步驟402進(jìn)入方法400。在步驟404,運(yùn)行時(shí)組件234讀取和解析抽象查詢,并定位單獨(dú)的選擇標(biāo)準(zhǔn)(例如圖2的條件244)以及想要的結(jié)果字段(例如圖2的結(jié)果字段242)。在步驟406,運(yùn)行時(shí)組件234進(jìn)入用于處理在抽象查詢中呈現(xiàn)的每個(gè)查詢選擇標(biāo)準(zhǔn)語句的循環(huán)(由步驟406、408、410和412所定義),從而構(gòu)造具體查詢的數(shù)據(jù)選擇部分。在一實(shí)施例中,選擇標(biāo)準(zhǔn)包括字段名稱(對(duì)于邏輯字段)、比較操作符(=、>、<等)以及值表達(dá)式(字段與什么進(jìn)行比較)。在步驟408,運(yùn)行時(shí)組件234使用來自抽象查詢的選擇標(biāo)準(zhǔn)的字段名稱來查找數(shù)據(jù)抽象模型232中的字段的定義。如上面所述,字段定義包括用于訪問與該字段相關(guān)聯(lián)的數(shù)據(jù)結(jié)構(gòu)的訪問方法的定義。運(yùn)行時(shí)組件234接著構(gòu)造(步驟410)用于所處理的邏輯字段的具體查詢貢獻(xiàn)(contribution)。如這里定義的,具體查詢貢獻(xiàn)是具體查詢的一部分,其被用于基于當(dāng)前的邏輯字段執(zhí)行數(shù)據(jù)選擇。具體查詢是以諸如SQL和XML查詢的語言所表示的查詢,并且與給定物理數(shù)據(jù)儲(chǔ)存庫(例如關(guān)系數(shù)據(jù)庫或XML儲(chǔ)存庫)的數(shù)據(jù)相一致。從而,具體查詢被用于從物理數(shù)據(jù)儲(chǔ)存庫(由圖2中示出的數(shù)據(jù)庫214表示)定位和檢索數(shù)據(jù)。被生成用于當(dāng)前字段的具體查詢貢獻(xiàn)接著被添加到具體查詢語句(步驟412)。方法400接著返回步驟406,以開始對(duì)于抽象查詢的下一字段的處理。從而,對(duì)于抽象查詢中的每一數(shù)據(jù)選擇字段重復(fù)在步驟406進(jìn)入的過程,從而將額外內(nèi)容貢獻(xiàn)給將被執(zhí)行的最終查詢。在構(gòu)造具體查詢的數(shù)據(jù)選擇部分之后,運(yùn)行時(shí)組件234標(biāo)識(shí)將被返回作為查詢執(zhí)行結(jié)果的信息。如上所述,在一實(shí)施例中,抽象查詢定義結(jié)果字段的列表,即,將被返回作為查詢執(zhí)行結(jié)果的邏輯字段的列表,在此被稱為結(jié)果規(guī)范。抽象查詢中的結(jié)果規(guī)范可包括字段名稱和排序標(biāo)準(zhǔn)。從而,方法400在步驟414進(jìn)入用于將結(jié)果字段定義添加到所生成的具體查詢的循環(huán)(由步驟414、416、418和420所定義)。在步驟416,運(yùn)行時(shí)組件234在數(shù)據(jù)抽象模型232中查找結(jié)果字段名稱(通過抽象查詢的結(jié)果規(guī)范),并接著從數(shù)據(jù)抽象模型232中檢索結(jié)果字段定義,以標(biāo)識(shí)將被返回的當(dāng)前邏輯結(jié)果字段的數(shù)據(jù)的物理位置。運(yùn)行時(shí)組件234接著構(gòu)造(在步驟418)邏輯結(jié)果字段的(標(biāo)識(shí)將被返回的數(shù)據(jù)的物理位置的具體查詢的)具體查詢貢獻(xiàn)。在步驟420,具體查詢貢獻(xiàn)接著被添加到具體查詢語句。一旦抽象查詢中的結(jié)果規(guī)范中的每個(gè)已被處理,處理就在步驟422繼續(xù)。在步驟422,運(yùn)行時(shí)組件234確定是否定義了用于抽象查詢的限制請(qǐng)求(例如,圖2的限制請(qǐng)求246)。如果確定不存在用于抽象查詢的限制請(qǐng)求,則處理在步驟426繼續(xù)。否則,在步驟424基于限制請(qǐng)求修改具體查詢。以下參考圖6更詳細(xì)地描述基于相關(guān)聯(lián)的限制請(qǐng)求修改具體查詢的示例性方法。接著處理在步驟426繼續(xù),在步驟426執(zhí)行具體查詢。參考圖5描述了根據(jù)步驟410和418的用于構(gòu)造邏輯字段的具體查詢貢獻(xiàn)的方法500的一實(shí)施例。在步驟502,方法500查詢關(guān)聯(lián)于當(dāng)前邏輯字段的訪問方法是否是簡(jiǎn)單訪問方法。如果是,則基于物理數(shù)據(jù)位置信息構(gòu)造(步驟504)具體查詢貢獻(xiàn),并且處理接著根據(jù)如上所述的方法400繼續(xù)。否則,處理繼續(xù)到步驟506,以查詢關(guān)聯(lián)于當(dāng)前邏輯字段的訪問方法是否是經(jīng)過濾訪問方法。如果是,則基于給定數(shù)據(jù)結(jié)構(gòu)的物理數(shù)據(jù)位置信息構(gòu)造(步驟508)具體查詢貢獻(xiàn)。在步驟510,用被用于關(guān)聯(lián)于給定數(shù)據(jù)結(jié)構(gòu)的子集數(shù)據(jù)的額外邏輯(過濾選擇)來擴(kuò)展具體查詢貢獻(xiàn)。處理接著根據(jù)上述的方法400繼續(xù)。如果訪問方法不是經(jīng)過濾訪問方法,則處理從步驟506進(jìn)行到步驟512,在步驟512方法500查詢?cè)L問方法是否是組合訪問方法。如果訪問方法是組合訪問方法,則在步驟514定位和檢索在組合字段表達(dá)式中用于每個(gè)子字段引用的物理數(shù)據(jù)位置。在步驟516,組合字段表達(dá)式的物理字段位置信息被替換為組合字段表達(dá)式的邏輯字段引用,由此生成具體查詢貢獻(xiàn)。處理接著根據(jù)上述的方法400繼續(xù)。如果訪問方法不是組合訪問方法,則處理從步驟512進(jìn)行到步驟518。步驟518代表被預(yù)期為本發(fā)明實(shí)施例的任何其它訪問方法類型。不過,應(yīng)該理解,在所預(yù)期的實(shí)施例中實(shí)現(xiàn)的訪問方法少于所有可用的訪問方法。例如,在特定實(shí)施例中,僅使用簡(jiǎn)單訪問方法。在另一實(shí)施例中,僅使用簡(jiǎn)單訪問方法和經(jīng)過濾訪問方法?;谙嚓P(guān)聯(lián)的限制請(qǐng)求修改具體查詢現(xiàn)在參考圖6,示出了用于使用圖2的運(yùn)行時(shí)組件234基于相關(guān)聯(lián)的限制請(qǐng)求(例如圖2的限制請(qǐng)求246)來修改具體查詢的方法600的一實(shí)施例。根據(jù)一方面,方法600從圖4的步驟424進(jìn)入?,F(xiàn)在通過示例假設(shè)在圖III中示出的示例性具體SQL查詢表示根據(jù)方法600修改的具體查詢。不過,應(yīng)該注意,出于說明而不是限制本發(fā)明的目的而用SQL定義示例性查詢。例如,本領(lǐng)域技術(shù)人員將容易地認(rèn)識(shí)到諸如用來描述表I的示例性抽象查詢的相應(yīng)的XML表示。因此,所有這樣的不同實(shí)現(xiàn)都是廣泛預(yù)期的。表III-具體查詢示例001SELECT002PatientID,Hemoglobin003FROM004Tests表III的示例性查詢被配置檢索醫(yī)療機(jī)構(gòu)的患者的血紅蛋白測(cè)試值(行002中的“Hemoglobin”)。通過相關(guān)聯(lián)的患者標(biāo)識(shí)符(行002中的“PatientID”)唯一地標(biāo)識(shí)每個(gè)患者。根據(jù)行004,血紅蛋白測(cè)試值和相應(yīng)的患者標(biāo)識(shí)符可從底層“Tests”數(shù)據(jù)庫表中檢索到。不過,應(yīng)該注意,為了簡(jiǎn)短和簡(jiǎn)明,表III的示例性具體查詢不包括任何條件(例如圖2的條件244)。再假設(shè)由方法600基于以下表IV中示出的示例性限制請(qǐng)求來修改表III的示例性具體查詢。如上所述,可通過用戶與GUI或基于文本的界面進(jìn)行交互來指定限制請(qǐng)求,以組成抽象查詢。表IV-限制請(qǐng)求示例001LIMITRESULTSTO002Top3HemoglobinvaluesforeachPatient表IV的示例性限制請(qǐng)求被配置把表III的示例性具體查詢的結(jié)果集合限制為(行001中的“LIMITRESULTSTO”)對(duì)于每個(gè)患者(即,對(duì)于“Patient”模型實(shí)體的每個(gè)實(shí)例)最多三個(gè)數(shù)據(jù)記錄(行002中的“3hemoglobinvaluesforeachpatient”)。應(yīng)該在結(jié)果集合中僅返回具有最大測(cè)試值(行002中的“Top”)的數(shù)據(jù)記錄。方法600在步驟610進(jìn)入,在步驟610,表IV的限制請(qǐng)求被解析,以標(biāo)識(shí)對(duì)其指定限制的對(duì)應(yīng)于結(jié)果字段的邏輯字段(行002中的“Hemoglobin”)以及底層模型實(shí)體(行002中的“Patient”)。接著,在步驟620,檢索用于已標(biāo)識(shí)邏輯字段的訪問方法。在給定示例中,假設(shè)邏輯字段“Hemoglobin”指代根據(jù)“Simple”訪問方法所訪問的“Tests”表中的列“Hemoglobin”。在步驟630,表III的示例性具體查詢被修改,從而在對(duì)于底層模型實(shí)體的每個(gè)實(shí)例(即,在本示例中對(duì)于每個(gè)患者)的相應(yīng)的臨時(shí)結(jié)果集合(例如圖2的臨時(shí)結(jié)果集合270)中,“Hemoglobin”字段的數(shù)據(jù)值被排序。在給定示例中,數(shù)據(jù)記錄關(guān)于由相關(guān)聯(lián)的患者標(biāo)識(shí)符所標(biāo)識(shí)的不同患者被劃分,并接著關(guān)于血紅蛋白測(cè)試值被排序。例如,如果底層物理數(shù)據(jù)庫被配置接收和處理SQL查詢,則額外的SQL選擇子句“PARTITIONbyPatientIDORDERBYHemoglobinDESC”被添加到表III的示例性具體查詢的行002。通過示例,以降序(“DESC”)執(zhí)行所述排序。在步驟640,表III的示例性具體查詢被進(jìn)一步修改,從而臨時(shí)結(jié)果集合中的數(shù)據(jù)記錄被過濾,使得對(duì)于每個(gè)患者返回具有患者的最大血紅蛋白測(cè)試值的不多于三個(gè)數(shù)據(jù)記錄。因此,生成反映表IV的示例性限制請(qǐng)求的經(jīng)過濾結(jié)果集合(例如圖2的經(jīng)過濾結(jié)果集合290)。在給定示例中,為臨時(shí)結(jié)果集合中的每個(gè)數(shù)據(jù)記錄創(chuàng)建行號(hào)。在一實(shí)施例中,給定患者的數(shù)據(jù)記錄從行號(hào)“1”開始編號(hào)。接著,對(duì)于給定患者的每個(gè)隨后的數(shù)據(jù)記錄,行號(hào)增加。因此,每個(gè)患者的數(shù)據(jù)記錄的行號(hào)始于“1”。從而,上述的額外的選擇子句被修改成“rownumber()over(PARTITIONbyPatientIDORDERBYHemoglobinDESC)asrow_num”。此外,在示例性具體查詢中生成將對(duì)于每個(gè)患者的最多三個(gè)數(shù)據(jù)記錄包括于經(jīng)過濾結(jié)果集合的請(qǐng)求。通過使用如上所述創(chuàng)建的數(shù)據(jù)記錄的行號(hào),僅有行號(hào)小于等于三的數(shù)據(jù)記錄被包括于經(jīng)過濾結(jié)果集合。換句話說,條件“WHERErow_num<=3”被包括于表III的示例性的具體查詢。從而,以下得到表V的示例性的經(jīng)修改的具體SQL查詢。表V-經(jīng)修改的具體查詢示例001SELECT002PatientID,Hemoglobin,003rownumber()over(PARTITIONbyPatientIDORDERBYHemoglobinDESC)004asrow_num005FROM006Tests007WHERE008row_num<=3應(yīng)該注意,在表V的示例性的經(jīng)修改的具體查詢的行003-004和007-008中反映了表IV的示例性限制請(qǐng)求。接著方法600在圖4的步驟426繼續(xù)。如以上參考圖4所述的,在步驟426執(zhí)行經(jīng)修改的具體查詢。在給定示例中,假設(shè)對(duì)底層“Tests”數(shù)據(jù)庫表(為了簡(jiǎn)短其未被更詳細(xì)描述)執(zhí)行表IV的查詢。不過本領(lǐng)域技術(shù)人員將容易地認(rèn)識(shí)到底層Tests表的可能實(shí)現(xiàn)和標(biāo)識(shí)。從而,假設(shè)以下得到表V中所示的示例性查詢結(jié)果(例如圖2的經(jīng)過濾查詢結(jié)果290)。表V-示例性查詢結(jié)果001PatientIDHemoglobinrow_num00250003.90100350013.0010045002-100550036.81100650036.71200750031.00300850047.40100950041.4020105005-101150062.4010125007-101350085.731說明性地,表V的示例性查詢結(jié)果包括對(duì)于每個(gè)患者的所允許的最大數(shù)量的三個(gè)數(shù)據(jù)記錄。例如,行(行005-007)示出由患者標(biāo)識(shí)符“5003”標(biāo)識(shí)的對(duì)于該患者的三個(gè)最大值。通過示例,假設(shè)底層Tests表(以及由此的臨時(shí)結(jié)果集合)包括被這樣過濾的、血紅蛋白測(cè)試值低于1.00(該患者的第三次測(cè)試的值)的此患者的十個(gè)數(shù)據(jù)記錄。不過,對(duì)于患者標(biāo)識(shí)符為5000、5001、5004、5006和5008的患者(行002、003、008、009、011和013),返回少于三個(gè)數(shù)據(jù)記錄,其僅示出對(duì)于這些患者中的每一個(gè)的一個(gè)或兩個(gè)血紅蛋白值。此外,對(duì)于患者標(biāo)識(shí)符為5002、5005和5007的患者(行004、010和012),無法在Tests表中檢索到血紅蛋白值,并因此未示出這些患者的血紅蛋白值。應(yīng)該理解,表IV的示例性限制請(qǐng)求應(yīng)用于在底層Tests表中存在數(shù)據(jù)記錄的每個(gè)患者的記錄。不同實(shí)現(xiàn)可允許對(duì)于所請(qǐng)求的限制的不同粒度。例如,表IV的示例性限制請(qǐng)求可關(guān)于一個(gè)或多個(gè)特定患者進(jìn)行改進(jìn)。通過示例,假設(shè)以下表VI中所示的示例性限制請(qǐng)求關(guān)聯(lián)于表III的示例性具體查詢。為了簡(jiǎn)短,也以自然語言示出表VI的示例性限制請(qǐng)求。表VI-限制請(qǐng)求示例001LIMITRESULTSTO002Top3HemoglobinvaluesforPatientID=5003表VI中的示例性限制請(qǐng)求被配置將表III的示例性具體查詢的結(jié)果集合限制為(行001中的“LIMITRESULTSTO”)由唯一的患者標(biāo)識(shí)符“5003”(行002中的“forPatientID=5003”)標(biāo)識(shí)的患者的最多三個(gè)數(shù)據(jù)記錄(行002中的“3Hemoglobinvalues”)。在此示例中,以下得到表VII的示例性的經(jīng)修改的具體SQL查詢。表VII-經(jīng)修改的具體查詢示例001SELECT002PatientID,Hemoglobin,003rownumber()over(PARTITIONbyPatientIDORDERBYHemoglobinDESC)004asrow_num005FROM006Tests007WHERE008row_num<=3ANDPatientID=5003應(yīng)該理解,在表VII的經(jīng)修改的具體查詢的行008中,所請(qǐng)求的PatientID被添加作為條件。因此,如表VI和VII所示,可在限制請(qǐng)求中包括多個(gè)條件。如果對(duì)于底層Tests表執(zhí)行表VII的示例性的經(jīng)修改的具體查詢,則以下得到表VIII中所示的示例性查詢結(jié)果(例如圖2的經(jīng)過濾的查詢結(jié)果290)。表VIII-示例性查詢結(jié)果001PatientIDHemoglobinrow_num00250036.81100350036.71200450031.003如可從表VIII看到的,示例性查詢結(jié)果(例如圖2的經(jīng)過濾的查詢結(jié)果290)僅包含由唯一的患者標(biāo)識(shí)符“5003”標(biāo)識(shí)的患者的數(shù)據(jù)記錄。盡管前述內(nèi)容指引本發(fā)明實(shí)施例,但是可設(shè)計(jì)本發(fā)明的其它和進(jìn)一步的實(shí)施例,而不會(huì)脫離本發(fā)明的基本范圍,并且本發(fā)明的范圍由權(quán)利要求確定。權(quán)利要求1.一種處理對(duì)具有多個(gè)數(shù)據(jù)記錄的數(shù)據(jù)庫的數(shù)據(jù)庫查詢的計(jì)算機(jī)實(shí)現(xiàn)的方法,包括從請(qǐng)求實(shí)體接收抽象查詢,所述抽象查詢標(biāo)識(shí)定義所述查詢的重點(diǎn)的模型實(shí)體,并包括至少一個(gè)結(jié)果字段規(guī)范,所述結(jié)果字段規(guī)范包括將從數(shù)據(jù)庫返回?cái)?shù)據(jù)的一個(gè)或多個(gè)結(jié)果字段;其中在抽象地描述數(shù)據(jù)庫中的數(shù)據(jù)的數(shù)據(jù)抽象模型中定義所述模型實(shí)體;接收被配置限制所述抽象查詢的結(jié)果集合的限制請(qǐng)求,所述限制請(qǐng)求指定與響應(yīng)于所述查詢被返回的所述底層模型實(shí)體的一個(gè)或多個(gè)實(shí)例的數(shù)據(jù)記錄集合有關(guān)的限制;從所述抽象查詢中并關(guān)于所述數(shù)據(jù)抽象模型生成能夠被查詢引擎執(zhí)行的可執(zhí)行查詢;基于所述限制請(qǐng)求修改所述可執(zhí)行查詢;執(zhí)行對(duì)所述數(shù)據(jù)庫的經(jīng)修改的可執(zhí)行查詢,以得到結(jié)果集合,由此所述結(jié)果集合按照所述限制請(qǐng)求所請(qǐng)求的那樣被限制;以及將受限制的結(jié)果集合輸出到所述請(qǐng)求實(shí)體。2.根據(jù)權(quán)利要求1所述的方法,其中所述底層模型實(shí)體對(duì)應(yīng)于醫(yī)療機(jī)構(gòu)的患者,由此所述數(shù)據(jù)庫中的多個(gè)數(shù)據(jù)記錄中的每個(gè)包括與表示所述底層模型實(shí)體的實(shí)例的特定患者有關(guān)的信息。3.根據(jù)權(quán)利要求1所述的方法,其中執(zhí)行所述經(jīng)修改的可執(zhí)行查詢包括生成包括滿足由所述抽象查詢指定的選擇標(biāo)準(zhǔn)的數(shù)據(jù)記錄集合的臨時(shí)結(jié)果集合;以及基于所述限制請(qǐng)求過濾所述臨時(shí)結(jié)果集合,以生成受限制的結(jié)果集合。4.根據(jù)權(quán)利要求1所述的方法,其中被返回的所述底層模型實(shí)體的一個(gè)或多個(gè)實(shí)例的數(shù)據(jù)記錄的所述限制定義了將從所述數(shù)據(jù)庫返回的所述底層模型實(shí)體的每個(gè)實(shí)例的所允許數(shù)據(jù)記錄的最大數(shù)量。5.根據(jù)權(quán)利要求4所述的方法,其中執(zhí)行所述經(jīng)修改的可執(zhí)行查詢包括生成滿足所述抽象查詢的臨時(shí)結(jié)果集合;從所述臨時(shí)結(jié)果集合中標(biāo)識(shí)按照所述限制請(qǐng)求所請(qǐng)求那樣的所述底層模型實(shí)體的每個(gè)實(shí)例的所允許數(shù)據(jù)記錄的最大數(shù)量;以及基于所標(biāo)識(shí)的數(shù)據(jù)記錄生成受限制的結(jié)果集合。6.根據(jù)權(quán)利要求4所述的方法,其中所允許數(shù)據(jù)記錄的最大數(shù)量由給定結(jié)果字段的最高有效數(shù)據(jù)項(xiàng)目的預(yù)定義數(shù)量所定義。7.根據(jù)權(quán)利要求4所述的方法,其中所允許數(shù)據(jù)記錄的最大數(shù)量由給定結(jié)果字段的最低有效數(shù)據(jù)項(xiàng)目的預(yù)定義數(shù)量所定義。8.根據(jù)權(quán)利要求1所述的方法,其中所述抽象查詢的每個(gè)結(jié)果字段是所述數(shù)據(jù)抽象模型的邏輯字段,所述數(shù)據(jù)抽象模型被配置允許基于所述抽象查詢的一個(gè)或多個(gè)邏輯字段,以與數(shù)據(jù)庫中的數(shù)據(jù)的物理表示相一致的形式來生成所述可執(zhí)行查詢。9.根據(jù)權(quán)利要求8所述的方法,其中所述限制請(qǐng)求涉及所述抽象查詢的所選擇的結(jié)果字段。10.根據(jù)權(quán)利要求8所述的方法,其中生成所述可執(zhí)行查詢包括基于所述抽象查詢生成用于對(duì)所述數(shù)據(jù)庫執(zhí)行的SQL查詢。11.一種系統(tǒng),包括用于執(zhí)行方法權(quán)利要求1-10中的任一方法的裝置。全文摘要公開了一種處理數(shù)據(jù)庫查詢的方法、系統(tǒng)和制品。一實(shí)施例包括接收對(duì)具有多個(gè)數(shù)據(jù)記錄的數(shù)據(jù)庫的抽象查詢。所述抽象查詢標(biāo)識(shí)定義了所述抽象查詢的重點(diǎn)的模型實(shí)體。所述方法還包括接收被配置限制所述抽象查詢的結(jié)果集合的限制請(qǐng)求。所述限制請(qǐng)求指定被返回的所述底層模型實(shí)體的一個(gè)或多個(gè)實(shí)例的數(shù)據(jù)記錄的限制。從所述抽象查詢中,生成能夠被查詢引擎執(zhí)行的可執(zhí)行查詢。基于所述限制請(qǐng)求修改所述可執(zhí)行查詢。執(zhí)行對(duì)所述數(shù)據(jù)庫的經(jīng)修改的可執(zhí)行查詢,以得到結(jié)果集合,由此所述結(jié)果集合按照所述限制請(qǐng)求所請(qǐng)求的那樣被限制。文檔編號(hào)G06F17/30GK1987861SQ200610146569公開日2007年6月27日申請(qǐng)日期2006年11月15日優(yōu)先權(quán)日2005年12月22日發(fā)明者S·E·溫策爾,D·P·科爾茲,R·D·德廷格申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司