亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

復(fù)雜數(shù)據(jù)訪問的制作方法

文檔序號:6650907閱讀:257來源:國知局
專利名稱:復(fù)雜數(shù)據(jù)訪問的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及軟件應(yīng)用程序領(lǐng)域。更為具體地,本發(fā)明涉及諸如數(shù)據(jù)庫等存儲數(shù)據(jù)和報告數(shù)據(jù)的軟件應(yīng)用程序,尤其涉及在這樣的軟件應(yīng)用程序中存儲和查詢數(shù)據(jù)。
背景技術(shù)
為了管理大量數(shù)據(jù),開發(fā)了諸如電子表格和數(shù)據(jù)庫應(yīng)用程序等計算機軟件應(yīng)用程序以用邏輯方式組織和存儲數(shù)據(jù)。典型的電子表格和數(shù)據(jù)庫應(yīng)用程序包括大量信息記錄,其中每一記錄包括預(yù)定數(shù)量的字段。在數(shù)據(jù)庫環(huán)境中,數(shù)據(jù)庫管理系統(tǒng)一般用于提供更簡單地處理數(shù)據(jù)庫的軟件工具。數(shù)據(jù)庫管理系統(tǒng)的示例包括MicrosoftAccess和MicrosoftSQL Server等等。數(shù)據(jù)庫一般允許用戶建立電子表格中不可用的復(fù)雜數(shù)據(jù)相互關(guān)系,這增強了它們的能力同時也使得新用戶更難駕馭數(shù)據(jù)庫應(yīng)用程序。
典型的數(shù)據(jù)庫管理系統(tǒng)向用戶提供添加、修改或刪除數(shù)據(jù)和使用過濾器查詢數(shù)據(jù)的能力,以及報告數(shù)據(jù)庫中的記錄的能力。數(shù)據(jù)庫中的數(shù)據(jù)一般使用行和列來表示。字段是行和列的交點。一般而言,任何給定的字段僅含有單個標(biāo)量數(shù)據(jù)值。數(shù)據(jù)據(jù)查詢一般采用諸如結(jié)構(gòu)化查詢語言(SQL)等查詢語言的形式。這樣的查詢可以對本地持有的數(shù)據(jù)執(zhí)行,或者提交給數(shù)據(jù)庫服務(wù)器用于執(zhí)行。
在某些情況下,數(shù)據(jù)庫可以包括數(shù)據(jù)的分層結(jié)構(gòu)而不是值的平面表。例如,在問題跟蹤應(yīng)用程序中,每一問題可以被分派給一個或多個人。從而用戶必須使用多個鏈表來為這種類型的分層結(jié)構(gòu)建模,并使用聯(lián)結(jié)來自多個表的數(shù)據(jù)的相對復(fù)雜的查詢來查詢這樣的表。更具體地,可能存在一張問題表,以及含有所有可能擁有分派給他們的問題的的人的另一張人物表,以及其中問題被分派給人的紐帶表。建立這樣的表的分層結(jié)構(gòu)對用戶而言是麻煩且混亂的,尤其是對數(shù)據(jù)庫應(yīng)用程序陌生的用戶。跨越這樣的分層結(jié)構(gòu)的查詢由于多重表查詢復(fù)雜的本質(zhì)而同樣是有問題的,尤其在如果用戶缺乏對查詢語言的深入了解的情況下。
本發(fā)明正是關(guān)于這些和其它考慮事項而做出的。

發(fā)明內(nèi)容
根據(jù)本發(fā)明,提供了一種用于向概念表添加復(fù)雜數(shù)據(jù)的計算機實現(xiàn)的方法和計算機可讀介質(zhì)。概念表是包含至少一個復(fù)雜數(shù)據(jù)類型的表。復(fù)雜數(shù)據(jù)類型是一個或多個標(biāo)量列和/或其它復(fù)雜類型,它們被“組合”在一起以形成單個新的數(shù)據(jù)類型。首先,接收向表添加復(fù)雜數(shù)據(jù)類型的信號。創(chuàng)建一個或多個數(shù)據(jù)表。另外,在概念表中創(chuàng)建到該一個或多個數(shù)據(jù)表的鏈接。
根據(jù)其它方面,本發(fā)明涉及用于對概念表中的數(shù)據(jù)建模的計算機實現(xiàn)的方法和計算機可讀介質(zhì)。首先,接收存儲一個或多個數(shù)據(jù)值的信號。分析概念表的結(jié)構(gòu),并確定到一個或多個數(shù)據(jù)表的一個或多個映射。最后,在一個或多個數(shù)據(jù)表中存儲數(shù)據(jù)。
根據(jù)還有一些方面,本發(fā)明涉及用于展開概念表的查詢的計算機實現(xiàn)的方法和計算機可讀介質(zhì)。首先,接收概念表的查詢。下一步,分析概念表的結(jié)構(gòu),并將一條或多條展開規(guī)則應(yīng)用于查詢。最后,提交展開的查詢。
根據(jù)另有一些方面,本發(fā)明涉及用于概念表中的游標(biāo)指示的計算機實現(xiàn)的方法和計算機可讀介質(zhì)。首先,接收訪問概念表中的復(fù)雜數(shù)據(jù)的信號。讀取與該復(fù)雜數(shù)據(jù)相關(guān)聯(lián)的一個或多個映射。最后,使用該映射從一個或多個數(shù)據(jù)表讀取標(biāo)量數(shù)據(jù)。
根據(jù)另外的其它方面,本發(fā)明涉及用于概念表建模的系統(tǒng)。數(shù)據(jù)建模模塊向表添加復(fù)雜數(shù)據(jù),并將復(fù)雜數(shù)據(jù)存儲至一個或多個數(shù)據(jù)表。查詢展開模塊展開概念表查詢來包括一個或多個數(shù)據(jù)表查詢。游標(biāo)指示模塊檢索概念表中的復(fù)雜數(shù)據(jù)。
本發(fā)明可以被實現(xiàn)為計算機進(jìn)程、計算系統(tǒng)或諸如計算機程序產(chǎn)品或計算機可讀介質(zhì)等制品。計算機可讀介質(zhì)可以是計算機系統(tǒng)可讀并編碼用于執(zhí)行計算機進(jìn)程的指令的計算機程序的的計算機存儲介質(zhì)。計算機程序可讀介質(zhì)也可以是計算系統(tǒng)可讀并編碼用于執(zhí)行計算機進(jìn)程的指令的計算機程序的的載波上傳播的信號。
通過閱讀下文的詳細(xì)描述并觀察附圖,作為本發(fā)明的特征的這些和多個其它特征以及優(yōu)點將會變得明顯。


圖1示出了可在其中實現(xiàn)本發(fā)明的實施例的數(shù)據(jù)庫環(huán)境。
圖2示出了可在其上實現(xiàn)本發(fā)明的實施例的合適的計算系統(tǒng)環(huán)境的示例。
圖3示出了存在于本發(fā)明的一個實施例中的模塊。
圖4示出了根據(jù)本方面的實施例所執(zhí)行的操作的操作流程圖。
圖5示出了根據(jù)本發(fā)明的實施例所執(zhí)行的操作的操作流程圖。
圖6示出了根據(jù)本方面的實施例所執(zhí)行的操作的操作流程圖。
圖7示出了根據(jù)本方面的實施例所執(zhí)行的操作的操作流程圖。
具體實施例方式
圖1示出了數(shù)據(jù)庫管理系統(tǒng)內(nèi)的產(chǎn)品定單數(shù)據(jù)庫的表式視圖102的屏幕截圖。表102包括由多行和多列數(shù)據(jù)組成的表。每一行數(shù)據(jù)一般包括單個數(shù)據(jù)記錄。一般,可期望數(shù)據(jù)庫中的每一列數(shù)據(jù)含有同種類型的數(shù)據(jù)元素。例如,Order ID(定單ID)列104包括數(shù)字格式的數(shù)據(jù)元素,Customer(顧客)列106包括字母數(shù)字串形式的數(shù)據(jù),Order Date(定單日期)列108包括日期格式的數(shù)據(jù)等等。單個記錄的OrderID列對應(yīng)于該記錄的Order ID字段。由此,字段的集合可以包含一列。本領(lǐng)域的技術(shù)人員可以理解,多種其它類型的數(shù)據(jù)可以保存在數(shù)據(jù)庫中,且使用數(shù)據(jù)庫管理系統(tǒng)內(nèi)的表來顯示。本發(fā)明允許使用簡單數(shù)據(jù)庫表的概念化(外表上與數(shù)據(jù)庫表102類似,但結(jié)構(gòu)上不同)來對復(fù)雜的數(shù)據(jù)層級建模,從而減輕用戶形成跨越多張表的復(fù)雜查詢以及在多張表之間來回移動以查看和處理數(shù)據(jù)的負(fù)擔(dān)。
假定本發(fā)明可以被實現(xiàn)為計算機系統(tǒng),提供圖2來示出可在其上實現(xiàn)本發(fā)明的實施例的合適的計算系統(tǒng)環(huán)境的示例。在其最基本配置中,系統(tǒng)200包括至少一個處理單元202和存儲器204。取決于計算設(shè)備的確切配置和類型,存儲器204可以是易失性的(諸如RAM)、非易失性的(諸如ROM、閃存等)或兩者的某種組合。該最基本的配置在圖2中以虛線206示出。
除了存儲器204之外,系統(tǒng)可以包括至少一種其它形式的計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是能夠由系統(tǒng)200訪問的任何可用介質(zhì)。作為示例,而非限制,計算機可讀介質(zhì)可以包括計算機存儲介質(zhì)和通信介質(zhì)。
計算機存儲介質(zhì)包括以任何方法或技術(shù)實現(xiàn)的用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的易失性和非易失性、可移動和不可移動介質(zhì)。存儲器204、可移動存儲208和不可移動存儲210都是計算機存儲介質(zhì)的示例。計算機存儲介質(zhì)包括,但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光盤存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設(shè)備、或能用于存儲所需信息且可以由系統(tǒng)200訪問的任何其它介質(zhì)。任何這樣的計算機存儲介質(zhì)可以是系統(tǒng)200的一部分。
系統(tǒng)200也可以包括允許系統(tǒng)與其它設(shè)備通信的通信連接212。通信連接212是通信介質(zhì)的示例。通信介質(zhì)通常具體化為諸如載波或其它傳輸機制等已調(diào)制數(shù)據(jù)信號中的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù),且包含任何信息傳遞介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”指的是這樣一種信號,其一個或多個特征以在信號中編碼信息的方式被設(shè)定或更改。作為示例,而非限制,通信介質(zhì)包括有線介質(zhì),諸如有線網(wǎng)絡(luò)或直接線連接,以及無線介質(zhì),諸如聲學(xué)、RF、紅外線和其它無線介質(zhì)。此處所用的術(shù)語計算機可讀介質(zhì)包括存儲介質(zhì)和通信介質(zhì)。
根據(jù)一個實施例,系統(tǒng)200包括外圍設(shè)備,諸如輸入設(shè)備214和/或輸出設(shè)備216。示例性輸入設(shè)備214包括但不限于,鍵盤、計算機鼠標(biāo)、筆、或觸針、語音輸入設(shè)備、觸覺輸入設(shè)備等。示例性輸出設(shè)備216包括但不限于,諸如顯示器、揚聲器和打印機等設(shè)備。為本發(fā)明的目的,顯示器是主要輸出設(shè)備。這些設(shè)備中的每一件在本領(lǐng)域中都是公知的,從而不在此詳細(xì)描述。
理解了計算環(huán)境以后,下列附圖是關(guān)于為實現(xiàn)實施本發(fā)明的各實施例的過程而執(zhí)行的邏輯操作來描述的。這些邏輯操作被實現(xiàn)為(1)運行在計算系統(tǒng)上的計算機實現(xiàn)的步驟或程序模塊的序列,和/或(2)計算系統(tǒng)內(nèi)的互聯(lián)機器邏輯電路或電路模塊。實施方式是取決于實現(xiàn)本發(fā)明的計算系統(tǒng)的性能需求的選擇問題。從而,此處描述且組成本發(fā)明的實施例的邏輯操作被不同地稱為操作、結(jié)構(gòu)設(shè)備、動作或模塊。本領(lǐng)域的技術(shù)人員可以認(rèn)識到,這些操作、結(jié)構(gòu)設(shè)備、動作或模塊可以用軟件、固件、專用數(shù)字邏輯及其任何組合來實現(xiàn),而不背離如所附權(quán)利要求書中所述的本發(fā)明的精神和范圍。
圖3示出了根據(jù)本發(fā)明的一個實施例的模塊。用戶界面模塊允許用戶查看、修改、查詢或以其它方式處理數(shù)據(jù)。因此,用戶與數(shù)據(jù)建模模塊304、查詢展開模塊306和游標(biāo)建模模塊308的交互通過用戶界面模塊302發(fā)生。同樣地,來自所述的模塊304、306和308的數(shù)據(jù)通過用戶界面模塊302顯示。
用戶界面302將表分層結(jié)構(gòu)參數(shù)傳遞給數(shù)據(jù)建模模塊304,并且另外可以從數(shù)據(jù)建模模塊304中接收反饋以使用更多的表定義或修改來協(xié)助用戶。用戶界面模塊302向查詢展開模塊306傳遞由用戶提供的查詢,且同樣從查詢展開模塊306中接收查詢結(jié)果。用戶界面模塊302將來自用戶的對數(shù)據(jù)的請求傳遞給游標(biāo)指示模塊308用于數(shù)據(jù)檢索,并同樣從游標(biāo)指示模塊308接收檢索到的數(shù)據(jù)。
在一個實施例中,用戶界面模塊302在顯示器上直接呈現(xiàn)從模塊304、306和308中的一個或多個返回的數(shù)據(jù)。在替換實施例中,用戶界面302使用應(yīng)用程序編程接口(API)來更新顯示。
數(shù)據(jù)建模模型304允許創(chuàng)建并修改概念表。概念表是可以包含另一張表形式的復(fù)雜(非標(biāo)量)數(shù)據(jù)以及復(fù)雜數(shù)據(jù)的數(shù)據(jù)表。數(shù)據(jù)表一般僅包括標(biāo)量數(shù)據(jù),且可以包括數(shù)字、字母數(shù)字串、分?jǐn)?shù)等。復(fù)雜數(shù)據(jù)可以包括一個或多個嵌套的表,嵌套的表本身可以包括額外層次的嵌套表。概念表可以包含任意多個這樣的分層相關(guān)的表。從而,概念表中的給定字段可以被完全地物理地映射至另一張表中的字段。而且,該物理映射及其結(jié)果對用戶而言是完全透明的。數(shù)據(jù)建模模塊304可以從用戶界面302接收由用戶為概念表所指定的參數(shù)。
在一個實施例中,概念表被存儲為含有標(biāo)量數(shù)據(jù)的一個或多個數(shù)據(jù)表。僅存在于概念表中的標(biāo)量數(shù)據(jù)值被存儲在特別為非映射的標(biāo)量值分配的數(shù)據(jù)表中。物理映射至數(shù)據(jù)表的一個或多個數(shù)據(jù)值由數(shù)據(jù)建模模塊304“切碎(shred)”,使得這些數(shù)據(jù)被物理地存儲在數(shù)據(jù)表310中。作為結(jié)果,用戶僅需處理單個概念表,而同時將概念表轉(zhuǎn)換為用于存儲的多個分層表的復(fù)雜性對用戶而言是透明的。同樣,切碎的實現(xiàn)不必涉及在數(shù)據(jù)庫存儲引擎或數(shù)據(jù)庫查詢處理器中添加任何復(fù)雜性。
在一個實施例中,當(dāng)將復(fù)雜列添加至表中時,概念表中的數(shù)據(jù)值被切碎為合適的數(shù)據(jù)表。在替換實施例中,當(dāng)從用戶處接收到保存命令時,概念表中的數(shù)據(jù)值被切碎為合適的數(shù)據(jù)表。在又一實施例中,只要檢測到值變化,概念表中的數(shù)據(jù)值就被切碎為合適的數(shù)據(jù)表。
查詢展開模塊306從用戶界面模塊302接收概念表查詢,并基于該概念表的分層結(jié)構(gòu)來展開該查詢。在一個實施例中,查詢展開模塊306基于概念表的分層結(jié)構(gòu),使用由開發(fā)者定義的一組規(guī)則來展開查詢。在下文表1-12中描述了一組示例性查詢展開規(guī)則。
在替換實施例中,查詢展開模塊306通過將相關(guān)數(shù)據(jù)表的子集聯(lián)結(jié)(數(shù)據(jù)庫領(lǐng)域的術(shù)語,類似于組合)為單個數(shù)據(jù)表來展開查詢,然后在該單個數(shù)據(jù)表上執(zhí)行概念表查詢。在另一個替換實施例中,查詢展開模塊306通過與相關(guān)性無關(guān)地將由概念表鏈接的所有數(shù)據(jù)表310聯(lián)結(jié)為單個數(shù)據(jù)表來展開查詢,然后在該單個數(shù)據(jù)表上執(zhí)行概念表查詢。
在一個實施例中,查詢展開模塊306直接在數(shù)據(jù)表310上執(zhí)行查詢。在替換實施例中,查詢展開模塊306將展開的查詢提交給數(shù)據(jù)庫服務(wù)器用于執(zhí)行。這樣的實施例不必要求對查詢處理器或數(shù)據(jù)庫服務(wù)器的任何改變。
游標(biāo)指示模塊308使得能夠讀取并導(dǎo)航概念表。當(dāng)通過用戶界面302接收到打開概念表的信號時,游標(biāo)指示模塊308分析存在的對數(shù)據(jù)表的任何映射。來自這些數(shù)據(jù)表的標(biāo)量數(shù)據(jù)使用映射來檢索,且標(biāo)量數(shù)據(jù)被返回至用戶界面302用于顯示。
如果用戶選擇了包含數(shù)據(jù)表的概念表字段,那么引用該字段中的表映射。對映射至的數(shù)據(jù)表拍快照,并在概念表中顯示結(jié)果。在一個實施例中,映射至的數(shù)據(jù)表也對編輯鎖定,使得它們的內(nèi)容不能改變。在替換實施例中,映射至的數(shù)據(jù)表不被鎖定,相反,周期性地檢查映射至的數(shù)據(jù)表以將更新傳播給所顯示的概念表。
本領(lǐng)域的技術(shù)人員可以認(rèn)識到,盡管結(jié)合圖3提供的示例性實施例涉及可包含數(shù)據(jù)表的概念表,但是可以使用任意多層間接,而不背離所要求保護(hù)的發(fā)明的范圍。例如,概念表可以包括一個或多個概念表,這一個或多個概念表本身仍舊可以包括其它概念表。在該情形中,必須注意防止無限循環(huán),即概念表引用(直接或間接地)其自身,這樣造成了無限層數(shù)的間接。
在一個實施例中,數(shù)據(jù)建模模塊304可以原子地執(zhí)行數(shù)據(jù)存儲。這意味著在任何給定的數(shù)據(jù)存儲嘗試中,或者全部或者沒有數(shù)據(jù)表被更新。同樣,可以避免讀取數(shù)據(jù)的同時數(shù)據(jù)表處于過渡狀態(tài)中。原子數(shù)據(jù)表寫入可以通過信號量、文件鎖定或本領(lǐng)域的技術(shù)人員已知的其它方法來執(zhí)行,且可以額外地包含回退(撤銷一個或多個未決的寫入)。
圖4示出了根據(jù)本發(fā)明的實施例的操作流程,在其中創(chuàng)建了概念表。接收操作402從用戶處接收向現(xiàn)有的表或概念表添加復(fù)雜數(shù)據(jù)類型的信號。該信號可以通過用戶界面從用戶處、從自動化計算機過程中、或其它輸入源接收。該接收觸發(fā)創(chuàng)建操作404創(chuàng)建至少一張數(shù)據(jù)表。
創(chuàng)建操作404創(chuàng)建至少一張數(shù)據(jù)表來包含與該復(fù)雜數(shù)據(jù)相關(guān)聯(lián)的任何標(biāo)量值。當(dāng)存儲概念表時,輸入到復(fù)雜數(shù)據(jù)字段的數(shù)據(jù)可以被切碎為對應(yīng)的數(shù)據(jù)表。在一個實施例中,每一創(chuàng)建的數(shù)據(jù)表采用一個或多個數(shù)據(jù)庫文件的形式。在另一個實施例中,每一創(chuàng)建的數(shù)據(jù)表采用一個或多個數(shù)據(jù)庫文件內(nèi)的數(shù)據(jù)結(jié)構(gòu)的形式。在又一實施例中,創(chuàng)建操作404在每一創(chuàng)建的數(shù)據(jù)表內(nèi)額外地將一個或多個值初始化為默認(rèn)值。在其中已經(jīng)存在合適的數(shù)據(jù)表的一個實施例中,創(chuàng)建操作404可以被省略,且可以僅鏈接至數(shù)據(jù)表。
在創(chuàng)建操作404之后,鏈接操作406向概念表添加一個或多個鏈接,對應(yīng)于由創(chuàng)建操作404所創(chuàng)建的一個或多個數(shù)據(jù)表。當(dāng)通過游標(biāo)指示(在上文中結(jié)合圖3以及在下文中結(jié)合圖7描述)選擇復(fù)雜數(shù)據(jù)字段時,可以使用鏈接來分配數(shù)據(jù)表。當(dāng)添加或修改復(fù)雜數(shù)據(jù)字段內(nèi)的標(biāo)量值時(上文中結(jié)合圖3描述),也可以使用鏈接來分配數(shù)據(jù)表。
確定操作408確定是否需要額外的表來容納復(fù)雜數(shù)據(jù)。如果需要更多的表,該流程分支到“是”,以返回至創(chuàng)建操作404。如果不需要更多的表,該流程分支到“否”來結(jié)束流程410。
一旦到達(dá)流程410的終點,可以使用游標(biāo)指示(在上文中結(jié)合圖3以及在下文中結(jié)合圖7描述)查看或處理復(fù)雜數(shù)據(jù),且可以通過切碎(在上文中結(jié)合圖3以及在下文中結(jié)合圖5描述)來存儲復(fù)雜數(shù)據(jù)。
在一個實施例中,現(xiàn)有數(shù)據(jù)表可以被插入至概念表中。在這一實施例中,驗證操作(未示出)將驗證數(shù)據(jù)表的存在,且可以省略創(chuàng)建操作404。
圖5示出了根據(jù)本發(fā)明的一個實施例的操作流程,其中來自概念表的數(shù)據(jù)被切碎并存儲至一個或多個對應(yīng)的數(shù)據(jù)表。
接收操作502接收存儲與概念表相關(guān)聯(lián)的一個或多個復(fù)雜數(shù)據(jù)值的信號。該信號可以是用戶明確將數(shù)據(jù)保存在數(shù)據(jù)庫管理應(yīng)用程序內(nèi)的結(jié)果。或者,該信號可以從同步修改的數(shù)據(jù)的自動化過程中接收。由接收操作502的對信號的接收觸發(fā)分析操作504。
分析操作504分析用于存儲復(fù)雜數(shù)據(jù)值的概念表,并確定該概念表的結(jié)構(gòu)?;谠摻Y(jié)構(gòu)數(shù)據(jù),確定操作506確定到數(shù)據(jù)表中的位置的一個或多個映射。這些映射可以是一組數(shù)據(jù)表坐標(biāo)、指向包含數(shù)據(jù)表的存儲器位置的指針、數(shù)據(jù)表文件名、唯一記錄標(biāo)識號或用于尋址數(shù)據(jù)的其它方式、或其任何組合的形式。
存儲操作508使用這些映射將來自概念表的一個或多個數(shù)據(jù)值存儲至數(shù)據(jù)值各自的數(shù)據(jù)表中,此時概念表數(shù)據(jù)被成功地切碎。數(shù)據(jù)可以稍后通過游標(biāo)指示(在上文結(jié)合圖3描述,在下文結(jié)合圖7描述)來被“解除切碎(unshred)”。在一個實施例中,存儲操作508原子地執(zhí)行數(shù)據(jù)存儲。在另一個實施例中,存儲操作508可以退回不完整的存儲。
圖6示出了根據(jù)本發(fā)明的一個實施例的操作流程,其中概念表的查詢被展開來處理切碎的數(shù)據(jù)。接收操作602接收對概念表的查詢。在一個實施例中,這樣的查詢可以由用戶以文本形式輸入。在另一個實施例中,所述查詢可以是完全或部分使用圖形用戶界面來構(gòu)造的。在又一實施例中,所述查詢可以由計算機自動生成。
分析操作604分析用于查詢復(fù)雜數(shù)據(jù)的概念表,并確定概念表的結(jié)構(gòu)以及到數(shù)據(jù)表的任何相關(guān)聯(lián)的映射。這些映射可以采用若干不同的形式(如前文中結(jié)合圖5討論的)中的任一種。
確定操作606使用來自分析操作604的結(jié)構(gòu)數(shù)據(jù)和映射,結(jié)合一組展開規(guī)則來確定是否有任何規(guī)則適用于該查詢以及這些規(guī)則是否需要展開。如果沒有適用于該查詢的規(guī)則,或者如果合適的規(guī)則指示展開完成,那么流程分支到“否”到簽發(fā)操作610。如果一條或多條規(guī)則適用于該查詢,流程分支到“是”到應(yīng)用操作608。
如果一條或多條展開規(guī)則適用于查詢,則應(yīng)用操作608根據(jù)這些規(guī)則來展開查詢。在一個實施例中,應(yīng)用操作可以創(chuàng)建新查詢作為展開查詢的一部分。在下文表1-12中描述了某些示例性展開規(guī)則,包括使用諸如JOIN等SQL術(shù)語的展開以在評估數(shù)據(jù)之前將數(shù)據(jù)表組合在一起。本領(lǐng)域的技術(shù)人員可以理解,確定操作606和應(yīng)用操作608可以在查詢完全展開之前反復(fù)進(jìn)行,從而準(zhǔn)備好由簽發(fā)操作610來簽發(fā)??梢园床煌捻樞騺響?yīng)用一條以上規(guī)則,且單條規(guī)則可以在查詢的展開過程中被應(yīng)用一次以上。在實現(xiàn)查詢的增量式展開的實施例中,查詢展開規(guī)則可以被保持為彼此正交,從而保持相對簡單。在執(zhí)行查詢的增量式展開的實施例中,數(shù)據(jù)結(jié)構(gòu)對存儲增量式展開規(guī)則應(yīng)用程序的中間結(jié)果可能是必需的。在替換實施例中,多條查詢展開規(guī)則可以由應(yīng)用操作608應(yīng)用。
簽發(fā)操作610提交由確定和應(yīng)用操作606和608展開的查詢。在一個實施例中,簽發(fā)操作610直接查詢數(shù)據(jù)庫數(shù)據(jù)。在替換實施例中,簽發(fā)操作610向數(shù)據(jù)庫服務(wù)器發(fā)送查詢。
圖7示出了根據(jù)本發(fā)明的一個實施例的操作流程,其中游標(biāo)指示使得能夠從切碎的概念表中檢索數(shù)據(jù)。接收操作702接收打開概念表中的復(fù)雜數(shù)據(jù)的信號。這樣的信號可以從用戶打開含有必需被顯示的復(fù)雜數(shù)據(jù)的現(xiàn)有概念表、從用戶移動游標(biāo)至含有復(fù)雜數(shù)據(jù)的概念表字段、或通過其它用戶生成或計算機生成的輸入而得到。
讀取操作704讀取到與概念表相關(guān)聯(lián)的數(shù)據(jù)表中位置的一個或多個映射。如前所述,這些映射可以采用各種形式。接收操作706然后從由映射指示的數(shù)據(jù)表中檢索標(biāo)量數(shù)據(jù)值。由檢索操作706檢索出的標(biāo)量值可以用于填充概念表,概念表由顯示操作708顯示。
顯示操作708顯示含有由檢索操作706檢索到的標(biāo)量值的概念表。在一個實施例中,顯示操作708可以直接在屏幕上呈現(xiàn)概念表,在另一個實施例中,顯示操作708可以依賴于應(yīng)用程序編程接口(API)來執(zhí)行呈現(xiàn),或者在其它構(gòu)想的實施例中,顯示操作708可以使用本領(lǐng)域的技術(shù)人員已知的用于顯示數(shù)據(jù)的其它方法。
本領(lǐng)域的技術(shù)人員可以理解,此處所要求保護(hù)的實施例不僅可以在使用復(fù)雜數(shù)據(jù)類型的數(shù)據(jù)庫和電子表應(yīng)用程序的環(huán)境中使用,也可以在諸如MicrosoftSharepoint等協(xié)作服務(wù)套件的環(huán)境中使用。這樣的套件可以包括含有多個值的其自身的復(fù)雜數(shù)據(jù)類型(例如,多項選擇、附加文件等)。可以基本上與此處討論的示例性實施例中相同的方式來處理這些復(fù)雜數(shù)據(jù)類型。
在一個特定實施例中,一組SQL查詢展開規(guī)則由查詢展開模塊306(圖3)、確定操作606和應(yīng)用操作608(圖6)使用。在表1-11中顯示了一組示例性的若干SQL查詢展開規(guī)則。這些規(guī)則處理不同復(fù)雜性的情景。在示例中(表1),展開了相對簡單的SELECT查詢。簡單SELECT查詢被定義為沒有分組和聚集的查詢。當(dāng)對復(fù)雜標(biāo)量字段不存在約束時,在展開的查詢中僅需引用父表。當(dāng)在查詢的WHERE子句中存在對復(fù)雜標(biāo)量的約束時,必須執(zhí)行表和復(fù)雜數(shù)據(jù)類型之間的聯(lián)結(jié)(見表1的基本示例)。WHERE子句中的過濾器必須如引用復(fù)雜數(shù)據(jù)類型而不是表中的復(fù)雜列所需的來修改。SELECT子句中的字段必需使用正確的表引用來被類似地修改。當(dāng)在一張表和另一張表之間必須執(zhí)行復(fù)雜標(biāo)量上的非左聯(lián)結(jié)時,展開的查詢將包括聯(lián)結(jié)父表及其復(fù)雜表的子查詢(見表4的基本示例)。如果在未展開查詢中的WHERE子句中出現(xiàn)NOT,那么NOT將被轉(zhuǎn)換為[表].[復(fù)雜列]NOT IN(SELECT[復(fù)雜列]FROM[表]JOIN[平面表]ON[表].[復(fù)雜列]=[平面表].[外鍵]WHERE[平面表].[復(fù)雜標(biāo)量]=值)。
表4-11示出了使用聚集的查詢的展開規(guī)則。一個這樣的規(guī)則是,復(fù)雜類型的聚集是針對表和復(fù)雜數(shù)據(jù)類型的LEFT JOIN(左聯(lián)結(jié))而執(zhí)行的。另一個這樣的規(guī)則是,當(dāng)在未展開的查詢中存在不同復(fù)雜類型的聚集時,每一聚集將會使用子查詢來被計算。同樣,HAVING子句(表10)的出現(xiàn)將被轉(zhuǎn)化為外查詢中的WHERE子句。如果HAVING子句引用了不以其它方式在聚集SELECT列表中引用的復(fù)雜類型,可以創(chuàng)建新的子查詢來聯(lián)結(jié)表和復(fù)雜類型。

表1復(fù)雜標(biāo)量上的示例過濾器

表2多個復(fù)雜標(biāo)量上的示例過濾器

表3當(dāng)在復(fù)雜標(biāo)量上聯(lián)結(jié)時的示例子查詢

表4復(fù)雜類型上的示例聚集

表5復(fù)雜類型上的聚集,在對同一復(fù)雜標(biāo)量有約束


表6復(fù)雜類型上的示例聚集,對不同的復(fù)雜標(biāo)量有約束

表7復(fù)雜類型1的示例聚集,對復(fù)雜標(biāo)量1和復(fù)雜標(biāo)量2有約束

表8復(fù)雜類型1和復(fù)雜類型2上的示例聚集


表9復(fù)雜類型1和復(fù)雜類型2上的示例聚集,對復(fù)雜標(biāo)量1和復(fù)雜標(biāo)量2有約束

表10HAVING子句中的示例復(fù)雜類型

表11復(fù)雜類型1上的示例聚集,帶有HAVING子句中的復(fù)雜類型2上述的多個實施例僅作為示例提供,且不應(yīng)該被解釋為限制本發(fā)明。本領(lǐng)域的技術(shù)人員可以容易地認(rèn)識到,可以對本發(fā)明進(jìn)行多種修改和變化,而不遵循此處示出和描述的示例實施例和應(yīng)用,且不背離在權(quán)利要求中描述的本發(fā)明的真正的精神和范圍。
權(quán)利要求
1.一種用于向概念表添加復(fù)雜數(shù)據(jù)的計算機實現(xiàn)的方法,包括接收向所述概念表添加復(fù)雜數(shù)據(jù)類型的信號;創(chuàng)建一個或多個數(shù)據(jù)表;以及創(chuàng)建到所述一個或多個數(shù)據(jù)表的鏈接。
2.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其特征在于,所述復(fù)雜數(shù)據(jù)包括數(shù)據(jù)表。
3.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其特征在于,所述復(fù)雜數(shù)據(jù)包括概念表。
4.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其特征在于,還包括對所述概念表中的數(shù)據(jù)建模,其中,對數(shù)據(jù)建模包括接收存儲一個或多個數(shù)據(jù)值的信號;分析所述概念表的結(jié)構(gòu);確定到一個或多個數(shù)據(jù)表的一個或多個映射;以及在所述一個或多個數(shù)據(jù)表中存儲數(shù)據(jù)。
5.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其特征在于,還包括展開所述概念表的查詢,其中,展開查詢的步驟包括接收概念表的查詢;分析所述概念表的結(jié)構(gòu);將一條或多條展開規(guī)則應(yīng)用于所述查詢;以及簽發(fā)所述查詢。
6.如權(quán)利要求5所述的計算機實現(xiàn)的方法,其特征在于,所述將一條或多條展開規(guī)則應(yīng)用于查詢是增量式執(zhí)行的。
7.如權(quán)利要求5所述的計算機實現(xiàn)的方法,其特征在于,多條所述的一條或多條展開規(guī)則可以被應(yīng)用在同一操作中。
8.如權(quán)利要求5所述的計算機實現(xiàn)的方法,其特征在于,所述將一條或多條展開規(guī)則應(yīng)用于查詢還包括將多個數(shù)據(jù)表組合成所述概念表的模型;以及將所述查詢應(yīng)用于所述概念表的模型。
9.如權(quán)利要求5所述的計算機實現(xiàn)的方法,其特征在于,所述簽發(fā)查詢還包括將所述查詢提交給數(shù)據(jù)庫服務(wù)器用于執(zhí)行。
10.如權(quán)利要求5所述的計算機實現(xiàn)的方法,其特征在于,所述簽發(fā)查詢還包括直接訪問所述數(shù)據(jù)庫數(shù)據(jù)。
11.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其特征在于,還包括在所述概念表中進(jìn)行游標(biāo)指示,其中,游標(biāo)指示包括接收訪問所述概念表中的復(fù)雜數(shù)據(jù)的信號;讀取與所述復(fù)雜數(shù)據(jù)相關(guān)聯(lián)的一個或多個映射;以及使用所述映射從一個或多個數(shù)據(jù)表中檢索標(biāo)量數(shù)據(jù)。
12.如權(quán)利要求12所述的計算機實現(xiàn)的方法,其特征在于,還包括顯示所述概念表中的標(biāo)量數(shù)據(jù)。
13.一種計算系統(tǒng)可訪問且編碼了用于執(zhí)行如權(quán)利要求1所述的方法的計算機程序的計算機可讀介質(zhì)。
14.一種用于概念表建模的系統(tǒng),包括數(shù)據(jù)建模模塊,用于向表添加復(fù)雜數(shù)據(jù),并將復(fù)雜數(shù)據(jù)存儲至一個或多個數(shù)據(jù)表;查詢展開模塊,用于展開概念表查詢來包括一個或多個數(shù)據(jù)表查詢;以及游標(biāo)指示模塊,用于檢索概念表中的復(fù)雜數(shù)據(jù)。
15.如權(quán)利要求14所述的系統(tǒng),其特征在于,還包括用于顯示來自所述查詢展開模塊和所述游標(biāo)指示模塊的結(jié)果的顯示模塊。
16.一種計算系統(tǒng)可訪問且編碼了用于對概念表中的數(shù)據(jù)建模的計算機程序的計算機可讀介質(zhì),包括接收存儲一個或多個數(shù)據(jù)值的信號;分析所述概念表的結(jié)構(gòu);確定到一個或多個數(shù)據(jù)表的一個或多個映射;以及在所述一個或多個數(shù)據(jù)表中存儲數(shù)據(jù)。
17.如權(quán)利要求16所述的計算機可讀介質(zhì),其特征在于,所述計算機程序還包括展開概念表查詢,其中,展開包括接收概念表的查詢;分析所述概念表的結(jié)構(gòu);將一條或多條展開規(guī)則應(yīng)用于所述查詢;以及簽發(fā)所述查詢。
18.如權(quán)利要求16所述的計算機可讀介質(zhì),其特征在于,所述計算機程序還包括在概念表中進(jìn)行游標(biāo)指示,其中,游標(biāo)指示包括接收訪問概念表中的復(fù)雜數(shù)據(jù)的信號;讀取與所述復(fù)雜數(shù)據(jù)相關(guān)聯(lián)的一個或多個映射;以及使用所述映射從一個或多個數(shù)據(jù)表中檢索標(biāo)量數(shù)據(jù)。
全文摘要
揭示了實現(xiàn)概念表中的復(fù)雜數(shù)據(jù)的各方面的方法、系統(tǒng)和計算機可讀介質(zhì),使得表形式的復(fù)雜數(shù)據(jù)能夠被添加至概念表。復(fù)雜數(shù)據(jù)可以被映射至多個數(shù)據(jù)表中的標(biāo)量值。復(fù)雜數(shù)據(jù)可以通過數(shù)據(jù)建模的方法被輸入,通過游標(biāo)指示方法被訪問,并通過查詢展開方法被查詢。
文檔編號G06F17/30GK1790324SQ200510125029
公開日2006年6月21日 申請日期2005年11月15日 優(yōu)先權(quán)日2004年12月15日
發(fā)明者D·J·科勒, G·M·古德弗瑞, N·W·布蘭克, S·常翰, S·T·普志伊爾 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1