由箭頭314表示)成兩個(gè)語(yǔ)義映射集來(lái)反映這個(gè)拆分操作。
[0048]參考回圖2,數(shù)據(jù)管理系統(tǒng)200還被示出為包括擴(kuò)充組件270,其允許新的邏輯數(shù)據(jù)模型被添加到邏輯數(shù)據(jù)模型層230。圖4示出用于擴(kuò)充數(shù)據(jù)管理系統(tǒng)的方法400的流程圖,該數(shù)據(jù)管理系統(tǒng)包括展示數(shù)據(jù)存儲(chǔ)系統(tǒng)的一個(gè)或多個(gè)邏輯數(shù)據(jù)模型以及也展示該數(shù)據(jù)存儲(chǔ)系統(tǒng)的附加邏輯數(shù)據(jù)模型。方法400可由圖2的擴(kuò)充組件270執(zhí)行。
[0049]首先,將該附加邏輯數(shù)據(jù)模型與數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián),該數(shù)據(jù)存儲(chǔ)系統(tǒng)已經(jīng)具有至少一個(gè)與該數(shù)據(jù)存儲(chǔ)系統(tǒng)相關(guān)聯(lián)的先前邏輯數(shù)據(jù)模型(動(dòng)作401)。例如,針對(duì)語(yǔ)義映射集的模板可被創(chuàng)建以供之后填充。接著,隨著時(shí)間,語(yǔ)義映射集針對(duì)該附加邏輯數(shù)據(jù)模型來(lái)定義(動(dòng)作402),使得該附加邏輯數(shù)據(jù)模型也可展示該數(shù)據(jù)存儲(chǔ)系統(tǒng)。注意,語(yǔ)義映射集可能針對(duì)每個(gè)邏輯數(shù)據(jù)模型而不同,并且由此這個(gè)新的語(yǔ)義映射集可以與被用于其它邏輯數(shù)據(jù)模型的其它語(yǔ)義映射集中的任一個(gè)不同。此外,用戶可能指定建模符號(hào)(動(dòng)作403)以一般地在參考特定附加邏輯數(shù)據(jù)模型的數(shù)據(jù)時(shí)或針對(duì)使用特定邏輯數(shù)據(jù)模型來(lái)參考數(shù)據(jù)來(lái)使用。
[0050]因此,已經(jīng)描述了數(shù)據(jù)管理環(huán)境,其中靈活數(shù)量的邏輯數(shù)據(jù)模型可被用于展示數(shù)據(jù)存儲(chǔ)系統(tǒng)?,F(xiàn)在,將描述用于使用數(shù)據(jù)管理環(huán)境的機(jī)制。針對(duì)使用任意數(shù)據(jù)管理環(huán)境的主要用處是針對(duì)數(shù)據(jù)管理環(huán)境來(lái)執(zhí)行查詢。由此,本描述現(xiàn)在將轉(zhuǎn)向用于針對(duì)數(shù)據(jù)管理環(huán)境200來(lái)執(zhí)行查詢以從而具有來(lái)自數(shù)據(jù)存儲(chǔ)系統(tǒng)210的返回的數(shù)據(jù)的機(jī)制。
[0051]數(shù)據(jù)管理環(huán)境200還包括模型查詢引擎280。圖5示出了類(lèi)似于圖2的數(shù)據(jù)管理環(huán)境200的數(shù)據(jù)管理環(huán)境500,除了模型查詢引擎501被顯示為圖2的模型查詢引擎280的一個(gè)示例。此外,模型查詢引擎510被示出為被更居中地定位,作為用于處理模型查詢的中樞。此夕卜,與處理模型查詢相關(guān)聯(lián)的各個(gè)流被示出。附加地,雖然可能存在各個(gè)邏輯數(shù)據(jù)模型,但是僅示出了一個(gè)邏輯數(shù)據(jù)模型231。雖然可能存在各個(gè)物理數(shù)據(jù)模型(或不存在物理數(shù)據(jù)模型),但是僅示出了一個(gè)物理數(shù)據(jù)模型221。由于模型查詢引擎501可使用、包括或可以是映射層240,所以映射層240也被顯示為被包括在模型查詢引擎501內(nèi)。
[0052]圖6示出用于模型查詢引擎對(duì)接收到模型查詢進(jìn)行操作的方法600的流程圖。方法600可由圖2的模型查詢引擎280和/或由圖5的模型查詢引擎501來(lái)執(zhí)行。因此,方法600現(xiàn)在將參考圖2和5來(lái)進(jìn)行描述。
[0053]模型查詢引擎280和/或501可在接收模型查詢之際來(lái)執(zhí)行方法600。在本描述和權(quán)利要求書(shū)中,“模型查詢”是指定邏輯數(shù)據(jù)模型身份以及潛在地一個(gè)或多個(gè)邏輯數(shù)據(jù)模型實(shí)體(例如,節(jié)點(diǎn))的身份和/或一個(gè)或多個(gè)邏輯數(shù)據(jù)模型實(shí)體屬性(例如,特征)的身份的查詢。由此,用戶能夠直接針對(duì)邏輯數(shù)據(jù)模型中的一個(gè)或多個(gè)來(lái)進(jìn)行查詢,而非具有關(guān)于底層數(shù)據(jù)存儲(chǔ)系統(tǒng)的模式的任何知曉。
[0054]本文中描述的原理并不限制到針對(duì)模型查詢的任一特定格式。然而,以下是一般化的模型查詢的示例,并且被提供為它們遵循類(lèi)似于對(duì)于基于表格的查詢的結(jié)構(gòu),但針對(duì)模型,而非表格:
[0055]示例1:
[0056]SELECT Attribute(I),Attribute(2),…
[0057]FROM Model(I)
[0058]實(shí)施例2:
[0059]SELECT Attribute(I),Attribute(2),…
[0060]FROM Model(I)
[0061]WHERE Attribute(I) = ({criteria}'
[0062]示例3:
[0063]SELECT Model(I).Attribute(I),Model(I).Attribute(2),Model(2).Attribute(I),...
[0064]FROM Model(I)JOIN Model(2)
[0065]ON Model(I).Attribute(I),Model(2)Attribute(l)
[0066]示例4:
[0067]SELECT Attribute(I),Attribute(2),…
[0068]FROM Model(I)
[0069]UN10N{ALL}
[0070]SELECT Attribute(I),Attribute(2),…
[0071]FROM Model(2)
[0072]由此,模型查詢語(yǔ)言可以、但不需要、類(lèi)似于傳統(tǒng)的查詢語(yǔ)言,但參考邏輯數(shù)據(jù)模型實(shí)體和/或?qū)傩?,而非?shù)據(jù)存儲(chǔ)系統(tǒng)表格和/或?qū)傩浴@?,模型查詢語(yǔ)言可具有針對(duì)集合表達(dá)式的規(guī)定(諸如 “UN1N(并集)”、“JOIN(聯(lián)結(jié))”、“DIFFERENCE(差)”、“INTERSECT1N(交集)”等)。模型查詢中的每一個(gè)都可具有跨多個(gè)邏輯數(shù)據(jù)模型中的全部的公共模式。由此,查詢者根本不需要具有關(guān)于數(shù)據(jù)存儲(chǔ)系統(tǒng)的用于生成模型查詢的任何知曉,而是僅參考邏輯數(shù)據(jù)模型、邏輯數(shù)據(jù)模型實(shí)體和/或邏輯數(shù)據(jù)模型實(shí)體屬性,并在適當(dāng)時(shí),將約束、集合表達(dá)式等應(yīng)用到模型查詢。然而,如果查詢者熟悉特定邏輯數(shù)據(jù)模型的建模符號(hào),則查詢者可依然使用建模符號(hào)來(lái)生成直接針對(duì)邏輯數(shù)據(jù)模型的邏輯數(shù)據(jù)模型查詢。
[0073]模型查詢引擎接收所生成的模型查詢(動(dòng)作601)。例如,在圖5中,模型查詢引擎501接收模型查詢502(如由箭頭511表示的)。
[0074]模型查詢引擎接著解釋該模型查詢(動(dòng)作602)。模型查詢引擎接著可檢查高速緩存(動(dòng)作603)來(lái)查看是否相同模型查詢的全部或部分已經(jīng)在過(guò)去作出并且足夠近到該高速緩存中相關(guān)聯(lián)的結(jié)果可被認(rèn)為是新鮮的。
[0075]例如,圖7示出類(lèi)似于圖2的數(shù)據(jù)管理環(huán)境200的數(shù)據(jù)管理環(huán)境700。然而,在此,示出了存在四個(gè)邏輯數(shù)據(jù)模型731到734。因此,邏輯數(shù)據(jù)模型731和732可表示圖2的邏輯數(shù)據(jù)模型231和232的示例。邏輯數(shù)據(jù)模型733和734可由圖3中的省略號(hào)233表示。每個(gè)邏輯數(shù)據(jù)模型被示出為具有不同形狀的元素,其符號(hào)地表示邏輯數(shù)據(jù)模型可各自由不同的建模符號(hào)來(lái)表示。示出了存在高速緩存710,其中先前作出的模型查詢的結(jié)果(或這樣的查詢結(jié)果的部分)可至少保持到這樣的結(jié)果不再認(rèn)為是新鮮的。圖5的模型查詢引擎501由此可咨詢高速緩存710來(lái)查看是否模型查詢的一部分或全部已經(jīng)在高速緩存710內(nèi)具有新鮮的結(jié)果。
[0076]模型查詢引擎接著標(biāo)識(shí)被標(biāo)識(shí)在查詢中的一個(gè)或多個(gè)邏輯數(shù)據(jù)模型(動(dòng)作604)。例如,在圖5的示例中,假設(shè)被標(biāo)識(shí)的唯一邏輯數(shù)據(jù)模型是邏輯數(shù)據(jù)模型231。對(duì)模型查詢的解釋還涉及標(biāo)識(shí)被指定在模型查詢中的任意邏輯數(shù)據(jù)模型實(shí)體和/或?qū)傩浴?br>[0077]對(duì)于所標(biāo)識(shí)的邏輯數(shù)據(jù)模型中的每一個(gè),模型查詢引擎與所標(biāo)識(shí)的邏輯數(shù)據(jù)模型進(jìn)行交互(動(dòng)作610)。在圖5的示例中,只有一個(gè)邏輯數(shù)據(jù)模型231被標(biāo)識(shí)在模型查詢中,并且由此模型查詢引擎501通過(guò)適當(dāng)?shù)耐ǖ琅c邏輯數(shù)據(jù)模型231進(jìn)行交互,如由箭頭512和513表示的。
[0078]作為該交互的一部分,模型查詢引擎501標(biāo)識(shí)邏輯數(shù)據(jù)模型所使用的建模符號(hào)(動(dòng)作611)。例如,邏輯數(shù)據(jù)模型提供者可在圖4的動(dòng)作403中指定了這個(gè)建模符號(hào)。替換地或附加地,模型查詢引擎501可自動(dòng)地檢測(cè)邏輯數(shù)據(jù)模型所使用的建模符號(hào)。
[0079]模型查詢引擎501接著制定邏輯數(shù)據(jù)模型查詢(動(dòng)作612),該邏輯數(shù)據(jù)模型查詢符合針對(duì)該邏輯數(shù)據(jù)模型的建模符號(hào)并對(duì)應(yīng)于模型查詢中對(duì)應(yīng)于該特定邏輯數(shù)據(jù)模型的該部分。
[0080]模型查詢引擎501可接著檢查與該邏輯數(shù)據(jù)模型相關(guān)聯(lián)的索引(動(dòng)作613),以查看是否該查詢的結(jié)果先前已經(jīng)被返回和/或是否存在將協(xié)助簡(jiǎn)化與該邏輯數(shù)據(jù)模型的交互的索引。在一個(gè)示例中,每個(gè)邏輯數(shù)據(jù)模型具有相關(guān)聯(lián)的不同索引。例如,在圖7的示例中,注意,邏輯數(shù)據(jù)模型731到734中的每一個(gè)都具有相關(guān)聯(lián)的索引701到704。在圖5的示例中,由于只存在一個(gè)與其交互的邏輯數(shù)據(jù)模型231,只有相關(guān)聯(lián)的邏輯數(shù)據(jù)模型索引521被顯示。例如,如果圖5的邏輯數(shù)據(jù)模型231是圖7的邏輯數(shù)據(jù)模型731,則圖5的邏輯數(shù)據(jù)模型索引521將是圖7的邏輯數(shù)據(jù)模型索引701。因此,本文中描述的原理可通過(guò)對(duì)多模型索引的使用來(lái)加速。
[0081 ]如果必要(由于邏輯數(shù)據(jù)模型查詢的結(jié)果沒(méi)有被完整地高速緩存在索引中),模型查詢引擎501接著將邏輯數(shù)據(jù)模型查詢(或由針對(duì)該邏輯數(shù)據(jù)模型的索引所允許的