用于模型查詢的數(shù)據(jù)模型索引的制作方法
【專利說明】用于模型查詢的數(shù)據(jù)模型索引
[0001 ] 背景
[0002]計(jì)算系統(tǒng)和相關(guān)聯(lián)的網(wǎng)絡(luò)徹底改變了人類工作、游戲和通信的方式。我們生活的幾乎每個(gè)方面都在某種方式上受到計(jì)算系統(tǒng)的影響。網(wǎng)絡(luò)的擴(kuò)增允許計(jì)算系統(tǒng)共享數(shù)據(jù)并通信,從而快速地增加信息訪問。出于這個(gè)理由,現(xiàn)在的時(shí)代通常被稱為“信息時(shí)代”。
[0003]數(shù)據(jù)模型描述經(jīng)結(jié)構(gòu)化的數(shù)據(jù)的結(jié)構(gòu)(S卩,定義、格式、關(guān)系、約束等)以供存儲(chǔ)在數(shù)據(jù)管理系統(tǒng)(諸如關(guān)系數(shù)據(jù)庫)中。在操作期間,各個(gè)執(zhí)行軟件在確定要檢索的數(shù)據(jù)、數(shù)據(jù)的含義、數(shù)據(jù)與其它數(shù)據(jù)的關(guān)系、數(shù)據(jù)的屬性或特性等時(shí)可參考數(shù)據(jù)模型。
[0004]當(dāng)設(shè)計(jì)針對(duì)組織的數(shù)據(jù)系統(tǒng)時(shí),通常首先設(shè)計(jì)相對(duì)獨(dú)立于底層數(shù)據(jù)管理系統(tǒng)(例如,相對(duì)獨(dú)立于底層數(shù)據(jù)庫管理系統(tǒng))的邏輯數(shù)據(jù)模型。邏輯數(shù)據(jù)模型通常包括描述業(yè)務(wù)實(shí)體的數(shù)據(jù)對(duì)象。例如,如果組織是刨冰公司,則業(yè)務(wù)實(shí)體可包括刨冰站、雇員、口味、大小、價(jià)格、營(yíng)業(yè)收入、銷售量等。當(dāng)然,這些術(shù)語獨(dú)立于任何底層物理數(shù)據(jù)管理系統(tǒng)。
[0005]—旦邏輯數(shù)據(jù)模型被設(shè)計(jì),數(shù)據(jù)管理系統(tǒng)的其余部分就被設(shè)計(jì)來滿足邏輯數(shù)據(jù)模型的需要。例如,物理數(shù)據(jù)模型位于邏輯數(shù)據(jù)模型之下,并還描述實(shí)體、關(guān)系、屬性等,但是以更加對(duì)準(zhǔn)底層數(shù)據(jù)管理系統(tǒng)的工具和約束的方式。邏輯數(shù)據(jù)模型內(nèi)的實(shí)體和屬性被映射到物理數(shù)據(jù)模型內(nèi)的實(shí)體和屬性。
[0006]此處要求保護(hù)的主題不限于解決任何缺點(diǎn)或僅在諸如上述環(huán)境這樣的環(huán)境中操作的各實(shí)施例。相反,提供該背景僅用于例示其中可實(shí)現(xiàn)所述一些實(shí)施例的一個(gè)示例性技術(shù)領(lǐng)域。
[0007]簡(jiǎn)要概述
[0008]本文中描述的至少一些實(shí)施例涉及使用數(shù)據(jù)模型索引來用于協(xié)助對(duì)數(shù)據(jù)模型查詢的高效響應(yīng)。數(shù)據(jù)模型查詢標(biāo)識(shí)數(shù)據(jù)模型本身并參考數(shù)據(jù)模型的模式,而非參考底層數(shù)據(jù)源的模式。索引通過將對(duì)數(shù)據(jù)模型的先前模型查詢與對(duì)這些先前模型查詢的相關(guān)聯(lián)的響應(yīng)相關(guān)來協(xié)助。因此,如果遇到類似的模型查詢,來自先前模型查詢的響應(yīng)可依然被認(rèn)為是新鮮的,該索引可被用于更高效地檢索針對(duì)該類似的模型查詢的結(jié)果。
[0009]在一些實(shí)施例中,數(shù)據(jù)管理系統(tǒng)可包括多個(gè)數(shù)據(jù)模型,每個(gè)數(shù)據(jù)模型都具有對(duì)應(yīng)的數(shù)據(jù)模型索引。例如,一個(gè)數(shù)據(jù)模型可以是邏輯數(shù)據(jù)模型,而另一個(gè)數(shù)據(jù)模型可以是物理數(shù)據(jù)模型,每個(gè)數(shù)據(jù)模型都具有其自己的數(shù)據(jù)模型索引。甚至可以存在映射到某一物理數(shù)據(jù)模型的多個(gè)邏輯數(shù)據(jù)模型,并且每個(gè)數(shù)據(jù)模型索引將再次具有其自己的數(shù)據(jù)模型索引。在一些實(shí)施例中,可向高速緩存提供來自在先模型查詢的結(jié)果。
[0010]該概述不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在被用來幫助確定所要求保護(hù)的主題的范圍。
[0011]附圖簡(jiǎn)述
[0012]為了描述能夠獲得上述和其它優(yōu)點(diǎn)和特征的方式,各實(shí)施例的更具體的描述將通過參考各附圖來呈現(xiàn)??梢岳斫?,這些附圖只描繪了示例實(shí)施例,并且因此不被認(rèn)為是對(duì)其范圍的限制,將通過使用附圖并利用附加特征和細(xì)節(jié)來描述和解釋各實(shí)施例,在附圖中:
[0013]圖1抽象地解說了其中可采用本文中所描述的一些實(shí)施例的計(jì)算系統(tǒng);
[0014]圖2示出數(shù)據(jù)管理環(huán)境,該數(shù)據(jù)管理環(huán)境包括數(shù)據(jù)存儲(chǔ)系統(tǒng)、物理數(shù)據(jù)模型層、包括多個(gè)邏輯數(shù)據(jù)模型的邏輯數(shù)據(jù)模型層以及在物理數(shù)據(jù)模型層和邏輯數(shù)據(jù)模型層之間作為中介的映射層;
[0015]圖3示出在示例邏輯數(shù)據(jù)模型上執(zhí)行的四種不同的邏輯數(shù)據(jù)模型結(jié)構(gòu)更改類型的示例;
[0016]圖4示出用于擴(kuò)充已經(jīng)包括展示數(shù)據(jù)存儲(chǔ)系統(tǒng)的一個(gè)或多個(gè)邏輯數(shù)據(jù)模型的數(shù)據(jù)模型的方法的流程圖;
[0017]圖5示出類似于圖2的數(shù)據(jù)管理環(huán)境的數(shù)據(jù)管理環(huán)境,并且其中模型查詢引擎用作用于處理模型查詢的中樞;
[0018]圖6示出用于模型查詢引擎對(duì)接收到的模型查詢進(jìn)行操作的方法的流程圖;以及
[0019]圖7示出類似于圖2的數(shù)據(jù)管理環(huán)境的數(shù)據(jù)管理環(huán)境,除了附加的邏輯數(shù)據(jù)模型被示出,邏輯和物理數(shù)據(jù)模型中的每一個(gè)具有相關(guān)聯(lián)的索引,并且存在用于模型查詢的高速緩存。
[0020]詳細(xì)描述
[0021]本文中描述的至少一些實(shí)施例涉及使用數(shù)據(jù)模型索引來用于協(xié)助對(duì)數(shù)據(jù)模型查詢的高效響應(yīng)。數(shù)據(jù)模型查詢標(biāo)識(shí)數(shù)據(jù)模型本身并參考數(shù)據(jù)模型的模式,而非參考底層數(shù)據(jù)源的模式。索引通過將對(duì)數(shù)據(jù)模型的先前模型查詢與對(duì)這些先前模型查詢的相關(guān)聯(lián)的響應(yīng)相關(guān)來協(xié)助。因此,如果遇到類似的模型查詢,來自先前模型查詢的響應(yīng)可依然被認(rèn)為是新鮮的,該索引可被用于更高效地檢索針對(duì)該類似的模型查詢的結(jié)果。
[0022]在一些實(shí)施例中,數(shù)據(jù)管理系統(tǒng)可包括多個(gè)數(shù)據(jù)模型,每個(gè)數(shù)據(jù)模型都具有對(duì)應(yīng)的數(shù)據(jù)模型索引。例如,一個(gè)數(shù)據(jù)模型可以是邏輯數(shù)據(jù)模型,而另一個(gè)數(shù)據(jù)模型可以是物理數(shù)據(jù)模型,每個(gè)數(shù)據(jù)模型都具有其自己的數(shù)據(jù)模型索引。甚至可以存在映射到某一物理數(shù)據(jù)模型的多個(gè)邏輯數(shù)據(jù)模型,并且每個(gè)數(shù)據(jù)模型索引將再次具有其自己的數(shù)據(jù)模型索引。在一些實(shí)施例中,可向高速緩存提供來自在先模型查詢的結(jié)果。
[0023]將參考圖1描述對(duì)計(jì)算設(shè)備的一些介紹性討論。接著,將參考之后的附圖來描述多個(gè)邏輯數(shù)據(jù)模型的結(jié)構(gòu)和使用以展示數(shù)據(jù)存儲(chǔ)系統(tǒng)以及在使用數(shù)據(jù)模型索引的上下文中針對(duì)該多個(gè)邏輯數(shù)據(jù)模型的查詢。
[0024]計(jì)算系統(tǒng)現(xiàn)在越來越多地采取多種多樣的形式。例如,計(jì)算系統(tǒng)可以是手持式設(shè)備、電器、膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、大型機(jī)、分布式計(jì)算系統(tǒng)、數(shù)據(jù)中心、或甚至是常規(guī)上不被認(rèn)為是計(jì)算系統(tǒng)的設(shè)備(諸如可穿戴設(shè)備(如眼鏡))。在本說明書以及權(quán)利要求書中,術(shù)語“計(jì)算系統(tǒng)”被廣義地定義為包括任何設(shè)備或系統(tǒng)(或其組合),該設(shè)備或系統(tǒng)包含至少一個(gè)物理且有形的處理器以及其上能具有可由處理器執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的物理且有形的存儲(chǔ)器。存儲(chǔ)器可以采取任何形式,并可以取決于計(jì)算系統(tǒng)的性質(zhì)和形式。計(jì)算系統(tǒng)可以分布在網(wǎng)絡(luò)環(huán)境中,并可包括多個(gè)組分計(jì)算系統(tǒng)。
[0025]如圖1所例示,在其最基本的配置中,計(jì)算系統(tǒng)100通常包括至少一個(gè)硬件處理單元102和存儲(chǔ)器104。存儲(chǔ)器104可以是物理系統(tǒng)存儲(chǔ)器,該物理系統(tǒng)存儲(chǔ)器可以是易失性的、非易失性的、或兩者的某種組合。術(shù)語“存儲(chǔ)器”也可在此用來指示諸如物理存儲(chǔ)介質(zhì)這樣的非易失性大容量存儲(chǔ)器。如果計(jì)算系統(tǒng)是分布式的,則處理、存儲(chǔ)器和/或存儲(chǔ)能力也可以是分布式的。如本文中所使用的,術(shù)語“可執(zhí)行模塊”或“可執(zhí)行組件”可指可在計(jì)算系統(tǒng)上執(zhí)行的軟件對(duì)象、例程或方法。此處所描述的不同組件、模塊、引擎以及服務(wù)可以實(shí)現(xiàn)為在計(jì)算系統(tǒng)上執(zhí)行的對(duì)象或進(jìn)程(例如,作為分開的線程)。
[0026]在隨后的描述中,參考由一個(gè)或多個(gè)計(jì)算系統(tǒng)執(zhí)行的動(dòng)作描述了各實(shí)施例。如果這樣的動(dòng)作是以軟件實(shí)現(xiàn)的,則執(zhí)行動(dòng)作的相關(guān)聯(lián)計(jì)算系統(tǒng)的一個(gè)或多個(gè)處理器響應(yīng)于已經(jīng)執(zhí)行了計(jì)算機(jī)可執(zhí)行指令來引導(dǎo)計(jì)算系統(tǒng)的操作。例如,這樣的計(jì)算機(jī)可執(zhí)行指令可以在形成計(jì)算機(jī)程序產(chǎn)品的一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上實(shí)現(xiàn)。這樣的操作的示例涉及對(duì)數(shù)據(jù)的操縱。計(jì)算機(jī)可執(zhí)行指令(以及被操縱的數(shù)據(jù))可以存儲(chǔ)在計(jì)算系統(tǒng)100的存儲(chǔ)器104中。計(jì)算系統(tǒng)100還可包含允許計(jì)算系統(tǒng)100例如通過網(wǎng)絡(luò)110與其他計(jì)算系統(tǒng)通信的通信信道108。計(jì)算系統(tǒng)100還包括顯示器112,顯示器112可被用于向用戶顯示視覺表示。
[0027]本文所述的實(shí)施例可包括或利用專用或通用計(jì)算系統(tǒng),該專用或通用計(jì)算系統(tǒng)包括諸如舉例來說一個(gè)或多個(gè)處理器和系統(tǒng)存儲(chǔ)器等計(jì)算機(jī)硬件,如以下更詳細(xì)討論的。本文中描述的各實(shí)施例還包括用于承載或存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理和其他計(jì)算機(jī)可讀介質(zhì)。這樣的計(jì)算機(jī)可讀介質(zhì)可以是可由通用或?qū)S糜?jì)算系統(tǒng)訪問的任何可用介質(zhì)。存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是物理存儲(chǔ)介質(zhì)。承載計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限制,本發(fā)明的各實(shí)施例可包括至少兩種顯著不同的計(jì)算機(jī)可讀介質(zhì):存儲(chǔ)介質(zhì)和傳輸介質(zhì)。
[0028]計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括RAM、R0M、EEPR0M、CD_R0M或其他光盤存儲(chǔ)、磁盤存儲(chǔ)或其他磁存儲(chǔ)設(shè)備,或可用于存儲(chǔ)計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼手段且可由通用或?qū)S糜?jì)算系統(tǒng)訪問的任何其他物理且有形存儲(chǔ)介質(zhì)。
[0029]“網(wǎng)絡(luò)”被定義為允許在計(jì)算系統(tǒng)和/或模塊和/或其他電子設(shè)備之間傳輸電子數(shù)據(jù)的一個(gè)或多個(gè)數(shù)據(jù)鏈路。當(dāng)信息通過網(wǎng)絡(luò)或另一通信連接(硬連線、無線、或者硬連線或無線的組合)傳輸或提供給計(jì)算系統(tǒng)時(shí),該計(jì)算系統(tǒng)將該連接適當(dāng)?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可以包括可以用來攜帶所需要的以計(jì)算機(jī)可執(zhí)行的指令或數(shù)據(jù)結(jié)構(gòu)的形式存在的程序代碼手段并可以被通用或?qū)S糜?jì)算系統(tǒng)訪問的網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路。上述的組合應(yīng)當(dāng)也被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
[0030]此外,在到達(dá)各種計(jì)算系統(tǒng)組件之后,計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼手段可從傳輸介質(zhì)自動(dòng)轉(zhuǎn)移到存儲(chǔ)介質(zhì)(或反之亦然)。例如,通過網(wǎng)絡(luò)或數(shù)據(jù)鏈路接收到的計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可被緩存在網(wǎng)絡(luò)接口模塊(例如,“NIC”