欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

對表格式數(shù)據(jù)進行查找、列表及分類的方法、及記錄了查找、列表或分類程序的記錄介質(zhì)的制作方法

文檔序號:6419146閱讀:185來源:國知局
專利名稱:對表格式數(shù)據(jù)進行查找、列表及分類的方法、及記錄了查找、列表或分類程序的記錄介質(zhì)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種數(shù)據(jù)處理方法和數(shù)據(jù)處理裝置,用于使用計算機或其它信息處理裝置處理大量數(shù)據(jù),尤其涉及一種用于對表格式數(shù)據(jù)進行查找、列表及分類的方法和裝置。
通常,大量數(shù)據(jù)被聚積,并且對所聚積的數(shù)據(jù)執(zhí)行列表和其它的數(shù)據(jù)處理。該數(shù)據(jù)處理可以通過使用如下方式實現(xiàn),例如,包括CPU,存儲器,外圍接口,硬盤或其它輔助存儲設(shè)備,顯示器,打印機或其它輸出設(shè)備,鍵盤,鼠標或其它輸入設(shè)備,及通過總線連接的供電單元的計算機系統(tǒng),及尤其是作為可以在容易地可用的商務(wù)計算機系統(tǒng)中可用的軟件。為了執(zhí)行上述查找,列表或其它數(shù)據(jù)處理,已知各種類型的尤其是用來存儲大量數(shù)據(jù)的數(shù)據(jù)庫。在各種類型的大量數(shù)據(jù)中,尤其要求處理可以用表格式表達的數(shù)據(jù)。

圖1是示出表達可以用表格式處理的數(shù)據(jù)的例子。圖1示出的例子是在表中存儲例如一百萬個人的大量的人的姓別,年齡及職業(yè)數(shù)據(jù)。在圖1中,表的水平行,即所謂的記錄,包括記錄號,對應(yīng)于記錄號的性別,年齡及職業(yè)域。表中垂直列包括記錄號,姓別域、年齡域及職業(yè)域。該表示出記錄號為“0”的人姓別為女,年齡為18及職業(yè)為程序員。在以下的解釋中,在各域中設(shè)置的數(shù)據(jù)如“女”,“18”及“程序員”稱為域值。另外,在以下的解釋中,除非另外指明,使用表格式數(shù)據(jù)即包括示于圖1的一百萬條記錄的表格式數(shù)據(jù)作為大量數(shù)據(jù)的具體例子。
大量數(shù)據(jù)是否可被高效地查找或列表(tabulate),取決于大量數(shù)據(jù)被存儲的格式。通常,典型的已知的存儲技術(shù)分別包括示于圖2A和2B的所謂的“記錄順序(record-sequential)”和“域順序(field-sequential)”存儲技術(shù)。
圖2A和圖2B示出在存儲設(shè)備,例如硬盤上的數(shù)據(jù)存儲格式的表示。在圖2A的記錄順序存儲技術(shù)情況下,對于每個記錄號以順序增加邏輯地址的順序存儲每個記錄號下的姓別、年齡和職業(yè)的域集合。另一方面,在圖2B的域順序存儲技術(shù)的情況下,對于每個域以增加邏輯地址的方向按以域為組的記錄號順序存儲域值。即,在圖2B的例子中,對應(yīng)于記錄號“0”至“999999”的姓別域的域值按順序排列,接著以記錄號順序?qū)⒛挲g域的域值進行排列,再然后,以記錄號順序?qū)⒙殬I(yè)域的域值進行排列。
在上述的現(xiàn)有技術(shù)中,對應(yīng)于所有記錄號的所有域的域值被存儲成兩維數(shù)據(jù)結(jié)構(gòu)(記錄號為一維,另外的域值為一維)。以后這種數(shù)據(jù)結(jié)構(gòu)將被稱為“數(shù)據(jù)表”。在現(xiàn)有技術(shù)中,在查找和列表存儲的數(shù)據(jù)時,通過訪問這種數(shù)據(jù)表來執(zhí)行。
除了將域的值作為域值進行存儲的方法外,還有一種將值轉(zhuǎn)換為代碼并將代碼作為域值存儲的方法。例如,對于姓別域,值“男”可以轉(zhuǎn)換為“0“,而值“女”轉(zhuǎn)換為“0”,然后值“0”或“1”作為域值進行存儲,而取代“男”或“女”。甚至在這種情況下,轉(zhuǎn)換的代碼作為域值存儲在數(shù)據(jù)表中這一點上沒有什么變化。
在對使用上述現(xiàn)有技術(shù)的數(shù)據(jù)表類型的數(shù)據(jù)結(jié)構(gòu)存儲的大量數(shù)據(jù)進行查找和列表時,問題是由于訪問這種數(shù)據(jù)表所需的訪問時間,使得查找和列表處理時間變長。
另外,數(shù)據(jù)表至少具有以下潛在的缺陷。
(1).數(shù)據(jù)表在大小上容易變得龐大,并且不能容易地分離(物理上)為各獨立的域。例如,當抽取性別為“男”的記錄時,不需要年齡和職業(yè)信息,如果表可以被分離為僅包括姓別域的表,則可以改善效率。在圖2B所示的域順序存儲技術(shù)的情況下,盡管分離為各獨立的個體域變得簡單,當處理大量數(shù)據(jù)時,數(shù)據(jù)表的大小仍變得龐大,從而使為了列表或查找而將數(shù)據(jù)表實際擴展到存儲器或其它快速存儲設(shè)備變得困難。
(2).數(shù)據(jù)表不能同時地以用多個域值排序的形式保持。例如,在圖2A和圖2B所示的現(xiàn)有技術(shù)的情況下,姓別域的域值以記錄號順序按照“女,男,女…,女”的方式排列。但是,當執(zhí)行查找和列表處理時,通常方便的是按“女,女,女,男…男”的方式對它們進行排列。但是,在表數(shù)據(jù)中,域值是以特殊的矩陣順序即記錄號順序排列的,從而不允許對于特殊的域排序域值。由于這個原因,在現(xiàn)有技術(shù)中不可能選擇域值的排列以方便查找和列表。
(3).在數(shù)據(jù)表中,相同的值重復(fù)出現(xiàn)。例如,在圖2A和圖2B給出的常規(guī)數(shù)據(jù)表中,在抽取姓別為“‘男’或‘男人’”(或者記錄號)的記錄時,由于域值“男”出現(xiàn)多次,必須執(zhí)行將作為比較條件的“‘男’或‘男人’”與“男”的域值匹配許多次的操作。一個單獨的比較對于確定與相似值是否匹配應(yīng)該是足夠的。
為了大大地提高對大量數(shù)據(jù)進行查找和列表的速度,本發(fā)明的目的是提供一種對表格式數(shù)據(jù)進行查找、列表和排序的方法,及用于實現(xiàn)這種方法的裝置,這是通過提供具有常規(guī)數(shù)據(jù)表功能及用基于數(shù)據(jù)表的數(shù)據(jù)結(jié)構(gòu)解決上述問題的數(shù)據(jù)控制機制來實現(xiàn)的。
為了實現(xiàn)上述目的,根據(jù)本發(fā)明的用于對表格式數(shù)據(jù)進行查找和列表的方法和裝置提出一種新穎的數(shù)據(jù)控制機制,它可以在通常的計算機系統(tǒng)中使用。根據(jù)本發(fā)明的數(shù)據(jù)控制機制包括一個值控制表和值控制表的指針數(shù)組,作為總規(guī)則。
圖3是用于解釋本發(fā)明原理的圖,示出了值控制表10和值控制表的指針數(shù)組20。值控制表10被定義為一張表,其中為表格式數(shù)據(jù)中的每一個域,為屬于那個域的每個域值分配一個(整型)域值號,從而表包括對應(yīng)于以域值號(參考標記11)的順序排列的所述域值號的域值及關(guān)于所述域值的類別號(參考標記12)。值控制表指針數(shù)組20是包含指向表格式數(shù)據(jù)中列(即域)的域值號指針的數(shù)組,即指向按照表格式數(shù)據(jù)的記錄號的順序排列的值控制表10的指針數(shù)組。
通過組合值控制表指針數(shù)組20與值控制表10,給定某個記錄號,可以使用與關(guān)注的域相關(guān)的值控制表指針數(shù)組20以抽取對應(yīng)于那個記錄號的所存儲的域值號,接著抽取值控制表10中對應(yīng)于那個域值號的存儲的域值,從而從記錄號中獲得域值。因而,按照與常規(guī)數(shù)據(jù)表相同的方式,可能用包括記錄號(行)和域(列)的坐標訪問所有數(shù)據(jù)(域值)。
根據(jù)本發(fā)明的數(shù)據(jù)控制機制,包括為表格式數(shù)據(jù)的域中的某個域所生成的值控制表及值控制表指針數(shù)組,也可以尤其稱之為“信息塊”。
盡管常規(guī)的數(shù)據(jù)表使用對應(yīng)于記錄的行和對應(yīng)于域的列的坐標對所有數(shù)據(jù)提供了集中控制,根據(jù)本發(fā)明的信息塊的特征在于數(shù)據(jù)完全地用表格式的列即域分離。這樣,通過本發(fā)明,大量的數(shù)據(jù)用域進行分離,因此可以向存儲器或其它高速存儲設(shè)備僅裝入查找或列表所需的那些域相關(guān)的數(shù)據(jù),結(jié)果,訪問數(shù)據(jù)的時間被減少,從而加速了查找和列表處理,甚至不需影響性能就可以處理極大量的數(shù)據(jù)。
另外,根據(jù)本發(fā)明的信息塊,域值被存儲在值控制表中,并且指明值位置的記錄號與值控制表的指針數(shù)組相關(guān),從而不需按記錄號順序排列域值。因而,數(shù)據(jù)可以按域值進行排序從而適用于查找和列表。因而可以以高速執(zhí)行判斷與目標值匹配的域值是否在數(shù)據(jù)中的處理。進而相應(yīng)的域值號被分配域值,從而即使如果域值包括長數(shù)據(jù)或文本串,它們也可作為整數(shù)處理。
進而,通過本發(fā)明,值控制表10的所有域值號對應(yīng)于不同的域值,從而為抽取具有特定值的包括域值的記錄所需的在特定值和域值之間進而比較的操作次數(shù)不超過可能的域值數(shù),即域值號的數(shù)目,從而大大減少比較次數(shù),加速了查找和列表。這時盡管需要地方來存儲判斷某個域值是否匹配的結(jié)果,例如,可以使用類別號12作為該存儲地址。
圖4示出根據(jù)本發(fā)明的信息塊,包括值控制表10,該控制表具有包含域值的域值數(shù)組11,包含類別號的類別號數(shù)組12及包含總計的總計數(shù)組14??傆嫈?shù)組14包括在某個域在所有數(shù)據(jù)中每個域值出現(xiàn)的次數(shù)的總計的值,或換句話說,具有規(guī)定的域值的記錄數(shù)目。通過在值控制表10中準備這種總計數(shù)組14,可以立即獲取在查找或列表時所需的信息“有多少數(shù)據(jù)存在的實例 ”從而加速查找和列表。
圖5示出具有值控制表10的信息塊,值控制表指針數(shù)組20及記錄指針數(shù)組30。記錄指針數(shù)組30被定義為為每個域值號即每個域值包括具有那個域值(對應(yīng)于記錄號)的記錄指針數(shù)組。對于每個域值包括在記錄指針數(shù)組30中的指向數(shù)目與值控制表10中的總計數(shù)組14中的入口數(shù)匹配。另外,在記錄指針數(shù)組30中可以提供用于每個域值的指定指針組的起始地址的起始位置數(shù)組13。通過按照這種方式在信息塊中提供這種記錄指針數(shù)組30,可以快速抽取對于某個域具有特定的域值的記錄集。存儲在記錄指針數(shù)組30中的總計(參考標記14)和指針的起始位置(參考標記13)被設(shè)置在值控制表10中,從而在信息塊中出現(xiàn)值和總計這個事實使得它們在列表時是有利的。
下面解釋根據(jù)本發(fā)明的用于查找和列表表格式數(shù)據(jù)的方法。注意在下面的解釋中,個體域信息指上述“信息塊”,域值號指定信息數(shù)組指上述“值控制表指針數(shù)組”,而記錄識別信息數(shù)組指上述“記錄指針數(shù)組”。
本發(fā)明提供一種用于從表格式數(shù)據(jù)中抽取對應(yīng)于特定域和特定記錄的域值的方法,其中該表格式數(shù)據(jù)用包括關(guān)于信息的域的域值的記錄數(shù)組來表示,所述方法的特征在于包括步驟在存儲設(shè)備中,為每個個體域新事件。另一種作法是,利用散列技術(shù)之類的技術(shù),可在隨機存取存儲器中存儲了預(yù)先確定的交易信息量時產(chǎn)生日志更新事件,此時可通過覆蓋先前存儲的交易信息來重新使用隨機存取存儲器存儲增加的交易信息。在一個日志時段可以產(chǎn)生多個日志更新事件,于是根據(jù)散列保持包括按照與屬于特定域的域值對應(yīng)的域值號的順序存儲的域值的值控制表,及包括按照所述記錄的順序指定所述域值號的信息的域值號指定信息數(shù)組,從所述域值號指定信息數(shù)組獲取對應(yīng)于所述指定記錄的域值號,及從存儲在所述指控表中的域值獲取對應(yīng)于上述獲取的域值號的域值。
另外根據(jù)本發(fā)明獲取域值的方法,為了對對應(yīng)于所述域值號的域值進行分類,在所述值控制表中對應(yīng)于所述域值號存儲類別號,及在獲取對應(yīng)于所述域值號的域值時訪問所述類別號。
另外本發(fā)明提供一種從表格式數(shù)據(jù)中查找與特定查找條件匹配的域值的單獨方法,其中該表格式數(shù)據(jù)用包括與查找條件相關(guān)的域的域值的記錄數(shù)組表示,所述方法的特征在于包括步驟在存儲設(shè)備中為每個個體域保持個體域信息,從而包括按照與和查找條件相關(guān)的域的域值對應(yīng)的域值號的順序存儲的域值的值控制表,包括按照所述記錄的順序指定所述域值號的信息的域值號指定信息數(shù)組,及記錄識別信息數(shù)組,它在固有的區(qū)域中為每個所述域值號存儲與相同的域值號相關(guān)的一個或多個記錄識別信息,并且所述值控制表包括為所述域值號的每一個指示與相同的域值號相關(guān)的一個或多個記錄識別信息在所述記錄識別信息數(shù)組中的區(qū)域的記錄識別信息指定信息,使用在所述值控制表中的與所述查找條件匹配的域值中的與關(guān)于域值的域值號對應(yīng)的所述記錄識別信息指定信息,從所述記錄識別信息數(shù)組中獲取與所述查找條件匹配的記錄識別信息。
另外根據(jù)本發(fā)明對多個域進行查找的方法包括步驟在存儲設(shè)備中保持由根據(jù)本發(fā)明的單一域查找方法所獲得的與查找條件匹配的記錄結(jié)果集,選擇與單獨查找條件相關(guān)的關(guān)于域的單獨個體域信息,從關(guān)于單獨個體域信息的域值號指定信息數(shù)組中獲取對應(yīng)于與所述結(jié)果集中的所述查找條件匹配的記錄識別信息的域值號,關(guān)于單獨個體域信息,判斷由所述抽取的域值號識別的域值是否與單獨查找條件匹配,關(guān)于單獨個體域信息,如果由所述抽取的域值號識別的域值與單獨查找條件匹配,抽取對應(yīng)于域值號的記錄識別信息作為與單獨的查找條件匹配的記錄識別信息,可選的,作為多個域查找方法的變形,可以實現(xiàn)所謂的OR查找。更詳細地,該方法包括步驟
在存儲設(shè)備中保持與所述查找條件匹配的記錄結(jié)果集,關(guān)于涉及其它查找條件的個體域信息,使用與所述查找條件匹配的存儲在其它值控制表中的域值中的域值,及對應(yīng)于相關(guān)域值的記錄識別信息指定信息,從記錄識別信息數(shù)組中抽取與所述其它查找條件匹配的記錄,并將與查找條件匹配的記錄存儲在特定的其它記錄集中,如果必要,關(guān)于進一步的其它查找條件,使用進一步的其它記錄識別信息指定信息,抽取與進一步的其它查找條件匹配的記錄,并重復(fù)存儲進一步的其它結(jié)果集,及通過從這樣獲得的結(jié)果集中除去重復(fù)的記錄獲得最終結(jié)果集。
本發(fā)明提供一種用每個域值對表格式數(shù)據(jù)進行列表的方法,其中該表格式數(shù)據(jù)用包括包含對應(yīng)于域信息的域值的多個域的記錄數(shù)組表示,所述方法的特征在于包括步驟如果n表示等于或大于1的整數(shù),對于在列表中所使用的n個域的每一個,在存儲設(shè)備中保持包括包含唯一識別域值的對應(yīng)于域值號的那個域的域值的值控制表,其中該域值號是不同的域共有的,并且具有從初始值開始的規(guī)定順序,另外還保持包括指定按照所述記錄的順序的所述域值號的信息的域值號指定信息數(shù)組,如果i表示范圍1≤i≤n內(nèi)的整數(shù),對于第i個個體信息域,所述域值號的總數(shù)用Ni表示,Ki表示范圍1≤Ki≤Ni-1內(nèi)的整數(shù),M表示大于或等于1的整數(shù),如果m表示范圍1≤m≤M內(nèi)的整數(shù),則將n維M數(shù)據(jù)空間中的元素Pm(k1,k2,…,ki,…,kn)初始化為具有大小N1×N2×…×Ni×…×Nn,對于所述n個單獨信息域,當j表示范圍1≤j≤ (記錄總數(shù)-1)內(nèi)的整數(shù)時,抽取在每一個域值號指定信息數(shù)組的第j個位置所存儲的各域值號,并且從第i個個體信息域中抽取的域值號用標識所述數(shù)據(jù)空間中的元素Pm(q1,q2,…,qi,…,qn)的qi表示,并且處理元素Pm(q1,q2,…,qi,…,qn)的所述識別出的值。
本發(fā)明提供一種用域值類別對表格式數(shù)據(jù)進行列表的方法,其中該表格式數(shù)據(jù)用包括包含對應(yīng)于域信息的域值的多個域的記錄數(shù)組表示,所述方法的特征在于包括步驟如果n表示等于或大于1的幀數(shù),對于在列表中所使用的n個域的每一個,在存儲設(shè)備中保持該個體域信息包括包含那個域的域值及對應(yīng)于唯一識別域值的域值號的域值的類別號,個別域信息,其中域值號是不同的域所共有的并且具有從初始值開始的規(guī)定順序,另外還保持包括指定按照所述記錄的順序的所述域值號的信息的域值號指定信息數(shù)組,如果i表示范圍1≤i≤n內(nèi)的整數(shù),對于第i個個體信息域,所述域值號或類別號的總數(shù)用Ni表示,Ki表示范圍0≤Ki≤Ni-1內(nèi)的整數(shù),M表示大于或等于1的整數(shù),如果m表示范圍1≤m≤M內(nèi)的整數(shù),則將n維M數(shù)據(jù)空間中的元素Pm(k1,k2,…,ki,…,kn)初始化為具有大小N1×N2×…×Ni×…×Nn,對于所述n個個體信息域,當j表示范圍0≤j≤ (記錄總數(shù)-1)內(nèi)的整數(shù)時,抽取在每一個域值號指定信息數(shù)組的第j個位置所存儲的各域值號,并且當用qi表示從第i個個體信息域中抽取的域值號或?qū)?yīng)于值控制表中所述域值號的所述第i個個體信息域所存儲的類別號時,識別所述數(shù)據(jù)空間中的元素Pm(q1,q2,…,qi,…,qn),并且處理元素Pm(q1,q2,…,qi,…,qn)的所述識別出的值。
根據(jù)本發(fā)明對總計進行列表的方法,M=1為真,并且處理所述識別的元素Pm的值的步驟包括將所述元素Pm的當前值加1。
另外,根據(jù)本發(fā)明對統(tǒng)計數(shù)進行列表的方法,處理所述識別的元素Pm的值的步驟包括對于M個元素Pm中的至少一個元素Pm,對于在存儲設(shè)備中所保持的獨立的個體域信息,獲取存儲在域值號指定信息數(shù)組的第j個位置上的域值號,從存儲在所述獨立的個體域信息的值控制表中的域值中,獲取對應(yīng)于所獲取的所述域值號的域值,及更新所述元素Pm的當前值及組合所獲得的所述域值的所述元素Pm的值。
根據(jù)本發(fā)明,所述指定域值號的信息可以是域值號自己。
可選的,為了實現(xiàn)所謂的多答案域,其中為某個記錄的一個域分配多個域值,所述指定域值號的信息可以是一個二進制值,其中為每個域值號分配1位,從而設(shè)定是否設(shè)定了它。
另外本發(fā)明提供一種用于從表格式數(shù)據(jù)中進行抽取和列表的裝置,其中該表格式數(shù)據(jù)用包括每個域包含多個域值的多個域的記錄數(shù)組來表示,所述裝置的特征在于包括存儲設(shè)備,為各個體域,保持包括包含唯一識別域值的對應(yīng)于域值號的那個域的域值的值控制表,該域值號是不同的域所共有的,并具有從一個初始值開始的規(guī)定順序,及包括按照所述記錄的順序指定所述域值號的信息的域值號指定信息數(shù)組,域值號獲取裝置,從所述域值號指定信息數(shù)組獲取對應(yīng)于所述指定記錄的域值號,及域值獲取裝置,從存儲在保持在存儲設(shè)備中的所述指控表中的域值獲取對應(yīng)于上述獲取的域值號的域值。
本發(fā)明還提供一種其上記錄了用于對表格式數(shù)據(jù)進行查找和列表的程序的計算機可讀存儲介質(zhì),其中該表格式數(shù)據(jù)包括每個域包含多個域值的多個域的記錄數(shù)組來表示,所述程序的特征在于包括步驟在存儲設(shè)備中為每個個體域保持包括包含唯一識別域值的對應(yīng)于域值號的那個域的域值的值控制表,該域值號是不同的域所共有的,并具有從一個初始值開始的規(guī)定順序,及包括按照所述記錄的順序指定所述域值號的信息的域值號指定信息數(shù)組,從保持在所述存儲設(shè)備中的所述域值號指定信息數(shù)組獲取對應(yīng)于所述指定記錄的域值號,及從存儲在所述指控表中的域值獲取對應(yīng)于上述獲取的域值號的域值。
本發(fā)明還提供一種排序方法,其中在一個特定域重新排列包括包含關(guān)于信息域的域值的多個域的記錄識別信息,例如記錄號指定記錄數(shù)組。根據(jù)本發(fā)明的排序方法,形成一個值控制表指針數(shù)組,對于每個記錄,將所述記錄識別信息域與對應(yīng)于某個域的域值的域值號關(guān)聯(lián)起來,對于所述域值號的每一個,定義重新排列了所述記錄識別信息后的存儲地址,從所述數(shù)組順序抽取所述記錄識別信息,確定對應(yīng)于所述抽取的記錄識別信息的所述域值號,根據(jù)對應(yīng)于所確定的域值號的記錄識別信息指定信息在所述存儲地址存儲所述抽取出的記錄識別信息,及更新其中要存儲所述記錄識別信息的所述存儲地址,以存儲下一個記錄識別信息。
根據(jù)本發(fā)明的排序方法的優(yōu)選實施例包括步驟在存儲設(shè)備中為每個個體域保持個體域信息,從而包括按照與和查找條件相關(guān)的域的域值對應(yīng)的域值號的順序存儲的域值的值控制表,包括按照所述記錄的順序指定所述域值號的信息的域值號指定信息數(shù)組,值控制表進一步包括記錄識別信息指定信息,它對應(yīng)于所述域值號,指明在所述記錄識別信息指定信息數(shù)組中存儲了關(guān)于相同的域值號的所述一個或多個記錄識別信息的區(qū)域。另外還保持根據(jù)記錄識別信息指定信息在存儲地址中存儲的記錄識別信息。
進而,本發(fā)明的目的可以通過用于實現(xiàn)上述方法的裝置,包括根據(jù)該方法的程序的計算機可讀存儲介質(zhì)或根據(jù)所關(guān)注的方法的計算機可裝入程序產(chǎn)品來實現(xiàn)。
參考所附的附圖及實施例,本發(fā)明的這個和其它目的將更清楚。
圖1是示出典型的表格式數(shù)據(jù)的解釋圖。
圖2A和2B是示出現(xiàn)有技術(shù)中表格式數(shù)據(jù)存儲技術(shù)的解釋圖。
圖3是示出本發(fā)明原理的解釋圖。
圖4是示出根據(jù)本發(fā)明的信息塊的解釋圖。
圖5是示出根據(jù)本發(fā)明的信息塊的解釋圖。
圖6是示出關(guān)于在本發(fā)明的實施例中所使用的“姓別”的信息塊的解釋圖。
圖7是示出關(guān)于在本發(fā)明的實施例中所使用的“年齡”的信息塊的解釋圖。
圖8是示出關(guān)于在本發(fā)明的實施例中所使用的“姓別”的信息塊的解釋圖。
圖9是根據(jù)本發(fā)明實施例1的單獨域中查找方法的操作的流程圖。
圖10是示出根據(jù)本發(fā)明的實施例1的信息塊的解釋圖。
圖11是示出根據(jù)本發(fā)明實施例1的信息塊的解釋圖。
圖12是根據(jù)本發(fā)明實施例2的對多個域進行AND的查找方法的操作流程圖。
圖13是示出根據(jù)本發(fā)明的實施例2的信息塊的解釋圖。
圖14是示出根據(jù)本發(fā)明實施例2的信息塊的解釋圖。
圖15是示出根據(jù)本發(fā)明實施例3的使用位標記進行多個域布爾操作查找的解釋圖。
圖16是示出根據(jù)本發(fā)明實施例3的使用位標記進行多個域布爾操作查找的解釋圖。
圖17是根據(jù)本發(fā)明實施例5的列表方法操作的流程圖。
圖18是本發(fā)明實施例6的概念解釋圖。
圖19是本發(fā)明實施例6的操作的流程圖。
圖20是根據(jù)本發(fā)明實施例6的交叉列表操作的流程圖。
圖21是示出根據(jù)本發(fā)明實施例8的信息塊的解釋圖。
圖22是根據(jù)本發(fā)明實施例9的交叉列表操作的流程圖。
圖23A和23B是交叉列表的概念解釋圖。
圖24是示出多答案類型域的解釋圖。
圖25是示出根據(jù)本發(fā)明的實施例10的與多答案類型域兼容的類型的信息塊的解釋圖。
圖26是示出根據(jù)本發(fā)明實施例11處理具體值的方法的解釋圖。
圖27是根據(jù)本發(fā)明實施例12對多個域進行查找的方法的操作流程圖。
圖28是根據(jù)本發(fā)明的一個實施例用于表格式數(shù)據(jù)的查找和列表系統(tǒng)的結(jié)構(gòu)圖。
圖29是示出構(gòu)成信息塊的方法的解釋圖。
圖30是示出準備數(shù)據(jù)插入和初始化的解釋圖。
圖31是示出數(shù)據(jù)插入的第一次遍歷的解釋圖。
圖32是示出數(shù)據(jù)插入的第二次遍歷的解釋圖。
圖33是示出數(shù)據(jù)插入的第三次遍歷的解釋圖。
圖34是示出數(shù)據(jù)插入的第三次遍歷的解釋圖。
圖35是示出數(shù)據(jù)插入的第三次遍歷的解釋圖。
圖36是示出向一個信息塊增加數(shù)據(jù)的解釋圖。
圖37是示出根據(jù)本發(fā)明另一實施例的信息塊結(jié)構(gòu)圖。
圖38是示出根據(jù)本發(fā)明實施例13進行排序的初始狀態(tài)的解釋圖。
圖39是示出根據(jù)本發(fā)明實施例13進行排序的第一步的解釋圖。
圖40是示出根據(jù)本發(fā)明實施例13進行排序的第二步的解釋圖。
圖41是示出根據(jù)本發(fā)明實施例13進行排序的最后一步的解釋圖。
圖42是是示出對部分集合進行排序的解釋圖。
圖43是示出對部分集合進行排序的后處理的解釋圖。
圖44是示出在查找和列表測試中使用的數(shù)據(jù)的一百萬條記錄的解釋圖。
圖45是示出對一百萬條數(shù)據(jù)記錄進行查找和列表測試的結(jié)果的解釋圖。
圖46A和46B是示出作為本發(fā)明實施例2的變形對多個域進行OR查找處理的流程圖。
圖47是示出根據(jù)本發(fā)明實施例3的查找處理的流程圖。
圖48是示出根據(jù)本發(fā)明實施例4的列表處理的流程圖。
圖49是示出根據(jù)本發(fā)明實施例7的列表處理的流程圖。
圖50是示出根據(jù)本發(fā)明實施例13的排序處理的流程圖。
為了更好地理解本發(fā)明,我們將使用圖1所示的表格式數(shù)據(jù)作為數(shù)據(jù)例子,并用不同的實施例詳細描述根據(jù)本發(fā)明的查找方法,列表方法及排序方法。圖1的例子中所示的數(shù)據(jù)包括域“姓別”,“年齡”和“職業(yè)”,如在圖6-8各圖中所示,所包括的信息塊是關(guān)于“姓別”的信息塊,關(guān)于“年齡”的信息塊和關(guān)于“職業(yè)”的信息塊。下面的描述假設(shè)獲得了這些信息塊。注意盡管以后將描述構(gòu)造信息塊的技術(shù),本發(fā)明不限于該構(gòu)造信息塊的方法。
如后所述,根據(jù)本發(fā)明的一個實施例用于查找及列表表格式數(shù)據(jù)的裝置具有圖28所示的結(jié)構(gòu)。如圖28所示,通過例如通常的個人計算機這樣的計算機系統(tǒng)實現(xiàn)用于查找和列表表格式數(shù)據(jù)的裝置。該計算機系統(tǒng)包括CPU100,用于執(zhí)行程序來控制整個系統(tǒng)及其各組成部件,ROM(只讀存儲器)110,存儲程序等,RAM(隨機訪問存儲器)120,存儲工作數(shù)據(jù)等,硬盤存儲設(shè)備130,顯示設(shè)備140,鍵盤、鼠標或其它輸入設(shè)備150。CPU100,ROM110,RAM120等通過總線160相互連接。其它也可以連接到總線上的部件包括用于訪問CD-ROM盤的CD-ROM驅(qū)動器(未示出),外部網(wǎng)絡(luò)(未示出)及提供給連接的外部終端的接口(未示出)等。
對表格式數(shù)據(jù)執(zhí)行查找和列表(也根據(jù)情況進行排序)的程序可以包括在CD-ROM(未示出)上并且由CD-ROM驅(qū)動器(未示出)讀取,或事先存儲在ROM110中。另外,一旦從CD-ROM中讀出,程序也可以存儲在硬盤存儲設(shè)備130的特殊區(qū)域。另外,上述程序也可以從外部通過網(wǎng)絡(luò)、外部終端或接口(它們均未示出)提供。
另外,在上述查找和列表裝置中,為了對表格式數(shù)據(jù)執(zhí)行查找和列表(根據(jù)情況也進行排序)處理,如后所述,必須根據(jù)表格式數(shù)據(jù)生成規(guī)定的數(shù)據(jù)格式信息塊。該信息塊生成程序可以相似地包括在CD-ROM中,存儲在ROM110中,或存儲在硬盤存儲設(shè)備130中。另外,上述程序也可以從外部通過網(wǎng)絡(luò)、外部終端或接口(它們均未示出)提供。另外,在該實施例中,由生成信息塊的上述信息塊生成程序生成的數(shù)據(jù)(信息塊)存儲在RAM120或硬盤存儲設(shè)備130的特殊區(qū)域。下面是根據(jù)本發(fā)明實施例1的查找單獨域的方法的描述,其中查找“年齡”域值為“16”或“19”的記錄。圖9是在單獨的域中進行查找的方法的操作流程圖。這是通過由CPU100執(zhí)行通過上述過程獲得的或存儲在規(guī)定區(qū)域中的查找程序來實現(xiàn)的。
首先,從關(guān)于表格式數(shù)據(jù)的信息塊中選擇如圖7所示的關(guān)于“年齡”的信息塊,作為特殊的信息塊(步驟100)。
接著,將位于特殊的信息塊的值控制表中的域值匹配于作為上述查找條件的“16”或“19”的那些行的類別號設(shè)置為“1“。并且將其它行中的類別號設(shè)置為“0”(步驟102)。在圖10所示的該例子中,“1”被設(shè)置到對應(yīng)于域值號“0”及域值號“3”的那些行的類別號中。
接著,獲取對應(yīng)于類別號被設(shè)置為“1”的那些行(即具有域值號“0”和“3”的行)的起始地址和總計,作為指針抽取信息(步驟104)。在例子中,域值號“0”具有對應(yīng)的起始地址“0”及總計“45898”。另一方面,域值號“3”具有對應(yīng)的起始地址“238137”及總計“189653”。
通過從記錄指針數(shù)組中抽取由上述起始地址及總計所指定的指針數(shù),代表與上述查找條件相匹配的記錄指針的記錄號被抽取出來(步驟106)。在該例中,如圖10所示,可以看到對應(yīng)于域值號為“0”的記錄指針存儲到從起始地址“0”,或從開始直到第45898個地址的地址中,而對應(yīng)于域值號為“3”的記錄指針存儲在記錄指針數(shù)組的從第2383137個地址開始的189653個地址中。例如,當訪問圖1的表格式數(shù)據(jù)時,對應(yīng)于具有最后一個記錄號“999999”的記錄的“年齡”是“16”,如圖11所示,在對應(yīng)于域值為“0”,或者“年齡”為“16”的記錄指針數(shù)組中存儲的指針中的最后一個指針是“999999”。
最后,為了在隨后的處理中使用,所抽取的記錄號數(shù)組被作為結(jié)果集生成及保存(步驟108)。
通過本發(fā)明,可以不僅實現(xiàn)如上所述的對單獨域進行查找,還能對多個域的AND進行查找。以下說明根據(jù)本發(fā)明的實施例2對多個域的AND進行查找的方法。在該例中,我們將認為要獲取滿足以下兩個條件的記錄集合第一個查找條件為“年齡”為“16”或“19”,第二個查找條件為“職業(yè)”為“學(xué)生”。圖12是查找多個域的AND的方法的操作流程圖。
如前所述,對于作為第一個域“年齡”的信息塊的第一個特殊信息塊,通過根據(jù)實施例1的處理獲得“年齡”為“16”或“19”的記錄結(jié)果集(步驟120)。然后,該步驟120的處理大致對應(yīng)于圖9所示的部分。
接著,作為圖8所示的第二個域的關(guān)于“職業(yè)”的信息塊被作為第二特殊信息塊選出(步驟122)。
接著,將特殊信息塊的值控制表中的域值與作為前述查找條件的與“學(xué)生”匹配的那些行的類別號設(shè)為“1”,并將其它行的類別號設(shè)為“0”。在如圖13所示的該例中,“1”被設(shè)置到對應(yīng)于域值號為“0”的那些行的類別號中,并且“0”被設(shè)置到其它行中。
接著為第一查找條件從結(jié)果集中順序抽取表示指向記錄的指針的那些記錄號(步驟126)。例如,如圖14所示,抽取記錄號“999999”。
接著,關(guān)于第二特殊信息塊,從值控制表指針數(shù)組中抽取對應(yīng)于滿足上述第一查找條件而獲取的記錄號的域值號(步驟128)。例如,如圖14所示,抽取出對應(yīng)于記錄號“999999”的域值號“0”。
接著判斷在對應(yīng)于根據(jù)第二特殊信息塊抽取的域值號的類別號中是否設(shè)置了“1”(步驟130)。例如,如圖14所示,可以看到“1”被設(shè)置到對應(yīng)于域值號為“0”的類別號中。
當“1”被設(shè)置到類別號中時,將對應(yīng)于指明“1”被設(shè)置到類別號中的關(guān)注的域值號的值控制表指針數(shù)組中的指針地址的記錄指針,例如記錄號,增加到最終結(jié)果集中(步驟132)。例如,如圖14所示,記錄號“999999”被增加到最終結(jié)果集中。
當類別號是“0”時,不更新最終結(jié)果集。
注意對于本領(lǐng)域技術(shù)人員來說可以容易地理解,上述對多個域的AND進行查找的方法可以應(yīng)用于除了AND查找的查找中,從而這種變化可能用于基于多個域的OR的查找方法中。圖46A是示出對多個域進行OR查找處理的處理例子。該處理也可由CPU100執(zhí)行存儲在規(guī)定區(qū)域中的程序來實現(xiàn)。如圖46所示,首先在得到關(guān)于第一查找條件的結(jié)果集后(步驟4601),選擇第二查找條件的信息塊(步驟4602)。然后,關(guān)于該信息塊,設(shè)置關(guān)于第二查找條件的類別號(步驟4603)。盡管跳過來自第一查找條件的結(jié)果集中包含的記錄號,關(guān)于第二特殊信息塊,順序掃描值控制表指針數(shù)組(步驟4604)。更詳細地,關(guān)于第二查找條件類別號被置為“1”的記錄號,判斷在根據(jù)第一查找條件的結(jié)果集中是否發(fā)現(xiàn)了這個記錄號(步驟4611-4615)。如果在根據(jù)第一查找條件的結(jié)果集中未發(fā)現(xiàn)該號,則將那個號增加到結(jié)果集中(步驟4614)。完成該處理后,通過將存儲在根據(jù)第一查找條件的結(jié)果集中的記錄號與屬于關(guān)于第二信息塊設(shè)置類別號的那些域值號的記錄號聯(lián)合生成第二結(jié)果集(步驟4615),并且這可以作為輸出。
另外,可以執(zhí)行圖46B所示的處理。在該例中,在根據(jù)關(guān)于第一特殊信息的查找條件獲得第一結(jié)果集后,獨立于此,根據(jù)關(guān)于第二特殊信息的第二查找條件獲得第二結(jié)果集(步驟4621-4624),使用位映射執(zhí)行第一結(jié)果集和第二結(jié)果集的OR(步驟4625),根據(jù)此生成一個新的結(jié)果集(步驟4627)。注意在圖46B的處理中,步驟4602和4603對應(yīng)于圖46A的步驟4621和4622,步驟4625對應(yīng)于圖46A的步驟4601。
圖15和16是示出根據(jù)本發(fā)明的實施例3使用位標記的多個域布爾查找操作方法的解釋圖,該圖示出,在與上述實施例2的查找條件相同的情況下執(zhí)行查找的情況。使用位標記進行多個域布爾操作查找被定義為查找條件由為每個域的查找條件中的布爾操作來表達。在該例中,如實施例1所示,通過對單獨的域執(zhí)行查找所獲得的結(jié)果集不能由記錄號數(shù)組構(gòu)成,對于結(jié)果集來說以位標記的形式構(gòu)成是有利的。即,根據(jù)圖47所示的處理,通過為所有記錄每一個分配一位生成結(jié)果集,并且位值“1”或“0”表示每個記錄是否與查找條件相匹配。更具體的,與其它實施例相同,選擇包括練及查找條件的域值的信息塊(步驟4701),然后對于行匹配了查找條件的將其類別號設(shè)置為“1”(步驟4702)。接著,對于每個記錄訪問對應(yīng)的類別號,并且確定要被存儲到結(jié)果集的位值(步驟4703-4707)。通過按這種方式形成結(jié)果集,每個域的結(jié)果集大小對應(yīng)于表格式數(shù)據(jù)的記錄號,從而結(jié)果集的大小對每個域是相同的,結(jié)果,容易對結(jié)果集中的元素執(zhí)行布爾操作,例如AND,OR和XOR。
在該例中,示于圖15中的結(jié)果集A和示于圖16中的結(jié)果集B在AND條件下聯(lián)接以獲得位標記格式的希望的查找結(jié)果集。另外這樣獲得的位標記格式的查找結(jié)果集可以轉(zhuǎn)換為記錄指針數(shù)組格式的結(jié)果集,從而與根據(jù)本發(fā)明實施例2的對多個域進行查找的上述方法結(jié)合。
下面我們將解釋根據(jù)本發(fā)明對不同類型的表格式數(shù)據(jù)進行列表的方法。根據(jù)本發(fā)明實施例4的列表方法包括對在特殊的域具有特殊的域值的記錄的個數(shù)進行計數(shù),我們將考慮對在“姓別”域中具有“男”域值或具有“女”域值的記錄的個數(shù)進行計數(shù)的情況。如圖6所示,根據(jù)本發(fā)明的優(yōu)選實施例,關(guān)于“姓別”的信息塊包括域值為“男”的記錄的總數(shù)(值為“632564”)及包括域值為“女”的記錄的總數(shù)(值為“367436”),從而可以通過訪問信息塊中的總數(shù)數(shù)組立即獲得記錄數(shù)的簡單列表。
另外,通過將對單獨的域進行查找的方法中所描述的類別號與根據(jù)本發(fā)明實施例4的列表方法相結(jié)合,即使在更復(fù)雜的條件下也能容易地對記錄號進行計數(shù)。例如在查找如本發(fā)明實施例1中所描述的“年齡”域的值為“16”或“19”的記錄的方法中,可以對對應(yīng)于“1”被設(shè)置為類別號的域值號的總數(shù)進行列表,從而列出與查找條件相匹配的記錄號。這時,通過使用類別號,即使當值控制表很大或給出了復(fù)雜條件的情況下,也能高效地得到總數(shù)。更一般的,如圖48所示,找到“1”被設(shè)置到類別號中的域值號(步驟4602)并然后增加相應(yīng)的總計(步驟4803)就足夠了。
接著,將解釋本發(fā)明的實施例5。在該實施例中,將計算“男”的平均年齡??梢酝ㄟ^公式(男性的“年齡”總計)/(男性總數(shù))來計算平均年齡,并且也可以通過在本發(fā)明實施例4中所描述的列表方法獲得男性總數(shù)。結(jié)果,在該實施例中,要解決獲取男性的總“年齡”的問題。圖17是示出本發(fā)明實施例5的操作的流程圖。如在其它實施例中一樣,該處理也可通過由CPU100執(zhí)行存儲在規(guī)定數(shù)據(jù)中的程序來實現(xiàn)。
首先選擇如圖6所示的關(guān)于“性別”的信息塊,作為第一信息塊(步驟140),并且從特殊信息塊的值控制表中檢測對應(yīng)于域值“男”的域值號“0”(步驟142)。接著,對應(yīng)于域值號“0”的總數(shù)為“632564”,從而男性的總數(shù)被確定為632564,并且對應(yīng)于域值號“0”的起始位置也是“0”,因而性別為男的記錄指針被確定為存儲在從起始直到第632564個地址的地址中,并且這些記錄的指針列表,即記錄號數(shù)組被保持在結(jié)果集中(步驟146)。
接著,選擇如圖7所示的關(guān)于“年齡”的信息塊,作為第二特殊信息塊(步驟148)并且從第二特殊信息塊的值控制表指針數(shù)組中抽取關(guān)于第一特殊信息塊的在結(jié)果集中所指定的對應(yīng)于記錄的域值號(步驟150),并且抽取關(guān)于抽取的域值號的域值,即“年齡”(步驟152)。最后,通過順序地增加抽取的“年齡”值來獲得總年齡(步驟154),并重復(fù)步驟150,152和154,直到上述結(jié)果集中的所有指定的記錄都被處理(步驟156)。這樣獲得的總年齡被總數(shù)去除以獲得平均年齡(步驟158)。
接著,將解釋本發(fā)明的實施例6。在該例中,將獲取男學(xué)生的平均年齡和女學(xué)生的平均年齡。圖18是本發(fā)明實施例6的概念解釋圖,而圖19是本發(fā)明實施例6的操作流程圖。
在該實施例中,通過第一次查找關(guān)于“職業(yè)”的信息塊作為第一信息塊執(zhí)行列表(步驟170),并使用“職業(yè)為學(xué)生”的查找條件從所有記錄中生成包括“職業(yè)為學(xué)生”的記錄的結(jié)果集(步驟172)。
接著,選擇關(guān)于“性別”的信息塊作為第二信息塊并選擇關(guān)于“年齡”的信息塊作為第三信息塊(步驟174),并從結(jié)果集的開始順序抽取記錄指針(步驟176)。
使用抽取的記錄指針,訪問第二信息塊的值控制表指針數(shù)組以獲取對應(yīng)于抽取的記錄指針的性別,并且也訪問第三信息塊的值控制表指針數(shù)組以抽取對應(yīng)于抽取的記錄指針的年齡(步驟178)。男性總數(shù)和女性總數(shù)在每次抽取時均增量1,以為男性和女性計算總抽取年齡(步驟180)。
檢查結(jié)果集的所有記錄指針是否都已被處理(步驟182),并且如果所有的記錄指針都被處理,則通過用總數(shù)除以男性和女性的總年齡來計算男性和女性學(xué)生的平均年齡(步驟184)。
接著,將參照圖20所示的操作流程圖解釋本發(fā)明的例7。在該實施例中,執(zhí)行所謂的交叉列表。注意圖20所示的處理程序也由CPU100讀取和執(zhí)行。在該實施例中,考慮關(guān)于圖1的表格式數(shù)據(jù)的整個記錄集中用姓別/職業(yè)統(tǒng)計的總數(shù)。
關(guān)于在列表中使用的兩個域“姓別”和“職業(yè)”,各值控制表和指定信息數(shù)組的域值號,即值控制表的指針數(shù)組,它們表達兩部分個體域信息,即在存儲設(shè)備中保持第一和第二信息塊(步驟190)。存儲器設(shè)備可以以例如存儲器,虛擬存儲器,存儲器映射文件等的形式實現(xiàn)。
關(guān)于涉及姓別的第一信息塊,如圖6所示,姓別的域值號的總數(shù)是“2”,并且關(guān)于涉及職業(yè)的第二信息塊,如圖8所示,用于職業(yè)的域值號的總數(shù)是“4”。這樣生成一個初始化2×4(2行×4列)兩維數(shù)組作為存儲列表數(shù)據(jù)的空間(步驟192)。
關(guān)于第一和第二信息塊,分別順序地從值控制表的指針數(shù)組的開始分別抽取域值號q1和q2,它們用于識別兩維數(shù)組中的單獨元素P(q1,q2)(步驟194),然后被標識的元素P(q1,q2)的值被增量1(步驟196)。
檢查是否所有的域值號(即等于記錄總數(shù)的域值號的數(shù)目)都從值控制表的指針數(shù)組中抽取(步驟198),并且如果仍然剩余域值號,則返回步驟194,如果沒有,則終止列表處理,這將完成兩維交叉表。
在上述本發(fā)明的實施例7中,對于圖1的表格式數(shù)據(jù)的整個記錄集執(zhí)行列表,但也可以對記錄的部分集執(zhí)行相同類型的列表,例如以姓別/職業(yè)列出16歲的總數(shù)。為了實現(xiàn)該目的,首先使用年齡16作為查找條件進行單獨域查找,然后獲取和保持與16歲相匹配的記錄的識別信息。接著,如前面關(guān)于對多個域的AND進行查找的描述所述,將包括在該結(jié)果集中的記錄即記錄的部分集作為操作對象,并順序抽取從起始就開始的包括在結(jié)果集中的記錄標識信息,然后從值控制表的指針數(shù)組中抽取對應(yīng)于記錄標識信息的域值號,將由此獲得的域值號作為兩維數(shù)組的橫和縱坐標,而將元素值的總數(shù)增量“1“,即在該處理中,如圖49所示,執(zhí)行大致相當于圖9中所示的處理,以生成結(jié)果集,包括記錄指針(步驟4901)。接著,使用該結(jié)果集以執(zhí)行大致相當于圖20的處理。這里,首先如圖20的相同方式一樣,抽取在列表中使用的關(guān)于域的第一和第二信息塊(步驟4902),然后生成初始化的兩維數(shù)組(步驟4903)。
然后初始化指示結(jié)果集中的指針存儲位置的值(以后根據(jù)情況稱為“存儲位置號”)(步驟4904)。根據(jù)程序,關(guān)于不同的存儲位置號,CPU100從第一和第二信息塊中抽取對應(yīng)于值控制表的指針數(shù)組,并識別兩維中的元素P(q1,q2)(步驟4905),接著P(q1,q2)被增量(步驟4906)。通過對所有的存儲位置號執(zhí)行該處理(即通過處理結(jié)果集中的上述域值號),可能獲取關(guān)于通過查找等獲得的部分集的交叉列表。
接著,將解釋本發(fā)明的實施例8。在該例中,通過為域值的每個類別計數(shù)總數(shù),在域的域值被分為若干個類別的情況執(zhí)行交叉列表。例如,參考關(guān)于示于圖8中的“職業(yè)”的信息塊,可以看到關(guān)于“職業(yè)”注冊了四個域值“學(xué)生”、“程序員”、“教師”及“其它”。關(guān)于基于這些域值的類別,可以預(yù)期重新分類為三種類型“有收入”、“無收入”、“未知”。在該例中,在這種情況下,生成一個新的類別“收入現(xiàn)狀”以生成基于性別/收入現(xiàn)狀的總計交叉列表。
示于圖21的關(guān)于“職業(yè)”的信息塊包括一個值控制表,其中尤其根據(jù)“收入現(xiàn)狀”將類別號應(yīng)用于每個域值號。在該例中,學(xué)生被分配類別號“1”(無收入),而“程序員”和“教師”被分配類別號“0”(有收入),“其它”被分配類別號“2”(未知)。
作為通常的規(guī)則,本發(fā)明實施例8中的交叉列表具有與實施例7的交叉列表大致相同的處理順序,但是其不同之處在于,實施例8使用指定兩維數(shù)組元素的坐標來存儲列表數(shù)據(jù),關(guān)于性別的第一信息塊的域值號和關(guān)于職業(yè)的第二信息塊的域值號。
由于任意的域值號或類別號可以作為兩維數(shù)組中的元素坐標,在本發(fā)明的實施例8中,關(guān)于第一和第二信息塊,順序抽取在每個值控制表指針數(shù)組中存儲的各域值號,并且根據(jù)從值控制表的指針數(shù)組中抽取的域值號本身或存儲在值控制表中的對應(yīng)于域值號的類別號來識別兩維數(shù)組中的元素P的坐標。
在上述例子中,使用關(guān)于“性別”的信息塊作為第一信息塊,并且關(guān)于“職業(yè)”的信息塊作為第二信息塊(見圖20步驟190)。在下面的處理步驟(步驟191)中,由于關(guān)于“性別”的信息塊包括兩個域值號,并且關(guān)于“職業(yè)”的信息塊包括三個類別號,因而生成初始化為2×3(2行×3列)的兩維數(shù)組。
在隨后的處理步驟中,也抽取第一塊的域值號q1和第二塊的類別號q2,從而使用它們識別單獨的元素P(q1,q2)并然后增量元素P的值(見步驟194和196)。
盡管根據(jù)實施例7和8的上述交叉列表尤其是查找總計形式的列表,但是請注意本發(fā)明也可以擴展為交叉列表,其中根據(jù)多個域計算平均年齡(例如根據(jù)性別/職業(yè))。在實施例9中,執(zhí)行上述類型中的交叉列表。
為了執(zhí)行通過每次將兩維數(shù)組的元素增量1來計算總計這種類型的列表方法,如在上述本發(fā)明的實施例7中所述,擴展到交叉列表類型,除了需要對總數(shù)進行總計,例如計算平均值外,需要采用圖22所示的操作流程圖中的一些變量。
具體地說,根據(jù)本發(fā)明的實施例9,使用2個兩維數(shù)組來列表,關(guān)于第一兩維數(shù)組,按照與實施例7相同的方式總計用性別/職業(yè)統(tǒng)計的總計,關(guān)于第二個兩維數(shù)組,計算用性別/用職業(yè)統(tǒng)計的總年齡。
下面是更詳細的解釋。
首先將性別、職業(yè)和年齡這三個域的第一、第二和第三信息塊裝入存儲設(shè)備(步驟200)。
分別對應(yīng)于性別的域值號的總數(shù)“2”和職業(yè)的域值號的總數(shù)“4”,生成用于存儲列表數(shù)據(jù)的初始化的2×4(2行×4列)兩維數(shù)組(步驟202)。
從第一和第二信息塊的值控制表指針數(shù)組的起始處開始,順序抽取域值號q1,q2和q3以標識兩維數(shù)組中一個元素的坐標(q1,q2)(步驟204),并然后將所標識出的第一個兩維數(shù)組的元素P1(q1,q2)的值每次增量1(步驟206)。
進而,關(guān)于“年齡”信息塊,獲得對應(yīng)于域值號為q3(即年齡)的域值(步驟208),并且將所獲得的年齡增加到標識出的第二個兩維數(shù)組的元素P2(q1,q2)中(步驟210)。
該處理之后,檢查是否所有的目標記錄都已處理完(步驟212),如果沒有,返回到步驟204,如果是,則對于兩維數(shù)組P1和兩維數(shù)組P2的不同元素執(zhí)行操作P2(q1,q2)/P1(q1,q2)(步驟206),這樣獲得用性別/職業(yè)統(tǒng)計的平均年齡,并且生成平均值的交叉列表表。
圖23A是在本發(fā)明實施例7所獲得的交叉列表表的概念解釋圖。這樣,在上述實施例7中,列出性別/職業(yè)的所有組合的總計。但是,如圖23B所示,在用性別/職業(yè)類別中,可能存在希望僅了解性別為女性且職業(yè)為學(xué)生的那些人的總計。通過本發(fā)明,通過查找多個域即“女”AND“學(xué)生”的AND找到結(jié)果集的大小,就獲得這種情況下的總計。
相似的,在上述的本發(fā)明實施例9中,為性別/職業(yè)的所有組合找到了平均年齡的交叉列表表,但是也可以尤其獲得那些性別為女且職業(yè)為學(xué)生的人的平均年齡。在這種情況下,從由對多個域“女”AND“學(xué)生”的AND執(zhí)行查找,從結(jié)果集的大小得到總計,并且通過為包括在結(jié)果集中的記錄將屬于由標識信息所指定的記錄的年齡相加得到年齡總和,并且通過除法計算(年齡總和/總計;就獲得關(guān)于平均年齡交叉列表表中某特定網(wǎng)格中的希望值(例如平均年齡)。
下面,將解釋本發(fā)明的實施例10。圖24是示出多答案類別域的圖,圖25是根據(jù)本發(fā)明實施例10的與多答案類型域兼容的類型的信息塊的解釋圖?!岸啻鸢浮鄙婕叭缦碌那闆r,例如當獲取問題“現(xiàn)在表中用什么類型的書寫方法?”的答案時,從同一個人獲取多個答案例如“鉛筆,橡皮”或“紙,鉛筆”。更具體的,在多答案情況下,可能為單獨的記錄的單獨的域指定多個域值。圖24示出從一百萬個人獲得的關(guān)于上述問題的答復(fù)的列表。
為了處理這種數(shù)據(jù),通過本發(fā)明的實施例10,如圖25所示,信息塊的值控制表的指針數(shù)組與域值號數(shù)組本身不同之處如上所述,但是為數(shù)組的指針中的每個域值號分配一位。因而可能通過將位設(shè)置/不設(shè)置(即二進制數(shù))指示一個記錄是否指定了那個域值號。從而可能指定在一個單獨記錄的單獨域中包括的多個域值。例如,在圖25,指針數(shù)組中的指針(位指針)是4位大小,并且當最大位為有效(即“1”),這意味著包括“紙”答案,當?shù)诙粸橛行r,表示包括“尺子”響應(yīng),并且當?shù)谌粸橛行r,意味著包括“橡皮”響應(yīng)。進而當最低位為有效時,意味著包括“鉛筆”響應(yīng)。
對應(yīng)于記錄號“0”的指針具有值“3”,可以認為等于“21+2°”,因而可以理解為對應(yīng)于該記錄號包括“鉛筆”和“橡皮”答案。另外,對應(yīng)于記錄號“1”和記錄號“2”的指針分別具有值“4”和“10”,并且可被認為是“22”和“23+21”。因而,可以了解對應(yīng)于這些記錄號的響應(yīng)分別包括“尺子”、“橡皮”和“紙”。
通過該實施例,給定指針值中每一位的意義從而可以指定多個域值號。因而即使在記錄具有多個域值時,也可用指針值來表達。
注意本發(fā)明的優(yōu)點在于,通過簡單地修改信息塊一個部分的組成可以容易地適用于多答案情況。實際上,這樣修改的信息塊可以用于替換在本發(fā)明上述不同的實施例中采用的信息塊。
接著,將解釋本發(fā)明實施例11。圖26是示出根據(jù)本發(fā)明實施例11在處理列表處理期間發(fā)生的空白、錯誤值和其它特定值的方法。如圖所示,在實施例11,通過將空白作為一個類別,執(zhí)行交叉列表。當處理實際數(shù)據(jù)時,可能有如下情況,即發(fā)生空白或log(-1)或其它數(shù)學(xué)運算錯誤。根據(jù)本發(fā)明,即使存在這種特殊的值(空白、錯誤等),其優(yōu)點在于它們作為域值登記在值控制表中,并且登記的特殊值可以作為類別使用以進行查找或列表。
接著,將解釋本發(fā)明實施例12?,F(xiàn)在將根據(jù)示于圖27的本發(fā)明實施例12對多個域進行查找的方法操作的流程圖描述延遲評價。在該實施例中,與本發(fā)明實施例2的情況一樣,考慮獲得滿足第一查找條件“年齡”為“16”或“19”及第二查找條件“職業(yè)”為“學(xué)生”的記錄集的情況。
在本發(fā)明的上述實施例2中,事先為所有記錄設(shè)置所有記錄的類別號(圖12的步驟124),但是在圖12的情況下,僅對基于對第一查找條件進行查找所得的結(jié)果集而實際訪問的對應(yīng)于域值號的類別號執(zhí)行類別號設(shè)置。
如前所述,從作為關(guān)于第一個域即“年齡”的信息塊的第一特定信息塊,根據(jù)本發(fā)明實施例1獲得“年齡”為“16”或“19”的記錄結(jié)果集(步驟220)。
接著,選擇關(guān)于示于圖8的作為第二個域的關(guān)于“職業(yè)”的信息塊的第二特定信息塊(步驟222),并且將第二特定信息塊的值控制表中的所有類別號的值初始化為例如“-1”(步驟224)。
接著,從關(guān)于第一查找條件的結(jié)果集,順序抽取代表記錄指針的記錄號(步驟226)。在該例中,如圖14所示,例如抽取記錄號“999999”。
接著,關(guān)于第二特定信息塊,從值控制表的指針數(shù)組中抽取對應(yīng)于在上述第一查找條件下獲得的記錄號的域值號(步驟228)。在該例子中,如圖14所示,抽取例如對應(yīng)于記錄號為“999999”的域值號“0”。
接著,檢查對應(yīng)于關(guān)于第二特定信息所抽取的域值號的類別號的值是否是“-1”(步驟230)。
在類別號為“-1”時,意味著還沒有為那個域值號設(shè)置類別號,從而要判定對應(yīng)于該域值號的域值是否與上述第二查找條件匹配(步驟232)。如果匹配,將類別號設(shè)置為“1”(步驟234),如果不匹配,將類別號設(shè)置為“0”(步驟236)。
在類別號不是“-1”時,判定上述抽出的對應(yīng)于域值號的類別號的值是否被設(shè)置為“1”(步驟238)。如果類別號的值被設(shè)置為“1”,對應(yīng)于存儲了指示類別號被設(shè)置為“1”的類別號的指針的值控制表指針數(shù)組中的地址,向最終結(jié)果集增加一個記錄指針,例如記錄號(步驟240)。在該例中,如圖14所示,例如記錄號“999999”被增加到最終結(jié)果集。如果類別號為“0”,則不更新最終結(jié)果集。
在如下的情況下,在上述實施例12中所示的延遲評價是有效的。例如,考慮存儲在具有一百萬個人的用戶數(shù)據(jù)庫,希望進行電話調(diào)查,從而要抽出100人的樣本。例如當要將人縮小范圍到為滿足規(guī)定條件(性別,年齡,職業(yè)等)的人群,可以抽出10,000個人,并然后確保隨機地,根據(jù)電話號碼最后的號(例如“12”)執(zhí)行查找。
在該例中,如實施例12,首先“類別號數(shù)組”的元素被填充為“-1”以僅評價上述10,000個人的集合。即對于大小為10,000個人的結(jié)果集,訪問類別號數(shù)組的元素,并且如果元素是“-1”并且僅在此時訪問電話號碼,并且訪問的結(jié)果集被作為“類別號數(shù)組”元素。因而,可能將檢查數(shù)保持為10,000。這樣通過實施例12,與通常的AND查找相比,可以大大減少處理步驟數(shù)。
另外,通過使用根據(jù)本發(fā)明的信息塊,具有“國家號+地區(qū)號+中心辦事處號+序號”這樣的電話號碼結(jié)構(gòu)的數(shù)據(jù)可以被分離和登記到多個信息塊,其優(yōu)點是可以容易執(zhí)行關(guān)于國家號,地區(qū)號或其它部分數(shù)據(jù)的查找和列表。
另外,通過使用上面所述的根據(jù)本發(fā)明實施例的類別號,可能為年齡生成新的類別,例如,將年齡“10-19”分類為“十幾歲”,將年齡“20-29”分類為“二十幾歲”等,與上面所述的查找和列表相似的方法可以應(yīng)用到這樣生成的新類別上。
如上所述,通過示于圖28的通常的計算機系統(tǒng)來實現(xiàn)根據(jù)本發(fā)明實施例的查找和列表裝置,例如包括CPU100,ROM110,RAM120,硬盤130,顯示器140或其它輸出設(shè)備及鍵盤/鼠標150或通過總線160相互連接的其它輸入設(shè)備150的個人計算機。因而,如上所述,構(gòu)成用于實現(xiàn)上述實施例的信息塊的程序(信息塊生成程序)可以記錄在CD-ROM,ROM110或硬盤存儲設(shè)備130上,或通過網(wǎng)絡(luò)從外部提供(未示出)。
參考圖29所示的流程圖,說明為示于圖2B的表格式數(shù)據(jù)構(gòu)成圖5所示的格式的信息塊的方法的例子。
步驟300數(shù)據(jù)準備首先,準備圖2B所示格式的數(shù)據(jù)。接著用域來分離。在圖2B中,可以分離為域“性別”,“年齡”,和“職業(yè)”。
步驟311為“性別”域生成信息塊例如,生成一個信息塊,并且將其作為“性別”域的信息塊。
步驟312生成值控制表接著,初始化域控制表,并從開始到結(jié)束掃描“性別”域數(shù)據(jù),而同時計算每個域的例程數(shù),并存儲該數(shù)據(jù)。在該例中,直到此步驟,域值“女”和“男”被設(shè)置到上述值控制表的域值數(shù)組11中,而值“367436”和“632564”分別被設(shè)置到對應(yīng)于上述域值的上述值控制表的總計數(shù)組14中。
接著根據(jù)規(guī)定的基礎(chǔ)對域值數(shù)組11中的域值(“女”和“男”)排序,在此排序時,隨著對域值數(shù)組11的排序必須記錄總計數(shù)組14。
進而設(shè)置值控制表的起始位置數(shù)組13中的起始位置。該起始位置由對應(yīng)于在值控制表中從總計數(shù)組14的第一個總計開始的起始位置的諸總計的總計來計算。一般的第一個起始位置的值為“0”。
接著,將起始位置數(shù)組13的內(nèi)容復(fù)制到類別號數(shù)組12。在生成記錄指針數(shù)組時類別號數(shù)組12被作為I作區(qū)使用。
步驟313生成值控制表的指針數(shù)組接著,為值控制表20指針數(shù)組分配存儲區(qū)域(存儲區(qū)域的大小是在上述總計數(shù)組14中的總共總計數(shù))。
接著一次從“性別”域數(shù)據(jù)從開始到最后抽取一個域值,審查每個域值看它是否與在值控制表的每個入口處的域值相匹配,如果與第n個域值匹配,則將“n-1”作為在上述值控制表指針數(shù)組中的值控制表指針。
步驟314生成記錄指針數(shù)組接著為記錄指針數(shù)組30分配存儲區(qū)域。在該例中,存儲區(qū)域的大小是在上述總計數(shù)組14中的總計總數(shù)。在值控制表指針數(shù)組20中,從開始行到結(jié)束行,一次抽取一個值控制表指針。抽取值控制表指針數(shù)組20的第J個值,并假設(shè)其值為“K”,然后抽取對應(yīng)于值控制表的第K+1個記錄的類別號,并假設(shè)其值為“L”,然后在記錄指針數(shù)組30的第L+1個元素存儲“J-1”,并將對應(yīng)于值控制表的第K+1個記錄的類別號增量1。
上述操作完成了關(guān)于“性別”域的信息塊的生成(步驟310)??梢砸韵嗤姆绞缴伞澳挲g”域和“職業(yè)”域的信息塊,并從而獲得整個表格式數(shù)據(jù)的信息塊。
圖30至35是生成示于圖1的表格式數(shù)據(jù)中關(guān)于“職業(yè)”信息塊的過程的解釋圖。
圖30是示出事先定義了類別并且屬性值類型也已知的情況下輸入新數(shù)據(jù)的圖。此處根據(jù)已知的類別定義生成值控制表。由于不知開始位置和總計,它們初始化為“0”。另外,為值控制表的指針數(shù)組和記錄指針數(shù)組分配區(qū)域并且它們也相同地被初始化。
圖31是其中完成值控制表的指針數(shù)組及數(shù)組中的總計值的遍歷。從起始處開始一次只為待插入的數(shù)據(jù)取出一個項,并檢查數(shù)據(jù)值與值控制表中哪個項(即哪個域值號)匹配,然后其被存儲到值控制表的指針數(shù)組中并每次用“+1”來更新值控制表中的相應(yīng)總計。圖31的例子示出處理完待插入的數(shù)據(jù)的第二項的狀態(tài)。
圖32是用于完成值控制表的第二次遍歷。計算總計時使用關(guān)于起始位置的參照來找到起始位置。進而,起始位置的值被復(fù)制到類別號。在圖中,完成類別值的設(shè)置。
圖33-35示出數(shù)據(jù)插入的第三次遍歷。而該遍歷中,每次從值控制表的指針數(shù)組的起始處取一個值(指針),并且在值控制表指針數(shù)組中的偏移,即記錄號被存儲在被那個值所參照的由值控制表中的類別號所指定的記錄指針數(shù)組中的位置中。圖33,34和35分別示出關(guān)于“職業(yè)”信息塊的值控制表指針數(shù)組的第一、第二和最后一組數(shù)據(jù)的處理。
注意在上述解釋中,使用類別號域作為工作區(qū),但是任何作為其元素個數(shù)等于或大于值控制表中的行數(shù),即域值號的總數(shù)的整數(shù)數(shù)組的數(shù)組,也可作為工作區(qū)。
另一方面,對于未事先定義類別的新數(shù)據(jù)的插入是通過如下方式實現(xiàn)的掃描要插入的數(shù)據(jù),獲得要登記在值控制表中的值一覽表,然后在定義了類別時執(zhí)行上述插入新數(shù)據(jù)的處理。
接著,考慮完成如圖35所示的插入新數(shù)據(jù)后,將另外的“學(xué)生”記錄加到關(guān)于“職業(yè)”的信息塊中的情況。圖36是關(guān)于該增加記錄的解釋圖。
在這種情況下,標示“學(xué)生”的域值號0被增加到值控制表指針數(shù)組的末尾,然后值控制表中的學(xué)生總計被增加“1”。接著必須分配空間來存儲記錄號,即記錄指針數(shù)組中的值控制表指針值(=1000000)。這時,抽取出對應(yīng)于“學(xué)生”的記錄指針數(shù)組末尾處的值(此例中,為999999),并且存儲作為擴展地址的“1000000”。但是其標記可以反轉(zhuǎn),例如為了標識它是一個擴展地址,存儲“-1000000”,接著作為擴展被事先抽取出的結(jié)束值“999999”被存儲,最后存儲對應(yīng)于新增加的記錄的指針值“1000000”。
通過采用上述增加數(shù)據(jù)的方法,避免了在增加數(shù)據(jù)時移動大量數(shù)據(jù)的需要。另外,為了防止在增加大量記錄時由于指針數(shù)的增加導(dǎo)致的訪問效率降低的問題,在適當?shù)亩〞r重復(fù)插入新數(shù)據(jù)時第三次遍歷處理。
圖37示出根據(jù)本發(fā)明另一個實施例的信息塊結(jié)構(gòu)。當采用該圖中所示的結(jié)果時,避免了增加指針數(shù),并且使改變數(shù)據(jù)容易執(zhí)行。在圖37起始地址數(shù)組包括標示記錄指針數(shù)組所在的區(qū)的起始位置的地址。例如,“0”作為域值“學(xué)生”的起始位置被存儲。另一方面,對于域值“程序員”,分配值“n(其中n>455214)”作為起始位置。
接著,描述本發(fā)明實施例13。在該實施例中,使用上述信息塊執(zhí)行記錄排序。圖38示出對“職業(yè)”域進行記錄排序的初始狀態(tài)。該圖中所示的原始數(shù)據(jù)示出要被排序的記錄號數(shù)組。例如,可以使用為除了“職業(yè)”域的其它域所獲得的記錄指針數(shù)組或查找結(jié)果集。在該例中,為了簡化解釋,原始數(shù)據(jù)的記錄號以順序“0,1,2,……,9”進行排列,而必須注意在排序前記錄號的順序通常是隨機的。對應(yīng)于每個記錄號的“職業(yè)”域中的域值以順序“教師,程序員,學(xué)生,……,其它”進行排列。
在該圖的右側(cè),示出包括在關(guān)于“職業(yè)”的信息塊中的各種數(shù)組的初始狀態(tài)。通過參考圖29-35所解釋的信息塊結(jié)構(gòu)方法生成關(guān)于“職業(yè)”的信息塊。在對“職業(yè)”域執(zhí)行記錄排序時,事先使用值控制表和關(guān)于“職業(yè)”的信息塊的值控制表指針數(shù)組。作為起始位置,使用在構(gòu)成信息塊時的起始位置集。起始位置被復(fù)制到相應(yīng)的結(jié)束位置。包括結(jié)束位置的區(qū)可以,例如是,分配給總計的區(qū)(總計數(shù)組)??梢岳缡孪纫杂涗浱栱樞驕蕚渲悼刂票碇羔様?shù)組。在該例中,原始數(shù)據(jù)的記錄號數(shù)組是降序排列,從而原始數(shù)據(jù)的記錄號數(shù)組與值控制表指針數(shù)組呈現(xiàn)出簡單關(guān)系。另外,值控制表指針數(shù)組是用于存儲排序的結(jié)果集的數(shù)組,從而分配與待排序的數(shù)據(jù)相同大小的區(qū)域。上述結(jié)束位置被作為用于存儲記錄指針數(shù)組中的排序結(jié)果的數(shù)組。
圖39是示出根據(jù)本發(fā)明實施例13進行排序的第一步驟的解釋圖。在第一步中,處理原始數(shù)據(jù)中的起始記錄(在該例中,具有記錄號=O的一個)。記錄號為“0”的記錄的“職業(yè)”域的域值是“教師”。這時,在值控制表指針數(shù)組中對應(yīng)于記錄號“0”存儲指定域值“教師”的域值號“2”。接著抽取對應(yīng)于域值號“2”的結(jié)束位置的值“5”,并且該值“5”被作為一個地址來在存儲了排序的結(jié)果集的記錄指針數(shù)組的第5個位置設(shè)置該記錄號“0”。接著,對應(yīng)于該域值號“2”的結(jié)束位置的值被增量“+1”從而“5”被增加到“6”。
圖40是示出根據(jù)本發(fā)明實施例13的第二步驟的解釋圖。在第二步驟中,處理原始數(shù)據(jù)中的第二個記錄(在該例中,記錄號=1的那個)。記錄號為“1”的記錄的“職業(yè)”域的域值為“程序員”,這時,對應(yīng)于記錄號“1”,在值控制表的指針數(shù)組中存儲指定域值“程序員”的域值號“1”。然后,抽取對應(yīng)于域值號“1”的結(jié)束位置的值“3”,并且該值“3”作為一個地址來在存儲了排序的結(jié)果集的記錄指針數(shù)組的第3個位置設(shè)置該記錄號“1”。接著對應(yīng)于該域值號“1”的結(jié)束位置的值被增量“+1”,從而“3”被增加到“4”。
然后對于原始數(shù)據(jù)中的剩余的記錄號“2,3,4,5,6,7,8,9”重復(fù)與上述第一和第二步驟相同的操作。圖41示出這樣獲得的排序的最終狀態(tài)。如在該圖的排序結(jié)果集中所示,根據(jù)本發(fā)明實施例13的排序產(chǎn)生以“職業(yè)”域值號的順序排序的記錄,即按記錄號順序“2,4,6,1,7,0,3,5,8,9”進行記錄。
在上述實施例13的解釋中,考察了原始數(shù)據(jù)包括以原始的表格式數(shù)據(jù)的所有記錄的情況,即整個集。但是,根據(jù)本發(fā)明的排序在僅對部分記錄的情況,即部分集的情況也是有效的。下面是參照圖42和43對部分集進行排序的解釋。
圖42顯示出上述對部分集進行排序的狀態(tài)的圖。在該例中,給出的原始數(shù)據(jù)包括記錄號為“0”的記錄,其中“職業(yè)”域的域值是“教師”,并且記錄號為“1”的記錄中域值為“程序員”。當對這兩條記錄執(zhí)行排序時,獲得在該圖中由排序結(jié)果集所示的排序結(jié)果。這時,結(jié)果集包括在記錄指針數(shù)組中。然后,分配與整個集大小相同的區(qū)域來存儲來自部分集的排序結(jié)果。
這樣,在對部分集進行排序時,最好是結(jié)果集被壓縮為與部分集具相同大小。圖43是對部分集進行排序的后處理。該后處理,即對結(jié)果集的壓縮,包括找出值控制表中每個域值起始位置與結(jié)束位置之間的差,并抽出總計,對應(yīng)于所關(guān)注的域值在排序結(jié)果中存儲位置,然后根據(jù)抽取的計數(shù)和存儲位置對排序結(jié)果進行排序。
接著使用圖50中所示的流程圖對上述對整個集成部分集進行排序進行總的解釋。這里,對于整個集和部分集兩種情況,考慮原始數(shù)據(jù)具有以從起始處開始順序附加的存儲位置號。例如,在圖38和41,存儲位置號與記錄號相匹配。但是當原始數(shù)據(jù)的排列順序不是根據(jù)記錄號時,存儲地址號與記錄號不同。注意,不用說關(guān)于上述實施的詳細描述的排序可以用執(zhí)行存儲在規(guī)定區(qū)域中的程序的CPU100實現(xiàn)。
在排序時,首先,對存儲地址號進行初始化(步驟5001)。接看,對于某個存儲地址號訪問值控制表指針數(shù)組中對應(yīng)的指針(步驟5002),然后識別由指針所指定的域值號所位于的結(jié)束位置的值(步驟5003)。
然后,在記錄指針數(shù)組中由上述結(jié)束位置所標識的位置存儲對應(yīng)的記錄號(步驟5004)。然后,在步驟5003所標識別結(jié)束位置值被增量(步驟5005)。對于所有的原始數(shù)據(jù)執(zhí)行上述步驟5002至5005的處理(見步驟5006和5007),然后,可能獲得包括規(guī)定的記錄號的記錄指針數(shù)組??梢悦靼讏D39的例子對應(yīng)于存儲位置號為“0”的步驟5002至步驟5005。并且可以明白,圖40對應(yīng)于存儲位置號為“1”的步驟5002至步驟5005。
另外,在排序部分集時,在執(zhí)行完步驟5001至5007之后,通過排序后處理實現(xiàn)對結(jié)果集的壓縮。(見步驟5008)。
根據(jù)本發(fā)明實施例13的排序稱為“升序”排序,即排序結(jié)果按照被排序的域值的域值號上升的順序進行排列。但是,排序結(jié)果也可以布局成“降序”排列,其中按被排序域值的域值號的降序順序進行排列。通過修改在“升序”排序中的起始位置實現(xiàn)“降序”排序。在該例子中,“升序”的起始位置是學(xué)生 0程序員3教師 5其他 6相反,“降序”排序的起始位置是其他 0教師 10-6=4程序員10-5=5學(xué)生 10-3=7根據(jù)本發(fā)明實施例13的排序具有如下優(yōu)點首先,獲得高速查找。例如,在使用Pentium Pro200MHz/視窗95的運行環(huán)境下,根據(jù)本發(fā)明的新穎查找可達到查找速度為查找一百萬為145ms。相反在常規(guī)的快速排序中,查找一百萬個整數(shù)為1530ms。
第二,不管作為值存儲的域值類型,得到恒定性能。該排序?qū)τ诩词巩斢蛑档臄?shù)據(jù)類型為文本或浮點時與整數(shù)一樣具有相同的性能。相反,在常規(guī)的快速排序或其它算法中,當被處理的數(shù)據(jù)類型是整數(shù)時速度最高,當類型是可變長文本時最低。
第三,即使當數(shù)據(jù)大小增加時,排序速度也不下降。使用該排序,排序速度用O(n)表示,其中n是數(shù)據(jù)大小。另一方面,對于快速排序或其它常規(guī)的高速排序方法,排序速度是O(n·log(n))。
第四,對于多個域的排序可以分為對每個域的排序。例如,在參照圖38-41對本發(fā)明實施例13的描述中,在原始數(shù)據(jù)中,對應(yīng)于域值為“學(xué)生”的記錄以記錄號“2”,記錄號“4”,及記錄號“6”的順序排列。并且在最終排序結(jié)果集中預(yù)先保存該記錄號順序(即,記錄號“2”,記錄號“4”及記錄號“6”)。這意味著,在排序結(jié)果中的記錄號反應(yīng)在滿足排序目的的范圍內(nèi)進行排序前的記錄順序。通過采用本排序的該特點,通過對各域執(zhí)行順序排序可以對多個域進行排序。相反,用常規(guī)的快速排序,在排序前的狀態(tài)不會反映排序結(jié)果順序。
具體例子在本發(fā)明的上述各實施例中,值控制表包括域值的值一覽表。例如,在圖7所示的例子中,域值列包括包括值“16”,“17”,“18”的一覽表。另外,值控制表包括每個域值號的類別號集。下面的具體例子解釋了如何使用這種值一覽表和某一域值的類別號的組合來通過幾種比較判斷立即確定某個域的多個值是否與查找條件相匹配。
例如,考慮給出用值的大小排序的作為值一覽表的下述一覽表0.1,0.2,…100.0,100.1,100.2,…,1000.0并且給出“值大于100”作為查找條件。
首先,從值一覽表中找出不滿足條件(在該例中為100)的最小的值。然后在最小值,即“100.”之前為值一覽表中所有的值設(shè)置“0”作為類別號。另外,為“100.”之后的值一覽表中的所有值設(shè)置“1”作為類別號。然后,如果可以找到最小值,則不執(zhí)行任何比較操作設(shè)置類別號,從而可以獲得具有滿足查找條件的值的域值或域值號。
通過使用現(xiàn)有技術(shù)中的二等分方法或其它已知方法,可以通過最少的比較操作獲得最小值。例如,如果在值一覽表中的值有N個變量,則找到上述最小值所需的比較操作次數(shù)大約是log2(N)。
相反,在不對值的大小進行排序的值一覽表的情況下,如果值一覽表中的值有相同的N個變量,則需要N次比較操作來找到滿足查找條件的值。
由于按照這種方式對值一覽表進行排序并且將類別號設(shè)置到值控制表中,因而可以加速判斷是否滿足規(guī)定的查找條件。
另外,本領(lǐng)域技術(shù)人員當然可以理解,上述值一覽表和查找條件內(nèi)容不是用于解釋該例子的唯一具體例子,根據(jù)本發(fā)明,可以加速對不同的值一覽表和查找條件的不同組合進行判斷是否符合規(guī)定的查找條件的速度。
接著,將描述對一百萬條數(shù)據(jù)記錄進行查找和列表的測試。在測試中所使用的平臺是通常的配備Pentium Pro200MHz處理器和128MB存儲器的個人計算機。圖44是示出在測試中使用的數(shù)據(jù)的表。包括以表格式數(shù)據(jù)形式的從“000000”到“999999”范圍一百萬個數(shù)字的數(shù)據(jù)被分成三個域10000的單位、100的單位、1的單位。對于每個域從“00”到99“的域值出現(xiàn)10,000次。
圖45是根據(jù)結(jié)果集類型所檢測的查找/列表一百萬條記錄所需的時間的測試結(jié)果一覽表。結(jié)果集類型是一個兩類型的結(jié)果集,即上述位標記類型和指針數(shù)組類型,測試結(jié)果中的時間以毫秒(ms;1/1000秒)為單位。
上述測試中執(zhí)行的查找是對多個域的AND查找,通過將三個域“×10,000“、”×100“及”×1“用AND條件進行聯(lián)接來實現(xiàn)。查找是按照這個順序?qū)τ颉薄?0,000“、”×100“及”×1“的級聯(lián)。查找所得到的中間和最終結(jié)果集采用上述的位標記或指針數(shù)組的形式。測試時間是五次測試的平均時間。
另外,在這些測試中的列表包括統(tǒng)計“×100“和”×1“域中的各種值(00到99)在從查找測試中所得到的結(jié)果集中出現(xiàn)的次數(shù)。該交叉列表的表大小是(100×100=)10,000個網(wǎng)絡(luò)。時間用毫秒為單位,五次測試的平均值作為測試時間。
對表格式數(shù)據(jù)進行查找和列表的系統(tǒng)構(gòu)成決不限于上述實施例中所描述的例子,但是如果需要的話,可以用存儲在盤設(shè)備等上的軟件(程序)實現(xiàn)查找和列表系統(tǒng)的各種組成部件。查找和列表系統(tǒng)可以安裝在計算機上以對表格式數(shù)據(jù)執(zhí)行查找和列表。另外這樣實施的程序可以存儲在軟盤或CD-ROM或其它便攜式的存儲介質(zhì)上,并且可以以使用這種系統(tǒng)的通用方式使用之。
本發(fā)明決不限于上述實施例,在本發(fā)明權(quán)利要求書的范圍內(nèi)可以有各種修改,但不用說它們也包括在本發(fā)明的范圍內(nèi)。
另外,在上述實施例7和實施例8中,生成一個兩維數(shù)組來對兩個域執(zhí)行列表,但這不是用于限制,可以生成三維或更高維的數(shù)組來執(zhí)行對三個或更多域的列表,不用說可以用上述列表實現(xiàn)這些??紤]到對三個域進行列表,抽取三個信息塊中每一個中的域值號q1、q2和q3,并且用來識別三維數(shù)組中的一個元素P(q1,q2,q3)。
進而,關(guān)于上述實施例9,不用說可以按照實施例7和實施例8的形式對三個或更多的域執(zhí)行列表。
另外,盡管在上述實施例中通過將規(guī)定的程序讀入通常的計算機系統(tǒng)并然后執(zhí)行程序來執(zhí)行查找、列表和/或排序,但本發(fā)明不限于此,不用說可以構(gòu)成為專門用于數(shù)據(jù)處理的廣義的計算機與個人計算機或其它通常的計算機系統(tǒng)相連,該廣義計算機可以執(zhí)行上述處理。因此,在該說明書中,詞語裝置(means)不意味著物理裝置,而是包括用軟件實施各種裝置的功能,并且用硬件執(zhí)行一些或所有功能。進而,一個單獨裝置的功能可以用兩個或其它物理裝置來實現(xiàn),或兩個或更多裝置的功能可以用一個物理裝置來實現(xiàn)。根據(jù)上述描述,通過本發(fā)明,可以處理以表格式表達的大量數(shù)據(jù),而不使用需要長的訪問時間的常規(guī)數(shù)據(jù)表,從而可以大大提高列表和查找速度。
本發(fā)明尤其適于處理大量數(shù)據(jù)的系統(tǒng),例如數(shù)據(jù)庫或數(shù)據(jù)倉庫中。更具體的,它適用于大規(guī)模科學(xué)和技術(shù)計算,工廠和電廠等的控制系統(tǒng),配送計劃和資源分配等方法,及訂單管理和行政工作的管理如保障工作的處理。
權(quán)利要求
1.一種用于從表格式數(shù)據(jù)中抽取對應(yīng)于特定域和特定記錄的域值的方法,其中該表格式數(shù)據(jù)用包括關(guān)于信息的特定域的域值的記錄數(shù)組來表示,所述方法的特征在于包括步驟在存儲設(shè)備中保持包括按照與屬于特定域的域值對應(yīng)的域值號的順序存儲的域值的值控制表,及包括按照所述記錄的順序指定所述域值號的信息的域值號指定信息數(shù)組,從所述域值號指定信息數(shù)組獲取對應(yīng)于所述指定記錄的域值號,及從存儲在所述值控制表中的域值獲取對應(yīng)于上述獲取的域值號的域值。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于為了對對應(yīng)于所述域值號的域值進行分類,在所述值控制表中對應(yīng)于所述域值號存儲類別號,及在獲取對應(yīng)于所述域值號的域值時訪問所述類別號。
3.一種從表格式數(shù)據(jù)中查找與特定查找條件匹配的域值的方法,其中該表格式數(shù)據(jù)用包括與查找條件相關(guān)的域的域值的記錄數(shù)組表示,所述方法的特征在于包括步驟在存儲設(shè)備中為每個個體域保持個體域信息,從而包括按照與和查找條件相關(guān)的域的域值對應(yīng)的域值號的順序存儲的域值的值控制表,包括按照所述記錄的順序指定所述域值號的信息的域值號指定信息數(shù)組,及記錄識別信息數(shù)組,它在固有的區(qū)域中為每個所述域值號存儲與相同的域值號相關(guān)的一個或多個記錄識別信息,并且所述值控制表包括為所述域值號的每一個指示與相同的域值號相關(guān)的一個或多個記錄識別信息在所述記錄識別信息數(shù)組中的區(qū)域的記錄識別信息指定信息,使用在所述值控制表中的與所述查找條件匹配的域值中的與關(guān)于域值的域值號對應(yīng)的所述記錄識別信息指定信息,從所述記錄識別信息數(shù)組中獲取與所述查找條件匹配的記錄識別信息。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于包括步驟基于與查找條件匹配的記錄識別信息,在存儲設(shè)備中保持與所述查找條件匹配的記錄結(jié)果集,關(guān)于所述其它的涉及其它查找條件的個體域信息,從關(guān)于所述其它個體域信息的所述域值號指定信息數(shù)組中獲取對應(yīng)于與所述結(jié)果集中的所述查找條件匹配的記錄識別信息的域值號,關(guān)于所述其它個體域信息,判斷與所述抽取的域值號相關(guān)的域值是否與所述其它的查找條件匹配,關(guān)于所述其它的個體域信息,如果與所述抽區(qū)的域值號相關(guān)的域值與所述其它查找條件匹配,抽取對應(yīng)于所述域值號的記錄識別信息作為與所述單獨的查找條件匹配的記錄識別信息,及如果必要,抽取關(guān)于進一步的其它查找條件的關(guān)于進一步的其它個體域信息的所述域值號,并重復(fù)判斷匹配和抽取記錄的操作。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于包括步驟在存儲設(shè)備中保持與所述查找條件匹配的記錄結(jié)果集,關(guān)于涉及其它查找條件的域,使用與所述查找條件匹配的存儲在其它值控制表中的域值中的域值,及對應(yīng)于相關(guān)域值的記錄識別信息指定信息,從記錄識別信息數(shù)組中抽取與所述其它查找條件匹配的記錄,并將與查找條件匹配的記錄存儲在指定的其它記錄集中,如果必要,關(guān)于進一步的其它查找條件,使用進一步的其它記錄識別信息指定信息,抽取與進一步的其它查找條件匹配的記錄,并重復(fù)進一步的其它結(jié)果集的存儲,及通過從這樣獲得的結(jié)果集中除去重復(fù)的記錄獲得最終結(jié)果集。
6.根據(jù)權(quán)利要求3-5所述的方法,其特征在于所述值控制表包括,對于所述域值號的每一個,指明所述固有區(qū)域的起始位置,和指明具有相同的域值號的記錄個數(shù)的總計,及通過訪問所述起始位置和總計識別規(guī)定的記錄識別信息。
7.根據(jù)權(quán)利要求3-6所述的方法,其特征在于在所述值控制表中對應(yīng)于所述域值號存儲用于對對應(yīng)于所示域值號的域值進行分類的類別號,及使用所述類別號識別與查找條件匹配的域值。
8.一種對表格式數(shù)據(jù)進行列表的方法,其中該表格式數(shù)據(jù)用包括包含對應(yīng)于域信息的域值的多個域的記錄數(shù)組表示,所述方法的特征在于包括步驟如果n表示等于或大于1的幀數(shù),對于在列表中所使用的n個域的每一個,在存儲設(shè)備中保持包括包含域值的值控制表的個別域信息,其中這些域值按照每個對應(yīng)于屬于域的域值的域值號的順序進行存儲,另外還保持包括指定按照所述記錄的順序的所述域值號的信息的域值號指定信息數(shù)組,如果i表示范圍1≤i≤n內(nèi)的整數(shù),對于第i個個體信息域,所述域值號的總數(shù)用Ni表示,Ki表示范圍0≤Ki≤Ni-1內(nèi)的整數(shù),M表示大于或等于1的整數(shù),如果m表示范圍1≤m≤M內(nèi)的整數(shù),則將n維M數(shù)據(jù)空間中的元素Pm(k1,k2,…,ki,…,kn)初始化為具有大小N1×N2×…×Ni×…×Nn,對于所述n個單獨信息域,當j表示范圍0≤j≤記錄總數(shù)-1內(nèi)的整數(shù)時,抽取在每一個域值號指定信息數(shù)組的第j個位置所存儲的各域值號,并且當從第i個個體信息域中抽取的域值號用識別所述數(shù)據(jù)空間中的元素Pm(q1,q2,…,qi,…,qn)的qi表示時,處理元素Pm(q1,q2,…,qi,…,qn)的所述識別出的值。
9.一種對表格式數(shù)據(jù)進行列表的方法,其中該表格式數(shù)據(jù)用包括包含對應(yīng)于域信息的域值的多個域的記錄數(shù)組表示,所述方法的特征在于包括步驟如果n表示等于或大于1的整數(shù),對于在列表中所使用的n個域的每一個,在存儲設(shè)備中保持包括包含域值的值控制表的個別域信息,其中這些域值按照每個對應(yīng)于屬于域的域值的域值號的順序進行存儲,另外還保持包括指定按照所述記錄的順序的所述域值號的信息的域值號指定信息數(shù)組,如果i表示范圍1≤i≤n內(nèi)的整數(shù),對于第i個個體信息域,所述域值號的總數(shù)用Ni表示,Ki表示范圍0≤Ki≤Ni-1內(nèi)的整數(shù),M表示大于或等于1的整數(shù),如果m表示范圍1≤m≤M內(nèi)的整數(shù),則將n維M數(shù)據(jù)空間中的元素Pm(k1,k2,…,ki,…,kn)初始化為具有大小N1×N2×…×Ni×…×Nn,對于所述n個單獨信息域,當j表示范圍0≤j≤記錄總數(shù)-1內(nèi)的整數(shù)時,抽取在每一個域值號指定信息數(shù)組的第j個位置所存儲的各域值號,并且當用qi表示從第i個個體信息域中抽取的域值號或?qū)?yīng)于值控制表中所述域值號的所述第i個個體信息域所存儲的類別號時,識別所述數(shù)據(jù)空間中的元素Pm(q1,q2,…,qi,…,qn),并且處理元素Pm(q1,q2,…,qi,…,qn)的所述識別出的值。
10.根據(jù)權(quán)利要求9或權(quán)利要求10所述的方法,其特征在于M=1為真,并且處理所述識別的元素Pm的值的步驟包括將所述元素Pm的當前值加1。
11.根據(jù)權(quán)利要求9或權(quán)利要求10所述的方法,其特征在于處理所述識別的元素Pm的值的步驟包括對于M個元素Pm中的至少一個元素Pm,對于在存儲設(shè)備中所保持的獨立的個體域信息,獲取存儲在域值號指定信息數(shù)組的第j個位置上的域值號,從存儲在所述獨立的個體域信息的值控制表中的域值中,獲取對應(yīng)于所獲取的所述域值號的域值,及更新所述元素Pm的當前值及組合所獲得的所述域值的所述元素Pm的值。
12.權(quán)利要求1-11所述的方法,其特征在于所述指定域值號的信息是域值號自己。
13.權(quán)利要求1-11所述的方法,其特征在于所述指定域值號的信息是一個二進制值,其中為每個域值號分配1位,從而設(shè)定是否設(shè)定了它。
14.一種用于從表格式數(shù)據(jù)中抽取對應(yīng)于特定域和特定記錄的域值的裝置,其中該表格式數(shù)據(jù)用包括關(guān)于信息的特定域的域值的記錄數(shù)組來表示,所述裝置的特征在于包括存儲設(shè)備,保持包括按照與屬于特定域的域值對應(yīng)的域值號的順序存儲的域值的值控制表,及包括按照所述記錄的順序指定所述域值號的信息的域值號指定信息數(shù)組,域值號獲取裝置,從所述域值號指定信息數(shù)組獲取對應(yīng)于所述指定記錄的域值號,及域值獲取裝置,從存儲在所述指控表中的域值獲取對應(yīng)于上述獲取的域值號的域值。
15.權(quán)利要求11所述的裝置,其特征在于所述存儲設(shè)備保持個體域信息,它具有所述值控制表,所述域值號指定信息數(shù)組,與相同的域值號相關(guān)的一個或多個記錄識別信息,及存儲在固有區(qū)域中為所述域值號的每一個的記錄識別信息數(shù)組,并且所述值控制表包括為所述域值號的每一個指示與相同的域值號相關(guān)的一個或多個記錄識別信息在所述記錄識別信息數(shù)組中的區(qū)域的記錄識別信息指定信息,進而具有查找裝置,使用在所述值控制表中的與所述查找條件匹配的域值中的與關(guān)于域值的域值號對應(yīng)的所述記錄識別信息指定信息,從所述記錄識別信息數(shù)組中獲取與所述查找條件匹配的記錄識別信息。
16.一種其上記錄了用于對表格式數(shù)據(jù)進行查找和列表的程序的計算機可讀存儲介質(zhì),其中該表格式數(shù)據(jù)用包括關(guān)于信息的特定域的域值的記錄數(shù)組來表示,所述記錄了程序的存儲介質(zhì)的特征在于包括步驟在存儲設(shè)備中為每個個體域保持包括按照與屬于特定域的域值對應(yīng)的域值號的順序存儲的域值的值控制表,及包括按照所述記錄的順序指定所述域值號的信息的域值號指定信息數(shù)組,從保持在所述存儲設(shè)備中的所述域值號指定信息數(shù)組獲取對應(yīng)于所述指定記錄的域值號,及從存儲在所述指控表中的域值獲取對應(yīng)于上述獲取的域值號的域值。
17.一種從記錄了用于從表格式數(shù)據(jù)中查找包括與查找條件匹配的域值的記錄的程序的程序的存儲介質(zhì),其中該表格式數(shù)據(jù)用包括與查找條件相關(guān)的域值多個域的記錄數(shù)組表示,所述程序的特征在于包括步驟在存儲設(shè)備中為每個個體域保持個體域信息,從而包括按照與和查找條件相關(guān)的域的域值對應(yīng)的域值號的順序存儲的域值的值控制表,包括按照所述記錄的順序指定所述域值號的信息的域值號指定信息數(shù)組,及記錄識別信息數(shù)組,它在固有的區(qū)域中為每個所述域值號存儲與相同的域值號相關(guān)的一個或多個記錄識別信息,并且所述值控制表包括為所述域值號的每一個指示與相同的域值號相關(guān)的一個或多個記錄識別信息在所述記錄識別信息數(shù)組中的區(qū)域的記錄識別信息指定信息,使用在所述值控制表中的與所述查找條件匹配的域值中的與關(guān)于域值的域值號對應(yīng)的所述記錄識別信息指定信息,從所述記錄識別信息數(shù)組中獲取與所述查找條件匹配的記錄識別信息。
18.一種可裝入計算機存儲器的計算機程序產(chǎn)品,它執(zhí)行根據(jù)權(quán)利要求1-13的方法。
19.一種排序方法,其中在一個特定域重新排列包括包含關(guān)于信息域的域值的多個域的記錄識別信息指定記錄數(shù)組,所述方法的特征在于包括步驟對于所述記錄的每一個,將所述記錄識別信息域?qū)?yīng)于所述域的域值的域值號關(guān)聯(lián)起來,對于所述域值號的每一個,定義重新排列了所述記錄識別信息后的存儲地址,從所述數(shù)組順序抽取所述記錄識別信息,確定對應(yīng)于所述抽取的記錄識別信息的所述域值號,根據(jù)對應(yīng)于所確定的域值號的記錄識別信息指定信息在所述存儲地址存儲所述抽取出的記錄識別信息,及更新其中要存儲所述記錄識別信息的所述存儲地址,以存儲下一個記錄識別信息。
20.根據(jù)權(quán)利要求19所述的方法,進一步包括步驟在存儲設(shè)備中為每個個體域保持個體域信息,從而包括按照與和查找條件相關(guān)的域的域值對應(yīng)的域值號的順序存儲的域值的值控制表,包括按照所述記錄的順序指定所述域值號的信息的域值號指定信息數(shù)組,及記錄識別信息數(shù)組,它在固有的區(qū)域中為每個所述域值號存儲與相同的域值號相關(guān)的一個或多個記錄識別信息,并且所述值控制表包括為所述域值號的每一個指示與相同的域值號相關(guān)的一個或多個記錄識別信息在所述記錄識別信息數(shù)組中的區(qū)域的記錄識別信息指定信息,所述存儲步驟包括為根據(jù)記錄識別信息知道能夠信息在存儲地址中存儲記錄識別信息。
21.根據(jù)權(quán)利要求20所述的方法,其特征在于所述記錄識別信息指定信息包括起始位置,它指明所述存儲地址區(qū)域的起始點,及技術(shù)位置,它開始時與起始位置相同,并且其值在所述更新時被增量。
22.一種排序裝置,用于重新排列包括包含關(guān)于信息域的域值的多個域的記錄識別信息指定記錄數(shù)組,所述裝置的特征在于包括對于所述記錄的每一個,將所述記錄識別信息與對應(yīng)于所述域的域值的域值號關(guān)聯(lián)起來的裝置,對于所述域值號的每一個,定義重新排列了所述記錄識別信息后的存儲地址的定義裝置,域值號確定裝置,用于從所述數(shù)組順序抽取所述記錄識別信息并對應(yīng)于記錄識別信息確定所述域值號,根據(jù)對應(yīng)于所確定的域值號的記錄識別信息指定信息在所述存儲地址存儲所述抽取出的記錄識別信息的記錄識別信息存儲裝置,及更新其中要存儲所述記錄識別信息的所述存儲地址,以存儲下一個記錄識別信息的更新裝置。
23.根據(jù)權(quán)利要求22所述的裝置,進一步包括存儲設(shè)備,用于為每一個個體域保持值控制表,該表包括對應(yīng)于唯一識別所述域值的域值號的那個域的域值,其中該域值號是不同的域所共有的,并且具有從一個初始值開始的規(guī)定順序,該存儲設(shè)備還存儲包括用于指定按照所述記錄順序的所述域值號的域值號指定信息數(shù)組,值控制表進一步包括記錄識別信息指定信息,它對應(yīng)于所述域值號,指明在所述記錄識別信息指定信息數(shù)組中存儲了關(guān)于相同的域值號的所述一個或多個記錄識別信息的區(qū)域。
24.一種其上記錄了用于重新排列包括包含關(guān)于信息域的域值的多個域的記錄識別信息指定記錄數(shù)組的排序程序的計算機可讀存儲介質(zhì),所述排序程序的特征在于包括對于所述記錄的每一個,將所述記錄識別信息域?qū)?yīng)于所述域的域值的域值號關(guān)聯(lián)起來,對于所述域值號的每一個,定義重新排列了所述記錄識別信息后的存儲地址,從所述數(shù)組順序抽取所述記錄識別信息,確定對應(yīng)于所述抽取的記錄識別信息的所述域值號,根據(jù)對應(yīng)于所確定的域值號的記錄識別信息指定信息在所述存儲地址存儲所述抽取出的記錄識別信息,及更新其中要存儲所述記錄識別信息的所述存儲地址,以存儲下一個記錄識別信息。
25.一種可裝入計算機存儲器的計算機程序產(chǎn)品,它執(zhí)行根據(jù)權(quán)利要求19或21之一的方法。
全文摘要
一種具有常規(guī)功能數(shù)據(jù)表的方法和系統(tǒng),用于以極大改善的速度對大量表格式數(shù)據(jù)進行查找和累積,其中表格式數(shù)據(jù)作為包括與信息域?qū)?yīng)的域值的記錄排列而進行表示。在存儲器中存儲值控制表和域值號指定信息數(shù)組,其中域值以對應(yīng)于屬于特定域的域值的域值號順序進行存儲,并且用于指定域值號的信息按照記錄順序進行存儲。從域值號指定信息數(shù)組中查找對應(yīng)于特定記錄的域值號,從存儲在值控制表中的域值中查找對應(yīng)于查找的域值號的域值。
文檔編號G06F17/30GK1317117SQ99810804
公開日2001年10月10日 申請日期1999年8月9日 優(yōu)先權(quán)日1998年8月11日
發(fā)明者古莊晉二 申請人:古莊晉二
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
介休市| 齐河县| 崇左市| 托克托县| 丹江口市| 济宁市| 东山县| 天等县| 株洲市| 禹城市| 上林县| 南宫市| 揭阳市| 吴忠市| 平凉市| 清镇市| 苍山县| 阜新市| 兰州市| 枣强县| 化州市| 蓬安县| 巨野县| 清水县| 内江市| 班玛县| 彝良县| 阆中市| 明光市| 宿迁市| 青川县| 景泰县| 资中县| 饶阳县| 喀喇| 敦煌市| 武邑县| 拜泉县| 宁城县| 手游| 竹溪县|