關(guān)系數(shù)據(jù)庫的方式組織的多個表。然而,本發(fā)明的實施例可用于在無需使用SQL或其他形式查詢語言的情況下搜索這些數(shù)據(jù)。
[0042]作為另一實施例,本發(fā)明的實施例可將數(shù)據(jù)以將這些數(shù)據(jù)表示為以傳統(tǒng)關(guān)系數(shù)據(jù)庫的方式組織的多個表的格式存儲在雙射集合存儲器102中。換句話說,雙射集合存儲器102可用于以傳統(tǒng)關(guān)系數(shù)據(jù)庫的形式存儲數(shù)據(jù),而并不使用本文公開的三維關(guān)系。然后可用本發(fā)明的實施例在無需使用SQL或其他形式查詢語言的情況下搜索這些數(shù)據(jù)。
[0043]雖然本發(fā)明的實施例可用于克服關(guān)系數(shù)據(jù)庫系統(tǒng)的諸多限制,但是在現(xiàn)有的關(guān)系數(shù)據(jù)庫中存儲有大量數(shù)據(jù)。因此,可能有用的是將現(xiàn)有數(shù)據(jù)從現(xiàn)有關(guān)系數(shù)據(jù)庫轉(zhuǎn)移到根據(jù)本發(fā)明實施例存儲的數(shù)據(jù)庫中,也就是通過將存儲在現(xiàn)有關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)移至存儲在雙射集合存儲器102中的迭代集合中。這一轉(zhuǎn)移可按如下方式執(zhí)行。
[0044]如上文所述,雙射集合存儲器102可存儲數(shù)據(jù)以及那些數(shù)據(jù)間的“包含”和“隸屬”關(guān)系。因此,為了將現(xiàn)有關(guān)系數(shù)據(jù)庫轉(zhuǎn)換(轉(zhuǎn)移)至雙射集合存儲器中的迭代集合中,可對關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)執(zhí)行下述操作:
[0045].關(guān)系數(shù)據(jù)庫每個字段的每個值可存儲在雙射集合存儲器102的元素(感知)存儲器110中。
[0046].關(guān)系數(shù)據(jù)庫中的每個表可由雙射集合存儲器102的概念存儲器112中的數(shù)據(jù)表不ο
[0047]?雙射集合存儲器102可存儲指示感知存儲器110中每個字段值和概念存儲器112中該字段值所屬的相應表之間的“隸屬”關(guān)系的數(shù)據(jù)。
[0048].關(guān)系數(shù)據(jù)庫中每個表中的每列(字段)可由雙射集合存儲器102的概念存儲器112中的數(shù)據(jù)表示。
[0049]?雙射集合存儲器102可存儲指示概念存儲器110中每個字段值和概念存儲器112中包含該字段值的列之間的“隸屬”關(guān)系的數(shù)據(jù)。例如,如果“頭發(fā)顏色”字段的值為“黑”,那么值“黑”可存儲在感知存儲器110中,字段(列)類型“頭發(fā)顏色”可存儲在概念存儲器112中,雙射集合存儲器102可存儲指示該字段值“黑”屬于“頭發(fā)顏色”字段的數(shù)據(jù)。
[0050]這一轉(zhuǎn)換的結(jié)果是包含在雙射集合存儲器102中的數(shù)據(jù)庫。這一數(shù)據(jù)庫表示與原始關(guān)系數(shù)據(jù)庫相同的數(shù)據(jù)和關(guān)系,但形式不同。
[0051]查詢包含在雙射集合存儲器102中的數(shù)據(jù)庫包括提供描述了數(shù)據(jù)和該數(shù)據(jù)間關(guān)系的查詢。作為響應,NTM 100提供具有由該查詢指定的關(guān)系的數(shù)據(jù)的形式的查詢結(jié)果。例如,查詢可請求表示與具有指定名字(如“約翰史密斯”)的人具有“收款方”關(guān)系的人的所有數(shù)據(jù)(其中,通過指定“約翰史密斯”屬于“名字”列,“約翰史密斯”由該查詢指示為名字)。由于數(shù)據(jù)間的關(guān)系(諸如“收款方”關(guān)系)在雙射集合存儲器102中被存儲為感知存儲器110和概念存儲器112之間的關(guān)系,本發(fā)明的實施例可執(zhí)行這一查詢并提供包含數(shù)據(jù)庫中滿足這一查詢的所有數(shù)據(jù)的搜索結(jié)果。
[0052]注意,上述示例查詢并不需要指定要搜索的任何特定表。這可能是由于整個數(shù)據(jù)庫存儲在雙射集合存儲器102中,它可以不包括多個表。然而,即使NTM 100搜索存儲在多個表中的數(shù)據(jù),提供至圖1的NTM100的查詢也可不指定要搜索的任何特定表。如果將要使用該查詢搜索的數(shù)據(jù)存儲在一個或多個表中,那么NTM 100可基于該查詢自動確定要搜索的(多個)表,即使該查詢并不指定該表。
[0053]此外,注意上述示例查詢并不指定連接操作。這可能由于雙射集合存儲器102中的所有數(shù)據(jù)在執(zhí)行該查詢前已被連接在一起。
[0054]如上述示例所述,根據(jù)本發(fā)明多個實施例由NTM 100執(zhí)行的查詢可具有下述特征的任意一個或多個:
[0055].當執(zhí)行該查詢時,該查詢可缺少對要搜索的任意表的任何引用。
[0056].該查詢可缺少對連接操作的任何引用。
[0057].該查詢可不以SQL或任意其他形式查詢語言編寫。
[0058].該查詢可指定一個或多個集合關(guān)系,諸如“是下述類的一個成員”或“是包括下述成員的一個類”。
[0059]本發(fā)明的實施例可使用兩個或更多個下述操作種類的每一個執(zhí)行查詢(搜索):
[0060]?演繹。演繹包括演繹指定實例(感知)的類(概念)。參考雙射集合存儲器102,演繹包括遵循從表示感知存儲器110中實例的數(shù)據(jù)至表示概念存儲器112中類的相應數(shù)據(jù)的關(guān)系。本發(fā)明的實施例可非常高效地執(zhí)行演繹,這是因為數(shù)據(jù)間的實例-類關(guān)系已經(jīng)存儲在雙射集合存儲器102中。本發(fā)明的實施例可使用演繹執(zhí)行查詢中的項,所述項指定了特定實例并請求該實例作為其中一個成員的一個或多個類,諸如“哪種動物是主教鳥? ”。
[0061].還原。還原包括識別作為指定類(概念)的成員的實例(感知)。參考雙射集合存儲器102,還原包括遵循從表示概念存儲器112中的類的數(shù)據(jù)至表示感知存儲器110中的實例的相應數(shù)據(jù)的關(guān)系。本發(fā)明的實施例可非常高效地執(zhí)行還原,這是因為數(shù)據(jù)間的實例-類關(guān)系已經(jīng)存儲在雙射集合存儲器102中。本發(fā)明的實施例可使用還原執(zhí)行查詢中的項,所述項指定了特定類并請求作為該類成員的實例,諸如“哪些動物是鳥? ”。
[0062]為了說明本發(fā)明的某些實施例,現(xiàn)在將描述傳統(tǒng)關(guān)系數(shù)據(jù)庫的特定示例和本發(fā)明實施例的特定示例。
[0063]參考圖3A,示出了根據(jù)傳統(tǒng)關(guān)系數(shù)據(jù)庫系統(tǒng)實現(xiàn)的第一表300。表300包括行(記錄)302a-c和列304a-d。出于示例的目的,列304a包括“姓名”字段中的數(shù)據(jù),列304b包括“車輛”字段中的數(shù)據(jù),列304c包括“SSN”字段中的數(shù)據(jù),以及列304d包括“位置”字段中的數(shù)據(jù)。因此,此表300包括表示在特定位置(列304d)購買了由特定車輛制造商(列304b)所制造的車輛的人(列304a)的數(shù)據(jù)。列304c包括表示每個人的社會保險號(SSN)的數(shù)據(jù)。
[0064]本發(fā)明的實施例可用于存儲和/或搜索圖3A的表格300中的數(shù)據(jù)。例如,圖3A的表300可存儲在位于圖1的NTM 100外部的關(guān)系數(shù)據(jù)庫中。作為另一示例,本發(fā)明的實施例可使用三維關(guān)系或者使用傳統(tǒng)關(guān)系數(shù)據(jù)庫所使用類型的傳統(tǒng)關(guān)系,將來自圖3A的表300的數(shù)據(jù)存儲在NTM100的雙射集合存儲器102中。不管表300的數(shù)據(jù)如何存儲以及存儲在何處,圖1的NTM 100都可用于使用本文公開的技術(shù)搜索該數(shù)據(jù)。
[0065]參見圖3B,示出了根據(jù)圖3A的傳統(tǒng)關(guān)系數(shù)據(jù)庫系統(tǒng)實現(xiàn)的第二表320。此表320包括與人相關(guān)的數(shù)據(jù),諸如表示為圖3A的表300中的車輛購買者中的一人或多人。表320包括行(記錄)322a-c和列324a_d。每一行322a_c都包括與特定人相關(guān)的數(shù)據(jù)。出于示例的目的,列324a包括“姓名”字段中的數(shù)據(jù)、列324b包括“電話”字段中的數(shù)據(jù),以及列324c包括“SSN”字段中的數(shù)據(jù)。對于表示特定人的每一行,“姓名”列324a包括表示人名的數(shù)據(jù),“電話”列324b包括表示人的電話號碼的數(shù)據(jù),以及“SSN”列324c包括表示人的社會保險號的數(shù)據(jù)。
[0066]本發(fā)明的實施例可用于存儲和/或搜索圖3B的表320中的數(shù)據(jù)。例如,圖3B的表320可存儲在位于圖1的NTM 100外部的關(guān)系數(shù)據(jù)庫中。作為另一示例,本發(fā)明的實施例可使用三維關(guān)系或者使用傳統(tǒng)關(guān)系數(shù)據(jù)庫所使用類型的傳統(tǒng)關(guān)系,將來自圖3B的表320的數(shù)據(jù)存儲在NTM 100的雙射集合存儲器102中。不管表320的數(shù)據(jù)如何存儲以及存儲在何處,圖1的NTM 100都可用于使用本文公開的技術(shù)搜索該數(shù)據(jù)。
[0067]參見圖3C,示出了根據(jù)圖3B的傳統(tǒng)關(guān)系數(shù)據(jù)庫系統(tǒng)實現(xiàn)的第三表340。此表340包括與人相關(guān)的數(shù)據(jù),諸如表示為圖3A的表300中的車輛購買者中的一人或多人。表340包括行(記錄)342a_c和列344a_d。每一行342a_c都包括與特定人相關(guān)的數(shù)據(jù)。為了示例的目的,列344a包括“姓名”字段中的數(shù)據(jù)、列344b包括“年齡”字段中的數(shù)據(jù),以及列344c包括“SSN”字段中的數(shù)據(jù)。對于表示特定人的每一行,“姓名”列344a包括表示人名的數(shù)據(jù),“年齡”列344b包括表示人的年齡的數(shù)據(jù),以及“SSN”列344c包括表示人的社會保險號的數(shù)據(jù)。
[0068]本發(fā)明的實施例可用于存儲和/或搜索圖3C的表340中的數(shù)據(jù)。例如,圖3C的表340可存儲在位于圖1的NTM 100外部的關(guān)系數(shù)據(jù)庫中。作為另一示例,本發(fā)明的實施例可使用三維關(guān)系或者使用傳統(tǒng)關(guān)系數(shù)據(jù)庫所使用類型的傳統(tǒng)關(guān)系,將來自圖3C的表340的數(shù)據(jù)存儲在NTM 100的雙射集合存儲器102中。不管表340的數(shù)據(jù)如何存儲以及存儲在何處,圖1的NTM 100都可用于使用本文公開的技術(shù)搜索該數(shù)據(jù)。
[0069]正如可從表300、320以及340的視覺觀察看到的,表300、320以及340都包括與名叫凱倫布朗的人相關(guān)的數(shù)據(jù)。在傳統(tǒng)關(guān)系數(shù)據(jù)庫系統(tǒng)中,為了對包括表300、320、340的數(shù)據(jù)庫執(zhí)行查詢以提取與凱倫布朗有關(guān)的信息,需要基于表300、320、以及340的結(jié)構(gòu)的先驗知識(例如,表300、320、340中列的知識、以及哪列用作彼此相關(guān)的主鍵和外鍵的知識)以形式查詢語言(諸如SQL)編寫查詢,然后執(zhí)行該查詢。在傳統(tǒng)關(guān)系數(shù)據(jù)庫系統(tǒng)中執(zhí)行這一查詢涉及對存儲在表300、320以及340中的數(shù)據(jù)執(zhí)行連接操作。
[0070]相反地,本發(fā)明的某些實施例可存儲表示與圖3A-3C所示信息相似的信息的數(shù)據(jù),但無需使用多個表,盡管在本發(fā)明某些其他實施例中圖3A-3C的數(shù)據(jù)可使用多個表進行存儲。此外,本發(fā)明的某些實施例可對這些數(shù)據(jù)執(zhí)行查詢而無需搜索多個表,盡管本發(fā)明的某些其他實施例中該NTM 100可搜索多個表。此外,本發(fā)明的實施例可搜索圖3A-3C的數(shù)據(jù)而無需執(zhí)行連接操作。此外,由本發(fā)明實施例執(zhí)行的查詢無需以形式查詢語言(諸如SQL)編寫,并且無需基于要