專利名稱:用于構(gòu)建跨越異構(gòu)環(huán)境的統(tǒng)一查詢的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明總地來說涉及結(jié)構(gòu)化或半結(jié)構(gòu)化、或非結(jié)構(gòu)化格式的數(shù)據(jù)存儲(chǔ)。更具體地說,本發(fā)明涉及一種用于在一種或多種異構(gòu)環(huán)境下為定位和格式化數(shù)據(jù)一般性地構(gòu)建統(tǒng)一查詢的方法。
背景技術(shù):
傳統(tǒng)數(shù)據(jù)庫將數(shù)據(jù)存儲(chǔ)在帶有行和列的表格中。在關(guān)系數(shù)據(jù)庫中,表格彼此相關(guān)或彼此鏈接。數(shù)據(jù)庫的一種新范例包含將XML數(shù)據(jù)加入關(guān)系數(shù)據(jù)庫內(nèi)的單元(cell)中。隨著數(shù)據(jù)庫中本機(jī)XML支持的加入,查找、操縱、和公布存儲(chǔ)在傳統(tǒng)數(shù)據(jù)庫中的數(shù)據(jù)所需的查詢變得越來越復(fù)雜。不僅數(shù)據(jù)的結(jié)構(gòu)發(fā)生了改變,而且用于查詢和公布這個(gè)數(shù)據(jù)的語言也發(fā)生了變化,以支持這種新的數(shù)據(jù)庫范例。
傳統(tǒng)查詢語言包含支持XML的XQuery或支持關(guān)系數(shù)據(jù)庫的SQL。為了查詢這個(gè)新數(shù)據(jù)庫范例中的數(shù)據(jù),加入XQuery來查詢關(guān)系數(shù)據(jù)庫的XML部分。XQuery能夠查詢分層(hierarchical)XML數(shù)據(jù)。對(duì)于主要是關(guān)系存儲(chǔ)器的傳統(tǒng)數(shù)據(jù)庫,現(xiàn)有SQL查詢能力保持原樣。除了允許將關(guān)系數(shù)據(jù)公布為XML的能力之外,附加SQL/XML功能分解XML數(shù)據(jù)并將分解的XML數(shù)據(jù)公布為關(guān)系表。除了加入這種功能之外,這種數(shù)據(jù)庫范例也支持可以進(jìn)行XSL變換,從而以另一種XML格式公布XML數(shù)據(jù)的功能。
一般說來,這種新數(shù)據(jù)庫范例可以支持像,例如,將關(guān)系結(jié)構(gòu)映射為XML結(jié)構(gòu),和反過來將XML結(jié)構(gòu)映射為關(guān)系結(jié)構(gòu)、和將關(guān)系結(jié)構(gòu)映射為關(guān)系結(jié)構(gòu)那樣的查詢和公布語言中的關(guān)系和XML映射能力。
傳統(tǒng)數(shù)據(jù)庫通常使用傳統(tǒng)查詢構(gòu)建器來幫助開發(fā)者或用戶生成關(guān)系數(shù)據(jù)庫的復(fù)雜查詢。盡管這種技術(shù)已被證明是有用的,但人們希望進(jìn)一步加以改進(jìn)。這些傳統(tǒng)查詢構(gòu)建器只是為關(guān)系-關(guān)系查詢和公布而設(shè)計(jì)的,不能構(gòu)建對(duì)在新數(shù)據(jù)庫范例下構(gòu)造的數(shù)據(jù)的查詢。用戶當(dāng)前通過提出XQuery構(gòu)建器和SLQ查詢構(gòu)建器、從XQuery構(gòu)建器和SLQ查詢構(gòu)建器中剪切和粘貼部分查詢、和人工合并部分查詢,來構(gòu)建組合XML和關(guān)系搜索的一些方面的查詢。XQuery構(gòu)建器和SLQ查詢構(gòu)建器都不能將關(guān)系數(shù)據(jù)公布為XML,或?qū)ML數(shù)據(jù)分解為關(guān)系數(shù)據(jù)。將關(guān)系數(shù)據(jù)公布為XML或?qū)ML數(shù)據(jù)分解為關(guān)系數(shù)據(jù)需要獨(dú)立的映射工具。因此,查詢XML數(shù)據(jù)和關(guān)系數(shù)據(jù)的過程是繁瑣的;要求用戶利用分別具有不同的用戶感受的多于一種工具來構(gòu)建組合查詢。
需要一種以透明方式跨越關(guān)系數(shù)據(jù)和XML數(shù)據(jù)進(jìn)行查詢和公布,使得用戶的開發(fā)感受不會(huì)隨被查詢的數(shù)據(jù)的類型而改變的統(tǒng)一查詢構(gòu)建器。用戶應(yīng)該能夠?qū)㈥P(guān)系數(shù)據(jù)和XML數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中而無需了解內(nèi)部存儲(chǔ)機(jī)制。類似地,用戶應(yīng)該能夠查詢數(shù)據(jù)和公布結(jié)果而不必了解查詢和分布語言中的語義變化。倘若用戶了解數(shù)據(jù)的結(jié)構(gòu),用戶應(yīng)該能夠識(shí)別任何數(shù)據(jù)或數(shù)據(jù)的任何部分,以便查詢、公布和修改數(shù)據(jù)。用于構(gòu)建統(tǒng)一查詢的本方法跨越來自例如關(guān)系數(shù)據(jù)庫、XML數(shù)據(jù)存儲(chǔ)器、基于萬維網(wǎng)的數(shù)據(jù)、數(shù)據(jù)饋送器、文件系統(tǒng)等的任何數(shù)據(jù)源的異構(gòu)環(huán)境。到目前為止,對(duì)這種解決方案的需要仍然未得到滿足。
發(fā)明內(nèi)容
本發(fā)明滿足了這種需要,并提供了用于構(gòu)建跨越異構(gòu)環(huán)境的統(tǒng)一查詢的系統(tǒng)、服務(wù)、計(jì)算機(jī)程序產(chǎn)品、和相關(guān)方法(本文統(tǒng)稱為“該系統(tǒng)”或“本系統(tǒng)”)。
本系統(tǒng)包括從識(shí)別的數(shù)據(jù)源的數(shù)據(jù)結(jié)構(gòu)輸入中生成包含多個(gè)節(jié)點(diǎn)的源結(jié)構(gòu);在邏輯視圖中顯示生成的源結(jié)構(gòu);將從多個(gè)節(jié)點(diǎn)當(dāng)中選擇的一個(gè)節(jié)點(diǎn)加入設(shè)計(jì)查詢屏面(canvas)中;根據(jù)所選節(jié)點(diǎn)的源類型,從所選節(jié)點(diǎn)中生成查詢對(duì)象;展示所選查詢對(duì)象的查詢功能的邏輯視圖;和生成包含所生成的查詢對(duì)象的統(tǒng)一查詢。任何所選節(jié)點(diǎn)可以包含一個(gè)節(jié)點(diǎn)或一個(gè)單元。邏輯視圖顯示在圖形用戶界面中。
設(shè)計(jì)查詢屏面包含具有與例如SQL或XML相對(duì)應(yīng)的功能的查詢?cè)O(shè)計(jì)視圖。設(shè)計(jì)查詢屏面包含用于生成SQL的查詢的return網(wǎng)格和where網(wǎng)格。設(shè)計(jì)查詢屏面包含,僅舉例來說,用于生成XML的查詢的for網(wǎng)格、let網(wǎng)格、where網(wǎng)格、order by網(wǎng)格、和return網(wǎng)格。生成的統(tǒng)一查詢顯示在實(shí)際查詢視圖中。所生成的統(tǒng)一查詢的概況顯示在查詢概況(outline)視圖中。
本系統(tǒng)可以以例如統(tǒng)一查詢構(gòu)建實(shí)用程序的實(shí)用程序的形式實(shí)現(xiàn)。本系統(tǒng)還提供了一種使用戶通過指定數(shù)據(jù)源的位置,然后調(diào)用統(tǒng)一查詢構(gòu)建實(shí)用程序生成數(shù)據(jù)結(jié)構(gòu)輸入,來識(shí)別數(shù)據(jù)源的方法。本系統(tǒng)進(jìn)一步提供了一種使用戶從數(shù)據(jù)結(jié)構(gòu)輸入中選擇節(jié)點(diǎn)或單元以便包含在統(tǒng)一查詢中的方法。本系統(tǒng)生成與所選節(jié)點(diǎn)或單元相對(duì)應(yīng)的對(duì)象并向用戶顯示這些對(duì)象,使得用戶可以對(duì)對(duì)象進(jìn)行選擇以便加以放大。本系統(tǒng)提供了使用戶可以操縱或修改放大對(duì)象(expanded object)的方法。本系統(tǒng)提供了使用戶能夠調(diào)用統(tǒng)一查詢構(gòu)建實(shí)用程序,從所選節(jié)點(diǎn)或單元中生成統(tǒng)一查詢的方法。
現(xiàn)在,參照如下描述、權(quán)利要求書、和附圖,更詳細(xì)地描述本發(fā)明的各種特征和實(shí)現(xiàn)它們的方式,在附圖中,在適當(dāng)?shù)那闆r下,附圖標(biāo)記重復(fù)用于指示所引用項(xiàng)目之間的對(duì)應(yīng)關(guān)系,并且在附圖中圖1是可以使用本發(fā)明的統(tǒng)一查詢構(gòu)建系統(tǒng)的示例性工作環(huán)境的示意圖;圖2是圖1的統(tǒng)一查詢構(gòu)建系統(tǒng)的高級(jí)結(jié)構(gòu)的方塊圖;圖3是例示將圖1和2的統(tǒng)一查詢構(gòu)建系統(tǒng)用于在統(tǒng)一查詢中構(gòu)建用于關(guān)系數(shù)據(jù)庫中的XML數(shù)據(jù)的XQuery分段的示例性屏幕快照;圖4是例示將圖1和2的統(tǒng)一查詢構(gòu)建系統(tǒng)用在關(guān)系數(shù)據(jù)庫中的XML數(shù)據(jù)上而形成的XQuery分段的示例性屏幕快照;圖5是例示將圖1和2的統(tǒng)一查詢構(gòu)建系統(tǒng)用在將運(yùn)算符應(yīng)用在用于關(guān)系數(shù)據(jù)庫中的XML數(shù)據(jù)的XQuery分段上的示例性屏幕快照;圖6是例示將圖1和2的統(tǒng)一查詢構(gòu)建系統(tǒng)用在生成用于關(guān)系數(shù)據(jù)庫中的XML數(shù)據(jù)的XQuery的XPath中的示例性屏幕快照;圖7是例示由圖1和2的統(tǒng)一查詢構(gòu)建系統(tǒng)生成的如圖6所示的XQuery的放大視圖的示例性屏幕快照;圖8是例示圖1和2的統(tǒng)一查詢構(gòu)建系統(tǒng)從如圖7所示的XQuery中形成SQL對(duì)象的示例性屏幕快照;圖9是例示圖1和2的統(tǒng)一查詢構(gòu)建系統(tǒng)形成包含來自外部變?cè)捻?xiàng)目的統(tǒng)一查詢的示例性屏幕快照;圖10是例示使外部變?cè)?argument)包括在圖1和2的統(tǒng)一查詢構(gòu)建系統(tǒng)生成的統(tǒng)一查詢中作為內(nèi)部變量的示例性屏幕快照;和圖11由圖11A和11B組成,并代表例示圖1和2的統(tǒng)一查詢構(gòu)建系統(tǒng)的操作方法的過程流程圖。
具體實(shí)施例方式
如下的定義和說明提供了與本發(fā)明的技術(shù)領(lǐng)域有關(guān)的背景信息,并旨在幫助理解本發(fā)明,而不是限制它的范圍數(shù)據(jù)源數(shù)據(jù)的任何來源。數(shù)據(jù)源的例子包含任何格式(關(guān)系、XML等)的數(shù)據(jù)庫、文件系統(tǒng)、網(wǎng)站、web服務(wù)、任何程序、任何計(jì)算機(jī)、任何網(wǎng)絡(luò)等,另外,數(shù)據(jù)源可以包含通過變?cè)獋鬟f的數(shù)據(jù)。
FLWOR包含如下子句(clause)的XQuery表達(dá)式For、Where、Let、Order By、和Return。
萬維網(wǎng)(WWWW,也稱web)因特網(wǎng)客戶機(jī)-服務(wù)器超文件分布式信息檢索系統(tǒng)。
XML可擴(kuò)展標(biāo)記語言。用于描述半結(jié)構(gòu)化文檔和數(shù)據(jù)的標(biāo)準(zhǔn)格式。在文檔創(chuàng)作階段,將XML“標(biāo)記”嵌入文檔的信息內(nèi)容中。當(dāng)隨后在計(jì)算機(jī)系統(tǒng)之間發(fā)送XML文件時(shí),這些標(biāo)記被接收系統(tǒng)用于分析和解釋文檔。
XPath(XML PATH)XPath是W3C.org定義的、用于識(shí)別XML文檔中的節(jié)點(diǎn)的路徑語言。它是XSLT和XML Query的子語言,用于識(shí)別要處理的XML單元,計(jì)算數(shù)量,和操縱字符串。
XSL(可擴(kuò)展頁面格式語言)描述XML文檔的頁面格式(stylesheet)的標(biāo)準(zhǔn)。XSL包含XSL變換(XSLT)、XML路徑語言(XPath)、和XSL格式化對(duì)象(XSL FO)。XSL變換(XSLT)是XSL的處理語言。XLST用于將XML文檔轉(zhuǎn)換成HTML或其它文檔類型,并可以獨(dú)立于XSL使用。XML路徑語言(XPath)用于識(shí)別和選擇XML文檔內(nèi)的帶標(biāo)記的單元。XSL格式化對(duì)象(XSL FO)提供格式詞匯。
XQuery(XML QUERY語言)用于查詢XML文檔的語言。根據(jù)XQuery數(shù)據(jù)模型,XQuery通過分析XML文檔、XML文檔的模式(schema)、和進(jìn)入分層節(jié)點(diǎn)樹中的查詢,處理查詢。XQuery進(jìn)一步生成帶有查詢結(jié)果的輸出模式。
圖1描繪了可以使用根據(jù)本發(fā)明構(gòu)建跨越異構(gòu)環(huán)境的統(tǒng)一查詢的系統(tǒng)、服務(wù)、計(jì)算機(jī)程序產(chǎn)品、和相關(guān)方法(“系統(tǒng)10”)的示例性總體環(huán)境。系統(tǒng)10包含通常嵌入或安裝在像計(jì)算機(jī)15、20、25那樣的計(jì)算機(jī)內(nèi)的軟件編程代碼或計(jì)算機(jī)程序產(chǎn)品?;蛘?,系統(tǒng)10可以保存在像軟盤、CD、硬盤驅(qū)動(dòng)器等設(shè)備那樣的適當(dāng)存儲(chǔ)介質(zhì)上。
本發(fā)明可以采取全部硬件實(shí)施例、全部軟件實(shí)施例或包含硬件和軟件單元兩者的實(shí)施例的形式。在一個(gè)實(shí)施例中,本發(fā)明以軟件的形式實(shí)現(xiàn),包括但不局限于固件、常駐軟件、微碼等。此外,本發(fā)明可以采取可從供計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用或與其結(jié)合在一起使用、提供程序代碼的計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)訪問的計(jì)算機(jī)程序產(chǎn)品的形式。就本說明書而言,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是供指令執(zhí)行系統(tǒng)、裝置、或設(shè)備使用或與其結(jié)合在一起使用的,可以包含、存儲(chǔ)、傳送、傳播、或傳輸程序的任何裝置。
介質(zhì)可以是電子、磁、光、電磁、紅外、或半導(dǎo)體系統(tǒng)(或裝置或設(shè)備)或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可移動(dòng)計(jì)算機(jī)軟盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、硬磁盤和光盤。光盤的當(dāng)前例子包括只讀光盤存儲(chǔ)器(CD-ROM)、可讀寫光盤(CD-R/W)和DVD。
適用于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)包括至少一個(gè)通過系統(tǒng)總線直接或間接與存儲(chǔ)單元耦合的處理器。存儲(chǔ)單元可以包括在實(shí)際執(zhí)行程序代碼期間應(yīng)用的本地存儲(chǔ)器、海量存儲(chǔ)器、和臨時(shí)存儲(chǔ)至少一些程序代碼、以便減少在執(zhí)行期間從海量存儲(chǔ)器中檢取代碼的次數(shù)的高速緩沖存儲(chǔ)器。
輸入/輸出或I/O設(shè)備(包括但不局限于鍵盤、顯示器、定位設(shè)備等)可以直接或通過中介I/O控制器與系統(tǒng)耦合。
網(wǎng)絡(luò)適配器也可以與系統(tǒng)耦合,使數(shù)據(jù)處理系統(tǒng)能夠通過中介專用或公用網(wǎng)絡(luò)與其它數(shù)據(jù)處理系統(tǒng)、遠(yuǎn)程打印機(jī)或存儲(chǔ)設(shè)備耦合。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡僅是幾種當(dāng)前可用的網(wǎng)絡(luò)適配器。
用戶可以用像計(jì)算機(jī)15、20、25那樣的各種各樣的計(jì)算機(jī)來表示,并可以通過網(wǎng)絡(luò)40查詢像例如數(shù)據(jù)源30或服務(wù)器35那樣的數(shù)據(jù)源上的數(shù)據(jù)。計(jì)算機(jī)15、20、25分別包含使用戶可以安全地與服務(wù)器35交互的軟件。服務(wù)器35通過像電話、電纜、或衛(wèi)星鏈路等那樣的通信鏈路45與網(wǎng)絡(luò)40連接。計(jì)算機(jī)15、20、25可以分別通過通信鏈路50、55、60與網(wǎng)絡(luò)40連接。雖然系統(tǒng)10是針對(duì)網(wǎng)絡(luò)40來描述的,但計(jì)算機(jī)15、20、25也可以在本地而不是遠(yuǎn)程地訪問系統(tǒng)10。計(jì)算機(jī)15、20、25可以人工地、或通過使用應(yīng)用程序自動(dòng)地訪問系統(tǒng)10。
圖2例示了系統(tǒng)10的示例性高級(jí)結(jié)構(gòu)。系統(tǒng)10包含樹視圖模塊205、文本視圖模塊210、概況視圖模塊215、微型視圖模塊220、XML表示模塊225、和XML分析器230。XML表示模塊225生成從例如像數(shù)據(jù)源30那樣的數(shù)據(jù)源、服務(wù)器35上的文件結(jié)構(gòu)、可通過網(wǎng)絡(luò)40訪問的萬維網(wǎng)(WWW)上的數(shù)據(jù)等中生成的,像數(shù)據(jù)結(jié)構(gòu)輸入240那樣的數(shù)據(jù)源的邏輯視圖235。系統(tǒng)10接收用戶輸入動(dòng)作245作為輸入,并生成統(tǒng)一查詢模型250作為輸出。系統(tǒng)10將統(tǒng)一查詢模型250和邏輯視圖235展示在可以由用戶操縱的圖形用戶界面255上。在查詢模型上實(shí)現(xiàn)XSL變換(XSLT)231,生成文本視圖210。
樹視圖模塊205提供使用戶能夠操縱數(shù)據(jù)結(jié)構(gòu)輸入240的源模型的樹視圖。源模型的樹視圖包含進(jìn)一步使用戶可以操縱源和查詢模型的上下文菜單。XML分析器230將源模型實(shí)例化成對(duì)象的分層結(jié)構(gòu)。系統(tǒng)10通過圖形用戶界面255生成通過用戶動(dòng)作創(chuàng)建的具有XML結(jié)構(gòu)的查詢模型。圖形用戶界面255向用戶展示統(tǒng)一查詢模型250的一個(gè)或多個(gè)視圖。圖形用戶界面255進(jìn)一步包含構(gòu)建和編輯統(tǒng)一查詢模型250的一個(gè)或多個(gè)控制和動(dòng)作。當(dāng)系統(tǒng)10構(gòu)建統(tǒng)一查詢模型250時(shí),修改統(tǒng)一查詢模型250;系統(tǒng)10生成結(jié)果查詢字符串并在視圖之一中展示結(jié)果查詢字符串。
XML表示模塊225從數(shù)據(jù)源和變量中生成源模型的XML表示。文本視圖模塊210利用例如XSLT生成從查詢模型中生成的查詢的文本視圖。概況視圖模塊215生成顯示查詢模型的查詢層次的查詢模型的概況視圖。概況視圖可以用于在圖形用戶界面255中導(dǎo)航統(tǒng)一查詢模型250。微型視圖模塊220生成查詢模型的微型視圖,其使得用戶可以在像“SELECT”語句或“FLWOR”語句那樣的邏輯功能塊的查詢模型中放大視圖。微型視圖顯示代表查詢模型的子樹;這種子樹將一個(gè)或多個(gè)功能塊表示成一組網(wǎng)格。用戶可以操縱微型視圖來修改查詢。
系統(tǒng)10通過在圖形用戶界面255中使用像拖放那樣的交互方法,跨越像例如XML和關(guān)系數(shù)據(jù)那樣的數(shù)據(jù)開發(fā)出像例如SQL查詢、SQL/XML查詢、XQuery、和XSLT查詢那樣的統(tǒng)一查詢。XML表示模塊225在邏輯視圖235中提供可以作為資源查詢的數(shù)據(jù)的樣本結(jié)構(gòu)表示。這種結(jié)構(gòu)表示包含諸如要查詢的數(shù)據(jù)庫(即,數(shù)據(jù)源30)中的關(guān)系數(shù)據(jù)和XML數(shù)據(jù)、作為變?cè)獋鬟f給查詢的關(guān)系數(shù)據(jù)和XML數(shù)據(jù)、像例如web服務(wù)、文件結(jié)構(gòu)等那樣的任何其它數(shù)據(jù)源中的數(shù)據(jù)、和在查詢內(nèi)創(chuàng)建的瞬時(shí)數(shù)據(jù)的數(shù)據(jù)。
XML表示模塊225通過創(chuàng)建要查詢的數(shù)據(jù)源的邏輯視圖235使各種不同數(shù)據(jù)結(jié)構(gòu)之間的差別變模糊。邏輯視圖235使相關(guān)數(shù)據(jù)源之間的界線變模糊,使用戶可以一般性地將相關(guān)數(shù)據(jù)源看成相同或相似格式的一個(gè)數(shù)據(jù)源。XML表示模塊225將關(guān)系數(shù)據(jù)中的關(guān)系表和列以及關(guān)系表和列包含的XML文檔顯示成單個(gè)層次。邏輯視圖235使用戶可以識(shí)別要搜索和檢取的數(shù)據(jù)的任何部分,在檢取之前或之后對(duì)數(shù)據(jù)加以變換,并對(duì)數(shù)據(jù)作出分析和計(jì)算操作。
系統(tǒng)10和圖形用戶界面255使用最少數(shù)量的用戶動(dòng)作,為從異構(gòu)環(huán)境中生成統(tǒng)一查詢提供易使用和易學(xué)習(xí)的圖形界面。邏輯視圖235包含表示成樹的公用源視圖;不同源類型被顯示成樹上的分支。邏輯視圖235包含“設(shè)計(jì)屏面”,其包含一組網(wǎng)格。網(wǎng)格通過邏輯視圖235展示公用查詢語言邏輯結(jié)構(gòu),抽象統(tǒng)一查詢的語言功能。用戶動(dòng)作包含從數(shù)據(jù)結(jié)構(gòu)輸入240的樹視圖拖到設(shè)計(jì)網(wǎng)格的(選擇和復(fù)制)拖放動(dòng)作。用戶動(dòng)作進(jìn)一步包含使用上下文菜單。隨著系統(tǒng)10利用用戶輸入生成統(tǒng)一查詢,用戶通過觀看生成的統(tǒng)一查詢和所生成統(tǒng)一查詢的結(jié)構(gòu)接收每個(gè)動(dòng)作的反饋。
系統(tǒng)10通過允許用戶通過顯示在邏輯視圖235中的查詢的邏輯抽象動(dòng)作,使用于查詢異構(gòu)數(shù)據(jù)源的異構(gòu)查詢語言的語法差異變模糊。查詢語言具有相似的邏輯結(jié)構(gòu)。例如,SQL中的“SELECT”語句與XQuery中的“FLWOR”表達(dá)式相似;分別都含有selection子句、where子句等。因此,系統(tǒng)10將查詢語言抽象成相似的一組邏輯結(jié)構(gòu)。邏輯視圖235的網(wǎng)格集使用戶可以操縱這些邏輯結(jié)構(gòu)來構(gòu)建統(tǒng)一查詢,而無需了解底層語言的復(fù)雜性或如何組合底層語言來生成統(tǒng)一的查詢。
圖3例示了對(duì)于示例性數(shù)據(jù)庫包含數(shù)據(jù)結(jié)構(gòu)輸入240的邏輯視圖235的圖形用戶界面255的示例性屏幕快照300。圖形用戶界面255包含源顯示305、查詢?cè)O(shè)計(jì)視圖310(這里可互換地稱為查詢?cè)O(shè)計(jì)屏面310)、實(shí)際查詢視圖315、和查詢概況視圖320。當(dāng)系統(tǒng)10利用與像數(shù)據(jù)源30那樣的數(shù)據(jù)庫的現(xiàn)有連接生成新查詢時(shí),查詢數(shù)據(jù)庫模式,并將其加入用數(shù)據(jù)結(jié)構(gòu)輸入240表示的源模型中。源顯示305顯示作為數(shù)據(jù)結(jié)構(gòu)輸入240的源模型的源樹。
圖3中的源顯示305的放大視圖例示了源數(shù)據(jù)結(jié)構(gòu)中的表和列。數(shù)據(jù)庫結(jié)構(gòu)被列為節(jié)點(diǎn)325,“database=db”。數(shù)據(jù)庫結(jié)構(gòu)的模式被列成節(jié)點(diǎn)330,“SCHEMA=‘HARDEEP’”。模式“HARDEEP”中的表335包含CATEGORIES、ORDER CONTENT、PRODUCT、SQLCUSTOMER、SQLPORDER、SQLPRODUCT、和XMLCUSTOMER。
如標(biāo)成“CUSTOMERINFO”的節(jié)點(diǎn)340所示,XML類型的任何列顯示那個(gè)列的XML數(shù)據(jù)結(jié)構(gòu)。XML列可以被放大,以示出存儲(chǔ)在XML列中的XML數(shù)據(jù)的結(jié)構(gòu)。例如,節(jié)點(diǎn)340被顯示為被放大(放大視圖345)以顯示存儲(chǔ)在節(jié)點(diǎn)340中的XML數(shù)據(jù)的結(jié)構(gòu)。源顯示305進(jìn)一步顯示任何外部變?cè)?50或內(nèi)部變量355。外部變?cè)?50使用戶可以加入一個(gè)或多個(gè)在運(yùn)行時(shí)可以傳遞給查詢的外部變?cè)?。?duì)于XML類型的變?cè)到y(tǒng)10示出了XML的結(jié)構(gòu)。內(nèi)部變量355在范圍內(nèi)示出內(nèi)部變?cè)Y(jié)構(gòu)。這里所使用的“在范圍內(nèi)(in scope)”指的是在查詢內(nèi)聲明/創(chuàng)建的內(nèi)部變量在查詢內(nèi)的任何其它地方都可看到或可用。如果在那個(gè)點(diǎn)上不能使用變量,它就不是在范圍內(nèi)。雖然源305例示了數(shù)據(jù)庫模式的數(shù)據(jù)源結(jié)構(gòu),但應(yīng)該明白,顯示在源305中的目標(biāo)源可以是像,例如,web服務(wù)、消息隊(duì)列、http網(wǎng)站、文件結(jié)構(gòu)等那樣的任何數(shù)據(jù)源。
圖4例示了通過在如源顯示305所示的源樹中選擇一個(gè)或多個(gè)節(jié)點(diǎn)生成SQL查詢分段的示例性屏幕快照。為了生成查詢,用戶識(shí)別像例如節(jié)點(diǎn)405(標(biāo)為CID‘PK’)那樣的源樹中的感興趣節(jié)點(diǎn)。如虛線箭頭410所指,用戶選擇節(jié)點(diǎn)405并將節(jié)點(diǎn)405拖到查詢?cè)O(shè)計(jì)視圖310。系統(tǒng)10將節(jié)點(diǎn)405識(shí)別成數(shù)據(jù)庫列,并在查詢?cè)O(shè)計(jì)視圖310中生成表示成SQL對(duì)象415的模式下的SQL語句對(duì)象。系統(tǒng)10根據(jù)用戶拖到查詢?cè)O(shè)計(jì)視圖310中的對(duì)象的類型,在查詢?cè)O(shè)計(jì)視圖310中生成對(duì)象。例如,系統(tǒng)10為從SQL數(shù)據(jù)源拖來的節(jié)點(diǎn)生成SQL對(duì)象,并為從XML數(shù)據(jù)源拖來的節(jié)點(diǎn)生成XML對(duì)象。用戶可以觀看在查詢?cè)O(shè)計(jì)視圖中作為SQL對(duì)象415,在實(shí)際查詢視圖315中作為查詢文本420、和在查詢概況視圖中作為查詢概況425的修改查詢模型。用戶可以通過,例如,選擇SQL對(duì)象415或選擇放大按鈕(未示出)放大SQL對(duì)象415。
圖5例示了放大SQL對(duì)象415和將運(yùn)算符應(yīng)用于關(guān)系數(shù)據(jù)庫中的XML數(shù)據(jù)的XQuery分段的示例性屏幕快照500。屏幕快照500顯示了系統(tǒng)10與用戶交互構(gòu)建的查詢的邏輯視圖。在放大之后,圖4的SQL對(duì)象415代表的SQL選擇語句用return網(wǎng)格505和where網(wǎng)格510表示。return網(wǎng)格505包含“return”菜單條515。where網(wǎng)格510包含“where”菜單條520。用戶可以將附加節(jié)點(diǎn)拖到return網(wǎng)格505或where網(wǎng)格510中。例如,如虛線箭頭525所指,用戶可以將節(jié)點(diǎn)405拖到where網(wǎng)格510中。用戶可以進(jìn)一步從下拉式運(yùn)算符列表530中選擇例如“=”的運(yùn)算符。如虛線箭頭540所指,用戶可以將節(jié)點(diǎn)535(標(biāo)為“INFO”)拖到return網(wǎng)格505中。系統(tǒng)10生成包含節(jié)點(diǎn)405和節(jié)點(diǎn)535的SQL選擇語句,并在實(shí)際查詢視圖315中顯示生成的選擇語句。
圖6例示了當(dāng)生成用于關(guān)系數(shù)據(jù)庫中的XML數(shù)據(jù)的XQuery的XPath時(shí)系統(tǒng)10顯示的示例性屏幕快照600。系統(tǒng)10響應(yīng)于用戶將XML節(jié)點(diǎn)從源顯示305中的源樹拖到查詢?cè)O(shè)計(jì)視圖310,生成XQuery。正如前面討論的那樣,源樹放大XML類型的任何數(shù)據(jù)庫列,并示出存儲(chǔ)在那個(gè)列中的XML數(shù)據(jù)的樣本。如果用戶將這個(gè)樣本XML數(shù)據(jù)中的節(jié)點(diǎn)拖到查詢?cè)O(shè)計(jì)視圖310中,在顯示在實(shí)際查詢視圖315中的底層查詢模型中創(chuàng)建XPath對(duì)象。例如,如虛線箭頭610所示,用戶將節(jié)點(diǎn)605(標(biāo)為“CUSTOMERINFO”)拖到查詢?cè)O(shè)計(jì)視圖310中。系統(tǒng)10形成XPath對(duì)象615,即,“CUSTOMERINFO”。相比之下,當(dāng)拖到查詢?cè)O(shè)計(jì)視圖310的節(jié)點(diǎn)是源數(shù)據(jù)庫中的列時(shí),系統(tǒng)10創(chuàng)建SQL對(duì)象。系統(tǒng)10根據(jù)所選的源節(jié)點(diǎn)隱性地描述統(tǒng)一查詢中的不同單元,使用戶覺察不到存儲(chǔ)結(jié)構(gòu)的轉(zhuǎn)變。
圖7例示了例示系統(tǒng)10生成的XPath對(duì)象的放大視圖的示例性屏幕快照。用戶可以通過,例如,選擇XPath對(duì)象615或選擇放大按鈕(未示出)放大XPath對(duì)象615。系統(tǒng)10根據(jù)所選項(xiàng)目改變放大視圖。如果用戶選擇SQL對(duì)象加以放大,示出例如屏幕快照500的放大SQL屏幕。如果用戶選擇XPath項(xiàng)目加以放大,示出例如屏幕快照700的放大FLWOR屏幕。
XPath對(duì)象的放大視圖包含“for”網(wǎng)格705、“l(fā)et”網(wǎng)格710、“where”網(wǎng)格715、“order by”網(wǎng)格720、和“return”網(wǎng)格725,將它們統(tǒng)稱為FLWOR網(wǎng)格730。如“for”網(wǎng)格705、“where”網(wǎng)格715、和“return”網(wǎng)格725所示,可以放大FLWOR網(wǎng)格730中的每一個(gè)?;蛘撸纭發(fā)et”網(wǎng)格710和“order by”網(wǎng)格720所示,可以縮小FLWOR網(wǎng)格730中的每一個(gè)?!癴or”網(wǎng)格705包含“for”菜單條735?!皐here”網(wǎng)格715包含“where”菜單條740。
“for”網(wǎng)格705經(jīng)過這條路徑上的節(jié)點(diǎn)循環(huán)?!癴or”網(wǎng)格705類似于return網(wǎng)格505,后者定義在其上進(jìn)行循環(huán)以便獲得行的所有列?!皐here”網(wǎng)格715規(guī)定過濾器的搜索準(zhǔn)則以消除無用節(jié)點(diǎn)?!皐here”網(wǎng)格715類似于“where”網(wǎng)格510?!皉eturn”網(wǎng)格725識(shí)別要從查詢返回的一個(gè)或多個(gè)節(jié)點(diǎn)。與隱性地返回所有所選行的SQL選擇不同,F(xiàn)LWOR循環(huán)可以只返回一小組所選節(jié)點(diǎn)。
系統(tǒng)10用標(biāo)為“CUSTOMERINFO”的FLWOR對(duì)象745取代XPath對(duì)象615。用戶可以將附加節(jié)點(diǎn)從樣本XML結(jié)構(gòu)拖到FLWOR網(wǎng)格745中的任何一個(gè)。例如,如虛線箭頭755所指,用戶可以將節(jié)點(diǎn)750(標(biāo)為“country=US”)拖到“where”網(wǎng)格715中。用戶通過從下拉式運(yùn)算符列表530中選擇運(yùn)算符,可以將運(yùn)算符應(yīng)用于“where”網(wǎng)格715中的節(jié)點(diǎn)750。如虛線765所指,用戶可以將節(jié)點(diǎn)760(標(biāo)為“name”)拖到“return”網(wǎng)格725中。如虛線775所指,用戶可以進(jìn)一步將節(jié)點(diǎn)770(標(biāo)為“addr”)拖到“return”網(wǎng)格725中。系統(tǒng)10響應(yīng)這些用戶動(dòng)作生成查詢,并在實(shí)際查詢視圖315中顯示該查詢。系統(tǒng)10為生成的查詢生成查詢概況,并在查詢概況視圖320中顯示該查詢概況。
圖8例示了系統(tǒng)10將SQL選擇嵌入XQuery中的示例性屏幕快照。如虛線箭頭810所示,用戶將節(jié)點(diǎn)805(標(biāo)為“PODATE”)拖到“return”網(wǎng)格725中。節(jié)點(diǎn)805代表數(shù)據(jù)庫列。系統(tǒng)10在底層查詢模型中創(chuàng)建SQL對(duì)象815。在生成的統(tǒng)一查詢中,如查詢分段820所示,系統(tǒng)10將選擇語句嵌入XQuery中。用戶可以放大SQL對(duì)象815和進(jìn)一步細(xì)化(refine)SQL。盡管用戶沒有顯性地創(chuàng)建內(nèi)部SQL,但如查詢分段820所指,系統(tǒng)10外推被拖節(jié)點(diǎn)805的源類型,以便取代XQuery使用SQL。這種系統(tǒng)10從數(shù)據(jù)結(jié)構(gòu)輸入240到數(shù)據(jù)結(jié)構(gòu)輸入240的邏輯模型(層次結(jié)構(gòu))的抽象使源類型之間的界線變模糊,并且,使用戶可以以相同的方式看見所有的源并對(duì)其進(jìn)行操作,從而使用戶更易于構(gòu)造出跨越表示在數(shù)據(jù)結(jié)構(gòu)輸入240中的查詢?cè)吹牟樵冞壿嫛?br>
圖9例示了系統(tǒng)10將包含來自外部變?cè)捻?xiàng)目的查詢嵌入XQuery中的示例性屏幕快照900。用戶可以將XML數(shù)據(jù)作為運(yùn)行時(shí)變?cè)獋鬟f到統(tǒng)一查詢中,并且,使用結(jié)果統(tǒng)一查詢中的XML數(shù)據(jù)。系統(tǒng)10以與任何其它數(shù)據(jù)源相同的方式對(duì)待傳遞到查詢中的運(yùn)行時(shí)變?cè)?。用戶可以在源顯示305的源樹中定義變?cè)⑦@些定義的變?cè)鳛檫\(yùn)行時(shí)參數(shù)傳遞給統(tǒng)一查詢。例如,將代表XML文檔的節(jié)點(diǎn)905(標(biāo)為“item”)作為外部變?cè)尤朐礃渲?。由于變?cè)荴ML類型的,它被放大成示出源樹中的XML文檔結(jié)構(gòu)。用戶可以將節(jié)點(diǎn)從這種結(jié)構(gòu)拖放到FWLOR網(wǎng)絡(luò)730中的任何一個(gè),以便在顯示在實(shí)際查詢視圖315中的統(tǒng)一查詢模型中創(chuàng)建XPath對(duì)象。這里所使用FWLOR指的是包含如下子句的XQuery表達(dá)式For、Where、Let、Order By、和Return。
例如,如虛線箭頭910所示,用戶將節(jié)點(diǎn)905(標(biāo)為“item”)拖到“return”網(wǎng)格725中。節(jié)點(diǎn)905代表例如購物車中的XML文件。系統(tǒng)10將ITEM對(duì)象915加入底層查詢模型中。在生成的統(tǒng)一查詢中,如查詢分段920所示,系統(tǒng)10將XML變?cè)鳛檫\(yùn)行時(shí)間參數(shù)傳遞到統(tǒng)一查詢中。系統(tǒng)10識(shí)別來自標(biāo)識(shí)成變量的輸入變?cè)臄?shù)據(jù),并且利用“?”將識(shí)別的數(shù)據(jù)傳遞給查詢,以便識(shí)別運(yùn)行時(shí)參數(shù)。
圖10例示了系統(tǒng)10將外部變?cè)鳛閮?nèi)部變量包括在為例如XML數(shù)據(jù)和為內(nèi)部SQL查詢創(chuàng)建的變量的數(shù)據(jù)生成的統(tǒng)一查詢中的示例性屏幕快照。如虛線箭頭1010所示,用戶將節(jié)點(diǎn)1005(標(biāo)為“item”)從源樹拖到“l(fā)et”網(wǎng)格710中。系統(tǒng)10生成代表節(jié)點(diǎn)1005的變量,即,“item”1015。系統(tǒng)10與表示成內(nèi)部變量355之下的節(jié)點(diǎn)1025(標(biāo)為“inputitems”)下面的節(jié)點(diǎn)1020的數(shù)據(jù)結(jié)構(gòu)一起顯示“item”1015。因此,系統(tǒng)10使用戶能夠?qū)⒐?jié)點(diǎn)1020所代表的這個(gè)變量中的子節(jié)點(diǎn)拖到查詢?cè)O(shè)計(jì)視圖310中。例如,如虛線箭頭1035所示,用戶可以將節(jié)點(diǎn)1030(標(biāo)為“coupon=”)拖到return網(wǎng)格725中。系統(tǒng)10作出響應(yīng),生成查詢分段1040。查詢分段1040包含根據(jù)輸入變?cè)癱art”創(chuàng)建的@coupon,即,變量“inputitems”中的子屬性。
利用單個(gè)源結(jié)構(gòu)類型(一個(gè)層次結(jié)構(gòu)或幾個(gè)附加層次結(jié)構(gòu)),用戶可以開始將節(jié)點(diǎn)從節(jié)點(diǎn)層次(樹)拖到查詢?cè)O(shè)計(jì)屏面310中的一個(gè)或多個(gè)網(wǎng)格中,以生成統(tǒng)一查詢。系統(tǒng)10通過使語言之間的差異變模糊,進(jìn)一步簡(jiǎn)化生成統(tǒng)一查詢的過程。生成統(tǒng)一查詢是通過使查詢邏輯抽象化完成的,而不是直接向用戶展示查詢語法或邏輯完成的。系統(tǒng)10利用數(shù)據(jù)結(jié)構(gòu)輸入240的定義的數(shù)據(jù)源模式中不同數(shù)據(jù)類型之間的已知關(guān)系并使用該信息生成查詢的嵌套。
圖11(圖11A、11B)例示了系統(tǒng)10生成統(tǒng)一查詢的示例性方法1100。用戶輸入來自異構(gòu)環(huán)境的一個(gè)或多個(gè)數(shù)據(jù)源的位置,獲取數(shù)據(jù)源的元數(shù)據(jù)(步驟1105)以便用作數(shù)據(jù)結(jié)構(gòu)輸入240。系統(tǒng)10從定位的數(shù)據(jù)源的數(shù)據(jù)結(jié)構(gòu)中生成源結(jié)構(gòu)(步驟1110)。系統(tǒng)10在例如源顯示305的圖形用戶界面中將生成的源結(jié)構(gòu)顯示成邏輯視圖(步驟1115)。在一個(gè)實(shí)施例中,源結(jié)構(gòu)是樹。用戶選擇源結(jié)構(gòu)中的一個(gè)或多個(gè)節(jié)點(diǎn)或一個(gè)或多個(gè)單元(步驟1120)。用戶將所選節(jié)點(diǎn)或所選單元加入查詢?cè)O(shè)計(jì)屏面310中(步驟1125)。系統(tǒng)10根據(jù)所選節(jié)點(diǎn)或所選單元的源類型,為所選節(jié)點(diǎn)或所選單元生成一個(gè)或多個(gè)查詢對(duì)象(步驟1130)。
如果用戶通過選擇查詢對(duì)象,選擇放大按鈕等,放大查詢對(duì)象(判決步驟1135),系統(tǒng)10根據(jù)被選來放大的查詢對(duì)象展示查詢功能的邏輯視圖(步驟1140)。如果用戶未放大查詢對(duì)象,用戶確定在查詢中是否需要附加節(jié)點(diǎn)或單元(判決步驟1145)。如果是,處理返回到步驟1115,用戶選擇源結(jié)構(gòu)中的一個(gè)或多個(gè)節(jié)點(diǎn)或單元。否則,系統(tǒng)10為源結(jié)構(gòu)所代表的異構(gòu)環(huán)境生成包含所生成的查詢對(duì)象的統(tǒng)一查詢(步驟1150)。生成的統(tǒng)一查詢基于在步驟1105中選擇的源之間的關(guān)系。例如,如果用戶放在查詢?cè)O(shè)計(jì)屏面310中的兩個(gè)對(duì)象來自同一數(shù)據(jù)庫并處在兩個(gè)不同列中,系統(tǒng)10確定是否這兩個(gè)列處在同一表中、具有相同模式等。
系統(tǒng)10使用戶可以直接查詢數(shù)據(jù)源,生成可以變換成各種格式的結(jié)果。使用系統(tǒng)10的應(yīng)用不需要將數(shù)據(jù)輸入該應(yīng)用中。例如,用戶可以使用系統(tǒng)10查詢發(fā)票,進(jìn)行XLST變換,和生成網(wǎng)頁。直接查詢數(shù)據(jù)源意味著不需要將數(shù)據(jù)輸入到應(yīng)用中。因此,系統(tǒng)10減少了管理從數(shù)據(jù)源30到用戶的數(shù)據(jù)傳送所需的資源。例如,傳統(tǒng)數(shù)據(jù)庫管理系統(tǒng)包含管理數(shù)據(jù)的計(jì)算機(jī)和應(yīng)用服務(wù)器的中間層。系統(tǒng)10不需要這個(gè)中間層。系統(tǒng)10使查詢數(shù)據(jù)源中的數(shù)據(jù)的環(huán)境變得靈活、安全、和相對(duì)廉價(jià)。這種工具創(chuàng)建數(shù)據(jù)庫實(shí)際執(zhí)行的查詢。
應(yīng)該明白,已經(jīng)描述的本發(fā)明的特定實(shí)施例只是例示了本發(fā)明原理的一些應(yīng)用??梢栽诓黄x本發(fā)明的精神和范圍的情況下對(duì)這里所述的構(gòu)建跨越異構(gòu)環(huán)境的統(tǒng)一查詢的系統(tǒng)和方法作出許多修改。
權(quán)利要求
1.一種用于構(gòu)建跨越異構(gòu)環(huán)境的統(tǒng)一查詢的用處理器實(shí)現(xiàn)的方法,包含從識(shí)別的數(shù)據(jù)源的數(shù)據(jù)結(jié)構(gòu)輸入中生成包含多個(gè)節(jié)點(diǎn)的源結(jié)構(gòu);在邏輯視圖中展示生成的源結(jié)構(gòu);將所述多個(gè)節(jié)點(diǎn)當(dāng)中的所選節(jié)點(diǎn)加入設(shè)計(jì)查詢屏面;根據(jù)所選節(jié)點(diǎn)的源類型,從所選節(jié)點(diǎn)生成查詢對(duì)象;展示所選查詢對(duì)象的查詢功能的邏輯視圖;和生成包含所生成的查詢對(duì)象的統(tǒng)一查詢。
2.根據(jù)權(quán)利要求1所述的方法,其中,所選節(jié)點(diǎn)包含一個(gè)單元。
3.根據(jù)權(quán)利要求1所述的方法,其中,邏輯視圖顯示在圖形用戶界面中。
4.根據(jù)權(quán)利要求1所述的方法,其中,設(shè)計(jì)查詢屏面包含查詢?cè)O(shè)計(jì)視圖。
5.根據(jù)權(quán)利要求1所述的方法,其中,設(shè)計(jì)查詢屏面包含生成用于順序查詢語言的查詢的return網(wǎng)格和where網(wǎng)格。
6.根據(jù)權(quán)利要求1所述的方法,其中,設(shè)計(jì)查詢屏面包含生成用于可擴(kuò)展標(biāo)記語言的查詢的for網(wǎng)格。
7.根據(jù)權(quán)利要求1所述的方法,其中,設(shè)計(jì)查詢屏面包含生成用于可擴(kuò)展標(biāo)記語言的查詢的let網(wǎng)格。
8.根據(jù)權(quán)利要求1所述的方法,其中,設(shè)計(jì)查詢屏面包含生成用于可擴(kuò)展標(biāo)記語言的查詢的where網(wǎng)格。
9.根據(jù)權(quán)利要求1所述的方法,其中,設(shè)計(jì)查詢屏面包含生成用于可擴(kuò)展標(biāo)記語言的查詢的order by網(wǎng)格。
10.根據(jù)權(quán)利要求1所述的方法,其中,設(shè)計(jì)查詢屏面包含生成用于可擴(kuò)展標(biāo)記語言的查詢的return網(wǎng)格。
11.根據(jù)權(quán)利要求1所述的方法,其中,設(shè)計(jì)查詢屏面包含生成用于可擴(kuò)展標(biāo)記語言的查詢的arithmetic網(wǎng)格。
12.根據(jù)權(quán)利要求11所述的方法,其中,設(shè)計(jì)查詢屏面進(jìn)一步包含用于生成可擴(kuò)展標(biāo)記語言的查詢的sequence網(wǎng)格。
13.根據(jù)權(quán)利要求11所述的方法,其中,設(shè)計(jì)查詢屏面進(jìn)一步包含用于生成可擴(kuò)展標(biāo)記語言的查詢的if then else網(wǎng)格。
14.根據(jù)權(quán)利要求11所述的方法,其中,設(shè)計(jì)查詢屏面進(jìn)一步包含用于生成可擴(kuò)展標(biāo)記語言的查詢的having網(wǎng)格。
15.根據(jù)權(quán)利要求11所述的方法,其中,設(shè)計(jì)查詢屏面進(jìn)一步包含用于生成可擴(kuò)展標(biāo)記語言的查詢的element and attribute網(wǎng)格。
16.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括在實(shí)際查詢視圖中顯示生成的統(tǒng)一查詢。
17.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括在查詢概況視圖中顯示所生成統(tǒng)一查詢的概況。
18.一種用于構(gòu)建跨越異構(gòu)環(huán)境的統(tǒng)一查詢的用處理器實(shí)現(xiàn)的系統(tǒng),包含數(shù)據(jù)結(jié)構(gòu)輸入器,用于從識(shí)別的數(shù)據(jù)源的數(shù)據(jù)結(jié)構(gòu)輸入中生成包含多個(gè)節(jié)點(diǎn)的源結(jié)構(gòu);分析器,用于在邏輯視圖中展示生成的源結(jié)構(gòu);用戶輸入動(dòng)作,用于將所述多個(gè)節(jié)點(diǎn)當(dāng)中的所選節(jié)點(diǎn)加入設(shè)計(jì)查詢屏面中;表示模塊,用于根據(jù)所選節(jié)點(diǎn)的源類型,從所選節(jié)點(diǎn)生成查詢對(duì)象;顯示模塊,用于展示所選查詢對(duì)象的查詢功能的邏輯視圖;和變換器,用于生成包含所生成的查詢對(duì)象的統(tǒng)一查詢。
19.根據(jù)權(quán)利要求18所述的系統(tǒng),其中,所選節(jié)點(diǎn)包含一個(gè)單元。
20.根據(jù)權(quán)利要求18所述的系統(tǒng),進(jìn)一步包含用于顯示邏輯視圖的圖形用戶界面。
21.根據(jù)權(quán)利要求18所述的系統(tǒng),其中,設(shè)計(jì)查詢屏面包含查詢?cè)O(shè)計(jì)視圖。
22.根據(jù)權(quán)利要求18所述的系統(tǒng),其中,分析器包括XML分析器。
全文摘要
本發(fā)明涉及構(gòu)建跨越異構(gòu)環(huán)境的統(tǒng)一查詢的系統(tǒng)和方法。統(tǒng)一查詢構(gòu)建系統(tǒng)從識(shí)別數(shù)據(jù)源的數(shù)據(jù)結(jié)構(gòu)輸入中生成包含多個(gè)節(jié)點(diǎn)的源結(jié)構(gòu);用邏輯視圖顯示生成的源結(jié)構(gòu);將多個(gè)節(jié)點(diǎn)當(dāng)中的所選節(jié)點(diǎn)或單元加入設(shè)計(jì)查詢分格屏面中;根據(jù)所選節(jié)點(diǎn)的源類型,從所選節(jié)點(diǎn)中生成查詢對(duì)象;展示所選查詢對(duì)象的查詢功能的邏輯視圖;和生成包含所生成查詢對(duì)象的統(tǒng)一查詢。邏輯視圖顯示在包含設(shè)計(jì)查詢分格屏面的圖形用戶界面中,設(shè)計(jì)查詢分格屏面包含與像SQL或XML那樣的查詢語言中的功能相對(duì)應(yīng)的網(wǎng)格。將生成的統(tǒng)一查詢顯示在實(shí)際查詢視圖中和概括在查詢概況視圖中。
文檔編號(hào)G06F17/30GK101030224SQ20071008423
公開日2007年9月5日 申請(qǐng)日期2007年2月27日 優(yōu)先權(quán)日2006年3月3日
發(fā)明者特倫頓·彼得森, 哈迪普·塞恩 申請(qǐng)人:國際商業(yè)機(jī)器公司