本文描述的實(shí)施例一般涉及數(shù)據(jù)庫技術(shù),更具體地涉及索引技術(shù)和方法。
背景技術(shù):
基于關(guān)系數(shù)據(jù)庫的至少一些公知應(yīng)用提供了使得數(shù)據(jù)庫對象能通過一個(gè)或多個(gè)關(guān)系連接至其它數(shù)據(jù)庫對象的建模能力。更具體來說,這種應(yīng)用使得人們能通過類型和根據(jù)連接數(shù)據(jù)庫對象的關(guān)系類型來描述數(shù)據(jù)庫對象。而且,一些這種應(yīng)用使得能檢索標(biāo)準(zhǔn)化數(shù)據(jù)。但是,標(biāo)準(zhǔn)化數(shù)據(jù)檢索通常需要過多利用處理器和/或存儲器。其它應(yīng)用能基于索引來執(zhí)行檢索。但是,由于在數(shù)據(jù)庫內(nèi)添加、修改和/或刪除節(jié)點(diǎn)和/或節(jié)點(diǎn)關(guān)系,這些索引會頻繁變得過時(shí)。
技術(shù)實(shí)現(xiàn)要素:
在一個(gè)方案中,提供了一種用于維持多個(gè)數(shù)據(jù)庫對象的投影索引的當(dāng)前性(currency)的計(jì)算機(jī)實(shí)施方法。該計(jì)算機(jī)實(shí)施方法包括創(chuàng)建代表第一數(shù)據(jù)庫對象和至少第二數(shù)據(jù)庫對象之間的連接的投影索引,確定第一數(shù)據(jù)庫對象和至少第二數(shù)據(jù)庫對象之間的實(shí)體依賴,確定第一數(shù)據(jù)庫對象和至少第二數(shù)據(jù)庫對象之間的路徑依賴,以及響應(yīng)于對實(shí)體依賴和路徑依賴兩者中的一個(gè)或兩個(gè)的修改來更新投影索引。在另一方案中,計(jì)算機(jī)系統(tǒng)包括存儲區(qū),該存儲區(qū)被配置為存儲多個(gè)數(shù)據(jù)庫對象,所述多個(gè)數(shù)據(jù)庫對象包括通過實(shí)體依賴和路徑依賴連接的至少第一數(shù)據(jù)庫對象和第二數(shù)據(jù)庫對象。存儲區(qū)還存儲數(shù)據(jù)庫對象的投影索引,使得第一數(shù)據(jù)庫對象和至少第二數(shù)據(jù)庫對象之間的關(guān)系以關(guān)聯(lián)第一數(shù)據(jù)庫對象的方式存儲。計(jì)算機(jī)系統(tǒng)還包括可操作地耦合至存儲區(qū)的處理器。處理器被配置為確定第一數(shù)據(jù)庫對象和至少第二數(shù)據(jù)庫對象之間的實(shí)體依賴,確定第一數(shù)據(jù)庫對象和至少第二數(shù)據(jù)庫對象之間的路徑依賴,以及響應(yīng)于對實(shí)體依賴和路徑依賴兩者中的一個(gè)或兩個(gè)的修改來更新投影索引。在另一方案中,提供了用于維持多個(gè)數(shù)據(jù)庫對象的投影索引的當(dāng)前性的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括具有計(jì)算機(jī)可執(zhí)行部件的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲介質(zhì)。所述部件包括索引部件,當(dāng)其由處理器執(zhí)行時(shí)引起該處理器進(jìn)行以下操作:在存儲區(qū)中存儲數(shù)據(jù)庫對象,數(shù)據(jù)庫對象包括通過實(shí)體依賴和路徑依賴連接的至少第一數(shù)據(jù)庫對象和第二數(shù)據(jù)庫對象;以及在存儲區(qū)中存儲數(shù)據(jù)庫對象的投影索引,使得第一數(shù)據(jù)庫對象和至少第二數(shù)據(jù)庫對象之間的關(guān)系以關(guān)聯(lián)第一數(shù)據(jù)庫對象的方式存儲。所述部件還包括:實(shí)體依賴部件,當(dāng)其由處理器執(zhí)行時(shí)引起該處理器確定第一數(shù)據(jù)庫對象和至少第二數(shù)據(jù)庫對象之間的實(shí)體依賴;以及路徑依賴部件,當(dāng)其由處理器執(zhí)行時(shí)引起該處理器確定第一數(shù)據(jù)庫對象和至少第二數(shù)據(jù)庫對象之間的路徑依賴。索引部件還引起處理器響應(yīng)于對實(shí)體依賴和路徑依賴兩者中一個(gè)或兩個(gè)的修改來更新投影索引和第一數(shù)據(jù)庫對象。附圖說明在附圖和以下說明中指出本發(fā)明的一個(gè)或多個(gè)實(shí)施例的細(xì)節(jié)。根據(jù)說明書、附圖和權(quán)利要求,本發(fā)明的其它特征、目的和優(yōu)勢將變得明顯。圖1是圖示了兩個(gè)數(shù)據(jù)庫對象之間的實(shí)體依賴和路徑依賴的簡單框圖。圖2圖示了如何利用投影扁平化(flat)關(guān)系數(shù)據(jù)庫。圖3是圖示了用于維持投影索引的當(dāng)前性的示例性計(jì)算機(jī)實(shí)施方法的流程圖。圖4是示例性計(jì)算機(jī)系統(tǒng)的示意框圖。圖5是與圖4所示的計(jì)算機(jī)系統(tǒng)一起使用的示例性計(jì)算機(jī)體系結(jié)構(gòu)的示意框圖。圖6-圖13是圖示出本文描述的實(shí)施例的各種使用情況的框圖。具體實(shí)施方式在本文描述的實(shí)施例中,術(shù)語“數(shù)據(jù)庫對象”通常指的是數(shù)據(jù)庫中用來存儲、查詢或者引用數(shù)據(jù)的任何限定對象。數(shù)據(jù)庫對象的示例性類型包括表、視圖、簇、序列、索引、存儲過程及同義詞。上述例子僅是示例性性的,因而,并不旨在以任何方式限制術(shù)語“數(shù)據(jù)庫對象”的定義和/或內(nèi)涵。本文描述用于維持當(dāng)前數(shù)據(jù)庫對象值和/或路徑的系統(tǒng)、方法、裝置和計(jì)算機(jī)程序產(chǎn)品的示例性實(shí)施例。本文描述的實(shí)施例利于通過識別與投影數(shù)據(jù)相關(guān)聯(lián)的兩種類型依賴來減少數(shù)據(jù)庫中的過期數(shù)據(jù)。第一類型依賴是實(shí)體依賴,其中數(shù)據(jù)被存儲為一些數(shù)據(jù)庫對象的一部分,從而那些數(shù)據(jù)庫對象的改變會影響對另一數(shù)據(jù)庫對象的投影值。實(shí)體依賴識別單個(gè)數(shù)據(jù)庫對象,并且實(shí)體依賴是使用例如對象標(biāo)識符來進(jìn)行描述的。第二類型依賴是路徑依賴。當(dāng)兩個(gè)數(shù)據(jù)庫對象之間的一個(gè)或多個(gè)關(guān)系被修改時(shí),投影可以導(dǎo)致不同的實(shí)體集。路徑依賴是能夠使用例如實(shí)體標(biāo)識符、關(guān)系類型和關(guān)系方向來進(jìn)行描述的。圖1是圖示了兩個(gè)數(shù)據(jù)庫對象之間的實(shí)體依賴和路徑依賴的簡單框圖。具體地,圖1示出了多個(gè)數(shù)據(jù)庫對象100,包括第一數(shù)據(jù)庫對象(Objl)102、第二數(shù)據(jù)庫對象(Obj2)104和具有值“foo”的第三數(shù)據(jù)庫對象(Obj3)106。圖1還示出了數(shù)據(jù)庫對象100之間的多個(gè)關(guān)系108。具體地,第一關(guān)系(Rel1)110存在于第一數(shù)據(jù)庫對象102和第二數(shù)據(jù)庫對象104之間,第二關(guān)系(Rel2)112存在于第二數(shù)據(jù)庫對象104和第三數(shù)據(jù)庫對象106之間。每個(gè)關(guān)系108與關(guān)系類型相關(guān)聯(lián)。例如,第一關(guān)系110與關(guān)系類型REL1相關(guān)聯(lián),第二關(guān)系112與關(guān)系類型REL2相關(guān)聯(lián)。而且,每個(gè)關(guān)系108與指示兩個(gè)相關(guān)數(shù)據(jù)庫對象之間的依賴的方向的關(guān)系方向(諸如“朝向(to)”或者“來自(from)”)相關(guān)聯(lián)。在圖1的例子中,第一數(shù)據(jù)庫對象102是依賴實(shí)體,因?yàn)榈谌龜?shù)據(jù)庫對象106的任何改變會潛在地改變對第一數(shù)據(jù)庫對象102和/或第二數(shù)據(jù)庫對象104的投影值。相應(yīng)地,實(shí)體依賴114存在于第三數(shù)據(jù)庫對象106和至少第一數(shù)據(jù)庫對象102之間。而且,第一路徑依賴116存在于第一數(shù)據(jù)庫對象102和第二數(shù)據(jù)庫對象104之間。如上所述,可以使用實(shí)體標(biāo)識符(諸如第一數(shù)據(jù)庫對象102的標(biāo)識符)、關(guān)系類型以及關(guān)系方向(諸如從第一數(shù)據(jù)庫對象102至第二數(shù)據(jù)庫對象104)來識別第一路徑依賴116。因此,如圖1所示,第一路徑依賴116可以識別為Obj1/REL1/from。類似地,第二路徑依賴118存在于第二數(shù)據(jù)庫對象104和第三數(shù)據(jù)庫對象106之間。如上所述,可以使用實(shí)體標(biāo)識符(諸如第二數(shù)據(jù)庫對象104的標(biāo)識符)、關(guān)系類型以及關(guān)系方向(諸如從第三數(shù)據(jù)庫對象106至第二數(shù)據(jù)庫對象104)來識別第二路徑依賴118。因此,如圖1所示,第二路徑依賴118可以識別為Obj2/REL2/to。每個(gè)數(shù)據(jù)庫對象100和關(guān)系108可以包含元數(shù)據(jù)120。當(dāng)檢索這種元數(shù)據(jù)120時(shí),通常期望的是,關(guān)于所連接的數(shù)據(jù)庫對象100(諸如第一數(shù)據(jù)庫對象102)檢索特定數(shù)據(jù)庫對象100(諸如第三數(shù)據(jù)庫對象106)。例如,檢索可以構(gòu)造為確定連接至另一數(shù)據(jù)庫對象100的所有數(shù)據(jù)庫對象100,而該另一數(shù)據(jù)庫對象100中的其它數(shù)據(jù)庫對象100具有給定元數(shù)據(jù)值。可以對標(biāo)準(zhǔn)化數(shù)據(jù)執(zhí)行這種檢索,對于標(biāo)準(zhǔn)化數(shù)據(jù),保持了現(xiàn)存的數(shù)據(jù)庫對象結(jié)構(gòu)從而查詢遍歷所連接的數(shù)據(jù)庫對象100以查看是否每個(gè)匹配給定標(biāo)準(zhǔn)。在至少一些已知的關(guān)系數(shù)據(jù)庫系統(tǒng)中,諸如那些具有大數(shù)據(jù)集的系統(tǒng)中,這需要昂貴的存儲器和/或處理資源。因此,本發(fā)明的實(shí)施例使得數(shù)據(jù)庫對象結(jié)構(gòu)“扁平化”。在這種方法中,每個(gè)數(shù)據(jù)庫對象100以不同形式存儲,其中其它連接的數(shù)據(jù)庫對象100的元數(shù)據(jù)120投影到原始數(shù)據(jù)庫對象100上,就好像連接的數(shù)據(jù)庫對象100直接存在于原始數(shù)據(jù)庫對象100上。這種“投影”通常稱為使數(shù)據(jù)“扁平化”。而且,這種投影能夠存儲為可更新的索引以利于更快和更低資源密集的檢索。圖2圖示了如何利用投影扁平化關(guān)系數(shù)據(jù)庫。具體地,圖2是數(shù)據(jù)庫200(例如關(guān)系數(shù)據(jù)庫)的框圖,如上所述該數(shù)據(jù)庫200包括數(shù)據(jù)庫對象100和數(shù)據(jù)庫對象100之間的關(guān)系108。圖2的右側(cè)是代表投影索引202的框圖。具體地,圖2圖示了一個(gè)數(shù)據(jù)庫對象(諸如第三數(shù)據(jù)庫對象106)的元數(shù)據(jù)值120如何投影到另一數(shù)據(jù)庫對象(諸如第一數(shù)據(jù)庫對象102)上。圖3是圖示了用于維持?jǐn)?shù)據(jù)庫對象100(示于圖1)的投影索引202(示于圖2)的當(dāng)前性的示例性計(jì)算機(jī)實(shí)施方法的流程圖300。在該示例性實(shí)施例中,投影索引202被創(chuàng)建302,以代表第一數(shù)據(jù)庫對象102和至少第二數(shù)據(jù)庫對象104(兩者都示于圖1中)之間的連接。如圖2所示,可以創(chuàng)建投影索引202以代表第一數(shù)據(jù)庫對象102和第三數(shù)據(jù)庫對象106(示于圖1)之間的連接。將投影索引202存儲在存儲區(qū)中。而且,如以下更詳細(xì)描述的,可以更新投影索引202以反映對一個(gè)或多個(gè)數(shù)據(jù)庫對象100的值的修改和/或?qū)?shù)據(jù)庫對象100之間的關(guān)系108的修改。在一些實(shí)施例中,投影索引202是這樣創(chuàng)建的:將數(shù)據(jù)庫對象100存儲于存儲區(qū),使得第一數(shù)據(jù)庫對象102和至少第二數(shù)據(jù)庫對象104之間的實(shí)體依賴和/或路徑依賴以與第一數(shù)據(jù)庫對象102關(guān)聯(lián)的方式存儲在存儲區(qū)中。在示例性實(shí)施例中,計(jì)算機(jī)處理304數(shù)據(jù)庫對象100之間的一個(gè)或多個(gè)實(shí)體依賴,例如第一數(shù)據(jù)庫對象102和另一數(shù)據(jù)庫對象100之間的實(shí)體依賴。例如,在第一數(shù)據(jù)庫對象102和第三數(shù)據(jù)庫對象106之間檢測實(shí)體依賴114。計(jì)算機(jī)確定306被修改或者刪除的數(shù)據(jù)庫對象100的列表?;谕队八饕?02,計(jì)算機(jī)檢索存儲區(qū)以確定308當(dāng)?shù)诙?shù)據(jù)庫對象104和/或第三數(shù)據(jù)庫對象106已經(jīng)被修改或者刪除時(shí)受影響的實(shí)體依賴。例如,基于投影索引202,計(jì)算機(jī)確定第一數(shù)據(jù)庫對象102和第二數(shù)據(jù)庫對象104和/或第三數(shù)據(jù)庫對象106之間的實(shí)體依賴114是否受第二數(shù)據(jù)庫對象104和/或第三數(shù)據(jù)庫對象106的修改所影響。響應(yīng)于確定出第一數(shù)據(jù)庫對象102和第二數(shù)據(jù)庫對象104和/或第三數(shù)據(jù)庫對象106之間的受影響的實(shí)體依賴,計(jì)算機(jī)在存儲區(qū)中指示310第一數(shù)據(jù)庫對象102是非當(dāng)前的。而且,計(jì)算機(jī)還處理312數(shù)據(jù)庫對象100之間的一個(gè)或多個(gè)路徑依賴,例如第一數(shù)據(jù)庫對象102和另一數(shù)據(jù)庫對象100之間的路徑依賴。例如,在第一數(shù)據(jù)庫對象102和第二數(shù)據(jù)庫對象104之間檢測第一路徑依賴116(示于圖1),在第二數(shù)據(jù)庫對象104和第三數(shù)據(jù)庫對象106之間檢測第二路徑依賴118(示于圖1)。計(jì)算機(jī)確定314數(shù)據(jù)庫對象100之間被修改或者刪除的關(guān)系108的列表。基于投影索引202,計(jì)算機(jī)檢索存儲區(qū)以確定316當(dāng)關(guān)系(諸如第一數(shù)據(jù)庫對象102和第二數(shù)據(jù)庫對象104之間的第一路徑依賴116)已經(jīng)被修改時(shí)受影響的路徑依賴。類似地,計(jì)算機(jī)檢測出第二數(shù)據(jù)庫對象104和第三數(shù)據(jù)庫對象106之間的第二路徑依賴118已經(jīng)被修改。響應(yīng)于確定出受影響的路徑依賴,計(jì)算機(jī)在存儲區(qū)中指示318第一數(shù)據(jù)庫對象102是非當(dāng)前的。在示例性實(shí)施例中,響應(yīng)于檢測到的對實(shí)體依賴和路徑依賴兩者中的至少一種的修改,當(dāng)?shù)谝粩?shù)據(jù)庫對象102被標(biāo)注或者指示為非當(dāng)前的時(shí),計(jì)算機(jī)對投影索引202進(jìn)行編索引或者更新320。例如,計(jì)算機(jī)通過更新第一數(shù)據(jù)庫對象102以反映受影響的實(shí)體依賴和/或受影響的路徑依賴的修改,來更新320投影索引202。圖4是示例性計(jì)算機(jī)系統(tǒng)400的示意框圖,該計(jì)算機(jī)系統(tǒng)400用于維持當(dāng)前數(shù)據(jù)庫對象值和/或路徑,以及用于執(zhí)行上述處理和/或與上述處理相關(guān)的額外處理。在示例性實(shí)施例中,存儲區(qū)402包括一個(gè)或多個(gè)存儲設(shè)備404,存儲設(shè)備404用于存儲:數(shù)據(jù),例如元數(shù)據(jù);數(shù)據(jù)庫對象;數(shù)據(jù)庫對象之間的關(guān)系;數(shù)據(jù)庫對象之間的實(shí)體依賴;數(shù)據(jù)庫對象之間的路徑依賴;或者任何合適的信息或者數(shù)據(jù)。在一些實(shí)施例中,存儲區(qū)402耦合至服務(wù)器系統(tǒng)406,服務(wù)器系統(tǒng)406接著經(jīng)由網(wǎng)絡(luò)410耦合至客戶端系統(tǒng)408(例如管理員系統(tǒng)和/或用戶系統(tǒng))。存儲設(shè)備404可以具體實(shí)施為一個(gè)或多個(gè)數(shù)據(jù)庫,可以位于單個(gè)或者多個(gè)地址,或者可以與服務(wù)器系統(tǒng)406集成在一起??梢岳斫獾氖?,網(wǎng)絡(luò)410可以是諸如因特網(wǎng)的公共網(wǎng)絡(luò),或者是諸如LAN或者WAN網(wǎng)絡(luò)的專用網(wǎng)絡(luò),或者它們的任意組合;網(wǎng)絡(luò)410還能夠包括PSTN或者ISDN子網(wǎng)絡(luò)。網(wǎng)絡(luò)410可以是有線的,諸如以太網(wǎng);或者可以是無線的,諸如包括EDGE、3G和4G無線蜂窩系統(tǒng)的蜂窩網(wǎng)絡(luò)。無線網(wǎng)絡(luò)還可以是Wifi、藍(lán)牙或者已知的任何其它無線形式的通信。因此,網(wǎng)絡(luò)410僅僅是示例性的,而決不是要限制本公開的范圍。如本領(lǐng)域的普通技術(shù)人員認(rèn)識到的,客戶端系統(tǒng)408可以是任何合適的計(jì)算機(jī)系統(tǒng),諸如下述參考圖5描述的系統(tǒng),或者任何其它公知的計(jì)算系統(tǒng)。而且,應(yīng)該理解的是,服務(wù)器系統(tǒng)406被配置為執(zhí)行上述處理和/或與上述處理相關(guān)的任何額外處理。服務(wù)器系統(tǒng)406存儲非瞬時(shí)性的計(jì)算機(jī)可讀指令以執(zhí)行上述處理,并且經(jīng)由網(wǎng)絡(luò)410將這些指令提供至客戶端系統(tǒng)408。而且,服務(wù)器系統(tǒng)406還能夠根據(jù)需要將來自存儲區(qū)402的數(shù)據(jù)提供至客戶端系統(tǒng)408。這樣,圖4包括經(jīng)由云計(jì)算、分布式計(jì)算等實(shí)施計(jì)算機(jī)系統(tǒng)400。圖5是與服務(wù)器系統(tǒng)406和/或客戶端系統(tǒng)408(均示于圖4)一起使用的示例性計(jì)算機(jī)體系結(jié)構(gòu)500的示意框圖。在示例性實(shí)施例中,計(jì)算機(jī)體系結(jié)構(gòu)500包括一個(gè)或多個(gè)處理器502(CPU),處理器502執(zhí)行上述處理和/或與上述處理相關(guān)的任何額外處理。應(yīng)該理解的是,術(shù)語“處理器”通常指的是任何可編程系統(tǒng),包括系統(tǒng)和微控制器、精簡指令集電路(RISC)、專用集成電路(ASIC)、可編程邏輯電路和/或任何其它能夠?qū)嵤┍疚拿枋龅墓δ艿碾娐坊蛘咛幚砥?。上述例子僅是示例性性的,因而并不旨在以任何方式限制術(shù)語“處理器”的定義和/或內(nèi)涵。上述處理和/或與上述處理相關(guān)的任何額外處理的步驟可以在例如存儲區(qū)504中存儲為計(jì)算機(jī)可執(zhí)行指令,存儲區(qū)504通過系統(tǒng)總線506可操作地和/或通信地耦合至處理器502。在本文中所使用的“存儲區(qū)”通常指的是存儲程序代碼和指令的任意模塊,這些程序代碼和指令能夠由一個(gè)或多個(gè)處理器執(zhí)行以幫助維持當(dāng)前數(shù)據(jù)庫對象值和/或路徑。存儲區(qū)504可以包括一種形式或者多于一種形式的存儲器。例如,存儲區(qū)504可以包括隨機(jī)存取存儲器(RAM)508,其能夠包括非易失性RAM、磁性RAM、鐵電RAM和/或其它形式的RAM。存儲區(qū)504還可以包括只讀存儲器(ROM)510和/或閃存和/或電可編程只讀存儲器(EEPROM)。任何其它合適的磁性、光學(xué)和/或半導(dǎo)體存儲器(諸如硬盤驅(qū)動器(HDD)512)本身或者與其它形式的存儲器組合可以包括在存儲區(qū)504中。HDD512還可以耦合至磁盤控制器514,磁盤控制器514用于傳遞消息到處理器502和從處理器502接收消息。而且,存儲區(qū)504還可以是或者可以包括可拆卸的或者可移除的存儲器516,例如合適的盒式磁盤、CD-ROM、DVD或者USB存儲器。上述例子僅是示例性的,因而并不旨在以任何方式限制術(shù)語“存儲區(qū)”的定義和/或內(nèi)涵。此外,在一些實(shí)施例中,存儲區(qū)504包括數(shù)據(jù)庫。如本文使用的,術(shù)語“數(shù)據(jù)庫”通常指的是數(shù)據(jù)的任意集合,包括層次數(shù)據(jù)庫、關(guān)系數(shù)據(jù)庫、平面文件數(shù)據(jù)庫、對象關(guān)系數(shù)據(jù)庫、面向?qū)ο髷?shù)據(jù)庫以及存儲于計(jì)算機(jī)系統(tǒng)中的記錄或者數(shù)據(jù)的任何其它結(jié)構(gòu)化集合。上述例子僅是示例性的,因而并不旨在以任何方式限制術(shù)語“數(shù)據(jù)庫”的定義和/或內(nèi)涵。數(shù)據(jù)庫的例子包括但不限于僅包括數(shù)據(jù)庫、MySQL、DB2、SQLServer、和PostgreSQL。然而,可以使用任何實(shí)現(xiàn)本文所描述的系統(tǒng)和方法的數(shù)據(jù)庫。(Oracle是加州紅木海岸的Oracle公司的注冊商標(biāo);IBM是紐約州阿蒙克市的國際商業(yè)機(jī)器公司的注冊商標(biāo);Microsoft是華盛頓州雷德蒙德市的微軟公司的注冊商標(biāo);Sybase是加州都柏林市的Sybase公司的注冊商標(biāo)。)計(jì)算機(jī)體系結(jié)構(gòu)500還包括顯示設(shè)備518,顯示設(shè)備518耦合至(諸如可操作地耦合至)顯示控制器520。顯示控制器520經(jīng)由系統(tǒng)總線506接收數(shù)據(jù)用于由顯示設(shè)備518顯示。顯示設(shè)備518可以是,但不限于,監(jiān)控器、電視顯示器、等離子顯示器、液晶顯示器(LCD)、發(fā)光二極管(LED)顯示器、有機(jī)LED(OLED)顯示器、聚合物L(fēng)ED顯示器、表面?zhèn)鲗?dǎo)電子發(fā)射顯示器、包括投影和/或反射圖像的顯示器,或者任何其它合適的電子設(shè)備或者顯示機(jī)構(gòu)。而且,顯示設(shè)備518可以包括具有相關(guān)聯(lián)的觸屏控制器的觸屏。上述例子僅是示例性的,因而并不旨在以任何方式限制術(shù)語“顯示設(shè)備”的定義和/或內(nèi)涵。另外,計(jì)算機(jī)體系結(jié)構(gòu)500包括用于與網(wǎng)絡(luò)(圖5未示出)通信的網(wǎng)絡(luò)接口522。而且,計(jì)算機(jī)體系結(jié)構(gòu)500包括一個(gè)或多個(gè)輸入設(shè)備,例如鍵盤524和/或諸如滾球、鼠標(biāo)、觸摸板等的定點(diǎn)設(shè)備526。輸入設(shè)備耦合至輸入/輸出(I/O)接口528并且由輸入/輸出(I/O)接口528控制,輸入/輸出(I/O)接口528進(jìn)一步耦合至系統(tǒng)總線506。此處為了簡化而省略了對顯示設(shè)備518、鍵盤524、定點(diǎn)設(shè)備526以及顯示控制器520、磁盤控制器514、網(wǎng)絡(luò)接口522和I/O接口528的一般特征和功能的描述,因?yàn)檫@些特征是公知的。圖6-圖11是圖示出本文描述的實(shí)施例的各種使用情況的框圖。更具體來說,圖6-圖11圖示了如何使用本文描述的實(shí)施例來解決現(xiàn)有技術(shù)未解決的若干問題。在圖6-圖11的每幅圖中,假定已經(jīng)創(chuàng)建了投影索引202。而且,下述每個(gè)例子可以由服務(wù)器系統(tǒng)406或者客戶端系統(tǒng)408(兩者均在圖4中示出)實(shí)施。此外,圖6-圖11所示的每個(gè)數(shù)據(jù)庫對象之間的原始關(guān)系已經(jīng)參考圖1進(jìn)行了描述。應(yīng)該理解的是,這并不是可以使用本文描述的實(shí)施例的排他性的情況集。它們僅是示意性地用來區(qū)分所描述的實(shí)施例與公知的系統(tǒng)和方法。圖6圖示了當(dāng)?shù)谌龜?shù)據(jù)庫對象106的元數(shù)據(jù)值被修改時(shí),上述實(shí)施例如何更新第一數(shù)據(jù)庫對象102。首先,生成被修改或者刪除的數(shù)據(jù)庫對象100的列表。如圖6所示,第三數(shù)據(jù)庫對象106的值120已經(jīng)從“foo”改變成“bar”。然后生成數(shù)據(jù)庫對象100的列表,包括對第三數(shù)據(jù)庫對象106具有實(shí)體依賴的數(shù)據(jù)庫對象100。如以上所解釋的,因?yàn)榈谌龜?shù)據(jù)庫對象106的任何改變都會潛在地改變對第一數(shù)據(jù)庫對象102的投影值,所以第一數(shù)據(jù)庫對象102具有第三數(shù)據(jù)庫對象106的實(shí)體依賴114。因此,第一數(shù)據(jù)庫對象102被標(biāo)注為受影響對象(即,其被標(biāo)注為“過時(shí)”或者非當(dāng)前的)。接下來,生成被修改或者刪除的關(guān)系108的列表。因?yàn)樵谠摲桨钢胁淮嬖诒恍薷幕蛘邉h除的關(guān)系108,所以不存在由于受影響關(guān)系/路徑依賴而被標(biāo)注為“過時(shí)”或者非當(dāng)前的數(shù)據(jù)庫對象100。然后為標(biāo)注的對象編索引以反映修改。例如,將重新創(chuàng)建投影索引202,使得第三數(shù)據(jù)庫對象106值的投影被投影于第一數(shù)據(jù)庫對象102上。圖7圖示了當(dāng)中間數(shù)據(jù)庫對象100被刪除時(shí)上述實(shí)施例如何更新第一數(shù)據(jù)庫對象102。首先,生成被修改或者刪除的數(shù)據(jù)庫對象100的列表。如圖7所示,第二數(shù)據(jù)庫對象104已經(jīng)被刪除。于是生成數(shù)據(jù)庫對象100的列表,包括第二數(shù)據(jù)庫對象104對其具有實(shí)體依賴的數(shù)據(jù)庫對象100。因?yàn)樵谠摲桨钢胁淮嬖谶@種數(shù)據(jù)庫對象100,所以不存在標(biāo)注為“過時(shí)”或者非當(dāng)前的數(shù)據(jù)庫對象100。接下來,生成被修改或者刪除的關(guān)系108的列表。如圖7所示,第一關(guān)系110存在于第一數(shù)據(jù)庫對象102和第二數(shù)據(jù)庫對象104之間,第二關(guān)系112存在于第二數(shù)據(jù)庫對象104和第三數(shù)據(jù)庫對象106之間。刪除第二數(shù)據(jù)庫對象104導(dǎo)致也刪除了第一關(guān)系110和第二關(guān)系112。然后根據(jù)被修改或者刪除的關(guān)系108的列表來確定受影響的路徑依賴。在該情形下,刪除第一關(guān)系110影響第一數(shù)據(jù)庫對象102和第二數(shù)據(jù)庫對象104之間的路徑依賴。類似地,刪除第二關(guān)系112影響第二數(shù)據(jù)庫對象104和第三數(shù)據(jù)庫對象106之間的路徑依賴。因此,第一數(shù)據(jù)庫對象102被標(biāo)注為受影響對象(即,其被標(biāo)注為“過時(shí)”或者非當(dāng)前的)。然后為標(biāo)注對象編索引以反映修改。例如,將重新創(chuàng)建投影索引202,使得第三數(shù)據(jù)庫對象106值的投影被投影于沒有路徑依賴的第一數(shù)據(jù)庫對象102上。圖8圖示了當(dāng)葉子數(shù)據(jù)庫對象100被刪除時(shí)上述實(shí)施例如何更新第一數(shù)據(jù)庫對象102。首先,生成被修改或者刪除的數(shù)據(jù)庫對象100的列表。如圖8所示,第三數(shù)據(jù)庫對象106已經(jīng)被刪除。然后生成數(shù)據(jù)庫對象100的列表,包括對第三數(shù)據(jù)庫對象106具有實(shí)體依賴的數(shù)據(jù)庫對象100。如以上所解釋的,因?yàn)閯h除第三數(shù)據(jù)庫對象106會改變對第一數(shù)據(jù)庫對象102的投影值,所以第一數(shù)據(jù)庫對象102具有第三數(shù)據(jù)庫對象106的實(shí)體依賴114。因此,第一數(shù)據(jù)庫對象102被標(biāo)注為受影響對象(即,其被標(biāo)注為“過時(shí)”或者非當(dāng)前的)。接下來,生成被修改或者刪除的關(guān)系108的列表。因?yàn)樵谠摲桨钢胁淮嬖诒恍薷幕蛘邉h除的關(guān)系108,所以不存在標(biāo)注為“過時(shí)”或者非當(dāng)前的數(shù)據(jù)庫對象100。然后為標(biāo)注對象編索引以反映刪除。例如,將重新創(chuàng)建投影索引202,使得第三數(shù)據(jù)庫對象106值不再投影到第一數(shù)據(jù)庫對象102上。圖9圖示了當(dāng)中間關(guān)系108被刪除時(shí)或者當(dāng)中間數(shù)據(jù)庫對象100斷開連接時(shí),上述實(shí)施例如何更新第一數(shù)據(jù)庫對象102。首先,生成被修改或者刪除的數(shù)據(jù)庫對象100的列表。如圖9所示,第一數(shù)據(jù)庫對象102和第二數(shù)據(jù)庫對象104之間的第一關(guān)系110已經(jīng)被刪除。于是生成數(shù)據(jù)庫對象100的列表,包括第二數(shù)據(jù)庫對象104對其具有實(shí)體依賴的數(shù)據(jù)庫對象100。因?yàn)樵谠摲桨钢胁淮嬖谶@種數(shù)據(jù)庫對象100,所以不存在標(biāo)注為“過時(shí)”或者非當(dāng)前的數(shù)據(jù)庫對象100。接下來,生成被修改或者刪除的關(guān)系108的列表。如圖9所示,第一數(shù)據(jù)庫對象102和第二數(shù)據(jù)庫對象104之間的第一關(guān)系110已經(jīng)被刪除。然后根據(jù)被修改或者刪除的關(guān)系108的列表來確定受影響的路徑依賴。在該情形下,刪除第一關(guān)系110會影響第一數(shù)據(jù)庫對象102和第二數(shù)據(jù)庫對象104之間的路徑依賴。因此,第一數(shù)據(jù)庫對象102被標(biāo)注為受影響對象(即,其被標(biāo)注為“過時(shí)”或者非當(dāng)前的)。然后為標(biāo)注對象編索引以反映修改。例如,將重新創(chuàng)建投影索引202,使得第三數(shù)據(jù)庫對象106值不再投影到第一數(shù)據(jù)庫對象102上。圖10圖示了上述實(shí)施例如何添加新的葉子數(shù)據(jù)庫對象100。首先,生成被修改(例如,添加)的數(shù)據(jù)庫對象100的列表。如圖10所示,第四數(shù)據(jù)庫對象(Obj3a)122已經(jīng)添加,其具有元數(shù)據(jù)值124“foo2”。圖10還示出了第四數(shù)據(jù)庫對象122和第二數(shù)據(jù)庫對象104之間的第三關(guān)系(rel2a)126。如上所描述的,每個(gè)關(guān)系108與關(guān)系類型相關(guān)聯(lián)。此處,第三關(guān)系126與關(guān)系類型REL2相關(guān)聯(lián)。在添加了第四數(shù)據(jù)庫對象122的情況下,第三路徑依賴存在于第二數(shù)據(jù)庫對象104和第四數(shù)據(jù)庫對象122之間。如上所述,可以使用實(shí)體標(biāo)識符(諸如第二數(shù)據(jù)庫對象104的標(biāo)識符)、關(guān)系類型以及關(guān)系方向(諸如從第四數(shù)據(jù)庫對象122至第二數(shù)據(jù)庫對象104)來識別第三路徑依賴。因此,第三路徑依賴可以識別為Obj2/REL2/to。接下來,生成數(shù)據(jù)庫對象100的列表,包括第四數(shù)據(jù)庫對象122對其具有實(shí)體依賴的數(shù)據(jù)庫對象100。因?yàn)樵谠摲桨钢胁淮嬖谶@種數(shù)據(jù)庫對象100,所以不存在標(biāo)注為“過時(shí)”或者非當(dāng)前的數(shù)據(jù)庫對象100。然后生成被修改或者刪除的關(guān)系108的列表。如圖10所示,已經(jīng)添加了第二數(shù)據(jù)庫對象104和第四數(shù)據(jù)庫對象122之間的第三關(guān)系126。然后根據(jù)被修改或者刪除的關(guān)系108的列表來確定受影響的路徑依賴。在該情形下,添加第三關(guān)系126會影響第一數(shù)據(jù)庫對象102和第二數(shù)據(jù)庫對象104之間的路徑依賴。因此,第一數(shù)據(jù)庫對象102被標(biāo)注為受影響對象(即,其被標(biāo)注為“過時(shí)”或者非當(dāng)前的)。然后為標(biāo)注對象編索引以反映修改。例如,將重新創(chuàng)建投影索引202,使得第四數(shù)據(jù)庫對象122值現(xiàn)在投影到第一數(shù)據(jù)庫對象102上。圖11圖示了上述實(shí)施例如何添加新的葉子數(shù)據(jù)庫對象100和新的中間數(shù)據(jù)庫對象100。首先,生成被修改(例如,添加)的數(shù)據(jù)庫對象100的列表。如圖11所示,已經(jīng)添加了第四數(shù)據(jù)庫對象(Obj3a)122,其具有元數(shù)據(jù)值124“foo2”。圖11還示出了第四數(shù)據(jù)庫對象122和第二數(shù)據(jù)庫對象104之間的第三關(guān)系(rel2a)126。如上所描述的,每個(gè)關(guān)系108與關(guān)系類型相關(guān)聯(lián)。此處,第三關(guān)系126與關(guān)系類型REL2相關(guān)聯(lián)。在添加第四數(shù)據(jù)庫對象122的情況下,第三路徑依賴存在于第二數(shù)據(jù)庫對象104和第四數(shù)據(jù)庫對象122之間。如上所述,可以使用實(shí)體標(biāo)識符(諸如第二數(shù)據(jù)庫對象104的標(biāo)識符)、關(guān)系類型以及關(guān)系方向(諸如從第四數(shù)據(jù)庫對象122至第二數(shù)據(jù)庫對象104)來識別第三路徑依賴。因此,第三路徑依賴可以識別為Obj2/REL2/to。圖11還示出了已經(jīng)添加的第五數(shù)據(jù)庫對象(Obj2a)128。第四關(guān)系(rel1a)130存在于第一數(shù)據(jù)庫對象102和第五數(shù)據(jù)庫對象128之間。如上所描述的,每個(gè)關(guān)系108與關(guān)系類型相關(guān)聯(lián)。此處,第四關(guān)系130與關(guān)系類型REL1相關(guān)聯(lián)。在添加第五數(shù)據(jù)庫對象128的情況下,第四路徑依賴存在于第一數(shù)據(jù)庫對象102和第五數(shù)據(jù)庫對象128之間??梢允褂脤?shí)體標(biāo)識符(諸如第一數(shù)據(jù)庫對象102的標(biāo)識符)、關(guān)系類型以及關(guān)系方向(諸如從第一數(shù)據(jù)庫對象102至第五數(shù)據(jù)庫對象128)來標(biāo)識第四路徑依賴。因此,第四路徑依賴可以識別為Obj1/REL1/from。接下來,生成數(shù)據(jù)庫對象100的列表,包括第五數(shù)據(jù)庫對象128對其具有實(shí)體依賴的數(shù)據(jù)庫對象100。因?yàn)樵谠摲桨钢胁淮嬖谶@種數(shù)據(jù)庫對象100,所以不存在標(biāo)注為“過時(shí)”或者非當(dāng)前的數(shù)據(jù)庫對象100。然后生成被修改或者刪除的關(guān)系108的列表。如圖11所示,已經(jīng)添加了第一數(shù)據(jù)庫對象102和第五數(shù)據(jù)庫對象128之間的第四關(guān)系130。然后根據(jù)被修改或者刪除的關(guān)系108的列表來確定受影響的路徑依賴。在該情形下,添加第四關(guān)系130會創(chuàng)建第一數(shù)據(jù)庫對象102和第五數(shù)據(jù)庫對象128之間的第四路徑依賴。而且,已經(jīng)添加了第二數(shù)據(jù)庫對象104和第四數(shù)據(jù)庫對象122之間的第三關(guān)系126。添加第三關(guān)系126會影響第一數(shù)據(jù)庫對象102和第二數(shù)據(jù)庫對象104之間的路徑依賴。因此,第一數(shù)據(jù)庫對象102被標(biāo)注為受影響對象(即,其被標(biāo)注為“過時(shí)”或者非當(dāng)前)。然后為標(biāo)注對象編索引以反映修改。例如,將重新創(chuàng)建投影索引202,使得第四數(shù)據(jù)庫對象122和第五數(shù)據(jù)庫對象128現(xiàn)在投影到第一數(shù)據(jù)庫對象102上。圖12圖示了上述實(shí)施例如何添加第一新的葉子數(shù)據(jù)庫對象100。更具體而言,圖12圖示了當(dāng)?shù)诙?shù)據(jù)庫對象104初始不具有連接第二數(shù)據(jù)庫對象104到另一數(shù)據(jù)庫對象100的關(guān)系時(shí),上述實(shí)施例如何添加第一新的葉子數(shù)據(jù)庫對象。換句話說,圖12圖示了如何建立從新添加的葉子數(shù)據(jù)庫對象到第二數(shù)據(jù)庫對象104的初始關(guān)系。首先,生成被修改(例如,添加)的數(shù)據(jù)庫對象100的列表。如圖12所示,已經(jīng)添加了第六數(shù)據(jù)庫對象(Obj3a)132,其具有元數(shù)據(jù)值134“foo2”。圖12還示出了第六數(shù)據(jù)庫對象132和第二數(shù)據(jù)庫對象104之間的第五關(guān)系(rel2a)136。如上所描述的,每個(gè)關(guān)系108與關(guān)系類型相關(guān)聯(lián)。此處,第五關(guān)系136與關(guān)系類型REL2相關(guān)聯(lián)。在添加第六數(shù)據(jù)庫對象132的情況下,第五路徑依賴存在于第二數(shù)據(jù)庫對象104和第六數(shù)據(jù)庫對象132之間。如上所述,可以使用實(shí)體標(biāo)識符(諸如第二數(shù)據(jù)庫對象104的標(biāo)識符)、關(guān)系類型以及關(guān)系方向(諸如從第六數(shù)據(jù)庫對象132至第二數(shù)據(jù)庫對象104)來識別第五路徑依賴。相應(yīng)地,第五路徑依賴可以識別為Obj2/REL2/to。接下來,生成數(shù)據(jù)庫對象100的列表,包括第六數(shù)據(jù)庫對象132對其具有實(shí)體依賴的數(shù)據(jù)庫對象100。因?yàn)樵谠摲桨钢胁淮嬖谶@種數(shù)據(jù)庫對象100,所以不存在標(biāo)注為“過時(shí)”或者非當(dāng)前的數(shù)據(jù)庫對象100。然后生成被修改或者刪除的關(guān)系108的列表。如圖12所示,已經(jīng)添加了第二數(shù)據(jù)庫對象104和第六數(shù)據(jù)庫對象132之間的第五關(guān)系136。然后根據(jù)被修改或者刪除的關(guān)系108的列表來確定受影響的路徑依賴。在該情形下,添加第五關(guān)系136會影響第一數(shù)據(jù)庫對象102和第二數(shù)據(jù)庫對象104之間的路徑依賴。因此,第一數(shù)據(jù)庫對象102被標(biāo)注為受影響對象(即,其被標(biāo)注為“過時(shí)”或者非當(dāng)前的)。然后為標(biāo)注對象編索引以反映修改。例如,將重新創(chuàng)建投影索引202,使得第六數(shù)據(jù)庫對象132值現(xiàn)在投影到第一數(shù)據(jù)庫對象102上。圖13圖示了上述實(shí)施例如何添加第一新的葉子數(shù)據(jù)庫對象100和第一新的中間數(shù)據(jù)庫對象100。更具體而言,圖13圖示了當(dāng)?shù)谝粩?shù)據(jù)庫對象102初始不具有連接第一數(shù)據(jù)庫對象102到另一數(shù)據(jù)庫對象100的關(guān)系時(shí),上述實(shí)施例如何添加第一新的葉子數(shù)據(jù)庫對象和第一新的中間數(shù)據(jù)庫對象。換句話說,圖13圖示了如何建立從新添加的葉子數(shù)據(jù)庫對象和中間數(shù)據(jù)庫對象到第一數(shù)據(jù)庫對象102的初始關(guān)系。首先,生成被修改(例如,添加)的數(shù)據(jù)庫對象100的列表。如圖13所示,已經(jīng)添加第七數(shù)據(jù)庫對象(Obj2a)138作為中間數(shù)據(jù)庫對象100。第六關(guān)系(rel1a)140存在于第一數(shù)據(jù)庫對象102和第七數(shù)據(jù)庫對象138之間。如上所描述的,每個(gè)關(guān)系108與關(guān)系類型相關(guān)聯(lián)。此處,第六關(guān)系140與關(guān)系類型REL1相關(guān)聯(lián)。在添加第七數(shù)據(jù)庫對象138的情況下,第六路徑依賴存在于第一數(shù)據(jù)庫對象102和第七數(shù)據(jù)庫對象138之間??梢允褂脤?shí)體標(biāo)識符(諸如第一數(shù)據(jù)庫對象102的標(biāo)識符)、關(guān)系類型以及關(guān)系方向(諸如從第一數(shù)據(jù)庫對象102至第七數(shù)據(jù)庫對象138)來識別第六路徑依賴。因此,第六路徑依賴可以識別為Obj1/REL1/from。圖13還示出了已經(jīng)添加第八數(shù)據(jù)庫對象(Obj3a)142,其具有元數(shù)據(jù)值144“foo2”。圖13還示出了第七數(shù)據(jù)庫對象138和第八數(shù)據(jù)庫對象142之間的第七關(guān)系(rel2a)146。如上所描述的,每個(gè)關(guān)系108與關(guān)系類型相關(guān)聯(lián)。此處,第七關(guān)系146與關(guān)系類型REL2相關(guān)聯(lián)。接下來,生成數(shù)據(jù)庫對象100的列表,包括第七數(shù)據(jù)庫對象138和第八數(shù)據(jù)庫對象142對其具有實(shí)體依賴的數(shù)據(jù)庫對象100。因?yàn)樵谠摲桨钢胁淮嬖谶@種數(shù)據(jù)庫對象100,所以不存在標(biāo)注為“過時(shí)”或者非當(dāng)前的數(shù)據(jù)庫對象100。然后生成被修改、刪除或者添加的關(guān)系108的列表。如圖13所示,已經(jīng)添加了第一數(shù)據(jù)庫對象102和第七數(shù)據(jù)庫對象138之間的第六關(guān)系140,以及第七數(shù)據(jù)庫對象138和第八數(shù)據(jù)庫對象142之間的第七關(guān)系146。然后根據(jù)被修改或者刪除的關(guān)系108的列表來確定受影響的路徑依賴。在該情形下,添加第六關(guān)系140和第七關(guān)系146會創(chuàng)建第一數(shù)據(jù)庫對象102和第七數(shù)據(jù)庫對象138之間的第六路徑依賴。因此,第一數(shù)據(jù)庫對象102被標(biāo)注為受影響對象(即,其被標(biāo)注為“過時(shí)”或者非當(dāng)前的)。然后為標(biāo)注對象編索引以反映修改。例如,將重新創(chuàng)建投影索引202,使得第七數(shù)據(jù)庫對象138和第八數(shù)據(jù)庫對象142現(xiàn)在投影到第一數(shù)據(jù)庫對象102上。以上詳細(xì)描述了用于維持當(dāng)前數(shù)據(jù)庫對象值和/或路徑的系統(tǒng)、方法、裝置和計(jì)算機(jī)程序產(chǎn)品的示例性實(shí)施例。但是,系統(tǒng)、方法、裝置和計(jì)算機(jī)程序產(chǎn)品不限于此處描述的具體實(shí)施例,相反,可以獨(dú)立地且與本文描述的其它操作和/或部件分離地利用所述方法的操作和/或所述系統(tǒng)和/或裝置的部件。進(jìn)一步地,所描述的操作和/或部件還可以限定在其它系統(tǒng)、方法和/或裝置中,或者與其它系統(tǒng)、方法和/或裝置結(jié)合使用,而不限于僅與本文描述的系統(tǒng)、方法和存儲介質(zhì)一起實(shí)踐。計(jì)算機(jī)(例如本文所描述的計(jì)算機(jī))包括至少一個(gè)處理器或者處理單元以及系統(tǒng)存儲器。計(jì)算機(jī)典型地具有至少一些形式的計(jì)算機(jī)可讀介質(zhì)。作為例子而不是限制,計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲介質(zhì)包括以任意方法或者技術(shù)實(shí)現(xiàn)的非瞬時(shí)性的、易失和非易失的、可移動的和不可移動的介質(zhì),用于存儲諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊的信息或者其它數(shù)據(jù)。通信介質(zhì)典型地具體體現(xiàn)為計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或者在諸如載波或者其它傳送機(jī)構(gòu)的調(diào)制數(shù)據(jù)信號內(nèi)的其它數(shù)據(jù),并且包括任意信息輸送介質(zhì)。本領(lǐng)域的技術(shù)人員熟悉調(diào)制數(shù)據(jù)信號,其具有一個(gè)或多個(gè)特性集或者以關(guān)于信號內(nèi)的編碼信息的方式改變。上述的任意組合也包含于計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。雖然結(jié)合示例性計(jì)算機(jī)系統(tǒng)環(huán)境描述了本發(fā)明,但是本發(fā)明的實(shí)施例可與多種其它通用或者專用計(jì)算機(jī)系統(tǒng)環(huán)境或者配置一起操作。計(jì)算機(jī)系統(tǒng)環(huán)境并不意圖對本發(fā)明的任何方案的使用或者功能的范圍進(jìn)行任何限制。而且,計(jì)算機(jī)系統(tǒng)環(huán)境不應(yīng)該被解釋為對示例性操作環(huán)境中圖示的任何一個(gè)部件或部件的組合具有任何依賴或者需求??梢赃m用于本發(fā)明方案的公知計(jì)算機(jī)系統(tǒng)、環(huán)境和/或配置的例子包括但不限于個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或者膝上式設(shè)備、多處理器系統(tǒng)、微處理器系統(tǒng)、機(jī)頂盒、可編程消費(fèi)類電子、移動電話、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括任何上述系統(tǒng)或者設(shè)備等的分布式計(jì)算環(huán)境??梢栽谟梢粋€(gè)或多個(gè)計(jì)算機(jī)或者其它設(shè)備執(zhí)行的計(jì)算機(jī)可執(zhí)行指令(諸如程序成分或者模塊)的一般環(huán)境下描述本發(fā)明的實(shí)施例。本發(fā)明的方案可以用任何數(shù)量和組織的部件或者模塊來實(shí)現(xiàn)。例如,本發(fā)明的方案不限于附圖中圖示的以及本文所描述的具體計(jì)算機(jī)可執(zhí)行指令或者具體部件或模塊。本發(fā)明的替換實(shí)施例可以包括不同的計(jì)算機(jī)可執(zhí)行指令或者部件,它們具有比圖示的以及本文所描述的功能更多或更少的功能。本文所描述的系統(tǒng)、方法、裝置和計(jì)算機(jī)程序產(chǎn)品的示例性技術(shù)效果包括以下至少一個(gè):(a)創(chuàng)建代表第一數(shù)據(jù)庫對象和至少第二數(shù)據(jù)庫對象之間的連接的投影索引;(b)確定第一數(shù)據(jù)庫對象和至少第二數(shù)據(jù)庫對象之間的實(shí)體依賴;(c)確定第一數(shù)據(jù)庫對象和至少第二數(shù)據(jù)庫對象之間的路徑依賴;以及(d)響應(yīng)于對實(shí)體依賴和路徑依賴中的一個(gè)或兩者的修改來更新投影索引。本文圖示和描述的本發(fā)明實(shí)施例中的操作的實(shí)施或執(zhí)行的順序不是必須的,除非另有規(guī)定。也即,除非另有規(guī)定,可以以任意順序執(zhí)行操作,并且本發(fā)明的實(shí)施例可以包括比本文公開的操作更多的或者更少的操作。例如,可以想到的是,在另一操作之前、同時(shí)或之后實(shí)施或者執(zhí)行特定操作也落入本發(fā)明方案的范圍內(nèi)。當(dāng)介紹本發(fā)明方案或其實(shí)施例的元件時(shí),冠詞“一(a)”、“一(an)”、“上述(the)”和“所述(said)”意圖表示存在一個(gè)或多個(gè)元件。術(shù)語“包括”、“包含”以及“具有”表示包括在內(nèi)的,意味著除了列出的元件外還可以存在額外元件。該書面說明書使用包括最佳模式的例子公開了本發(fā)明,還使得本領(lǐng)域的技術(shù)人員能夠?qū)嵺`本發(fā)明,包括制造和使用任何設(shè)備或者系統(tǒng)以及執(zhí)行任何并入的方法。本發(fā)明的專利范圍由權(quán)利要求限定,并且可以包括本領(lǐng)域的技術(shù)人員可以想到的其它例子。如果其它例子具有的結(jié)構(gòu)元件與權(quán)利要求的書面語言并無不同,或者如果其它例子包括與權(quán)利要求的書面語言沒有實(shí)質(zhì)差別的等同結(jié)構(gòu)元件,則這種其它例子落入權(quán)利要求的范圍內(nèi)。