不使用結(jié)構(gòu)化查詢語言的數(shù)據(jù)庫的制作方法
【技術(shù)領(lǐng)域】
[0001]本公開涉及數(shù)據(jù)庫查詢領(lǐng)域。
【背景技術(shù)】
[0002]關(guān)系數(shù)據(jù)庫已經(jīng)成為存儲大型數(shù)據(jù)集的標(biāo)準(zhǔn)。一般來說,關(guān)系數(shù)據(jù)庫包括多個表。每個這種表中的每一行(也被稱為一條“記錄”)包括多個列(也被稱為“字段”)。每個表具有一個特殊的列,它被稱為該表的“主鍵”,并且它用于唯一標(biāo)識表中的每條記錄。例如,表可具有“唯一標(biāo)識符”列,并且該表中每條記錄中該唯一標(biāo)識列的值在該表的所有記錄中可能是唯一的。通過在第二表的一列內(nèi)引用第一表的主鍵,可以將關(guān)系數(shù)據(jù)庫中不同的表彼此相關(guān)。在這種情況下,在第二表內(nèi)的第一表的主鍵扮演著第二表內(nèi)“外鍵”的角色。例如,雇員生日表可通過他們的社會保險(xiǎn)號(外鍵)指代雇員,其中社會保險(xiǎn)號是包括其他雇員相關(guān)信息的另一表的主鍵。
[0003]與僅包括單個表的數(shù)據(jù)庫相比,關(guān)系數(shù)據(jù)庫的一個優(yōu)點(diǎn)是關(guān)系數(shù)據(jù)庫可表示多個數(shù)據(jù)集之間的關(guān)系。所以,已存在的但互不相同的數(shù)據(jù)集可在單個關(guān)系數(shù)據(jù)庫中聯(lián)系在一起,而無需所有數(shù)據(jù)集為了共享相同的結(jié)構(gòu)而均被重新格式化。取而代之的是,為了將截然不同的數(shù)據(jù)集一起歸置在單個關(guān)系數(shù)據(jù)庫中,僅需要將關(guān)系(主鍵和外鍵)編碼在數(shù)據(jù)集中。這使得能夠以比將所有數(shù)據(jù)集組合在單個表中的精力相對較少的精力在不同的數(shù)據(jù)集上執(zhí)行操作,諸如搜索和排序,
[0004]雖然關(guān)系數(shù)據(jù)庫具有優(yōu)點(diǎn),但關(guān)系數(shù)據(jù)庫還具有多種缺陷。例如,為了搜索關(guān)系數(shù)據(jù)庫,通常需要以形式查詢語言制定查詢,諸如結(jié)構(gòu)化查詢語言(SQL)。SQL是一種復(fù)雜的語言,并且以SQL制定查詢會需要大量的專業(yè)技術(shù)。此外,以SQL制定查詢需要要搜索的關(guān)系數(shù)據(jù)庫的結(jié)構(gòu)的詳細(xì)知識(例如,列、主鍵以及主-外鍵關(guān)系)。所以,以SQL制定查詢可能是繁冗、耗時且易于出錯的。
[0005]此外,由于關(guān)系數(shù)據(jù)庫中的關(guān)系基于不同表中預(yù)定主鍵間的關(guān)系,在關(guān)系數(shù)據(jù)庫中可表示的關(guān)系固有地受限于在關(guān)系數(shù)據(jù)庫中的主鍵間可形成的關(guān)系。所以,以SQL制定并在關(guān)系數(shù)據(jù)上執(zhí)行的查詢僅可用于搜索在關(guān)系數(shù)據(jù)庫中已經(jīng)使用現(xiàn)有的、預(yù)定主鍵間的關(guān)系而被編碼至數(shù)據(jù)庫中的關(guān)系。
[0006]因此,需要用于克服關(guān)系數(shù)據(jù)庫和基于SQL的搜索的這些限制的技術(shù)。
【發(fā)明內(nèi)容】
[0007]數(shù)據(jù)庫系統(tǒng)使用迭代集合以存儲數(shù)據(jù)以及所述數(shù)據(jù)之間的關(guān)系。與受限于表示二維關(guān)系(即,表對之間的關(guān)系)的關(guān)系數(shù)據(jù)庫不同,本發(fā)明的數(shù)據(jù)庫系統(tǒng)可在三維坐標(biāo)系中表示N維關(guān)系。此外,本發(fā)明的數(shù)據(jù)庫系統(tǒng)可在單個迭代集合中存儲所有的數(shù)據(jù)庫數(shù)據(jù),而無需使用多個表。作為本發(fā)明實(shí)施例存儲數(shù)據(jù)和數(shù)據(jù)間關(guān)系的方式的結(jié)果,本發(fā)明實(shí)施例可用于在不需要以諸如SQL的形式查詢語言制定查詢的情況下搜索該數(shù)據(jù)庫。
[0008]本發(fā)明多個方面和實(shí)施例的其他特征和優(yōu)點(diǎn)將通過下文的描述和權(quán)利要求而顯現(xiàn)。
【附圖說明】
[0009]圖1是根據(jù)本發(fā)明一個實(shí)施例的非確定性圖靈機(jī)的圖;
[0010]圖2是說明根據(jù)本發(fā)明一個實(shí)施例的雙射集合存儲器的圖;
[0011]圖3A-3C是表示根據(jù)傳統(tǒng)關(guān)系數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)的表的圖;
[0012]圖4A-4C是本發(fā)明實(shí)施例所使用的單個表的各部分;以及
[0013]圖5A-5B表示根據(jù)本發(fā)明實(shí)施例的搜索圖4A-4C的表的方法。
【具體實(shí)施方式】
[0014]本專利申請涉及于2014年4月4日提交的題為“A Polynomial Methodof Constructing a Non-Deterministic(NP)Turing Machine” 的申請?zhí)枮?PCT/US2014/032965的PCT專利申請,通過引用將該申請包含在此。該專利申請描述了用于通過確定性圖靈機(jī)(DTM)構(gòu)造非確定性圖靈機(jī)(NTM)的技術(shù)。如該文件所述,非確定性圖靈機(jī)可被認(rèn)為是知識推理機(jī),它以與人腦相似的方式工作。在每種情況下,非確定性圖靈機(jī)為了使問題得到解決可并行作出多種選擇。相反地,確定性圖靈機(jī)是轉(zhuǎn)移函數(shù)機(jī);也就是說,在任何給定的情況下,確定性圖靈機(jī)精確地作出一種選擇,并不具有并行追尋其他選擇的能力。因此,確定性圖靈機(jī)和非確定性圖靈機(jī)之間的最顯著差別在于前者不能并行進(jìn)行處理,而后者可并行進(jìn)行處理。
[0015]—般來說,根據(jù)上文引用的專利申請實(shí)現(xiàn)的非確定性圖靈機(jī)(NTM)包括四個子系統(tǒng):⑴空間二進(jìn)制枚舉系統(tǒng);(2) 3維關(guān)系系統(tǒng);(3)仿真的人類邏輯系統(tǒng);以及⑷雙射集合存儲器系統(tǒng)。上文引用的專利申請?zhí)峁┝伺c每個這種子系統(tǒng)以及與這些子系統(tǒng)彼此間如何交互有關(guān)的進(jìn)一步細(xì)節(jié)。
[0016]例如,參見圖1,示出了根據(jù)本發(fā)明一個實(shí)施例的非確定性圖靈機(jī)(NTM) 100的圖。NTM 100包括存儲器102,本文中稱之為“雙射集合”存儲器,因?yàn)樗ū硎倦p向關(guān)系的數(shù)據(jù),如將在下文更具體地描述的。存儲器102在本文中還被稱為“知識庫”,正如該術(shù)語在美國專利6,611,841中所使用的那樣。NTM 100還包括仿真的人類邏輯系統(tǒng)104,它在本文中還被稱為認(rèn)知邏輯單元或并行信息處理器。該認(rèn)知邏輯單元104并不以與傳統(tǒng)的中央處理器(CPU)相同的方式工作。相反,該認(rèn)知邏輯單元104作為“集合算符”工作,這使得整個NTM 100作為集合算符工作。認(rèn)知邏輯單元104讀取輸入106并基于該輸入和存儲器102的內(nèi)容,生成輸出108。例如,并如將在下文更詳細(xì)描述的那樣,認(rèn)知邏輯單元104可對其輸入106(例如,演繹地和/或還原地)執(zhí)行一個或多個集合運(yùn)算以生成其輸出108,它表示對輸入106執(zhí)行該集合運(yùn)算的結(jié)果。由于NTM 100是非確定性的,雙射集合存儲器102可包括以在上文【背景技術(shù)】部分中所描述的含義來表示數(shù)據(jù)間關(guān)系的數(shù)據(jù)。然而,整個NTM 100可使用確定性圖靈機(jī)(DTM)實(shí)現(xiàn)。在這種實(shí)施例中,NTM 100使用DTM執(zhí)行NTM的功能。因此,NTM 100可使用DTM來構(gòu)造NTM。
[0017]雙射集合存儲器102以及在雙射集合存儲器中存儲數(shù)據(jù)的技術(shù)的示例在于2003年8月 26 日提交的題為“Knowledge Acquisit1n and Retrieval Apparatus and Method”的美國專利US 6,611,841、于2013年3月15日提交的題為“Sequence Alignment”的美國臨時專利申請US61/798,848、以及于2014年3月14日提交的題為“Spatial ArithmeticMethod of Sequence Alignment”的 PCT 申請 PCT/US2004/027455 中進(jìn)行了更詳細(xì)的描述,通過引用將它們?nèi)拷Y(jié)合在此。
[0018]這里對雙射集合存儲器102做非常簡要的總結(jié)。在上文引用的文檔中可獲得進(jìn)一步細(xì)節(jié)。一般來說,雙射集合存儲器102基于對人腦運(yùn)行的理解,并以類似人腦運(yùn)行的方式進(jìn)行操作。具體的,雙射集合存儲器102可包括兩個存儲器:感知存儲器110和概念存儲器112。感知存儲器110存儲表示感知的數(shù)據(jù),諸如對象的感知。概念存儲器112存儲表示觀念的數(shù)據(jù)(本文中也被稱為概念和類)。由存儲在概念存儲器112中的數(shù)據(jù)表示的觀念可視為集合,而由存儲在感知存儲器110中的數(shù)據(jù)所表示的感知可視為由存儲在概念存儲器112中的數(shù)據(jù)表示的集合的元素。
[0019]NTM 100包括歸納(induct1n)模塊114(本文中也被稱為學(xué)習(xí)模塊或概念形成模塊),它使用歸納過程學(xué)習(xí)由存儲在感知存儲器110中的數(shù)據(jù)所表示的感知和由存儲在概念存儲器112中的數(shù)據(jù)所表示的概念之間的自然關(guān)系。對于由學(xué)習(xí)模塊114學(xué)習(xí)的感知存儲器110中的感知和概念存儲器112中的相應(yīng)概念之間的每個關(guān)系,學(xué)習(xí)模塊114生成并存儲表示感知存儲器110中的感知的數(shù)據(jù)與表示概念存儲器112中的相應(yīng)概念的數(shù)據(jù)之間的雙向映射。由學(xué)習(xí)模塊114執(zhí)行的針對數(shù)量逐漸增多的感知和相應(yīng)概念而生成并存儲這種映射的過程模擬了人腦執(zhí)行的學(xué)習(xí)過程。所獲得的映射集合是“知識庫”的一個示例,正如該術(shù)語在本文中所使用的并且在美國專利US6,611,841中所使用的那樣。
[0020]—旦學(xué)習(xí)模塊H4已經(jīng)開發(fā)出包括由存儲在感知存儲器110中的數(shù)據(jù)表示的感知和存儲在概念存儲器112中的數(shù)據(jù)表示的概念之間的雙向映射的知識庫,存儲在知識庫102中的知識可以多種方式的任意一種進(jìn)行檢索。例如,NTM 100包括演繹(deduct1n)模塊116,它可使用演繹從知識庫102中檢索知識。具體的,如果表示感知存儲器110中的感知的數(shù)據(jù)被提供為至演繹模塊116的輸入,那么該演繹模塊116可遵循從感知存儲器110中的感知至概念存儲器112中的相應(yīng)概念的映射(即,關(guān)系),從而檢索出對應(yīng)于該感知的概念。
[0021]作為另一示例,NTM 100包括還原(reduct1n)模塊118,它可使用還原從知識庫中檢索知識。具體的,如果表示概念存儲器112中的類(本文中也被稱為概念、觀念或集合)的數(shù)據(jù)被提供為至還原模塊118的輸入,那么該還原模塊118可遵循從概念存儲器112中的概念至感知存儲器110中的相應(yīng)感知的映射,從而檢索出對應(yīng)于該概念的感知。
[0022]如上文所述,根據(jù)本發(fā)明實(shí)施例實(shí)現(xiàn)的NTM包括空間二進(jìn)制枚舉系統(tǒng),它是指基于由兩個基本(原始)元素組成的集合枚舉數(shù)字的枚舉系統(tǒng),這兩個基本元素可設(shè)想為表不+1和-1。
[0023]因此,雖然傳統(tǒng)二進(jìn)制數(shù)字系統(tǒng)同樣基于兩個基本(原始)元素,S卩0和1,但本文公開的空間二進(jìn)制枚舉系統(tǒng)具有超出基于0和1的傳統(tǒng)二進(jìn)制數(shù)字系統(tǒng)的多種優(yōu)點(diǎn)。具體的,本文公開的空間二進(jìn)制枚舉系統(tǒng)基于具有彼此間幅值相等且方向相反(即,互補(bǔ))的原始元素,例如-1和+1。相反,傳統(tǒng)二進(jìn)制數(shù)字系統(tǒng)中的原始值0和1彼此間并不相等且并不相反。空間二進(jìn)制枚舉