CN1317117A - 对表格式数据进行查找、列表及分类的方法、及记录了查找、列表或分类程序的记录介质 - Google Patents

对表格式数据进行查找、列表及分类的方法、及记录了查找、列表或分类程序的记录介质 Download PDF

Info

Publication number
CN1317117A
CN1317117A CN99810804A CN99810804A CN1317117A CN 1317117 A CN1317117 A CN 1317117A CN 99810804 A CN99810804 A CN 99810804A CN 99810804 A CN99810804 A CN 99810804A CN 1317117 A CN1317117 A CN 1317117A
Authority
CN
China
Prior art keywords
thresholding
record
information
array
identifying information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN99810804A
Other languages
English (en)
Other versions
CN1194319C (zh
Inventor
古庄晋二
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Turbo Data Laboratories Inc
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CN1317117A publication Critical patent/CN1317117A/zh
Application granted granted Critical
Publication of CN1194319C publication Critical patent/CN1194319C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Abstract

一种具有常规功能数据表的方法和系统,用于以极大改善的速度对大量表格式数据进行查找和累积,其中表格式数据作为包括与信息域对应的域值的记录排列而进行表示。在存储器中存储值控制表和域值号指定信息数组,其中域值以对应于属于特定域的域值的域值号顺序进行存储,并且用于指定域值号的信息按照记录顺序进行存储。从域值号指定信息数组中查找对应于特定记录的域值号,从存储在值控制表中的域值中查找对应于查找的域值号的域值。

Description

对表格式数据进行查找、列表及分类的方法, 及记录了查找、列表或分类程序的记录介质
本发明涉及一种数据处理方法和数据处理装置,用于使用计算机或其它信息处理装置处理大量数据,尤其涉及一种用于对表格式数据进行查找、列表及分类的方法和装置。
通常,大量数据被聚积,并且对所聚积的数据执行列表和其它的数据处理。该数据处理可以通过使用如下方式实现,例如,包括CPU,存储器,外围接口,硬盘或其它辅助存储设备,显示器,打印机或其它输出设备,键盘,鼠标或其它输入设备,及通过总线连接的供电单元的计算机系统,及尤其是作为可以在容易地可用的商务计算机系统中可用的软件。为了执行上述查找,列表或其它数据处理,已知各种类型的尤其是用来存储大量数据的数据库。在各种类型的大量数据中,尤其要求处理可以用表格式表达的数据。图1是示出表达可以用表格式处理的数据的例子。图1示出的例子是在表中存储例如一百万个人的大量的人的姓别,年龄及职业数据。在图1中,表的水平行,即所谓的记录,包括记录号,对应于记录号的性别,年龄及职业域。表中垂直列包括记录号,姓别域、年龄域及职业域。该表示出记录号为“0”的人姓别为女,年龄为18及职业为程序员。在以下的解释中,在各域中设置的数据如“女”,“18”及“程序员”称为域值。另外,在以下的解释中,除非另外指明,使用表格式数据即包括示于图1的一百万条记录的表格式数据作为大量数据的具体例子。
大量数据是否可被高效地查找或列表(tabulate),取决于大量数据被存储的格式。通常,典型的已知的存储技术分别包括示于图2A和2B的所谓的“记录顺序(record-sequential)”和“域顺序(field-sequential)”存储技术。
图2A和图2B示出在存储设备,例如硬盘上的数据存储格式的表示。在图2A的记录顺序存储技术情况下,对于每个记录号以顺序增加逻辑地址的顺序存储每个记录号下的姓别、年龄和职业的域集合。另一方面,在图2B的域顺序存储技术的情况下,对于每个域以增加逻辑地址的方向按以域为组的记录号顺序存储域值。即,在图2B的例子中,对应于记录号“0”至“999999”的姓别域的域值按顺序排列,接着以记录号顺序将年龄域的域值进行排列,再然后,以记录号顺序将职业域的域值进行排列。
在上述的现有技术中,对应于所有记录号的所有域的域值被存储成两维数据结构(记录号为一维,另外的域值为一维)。以后这种数据结构将被称为“数据表”。在现有技术中,在查找和列表存储的数据时,通过访问这种数据表来执行。
除了将域的值作为域值进行存储的方法外,还有一种将值转换为代码并将代码作为域值存储的方法。例如,对于姓别域,值“男”可以转换为“0“,而值“女”转换为“0”,然后值“0”或“1”作为域值进行存储,而取代“男”或“女”。甚至在这种情况下,转换的代码作为域值存储在数据表中这一点上没有什么变化。
在对使用上述现有技术的数据表类型的数据结构存储的大量数据进行查找和列表时,问题是由于访问这种数据表所需的访问时间,使得查找和列表处理时间变长。
另外,数据表至少具有以下潜在的缺陷。
(1).数据表在大小上容易变得庞大,并且不能容易地分离(物理上)为各独立的域。例如,当抽取性别为“男”的记录时,不需要年龄和职业信息,如果表可以被分离为仅包括姓别域的表,则可以改善效率。在图2B所示的域顺序存储技术的情况下,尽管分离为各独立的个体域变得简单,当处理大量数据时,数据表的大小仍变得庞大,从而使为了列表或查找而将数据表实际扩展到存储器或其它快速存储设备变得困难。
(2).数据表不能同时地以用多个域值排序的形式保持。例如,在图2A和图2B所示的现有技术的情况下,姓别域的域值以记录号顺序按照“女,男,女…,女”的方式排列。但是,当执行查找和列表处理时,通常方便的是按“女,女,女,男…男”的方式对它们进行排列。但是,在表数据中,域值是以特殊的矩阵顺序即记录号顺序排列的,从而不允许对于特殊的域排序域值。由于这个原因,在现有技术中不可能选择域值的排列以方便查找和列表。
(3).在数据表中,相同的值重复出现。例如,在图2A和图2B给出的常规数据表中,在抽取姓别为“‘男’或‘男人’”(或者记录号)的记录时,由于域值“男”出现多次,必须执行将作为比较条件的“‘男’或‘男人’”与“男”的域值匹配许多次的操作。一个单独的比较对于确定与相似值是否匹配应该是足够的。
为了大大地提高对大量数据进行查找和列表的速度,本发明的目的是提供一种对表格式数据进行查找、列表和排序的方法,及用于实现这种方法的装置,这是通过提供具有常规数据表功能及用基于数据表的数据结构解决上述问题的数据控制机制来实现的。
为了实现上述目的,根据本发明的用于对表格式数据进行查找和列表的方法和装置提出一种新颖的数据控制机制,它可以在通常的计算机系统中使用。根据本发明的数据控制机制包括一个值控制表和值控制表的指针数组,作为总规则。
图3是用于解释本发明原理的图,示出了值控制表10和值控制表的指针数组20。值控制表10被定义为一张表,其中为表格式数据中的每一个域,为属于那个域的每个域值分配一个(整型)域值号,从而表包括对应于以域值号(参考标记11)的顺序排列的所述域值号的域值及关于所述域值的类别号(参考标记12)。值控制表指针数组20是包含指向表格式数据中列(即域)的域值号指针的数组,即指向按照表格式数据的记录号的顺序排列的值控制表10的指针数组。
通过组合值控制表指针数组20与值控制表10,给定某个记录号,可以使用与关注的域相关的值控制表指针数组20以抽取对应于那个记录号的所存储的域值号,接着抽取值控制表10中对应于那个域值号的存储的域值,从而从记录号中获得域值。因而,按照与常规数据表相同的方式,可能用包括记录号(行)和域(列)的坐标访问所有数据(域值)。
根据本发明的数据控制机制,包括为表格式数据的域中的某个域所生成的值控制表及值控制表指针数组,也可以尤其称之为“信息块”。
尽管常规的数据表使用对应于记录的行和对应于域的列的坐标对所有数据提供了集中控制,根据本发明的信息块的特征在于数据完全地用表格式的列即域分离。这样,通过本发明,大量的数据用域进行分离,因此可以向存储器或其它高速存储设备仅装入查找或列表所需的那些域相关的数据,结果,访问数据的时间被减少,从而加速了查找和列表处理,甚至不需影响性能就可以处理极大量的数据。
另外,根据本发明的信息块,域值被存储在值控制表中,并且指明值位置的记录号与值控制表的指针数组相关,从而不需按记录号顺序排列域值。因而,数据可以按域值进行排序从而适用于查找和列表。因而可以以高速执行判断与目标值匹配的域值是否在数据中的处理。进而相应的域值号被分配域值,从而即使如果域值包括长数据或文本串,它们也可作为整数处理。
进而,通过本发明,值控制表10的所有域值号对应于不同的域值,从而为抽取具有特定值的包括域值的记录所需的在特定值和域值之间进而比较的操作次数不超过可能的域值数,即域值号的数目,从而大大减少比较次数,加速了查找和列表。这时尽管需要地方来存储判断某个域值是否匹配的结果,例如,可以使用类别号12作为该存储地址。
图4示出根据本发明的信息块,包括值控制表10,该控制表具有包含域值的域值数组11,包含类别号的类别号数组12及包含总计的总计数组14。总计数组14包括在某个域在所有数据中每个域值出现的次数的总计的值,或换句话说,具有规定的域值的记录数目。通过在值控制表10中准备这种总计数组14,可以立即获取在查找或列表时所需的信息“有多少数据存在的实例?”从而加速查找和列表。
图5示出具有值控制表10的信息块,值控制表指针数组20及记录指针数组30。记录指针数组30被定义为为每个域值号即每个域值包括具有那个域值(对应于记录号)的记录指针数组。对于每个域值包括在记录指针数组30中的指向数目与值控制表10中的总计数组14中的入口数匹配。另外,在记录指针数组30中可以提供用于每个域值的指定指针组的起始地址的起始位置数组13。通过按照这种方式在信息块中提供这种记录指针数组30,可以快速抽取对于某个域具有特定的域值的记录集。存储在记录指针数组30中的总计(参考标记14)和指针的起始位置(参考标记13)被设置在值控制表10中,从而在信息块中出现值和总计这个事实使得它们在列表时是有利的。
下面解释根据本发明的用于查找和列表表格式数据的方法。注意在下面的解释中,个体域信息指上述“信息块”,域值号指定信息数组指上述“值控制表指针数组”,而记录识别信息数组指上述“记录指针数组”。
本发明提供一种用于从表格式数据中抽取对应于特定域和特定记录的域值的方法,其中该表格式数据用包括关于信息的域的域值的记录数组来表示,
所述方法的特征在于包括步骤:
在存储设备中,为每个个体域新事件。另一种作法是,利用散列技术之类的技术,可在随机存取存储器中存储了预先确定的交易信息量时产生日志更新事件,此时可通过覆盖先前存储的交易信息来重新使用随机存取存储器存储增加的交易信息。在一个日志时段可以产生多个日志更新事件,于是根据散列保持包括按照与属于特定域的域值对应的域值号的顺序存储的域值的值控制表,及包括按照所述记录的顺序指定所述域值号的信息的域值号指定信息数组,
从所述域值号指定信息数组获取对应于所述指定记录的域值号,及
从存储在所述指控表中的域值获取对应于上述获取的域值号的域值。
另外根据本发明获取域值的方法,为了对对应于所述域值号的域值进行分类,在所述值控制表中对应于所述域值号存储类别号,及在获取对应于所述域值号的域值时访问所述类别号。
另外本发明提供一种从表格式数据中查找与特定查找条件匹配的域值的单独方法,其中该表格式数据用包括与查找条件相关的域的域值的记录数组表示,所述方法的特征在于包括步骤:
在存储设备中为每个个体域保持个体域信息,从而包括按照与和查找条件相关的域的域值对应的域值号的顺序存储的域值的值控制表,包括按照所述记录的顺序指定所述域值号的信息的域值号指定信息数组,及记录识别信息数组,它在固有的区域中为每个所述域值号存储与相同的域值号相关的一个或多个记录识别信息,并且所述值控制表包括为所述域值号的每一个指示与相同的域值号相关的一个或多个记录识别信息在所述记录识别信息数组中的区域的记录识别信息指定信息,
使用在所述值控制表中的与所述查找条件匹配的域值中的与关于域值的域值号对应的所述记录识别信息指定信息,从所述记录识别信息数组中获取与所述查找条件匹配的记录识别信息。
另外根据本发明对多个域进行查找的方法包括步骤:
在存储设备中保持由根据本发明的单一域查找方法所获得的与查找条件匹配的记录结果集,
选择与单独查找条件相关的关于域的单独个体域信息,
从关于单独个体域信息的域值号指定信息数组中获取对应于与所述结果集中的所述查找条件匹配的记录识别信息的域值号,
关于单独个体域信息,判断由所述抽取的域值号识别的域值是否与单独查找条件匹配,
关于单独个体域信息,如果由所述抽取的域值号识别的域值与单独查找条件匹配,抽取对应于域值号的记录识别信息作为与单独的查找条件匹配的记录识别信息,
可选的,作为多个域查找方法的变形,可以实现所谓的OR查找。更详细地,该方法包括步骤:
在存储设备中保持与所述查找条件匹配的记录结果集,
关于涉及其它查找条件的个体域信息,
使用与所述查找条件匹配的存储在其它值控制表中的域值中的域值,及对应于相关域值的记录识别信息指定信息,从记录识别信息数组中抽取与所述其它查找条件匹配的记录,并将与查找条件匹配的记录存储在特定的其它记录集中,
如果必要,关于进一步的其它查找条件,使用进一步的其它记录识别信息指定信息,抽取与进一步的其它查找条件匹配的记录,并重复存储进一步的其它结果集,及
通过从这样获得的结果集中除去重复的记录获得最终结果集。
本发明提供一种用每个域值对表格式数据进行列表的方法,其中该表格式数据用包括包含对应于域信息的域值的多个域的记录数组表示,
所述方法的特征在于包括步骤:
如果n表示等于或大于1的整数,对于在列表中所使用的n个域的每一个,在存储设备中保持包括包含唯一识别域值的对应于域值号的那个域的域值的值控制表,其中该域值号是不同的域共有的,并且具有从初始值开始的规定顺序,另外还保持包括指定按照所述记录的顺序的所述域值号的信息的域值号指定信息数组,
如果i表示范围1≤i≤n内的整数,对于第i个个体信息域,所述域值号的总数用Ni表示,Ki表示范围1≤Ki≤Ni-1内的整数,M表示大于或等于1的整数,如果m表示范围1≤m≤M内的整数,则将n维M数据空间中的元素Pm(k1,k2,…,ki,…,kn)初始化为具有大小N1×N2×…×Ni×…×Nn,
对于所述n个单独信息域,当j表示范围1≤j≤ (记录总数-1)内的整数时,抽取在每一个域值号指定信息数组的第j个位置所存储的各域值号,并且从第i个个体信息域中抽取的域值号用标识所述数据空间中的元素Pm(q1,q2,…,qi,…,qn)的qi表示,并且
处理元素Pm(q1,q2,…,qi,…,qn)的所述识别出的值。
本发明提供一种用域值类别对表格式数据进行列表的方法,其中该表格式数据用包括包含对应于域信息的域值的多个域的记录数组表示,
所述方法的特征在于包括步骤:
如果n表示等于或大于1的帧数,对于在列表中所使用的n个域的每一个,在存储设备中保持该个体域信息包括包含那个域的域值及对应于唯一识别域值的域值号的域值的类别号,个别域信息,其中域值号是不同的域所共有的并且具有从初始值开始的规定顺序,另外还保持包括指定按照所述记录的顺序的所述域值号的信息的域值号指定信息数组,
如果i表示范围1≤i≤n内的整数,对于第i个个体信息域,所述域值号或类别号的总数用Ni表示,Ki表示范围0≤Ki≤Ni-1内的整数,M表示大于或等于1的整数,如果m表示范围1≤m≤M内的整数,则将n维M数据空间中的元素Pm(k1,k2,…,ki,…,kn)初始化为具有大小N1×N2×…×Ni×…×Nn,
对于所述n个个体信息域,当j表示范围0≤j≤ (记录总数-1)内的整数时,抽取在每一个域值号指定信息数组的第j个位置所存储的各域值号,并且当用qi表示从第i个个体信息域中抽取的域值号或对应于值控制表中所述域值号的所述第i个个体信息域所存储的类别号时,识别所述数据空间中的元素Pm(q1,q2,…,qi,…,qn),并且
处理元素Pm(q1,q2,…,qi,…,qn)的所述识别出的值。
根据本发明对总计进行列表的方法,M=1为真,并且处理所述识别的元素Pm的值的步骤包括将所述元素Pm的当前值加1。
另外,根据本发明对统计数进行列表的方法,处理所述识别的元素Pm的值的步骤包括:对于M个元素Pm中的至少一个元素Pm
对于在存储设备中所保持的独立的个体域信息,获取存储在域值号指定信息数组的第j个位置上的域值号,
从存储在所述独立的个体域信息的值控制表中的域值中,获取对应于所获取的所述域值号的域值,及
更新所述元素Pm的当前值及组合所获得的所述域值的所述元素Pm的值。
根据本发明,所述指定域值号的信息可以是域值号自己。
可选的,为了实现所谓的多答案域,其中为某个记录的一个域分配多个域值,所述指定域值号的信息可以是一个二进制值,其中为每个域值号分配1位,从而设定是否设定了它。
另外本发明提供一种用于从表格式数据中进行抽取和列表的装置,其中该表格式数据用包括每个域包含多个域值的多个域的记录数组来表示,所述装置的特征在于包括:
存储设备,为各个体域,保持包括包含唯一识别域值的对应于域值号的那个域的域值的值控制表,该域值号是不同的域所共有的,并具有从一个初始值开始的规定顺序,及包括按照所述记录的顺序指定所述域值号的信息的域值号指定信息数组,
域值号获取装置,从所述域值号指定信息数组获取对应于所述指定记录的域值号,及
域值获取装置,从存储在保持在存储设备中的所述指控表中的域值获取对应于上述获取的域值号的域值。
本发明还提供一种其上记录了用于对表格式数据进行查找和列表的程序的计算机可读存储介质,其中该表格式数据包括每个域包含多个域值的多个域的记录数组来表示,
所述程序的特征在于包括步骤:
在存储设备中为每个个体域保持包括包含唯一识别域值的对应于域值号的那个域的域值的值控制表,该域值号是不同的域所共有的,并具有从一个初始值开始的规定顺序,及包括按照所述记录的顺序指定所述域值号的信息的域值号指定信息数组,
从保持在所述存储设备中的所述域值号指定信息数组获取对应于所述指定记录的域值号,及
从存储在所述指控表中的域值获取对应于上述获取的域值号的域值。
本发明还提供一种排序方法,其中在一个特定域重新排列包括包含关于信息域的域值的多个域的记录识别信息,例如记录号指定记录数组。根据本发明的排序方法,形成一个值控制表指针数组,对于每个记录,将所述记录识别信息域与对应于某个域的域值的域值号关联起来,对于所述域值号的每一个,定义重新排列了所述记录识别信息后的存储地址,从所述数组顺序抽取所述记录识别信息,确定对应于所述抽取的记录识别信息的所述域值号,根据对应于所确定的域值号的记录识别信息指定信息在所述存储地址存储所述抽取出的记录识别信息,及更新其中要存储所述记录识别信息的所述存储地址,以存储下一个记录识别信息。
根据本发明的排序方法的优选实施例包括步骤:在存储设备中为每个个体域保持个体域信息,从而包括按照与和查找条件相关的域的域值对应的域值号的顺序存储的域值的值控制表,包括按照所述记录的顺序指定所述域值号的信息的域值号指定信息数组,值控制表进一步包括记录识别信息指定信息,它对应于所述域值号,指明在所述记录识别信息指定信息数组中存储了关于相同的域值号的所述一个或多个记录识别信息的区域。另外还保持根据记录识别信息指定信息在存储地址中存储的记录识别信息。
进而,本发明的目的可以通过用于实现上述方法的装置,包括根据该方法的程序的计算机可读存储介质或根据所关注的方法的计算机可装入程序产品来实现。
参考所附的附图及实施例,本发明的这个和其它目的将更清楚。
图1是示出典型的表格式数据的解释图。
图2A和2B是示出现有技术中表格式数据存储技术的解释图。
图3是示出本发明原理的解释图。
图4是示出根据本发明的信息块的解释图。
图5是示出根据本发明的信息块的解释图。
图6是示出关于在本发明的实施例中所使用的“姓别”的信息块的解释图。
图7是示出关于在本发明的实施例中所使用的“年龄”的信息块的解释图。
图8是示出关于在本发明的实施例中所使用的“姓别”的信息块的解释图。
图9是根据本发明实施例1的单独域中查找方法的操作的流程图。
图10是示出根据本发明的实施例1的信息块的解释图。
图11是示出根据本发明实施例1的信息块的解释图。
图12是根据本发明实施例2的对多个域进行AND的查找方法的操作流程图。
图13是示出根据本发明的实施例2的信息块的解释图。
图14是示出根据本发明实施例2的信息块的解释图。
图15是示出根据本发明实施例3的使用位标记进行多个域布尔操作查找的解释图。
图16是示出根据本发明实施例3的使用位标记进行多个域布尔操作查找的解释图。
图17是根据本发明实施例5的列表方法操作的流程图。
图18是本发明实施例6的概念解释图。
图19是本发明实施例6的操作的流程图。
图20是根据本发明实施例6的交叉列表操作的流程图。
图21是示出根据本发明实施例8的信息块的解释图。
图22是根据本发明实施例9的交叉列表操作的流程图。
图23A和23B是交叉列表的概念解释图。
图24是示出多答案类型域的解释图。
图25是示出根据本发明的实施例10的与多答案类型域兼容的类型的信息块的解释图。
图26是示出根据本发明实施例11处理具体值的方法的解释图。
图27是根据本发明实施例12对多个域进行查找的方法的操作流程图。
图28是根据本发明的一个实施例用于表格式数据的查找和列表系统的结构图。
图29是示出构成信息块的方法的解释图。
图30是示出准备数据插入和初始化的解释图。
图31是示出数据插入的第一次遍历的解释图。
图32是示出数据插入的第二次遍历的解释图。
图33是示出数据插入的第三次遍历的解释图。
图34是示出数据插入的第三次遍历的解释图。
图35是示出数据插入的第三次遍历的解释图。
图36是示出向一个信息块增加数据的解释图。
图37是示出根据本发明另一实施例的信息块结构图。
图38是示出根据本发明实施例13进行排序的初始状态的解释图。
图39是示出根据本发明实施例13进行排序的第一步的解释图。
图40是示出根据本发明实施例13进行排序的第二步的解释图。
图41是示出根据本发明实施例13进行排序的最后一步的解释图。
图42是是示出对部分集合进行排序的解释图。
图43是示出对部分集合进行排序的后处理的解释图。
图44是示出在查找和列表测试中使用的数据的一百万条记录的解释图。
图45是示出对一百万条数据记录进行查找和列表测试的结果的解释图。
图46A和46B是示出作为本发明实施例2的变形对多个域进行OR查找处理的流程图。
图47是示出根据本发明实施例3的查找处理的流程图。
图48是示出根据本发明实施例4的列表处理的流程图。
图49是示出根据本发明实施例7的列表处理的流程图。
图50是示出根据本发明实施例13的排序处理的流程图。
为了更好地理解本发明,我们将使用图1所示的表格式数据作为数据例子,并用不同的实施例详细描述根据本发明的查找方法,列表方法及排序方法。图1的例子中所示的数据包括域“姓别”,“年龄”和“职业”,如在图6-8各图中所示,所包括的信息块是关于“姓别”的信息块,关于“年龄”的信息块和关于“职业”的信息块。下面的描述假设获得了这些信息块。注意尽管以后将描述构造信息块的技术,本发明不限于该构造信息块的方法。
如后所述,根据本发明的一个实施例用于查找及列表表格式数据的装置具有图28所示的结构。如图28所示,通过例如通常的个人计算机这样的计算机系统实现用于查找和列表表格式数据的装置。该计算机系统包括CPU100,用于执行程序来控制整个系统及其各组成部件,ROM(只读存储器)110,存储程序等,RAM(随机访问存储器)120,存储工作数据等,硬盘存储设备130,显示设备140,键盘、鼠标或其它输入设备150。CPU100,ROM110,RAM120等通过总线160相互连接。其它也可以连接到总线上的部件包括用于访问CD-ROM盘的CD-ROM驱动器(未示出),外部网络(未示出)及提供给连接的外部终端的接口(未示出)等。
对表格式数据执行查找和列表(也根据情况进行排序)的程序可以包括在CD-ROM(未示出)上并且由CD-ROM驱动器(未示出)读取,或事先存储在ROM110中。另外,一旦从CD-ROM中读出,程序也可以存储在硬盘存储设备130的特殊区域。另外,上述程序也可以从外部通过网络、外部终端或接口(它们均未示出)提供。
另外,在上述查找和列表装置中,为了对表格式数据执行查找和列表(根据情况也进行排序)处理,如后所述,必须根据表格式数据生成规定的数据格式信息块。该信息块生成程序可以相似地包括在CD-ROM中,存储在ROM110中,或存储在硬盘存储设备130中。另外,上述程序也可以从外部通过网络、外部终端或接口(它们均未示出)提供。另外,在该实施例中,由生成信息块的上述信息块生成程序生成的数据(信息块)存储在RAM120或硬盘存储设备130的特殊区域。下面是根据本发明实施例1的查找单独域的方法的描述,其中查找“年龄”域值为“16”或“19”的记录。图9是在单独的域中进行查找的方法的操作流程图。这是通过由CPU100执行通过上述过程获得的或存储在规定区域中的查找程序来实现的。
首先,从关于表格式数据的信息块中选择如图7所示的关于“年龄”的信息块,作为特殊的信息块(步骤100)。
接着,将位于特殊的信息块的值控制表中的域值匹配于作为上述查找条件的“16”或“19”的那些行的类别号设置为“1“。并且将其它行中的类别号设置为“0”(步骤102)。在图10所示的该例子中,“1”被设置到对应于域值号“0”及域值号“3”的那些行的类别号中。
接着,获取对应于类别号被设置为“1”的那些行(即具有域值号“0”和“3”的行)的起始地址和总计,作为指针抽取信息(步骤104)。在例子中,域值号“0”具有对应的起始地址“0”及总计“45898”。另一方面,域值号“3”具有对应的起始地址“238137”及总计“189653”。
通过从记录指针数组中抽取由上述起始地址及总计所指定的指针数,代表与上述查找条件相匹配的记录指针的记录号被抽取出来(步骤106)。在该例中,如图10所示,可以看到对应于域值号为“0”的记录指针存储到从起始地址“0”,或从开始直到第45898个地址的地址中,而对应于域值号为“3”的记录指针存储在记录指针数组的从第2383137个地址开始的189653个地址中。例如,当访问图1的表格式数据时,对应于具有最后一个记录号“999999”的记录的“年龄”是“16”,如图11所示,在对应于域值为“0”,或者“年龄”为“16”的记录指针数组中存储的指针中的最后一个指针是“999999”。
最后,为了在随后的处理中使用,所抽取的记录号数组被作为结果集生成及保存(步骤108)。
通过本发明,可以不仅实现如上所述的对单独域进行查找,还能对多个域的AND进行查找。以下说明根据本发明的实施例2对多个域的AND进行查找的方法。在该例中,我们将认为要获取满足以下两个条件的记录集合:第一个查找条件为“年龄”为“16”或“19”,第二个查找条件为“职业”为“学生”。图12是查找多个域的AND的方法的操作流程图。
如前所述,对于作为第一个域“年龄”的信息块的第一个特殊信息块,通过根据实施例1的处理获得“年龄”为“16”或“19”的记录结果集(步骤120)。然后,该步骤120的处理大致对应于图9所示的部分。
接着,作为图8所示的第二个域的关于“职业”的信息块被作为第二特殊信息块选出(步骤122)。
接着,将特殊信息块的值控制表中的域值与作为前述查找条件的与“学生”匹配的那些行的类别号设为“1”,并将其它行的类别号设为“0”。在如图13所示的该例中,“1”被设置到对应于域值号为“0”的那些行的类别号中,并且“0”被设置到其它行中。
接着为第一查找条件从结果集中顺序抽取表示指向记录的指针的那些记录号(步骤126)。例如,如图14所示,抽取记录号“999999”。
接着,关于第二特殊信息块,从值控制表指针数组中抽取对应于满足上述第一查找条件而获取的记录号的域值号(步骤128)。例如,如图14所示,抽取出对应于记录号“999999”的域值号“0”。
接着判断在对应于根据第二特殊信息块抽取的域值号的类别号中是否设置了“1”(步骤130)。例如,如图14所示,可以看到“1”被设置到对应于域值号为“0”的类别号中。
当“1”被设置到类别号中时,将对应于指明“1”被设置到类别号中的关注的域值号的值控制表指针数组中的指针地址的记录指针,例如记录号,增加到最终结果集中(步骤132)。例如,如图14所示,记录号“999999”被增加到最终结果集中。
当类别号是“0”时,不更新最终结果集。
注意对于本领域技术人员来说可以容易地理解,上述对多个域的AND进行查找的方法可以应用于除了AND查找的查找中,从而这种变化可能用于基于多个域的OR的查找方法中。图46A是示出对多个域进行OR查找处理的处理例子。该处理也可由CPU100执行存储在规定区域中的程序来实现。如图46所示,首先在得到关于第一查找条件的结果集后(步骤4601),选择第二查找条件的信息块(步骤4602)。然后,关于该信息块,设置关于第二查找条件的类别号(步骤4603)。尽管跳过来自第一查找条件的结果集中包含的记录号,关于第二特殊信息块,顺序扫描值控制表指针数组(步骤4604)。更详细地,关于第二查找条件类别号被置为“1”的记录号,判断在根据第一查找条件的结果集中是否发现了这个记录号(步骤4611-4615)。如果在根据第一查找条件的结果集中未发现该号,则将那个号增加到结果集中(步骤4614)。完成该处理后,通过将存储在根据第一查找条件的结果集中的记录号与属于关于第二信息块设置类别号的那些域值号的记录号联合生成第二结果集(步骤4615),并且这可以作为输出。
另外,可以执行图46B所示的处理。在该例中,在根据关于第一特殊信息的查找条件获得第一结果集后,独立于此,根据关于第二特殊信息的第二查找条件获得第二结果集(步骤4621-4624),使用位映射执行第一结果集和第二结果集的OR(步骤4625),根据此生成一个新的结果集(步骤4627)。注意在图46B的处理中,步骤4602和4603对应于图46A的步骤4621和4622,步骤4625对应于图46A的步骤4601。
图15和16是示出根据本发明的实施例3使用位标记的多个域布尔查找操作方法的解释图,该图示出,在与上述实施例2的查找条件相同的情况下执行查找的情况。使用位标记进行多个域布尔操作查找被定义为查找条件由为每个域的查找条件中的布尔操作来表达。在该例中,如实施例1所示,通过对单独的域执行查找所获得的结果集不能由记录号数组构成,对于结果集来说以位标记的形式构成是有利的。即,根据图47所示的处理,通过为所有记录每一个分配一位生成结果集,并且位值“1”或“0”表示每个记录是否与查找条件相匹配。更具体的,与其它实施例相同,选择包括练及查找条件的域值的信息块(步骤4701),然后对于行匹配了查找条件的将其类别号设置为“1”(步骤4702)。接着,对于每个记录访问对应的类别号,并且确定要被存储到结果集的位值(步骤4703-4707)。通过按这种方式形成结果集,每个域的结果集大小对应于表格式数据的记录号,从而结果集的大小对每个域是相同的,结果,容易对结果集中的元素执行布尔操作,例如AND,OR和XOR。
在该例中,示于图15中的结果集A和示于图16中的结果集B在AND条件下联接以获得位标记格式的希望的查找结果集。另外这样获得的位标记格式的查找结果集可以转换为记录指针数组格式的结果集,从而与根据本发明实施例2的对多个域进行查找的上述方法结合。
下面我们将解释根据本发明对不同类型的表格式数据进行列表的方法。根据本发明实施例4的列表方法包括对在特殊的域具有特殊的域值的记录的个数进行计数,我们将考虑对在“姓别”域中具有“男”域值或具有“女”域值的记录的个数进行计数的情况。如图6所示,根据本发明的优选实施例,关于“姓别”的信息块包括域值为“男”的记录的总数(值为“632564”)及包括域值为“女”的记录的总数(值为“367436”),从而可以通过访问信息块中的总数数组立即获得记录数的简单列表。
另外,通过将对单独的域进行查找的方法中所描述的类别号与根据本发明实施例4的列表方法相结合,即使在更复杂的条件下也能容易地对记录号进行计数。例如在查找如本发明实施例1中所描述的“年龄”域的值为“16”或“19”的记录的方法中,可以对对应于“1”被设置为类别号的域值号的总数进行列表,从而列出与查找条件相匹配的记录号。这时,通过使用类别号,即使当值控制表很大或给出了复杂条件的情况下,也能高效地得到总数。更一般的,如图48所示,找到“1”被设置到类别号中的域值号(步骤4602)并然后增加相应的总计(步骤4803)就足够了。
接着,将解释本发明的实施例5。在该实施例中,将计算“男”的平均年龄。可以通过公式(男性的“年龄”总计)/(男性总数)来计算平均年龄,并且也可以通过在本发明实施例4中所描述的列表方法获得男性总数。结果,在该实施例中,要解决获取男性的总“年龄”的问题。图17是示出本发明实施例5的操作的流程图。如在其它实施例中一样,该处理也可通过由CPU100执行存储在规定数据中的程序来实现。
首先选择如图6所示的关于“性别”的信息块,作为第一信息块(步骤140),并且从特殊信息块的值控制表中检测对应于域值“男”的域值号“0”(步骤142)。接着,对应于域值号“0”的总数为“632564”,从而男性的总数被确定为632564,并且对应于域值号“0”的起始位置也是“0”,因而性别为男的记录指针被确定为存储在从起始直到第632564个地址的地址中,并且这些记录的指针列表,即记录号数组被保持在结果集中(步骤146)。
接着,选择如图7所示的关于“年龄”的信息块,作为第二特殊信息块(步骤148)并且从第二特殊信息块的值控制表指针数组中抽取关于第一特殊信息块的在结果集中所指定的对应于记录的域值号(步骤150),并且抽取关于抽取的域值号的域值,即“年龄”(步骤152)。最后,通过顺序地增加抽取的“年龄”值来获得总年龄(步骤154),并重复步骤150,152和154,直到上述结果集中的所有指定的记录都被处理(步骤156)。这样获得的总年龄被总数去除以获得平均年龄(步骤158)。
接着,将解释本发明的实施例6。在该例中,将获取男学生的平均年龄和女学生的平均年龄。图18是本发明实施例6的概念解释图,而图19是本发明实施例6的操作流程图。
在该实施例中,通过第一次查找关于“职业”的信息块作为第一信息块执行列表(步骤170),并使用“职业为学生”的查找条件从所有记录中生成包括“职业为学生”的记录的结果集(步骤172)。
接着,选择关于“性别”的信息块作为第二信息块并选择关于“年龄”的信息块作为第三信息块(步骤174),并从结果集的开始顺序抽取记录指针(步骤176)。
使用抽取的记录指针,访问第二信息块的值控制表指针数组以获取对应于抽取的记录指针的性别,并且也访问第三信息块的值控制表指针数组以抽取对应于抽取的记录指针的年龄(步骤178)。男性总数和女性总数在每次抽取时均增量1,以为男性和女性计算总抽取年龄(步骤180)。
检查结果集的所有记录指针是否都已被处理(步骤182),并且如果所有的记录指针都被处理,则通过用总数除以男性和女性的总年龄来计算男性和女性学生的平均年龄(步骤184)。
接着,将参照图20所示的操作流程图解释本发明的例7。在该实施例中,执行所谓的交叉列表。注意图20所示的处理程序也由CPU100读取和执行。在该实施例中,考虑关于图1的表格式数据的整个记录集中用姓别/职业统计的总数。
关于在列表中使用的两个域“姓别”和“职业”,各值控制表和指定信息数组的域值号,即值控制表的指针数组,它们表达两部分个体域信息,即在存储设备中保持第一和第二信息块(步骤190)。存储器设备可以以例如存储器,虚拟存储器,存储器映射文件等的形式实现。
关于涉及姓别的第一信息块,如图6所示,姓别的域值号的总数是“2”,并且关于涉及职业的第二信息块,如图8所示,用于职业的域值号的总数是“4”。这样生成一个初始化2×4(2行×4列)两维数组作为存储列表数据的空间(步骤192)。
关于第一和第二信息块,分别顺序地从值控制表的指针数组的开始分别抽取域值号q1和q2,它们用于识别两维数组中的单独元素P(q1,q2)(步骤194),然后被标识的元素P(q1,q2)的值被增量1(步骤196)。
检查是否所有的域值号(即等于记录总数的域值号的数目)都从值控制表的指针数组中抽取(步骤198),并且如果仍然剩余域值号,则返回步骤194,如果没有,则终止列表处理,这将完成两维交叉表。
在上述本发明的实施例7中,对于图1的表格式数据的整个记录集执行列表,但也可以对记录的部分集执行相同类型的列表,例如以姓别/职业列出16岁的总数。为了实现该目的,首先使用年龄16作为查找条件进行单独域查找,然后获取和保持与16岁相匹配的记录的识别信息。接着,如前面关于对多个域的AND进行查找的描述所述,将包括在该结果集中的记录即记录的部分集作为操作对象,并顺序抽取从起始就开始的包括在结果集中的记录标识信息,然后从值控制表的指针数组中抽取对应于记录标识信息的域值号,将由此获得的域值号作为两维数组的横和纵坐标,而将元素值的总数增量“1“,即在该处理中,如图49所示,执行大致相当于图9中所示的处理,以生成结果集,包括记录指针(步骤4901)。接着,使用该结果集以执行大致相当于图20的处理。这里,首先如图20的相同方式一样,抽取在列表中使用的关于域的第一和第二信息块(步骤4902),然后生成初始化的两维数组(步骤4903)。
然后初始化指示结果集中的指针存储位置的值(以后根据情况称为“存储位置号”)(步骤4904)。根据程序,关于不同的存储位置号,CPU100从第一和第二信息块中抽取对应于值控制表的指针数组,并识别两维中的元素P(q1,q2)(步骤4905),接着P(q1,q2)被增量(步骤4906)。通过对所有的存储位置号执行该处理(即通过处理结果集中的上述域值号),可能获取关于通过查找等获得的部分集的交叉列表。
接着,将解释本发明的实施例8。在该例中,通过为域值的每个类别计数总数,在域的域值被分为若干个类别的情况执行交叉列表。例如,参考关于示于图8中的“职业”的信息块,可以看到关于“职业”注册了四个域值:“学生”、“程序员”、“教师”及“其它”。关于基于这些域值的类别,可以预期重新分类为三种类型“有收入”、“无收入”、“未知”。在该例中,在这种情况下,生成一个新的类别“收入现状”以生成基于性别/收入现状的总计交叉列表。
示于图21的关于“职业”的信息块包括一个值控制表,其中尤其根据“收入现状”将类别号应用于每个域值号。在该例中,学生被分配类别号“1”(无收入),而“程序员”和“教师”被分配类别号“0”(有收入),“其它”被分配类别号“2”(未知)。
作为通常的规则,本发明实施例8中的交叉列表具有与实施例7的交叉列表大致相同的处理顺序,但是其不同之处在于,实施例8使用指定两维数组元素的坐标来存储列表数据,关于性别的第一信息块的域值号和关于职业的第二信息块的域值号。
由于任意的域值号或类别号可以作为两维数组中的元素坐标,在本发明的实施例8中,关于第一和第二信息块,顺序抽取在每个值控制表指针数组中存储的各域值号,并且根据从值控制表的指针数组中抽取的域值号本身或存储在值控制表中的对应于域值号的类别号来识别两维数组中的元素P的坐标。
在上述例子中,使用关于“性别”的信息块作为第一信息块,并且关于“职业”的信息块作为第二信息块(见图20步骤190)。在下面的处理步骤(步骤191)中,由于关于“性别”的信息块包括两个域值号,并且关于“职业”的信息块包括三个类别号,因而生成初始化为2×3(2行×3列)的两维数组。
在随后的处理步骤中,也抽取第一块的域值号q1和第二块的类别号q2,从而使用它们识别单独的元素P(q1,q2)并然后增量元素P的值(见步骤194和196)。
尽管根据实施例7和8的上述交叉列表尤其是查找总计形式的列表,但是请注意本发明也可以扩展为交叉列表,其中根据多个域计算平均年龄(例如根据性别/职业)。在实施例9中,执行上述类型中的交叉列表。
为了执行通过每次将两维数组的元素增量1来计算总计这种类型的列表方法,如在上述本发明的实施例7中所述,扩展到交叉列表类型,除了需要对总数进行总计,例如计算平均值外,需要采用图22所示的操作流程图中的一些变量。
具体地说,根据本发明的实施例9,使用2个两维数组来列表,关于第一两维数组,按照与实施例7相同的方式总计用性别/职业统计的总计,关于第二个两维数组,计算用性别/用职业统计的总年龄。
下面是更详细的解释。
首先将性别、职业和年龄这三个域的第一、第二和第三信息块装入存储设备(步骤200)。
分别对应于性别的域值号的总数“2”和职业的域值号的总数“4”,生成用于存储列表数据的初始化的2×4(2行×4列)两维数组(步骤202)。
从第一和第二信息块的值控制表指针数组的起始处开始,顺序抽取域值号q1,q2和q3以标识两维数组中一个元素的坐标(q1,q2)(步骤204),并然后将所标识出的第一个两维数组的元素P1(q1,q2)的值每次增量1(步骤206)。
进而,关于“年龄”信息块,获得对应于域值号为q3(即年龄)的域值(步骤208),并且将所获得的年龄增加到标识出的第二个两维数组的元素P2(q1,q2)中(步骤210)。
该处理之后,检查是否所有的目标记录都已处理完(步骤212),如果没有,返回到步骤204,如果是,则对于两维数组P1和两维数组P2的不同元素执行操作P2(q1,q2)/P1(q1,q2)(步骤206),这样获得用性别/职业统计的平均年龄,并且生成平均值的交叉列表表。
图23A是在本发明实施例7所获得的交叉列表表的概念解释图。这样,在上述实施例7中,列出性别/职业的所有组合的总计。但是,如图23B所示,在用性别/职业类别中,可能存在希望仅了解性别为女性且职业为学生的那些人的总计。通过本发明,通过查找多个域即“女”AND“学生”的AND找到结果集的大小,就获得这种情况下的总计。
相似的,在上述的本发明实施例9中,为性别/职业的所有组合找到了平均年龄的交叉列表表,但是也可以尤其获得那些性别为女且职业为学生的人的平均年龄。在这种情况下,从由对多个域“女”AND“学生”的AND执行查找,从结果集的大小得到总计,并且通过为包括在结果集中的记录将属于由标识信息所指定的记录的年龄相加得到年龄总和,并且通过除法计算(年龄总和/总计;就获得关于平均年龄交叉列表表中某特定网格中的希望值(例如平均年龄)。
下面,将解释本发明的实施例10。图24是示出多答案类别域的图,图25是根据本发明实施例10的与多答案类型域兼容的类型的信息块的解释图。“多答案”涉及如下的情况,例如当获取问题“现在表中用什么类型的书写方法?”的答案时,从同一个人获取多个答案例如“铅笔,橡皮”或“纸,铅笔”。更具体的,在多答案情况下,可能为单独的记录的单独的域指定多个域值。图24示出从一百万个人获得的关于上述问题的答复的列表。
为了处理这种数据,通过本发明的实施例10,如图25所示,信息块的值控制表的指针数组与域值号数组本身不同之处如上所述,但是为数组的指针中的每个域值号分配一位。因而可能通过将位设置/不设置(即二进制数)指示一个记录是否指定了那个域值号。从而可能指定在一个单独记录的单独域中包括的多个域值。例如,在图25,指针数组中的指针(位指针)是4位大小,并且当最大位为有效(即“1”),这意味着包括“纸”答案,当第二位为有效时,表示包括“尺子”响应,并且当第三位为有效时,意味着包括“橡皮”响应。进而当最低位为有效时,意味着包括“铅笔”响应。
对应于记录号“0”的指针具有值“3”,可以认为等于“21+2°”,因而可以理解为对应于该记录号包括“铅笔”和“橡皮”答案。另外,对应于记录号“1”和记录号“2”的指针分别具有值“4”和“10”,并且可被认为是“22”和“23+21”。因而,可以了解对应于这些记录号的响应分别包括“尺子”、“橡皮”和“纸”。
通过该实施例,给定指针值中每一位的意义从而可以指定多个域值号。因而即使在记录具有多个域值时,也可用指针值来表达。
注意本发明的优点在于,通过简单地修改信息块一个部分的组成可以容易地适用于多答案情况。实际上,这样修改的信息块可以用于替换在本发明上述不同的实施例中采用的信息块。
接着,将解释本发明实施例11。图26是示出根据本发明实施例11在处理列表处理期间发生的空白、错误值和其它特定值的方法。如图所示,在实施例11,通过将空白作为一个类别,执行交叉列表。当处理实际数据时,可能有如下情况,即发生空白或log(-1)或其它数学运算错误。根据本发明,即使存在这种特殊的值(空白、错误等),其优点在于它们作为域值登记在值控制表中,并且登记的特殊值可以作为类别使用以进行查找或列表。
接着,将解释本发明实施例12。现在将根据示于图27的本发明实施例12对多个域进行查找的方法操作的流程图描述延迟评价。在该实施例中,与本发明实施例2的情况一样,考虑获得满足第一查找条件“年龄”为“16”或“19”及第二查找条件“职业”为“学生”的记录集的情况。
在本发明的上述实施例2中,事先为所有记录设置所有记录的类别号(图12的步骤124),但是在图12的情况下,仅对基于对第一查找条件进行查找所得的结果集而实际访问的对应于域值号的类别号执行类别号设置。
如前所述,从作为关于第一个域即“年龄”的信息块的第一特定信息块,根据本发明实施例1获得“年龄”为“16”或“19”的记录结果集(步骤220)。
接着,选择关于示于图8的作为第二个域的关于“职业”的信息块的第二特定信息块(步骤222),并且将第二特定信息块的值控制表中的所有类别号的值初始化为例如“-1”(步骤224)。
接着,从关于第一查找条件的结果集,顺序抽取代表记录指针的记录号(步骤226)。在该例中,如图14所示,例如抽取记录号“999999”。
接着,关于第二特定信息块,从值控制表的指针数组中抽取对应于在上述第一查找条件下获得的记录号的域值号(步骤228)。在该例子中,如图14所示,抽取例如对应于记录号为“999999”的域值号“0”。
接着,检查对应于关于第二特定信息所抽取的域值号的类别号的值是否是“-1”(步骤230)。
在类别号为“-1”时,意味着还没有为那个域值号设置类别号,从而要判定对应于该域值号的域值是否与上述第二查找条件匹配(步骤232)。如果匹配,将类别号设置为“1”(步骤234),如果不匹配,将类别号设置为“0”(步骤236)。
在类别号不是“-1”时,判定上述抽出的对应于域值号的类别号的值是否被设置为“1”(步骤238)。如果类别号的值被设置为“1”,对应于存储了指示类别号被设置为“1”的类别号的指针的值控制表指针数组中的地址,向最终结果集增加一个记录指针,例如记录号(步骤240)。在该例中,如图14所示,例如记录号“999999”被增加到最终结果集。如果类别号为“0”,则不更新最终结果集。
在如下的情况下,在上述实施例12中所示的延迟评价是有效的。例如,考虑存储在具有一百万个人的用户数据库,希望进行电话调查,从而要抽出100人的样本。例如当要将人缩小范围到为满足规定条件(性别,年龄,职业等)的人群,可以抽出10,000个人,并然后确保随机地,根据电话号码最后的号(例如“12”)执行查找。
在该例中,如实施例12,首先“类别号数组”的元素被填充为“-1”以仅评价上述10,000个人的集合。即对于大小为10,000个人的结果集,访问类别号数组的元素,并且如果元素是“-1”并且仅在此时访问电话号码,并且访问的结果集被作为“类别号数组”元素。因而,可能将检查数保持为10,000。这样通过实施例12,与通常的AND查找相比,可以大大减少处理步骤数。
另外,通过使用根据本发明的信息块,具有“国家号+地区号+中心办事处号+序号”这样的电话号码结构的数据可以被分离和登记到多个信息块,其优点是可以容易执行关于国家号,地区号或其它部分数据的查找和列表。
另外,通过使用上面所述的根据本发明实施例的类别号,可能为年龄生成新的类别,例如,将年龄“10-19”分类为“十几岁”,将年龄“20-29”分类为“二十几岁”等,与上面所述的查找和列表相似的方法可以应用到这样生成的新类别上。
如上所述,通过示于图28的通常的计算机系统来实现根据本发明实施例的查找和列表装置,例如包括CPU100,ROM110,RAM120,硬盘130,显示器140或其它输出设备及键盘/鼠标150或通过总线160相互连接的其它输入设备150的个人计算机。因而,如上所述,构成用于实现上述实施例的信息块的程序(信息块生成程序)可以记录在CD-ROM,ROM110或硬盘存储设备130上,或通过网络从外部提供(未示出)。
参考图29所示的流程图,说明为示于图2B的表格式数据构成图5所示的格式的信息块的方法的例子。
步骤300:数据准备
首先,准备图2B所示格式的数据。接着用域来分离。在图2B中,可以分离为域“性别”,“年龄”,和“职业”。
步骤311:为“性别”域生成信息块
例如,生成一个信息块,并且将其作为“性别”域的信息块。
步骤312:生成值控制表
接着,初始化域控制表,并从开始到结束扫描“性别”域数据,而同时计算每个域的例程数,并存储该数据。在该例中,直到此步骤,域值“女”和“男”被设置到上述值控制表的域值数组11中,而值“367436”和“632564”分别被设置到对应于上述域值的上述值控制表的总计数组14中。
接着根据规定的基础对域值数组11中的域值(“女”和“男”)排序,在此排序时,随着对域值数组11的排序必须记录总计数组14。
进而设置值控制表的起始位置数组13中的起始位置。该起始位置由对应于在值控制表中从总计数组14的第一个总计开始的起始位置的诸总计的总计来计算。一般的第一个起始位置的值为“0”。
接着,将起始位置数组13的内容复制到类别号数组12。在生成记录指针数组时类别号数组12被作为I作区使用。
步骤313:生成值控制表的指针数组
接着,为值控制表20指针数组分配存储区域(存储区域的大小是在上述总计数组14中的总共总计数)。
接着一次从“性别”域数据从开始到最后抽取一个域值,审查每个域值看它是否与在值控制表的每个入口处的域值相匹配,如果与第n个域值匹配,则将“n-1”作为在上述值控制表指针数组中的值控制表指针。
步骤314:生成记录指针数组
接着为记录指针数组30分配存储区域。在该例中,存储区域的大小是在上述总计数组14中的总计总数。在值控制表指针数组20中,从开始行到结束行,一次抽取一个值控制表指针。抽取值控制表指针数组20的第J个值,并假设其值为“K”,然后抽取对应于值控制表的第K+1个记录的类别号,并假设其值为“L”,然后在记录指针数组30的第L+1个元素存储“J-1”,并将对应于值控制表的第K+1个记录的类别号增量1。
上述操作完成了关于“性别”域的信息块的生成(步骤310)。可以以相同的方式生成“年龄”域和“职业”域的信息块,并从而获得整个表格式数据的信息块。
图30至35是生成示于图1的表格式数据中关于“职业”信息块的过程的解释图。
图30是示出事先定义了类别并且属性值类型也已知的情况下输入新数据的图。此处根据已知的类别定义生成值控制表。由于不知开始位置和总计,它们初始化为“0”。另外,为值控制表的指针数组和记录指针数组分配区域并且它们也相同地被初始化。
图31是其中完成值控制表的指针数组及数组中的总计值的遍历。从起始处开始一次只为待插入的数据取出一个项,并检查数据值与值控制表中哪个项(即哪个域值号)匹配,然后其被存储到值控制表的指针数组中并每次用“+1”来更新值控制表中的相应总计。图31的例子示出处理完待插入的数据的第二项的状态。
图32是用于完成值控制表的第二次遍历。计算总计时使用关于起始位置的参照来找到起始位置。进而,起始位置的值被复制到类别号。在图中,完成类别值的设置。
图33-35示出数据插入的第三次遍历。而该遍历中,每次从值控制表的指针数组的起始处取一个值(指针),并且在值控制表指针数组中的偏移,即记录号被存储在被那个值所参照的由值控制表中的类别号所指定的记录指针数组中的位置中。图33,34和35分别示出关于“职业”信息块的值控制表指针数组的第一、第二和最后一组数据的处理。
注意在上述解释中,使用类别号域作为工作区,但是任何作为其元素个数等于或大于值控制表中的行数,即域值号的总数的整数数组的数组,也可作为工作区。
另一方面,对于未事先定义类别的新数据的插入是通过如下方式实现的:扫描要插入的数据,获得要登记在值控制表中的值一览表,然后在定义了类别时执行上述插入新数据的处理。
接着,考虑完成如图35所示的插入新数据后,将另外的“学生”记录加到关于“职业”的信息块中的情况。图36是关于该增加记录的解释图。
在这种情况下,标示“学生”的域值号0被增加到值控制表指针数组的末尾,然后值控制表中的学生总计被增加“1”。接着必须分配空间来存储记录号,即记录指针数组中的值控制表指针值(=1000000)。这时,抽取出对应于“学生”的记录指针数组末尾处的值(此例中,为999999),并且存储作为扩展地址的“1000000”。但是其标记可以反转,例如为了标识它是一个扩展地址,存储“-1000000”,接着作为扩展被事先抽取出的结束值“999999”被存储,最后存储对应于新增加的记录的指针值“1000000”。
通过采用上述增加数据的方法,避免了在增加数据时移动大量数据的需要。另外,为了防止在增加大量记录时由于指针数的增加导致的访问效率降低的问题,在适当的定时重复插入新数据时第三次遍历处理。
图37示出根据本发明另一个实施例的信息块结构。当采用该图中所示的结果时,避免了增加指针数,并且使改变数据容易执行。在图37起始地址数组包括标示记录指针数组所在的区的起始位置的地址。例如,“0”作为域值“学生”的起始位置被存储。另一方面,对于域值“程序员”,分配值“n(其中n>455214)”作为起始位置。
接着,描述本发明实施例13。在该实施例中,使用上述信息块执行记录排序。图38示出对“职业”域进行记录排序的初始状态。该图中所示的原始数据示出要被排序的记录号数组。例如,可以使用为除了“职业”域的其它域所获得的记录指针数组或查找结果集。在该例中,为了简化解释,原始数据的记录号以顺序“0,1,2,……,9”进行排列,而必须注意在排序前记录号的顺序通常是随机的。对应于每个记录号的“职业”域中的域值以顺序“教师,程序员,学生,……,其它”进行排列。
在该图的右侧,示出包括在关于“职业”的信息块中的各种数组的初始状态。通过参考图29-35所解释的信息块结构方法生成关于“职业”的信息块。在对“职业”域执行记录排序时,事先使用值控制表和关于“职业”的信息块的值控制表指针数组。作为起始位置,使用在构成信息块时的起始位置集。起始位置被复制到相应的结束位置。包括结束位置的区可以,例如是,分配给总计的区(总计数组)。可以例如事先以记录号顺序准备值控制表指针数组。在该例中,原始数据的记录号数组是降序排列,从而原始数据的记录号数组与值控制表指针数组呈现出简单关系。另外,值控制表指针数组是用于存储排序的结果集的数组,从而分配与待排序的数据相同大小的区域。上述结束位置被作为用于存储记录指针数组中的排序结果的数组。
图39是示出根据本发明实施例13进行排序的第一步骤的解释图。在第一步中,处理原始数据中的起始记录(在该例中,具有记录号=O的一个)。记录号为“0”的记录的“职业”域的域值是“教师”。这时,在值控制表指针数组中对应于记录号“0”存储指定域值“教师”的域值号“2”。接着抽取对应于域值号“2”的结束位置的值“5”,并且该值“5”被作为一个地址来在存储了排序的结果集的记录指针数组的第5个位置设置该记录号“0”。接着,对应于该域值号“2”的结束位置的值被增量“+1”从而“5”被增加到“6”。
图40是示出根据本发明实施例13的第二步骤的解释图。在第二步骤中,处理原始数据中的第二个记录(在该例中,记录号=1的那个)。记录号为“1”的记录的“职业”域的域值为“程序员”,这时,对应于记录号“1”,在值控制表的指针数组中存储指定域值“程序员”的域值号“1”。然后,抽取对应于域值号“1”的结束位置的值“3”,并且该值“3”作为一个地址来在存储了排序的结果集的记录指针数组的第3个位置设置该记录号“1”。接着对应于该域值号“1”的结束位置的值被增量“+1”,从而“3”被增加到“4”。
然后对于原始数据中的剩余的记录号“2,3,4,5,6,7,8,9”重复与上述第一和第二步骤相同的操作。图41示出这样获得的排序的最终状态。如在该图的排序结果集中所示,根据本发明实施例13的排序产生以“职业”域值号的顺序排序的记录,即按记录号顺序“2,4,6,1,7,0,3,5,8,9”进行记录。
在上述实施例13的解释中,考察了原始数据包括以原始的表格式数据的所有记录的情况,即整个集。但是,根据本发明的排序在仅对部分记录的情况,即部分集的情况也是有效的。下面是参照图42和43对部分集进行排序的解释。
图42显示出上述对部分集进行排序的状态的图。在该例中,给出的原始数据包括记录号为“0”的记录,其中“职业”域的域值是“教师”,并且记录号为“1”的记录中域值为“程序员”。当对这两条记录执行排序时,获得在该图中由排序结果集所示的排序结果。这时,结果集包括在记录指针数组中。然后,分配与整个集大小相同的区域来存储来自部分集的排序结果。
这样,在对部分集进行排序时,最好是结果集被压缩为与部分集具相同大小。图43是对部分集进行排序的后处理。该后处理,即对结果集的压缩,包括找出值控制表中每个域值起始位置与结束位置之间的差,并抽出总计,对应于所关注的域值在排序结果中存储位置,然后根据抽取的计数和存储位置对排序结果进行排序。
接着使用图50中所示的流程图对上述对整个集成部分集进行排序进行总的解释。这里,对于整个集和部分集两种情况,考虑原始数据具有以从起始处开始顺序附加的存储位置号。例如,在图38和41,存储位置号与记录号相匹配。但是当原始数据的排列顺序不是根据记录号时,存储地址号与记录号不同。注意,不用说关于上述实施的详细描述的排序可以用执行存储在规定区域中的程序的CPU100实现。
在排序时,首先,对存储地址号进行初始化(步骤5001)。接看,对于某个存储地址号访问值控制表指针数组中对应的指针(步骤5002),然后识别由指针所指定的域值号所位于的结束位置的值(步骤5003)。
然后,在记录指针数组中由上述结束位置所标识的位置存储对应的记录号(步骤5004)。然后,在步骤5003所标识别结束位置值被增量(步骤5005)。对于所有的原始数据执行上述步骤5002至5005的处理(见步骤5006和5007),然后,可能获得包括规定的记录号的记录指针数组。可以明白图39的例子对应于存储位置号为“0”的步骤5002至步骤5005。并且可以明白,图40对应于存储位置号为“1”的步骤5002至步骤5005。
另外,在排序部分集时,在执行完步骤5001至5007之后,通过排序后处理实现对结果集的压缩。(见步骤5008)。
根据本发明实施例13的排序称为“升序”排序,即排序结果按照被排序的域值的域值号上升的顺序进行排列。但是,排序结果也可以布局成“降序”排列,其中按被排序域值的域值号的降序顺序进行排列。通过修改在“升序”排序中的起始位置实现“降序”排序。在该例子中,“升序”的起始位置是:
学生      0
程序员    3
教师      5
其他      6
相反,“降序”排序的起始位置是
其他      0
教师      10-6=4
程序员    10-5=5
学生      10-3=7
根据本发明实施例13的排序具有如下优点:
首先,获得高速查找。例如,在使用Pentium Pro200MHz/视窗95的运行环境下,根据本发明的新颖查找可达到查找速度为查找一百万为145ms。相反在常规的快速排序中,查找一百万个整数为1530ms。
第二,不管作为值存储的域值类型,得到恒定性能。该排序对于即使当域值的数据类型为文本或浮点时与整数一样具有相同的性能。相反,在常规的快速排序或其它算法中,当被处理的数据类型是整数时速度最高,当类型是可变长文本时最低。
第三,即使当数据大小增加时,排序速度也不下降。使用该排序,排序速度用O(n)表示,其中n是数据大小。另一方面,对于快速排序或其它常规的高速排序方法,排序速度是O(n·log(n))。
第四,对于多个域的排序可以分为对每个域的排序。例如,在参照图38-41对本发明实施例13的描述中,在原始数据中,对应于域值为“学生”的记录以记录号“2”,记录号“4”,及记录号“6”的顺序排列。并且在最终排序结果集中预先保存该记录号顺序(即,记录号“2”,记录号“4”及记录号“6”)。这意味着,在排序结果中的记录号反应在满足排序目的的范围内进行排序前的记录顺序。通过采用本排序的该特点,通过对各域执行顺序排序可以对多个域进行排序。相反,用常规的快速排序,在排序前的状态不会反映排序结果顺序。
具体例子
在本发明的上述各实施例中,值控制表包括域值的值一览表。例如,在图7所示的例子中,域值列包括包括值“16”,“17”,“18”的一览表。另外,值控制表包括每个域值号的类别号集。下面的具体例子解释了如何使用这种值一览表和某一域值的类别号的组合来通过几种比较判断立即确定某个域的多个值是否与查找条件相匹配。
例如,考虑给出用值的大小排序的作为值一览表的下述一览表:
0.1,0.2,…
100.0,100.1,100.2,…,
1000.0
并且给出“值大于100”作为查找条件。
首先,从值一览表中找出不满足条件(在该例中为100)的最小的值。然后在最小值,即“100.”之前为值一览表中所有的值设置“0”作为类别号。另外,为“100.”之后的值一览表中的所有值设置“1”作为类别号。然后,如果可以找到最小值,则不执行任何比较操作设置类别号,从而可以获得具有满足查找条件的值的域值或域值号。
通过使用现有技术中的二等分方法或其它已知方法,可以通过最少的比较操作获得最小值。例如,如果在值一览表中的值有N个变量,则找到上述最小值所需的比较操作次数大约是log2(N)。
相反,在不对值的大小进行排序的值一览表的情况下,如果值一览表中的值有相同的N个变量,则需要N次比较操作来找到满足查找条件的值。
由于按照这种方式对值一览表进行排序并且将类别号设置到值控制表中,因而可以加速判断是否满足规定的查找条件。
另外,本领域技术人员当然可以理解,上述值一览表和查找条件内容不是用于解释该例子的唯一具体例子,根据本发明,可以加速对不同的值一览表和查找条件的不同组合进行判断是否符合规定的查找条件的速度。
接着,将描述对一百万条数据记录进行查找和列表的测试。在测试中所使用的平台是通常的配备Pentium Pro200MHz处理器和128MB存储器的个人计算机。图44是示出在测试中使用的数据的表。包括以表格式数据形式的从“000000”到“999999”范围一百万个数字的数据被分成三个域:10000的单位、100的单位、1的单位。对于每个域从“00”到99“的域值出现10,000次。
图45是根据结果集类型所检测的查找/列表一百万条记录所需的时间的测试结果一览表。结果集类型是一个两类型的结果集,即上述位标记类型和指针数组类型,测试结果中的时间以毫秒(ms;1/1000秒)为单位。
上述测试中执行的查找是对多个域的AND查找,通过将三个域“×10,000“、”×100“及”×1“用AND条件进行联接来实现。查找是按照这个顺序对域”×10,000“、”×100“及”×1“的级联。查找所得到的中间和最终结果集采用上述的位标记或指针数组的形式。测试时间是五次测试的平均时间。
另外,在这些测试中的列表包括统计“×100“和”×1“域中的各种值(00到99)在从查找测试中所得到的结果集中出现的次数。该交叉列表的表大小是(100×100=)10,000个网络。时间用毫秒为单位,五次测试的平均值作为测试时间。
对表格式数据进行查找和列表的系统构成决不限于上述实施例中所描述的例子,但是如果需要的话,可以用存储在盘设备等上的软件(程序)实现查找和列表系统的各种组成部件。查找和列表系统可以安装在计算机上以对表格式数据执行查找和列表。另外这样实施的程序可以存储在软盘或CD-ROM或其它便携式的存储介质上,并且可以以使用这种系统的通用方式使用之。
本发明决不限于上述实施例,在本发明权利要求书的范围内可以有各种修改,但不用说它们也包括在本发明的范围内。
另外,在上述实施例7和实施例8中,生成一个两维数组来对两个域执行列表,但这不是用于限制,可以生成三维或更高维的数组来执行对三个或更多域的列表,不用说可以用上述列表实现这些。考虑到对三个域进行列表,抽取三个信息块中每一个中的域值号q1、q2和q3,并且用来识别三维数组中的一个元素P(q1,q2,q3)。
进而,关于上述实施例9,不用说可以按照实施例7和实施例8的形式对三个或更多的域执行列表。
另外,尽管在上述实施例中通过将规定的程序读入通常的计算机系统并然后执行程序来执行查找、列表和/或排序,但本发明不限于此,不用说可以构成为专门用于数据处理的广义的计算机与个人计算机或其它通常的计算机系统相连,该广义计算机可以执行上述处理。因此,在该说明书中,词语装置(means)不意味着物理装置,而是包括用软件实施各种装置的功能,并且用硬件执行一些或所有功能。进而,一个单独装置的功能可以用两个或其它物理装置来实现,或两个或更多装置的功能可以用一个物理装置来实现。根据上述描述,通过本发明,可以处理以表格式表达的大量数据,而不使用需要长的访问时间的常规数据表,从而可以大大提高列表和查找速度。
本发明尤其适于处理大量数据的系统,例如数据库或数据仓库中。更具体的,它适用于大规模科学和技术计算,工厂和电厂等的控制系统,配送计划和资源分配等方法,及订单管理和行政工作的管理如保障工作的处理。

Claims (25)

1、一种用于从表格式数据中抽取对应于特定域和特定记录的域值的方法,其中该表格式数据用包括关于信息的特定域的域值的记录数组来表示,
所述方法的特征在于包括步骤:
在存储设备中保持包括按照与属于特定域的域值对应的域值号的顺序存储的域值的值控制表,及包括按照所述记录的顺序指定所述域值号的信息的域值号指定信息数组,
从所述域值号指定信息数组获取对应于所述指定记录的域值号,及
从存储在所述值控制表中的域值获取对应于上述获取的域值号的域值。
2、根据权利要求1所述的方法,其特征在于:为了对对应于所述域值号的域值进行分类,在所述值控制表中对应于所述域值号存储类别号,及
在获取对应于所述域值号的域值时访问所述类别号。
3、一种从表格式数据中查找与特定查找条件匹配的域值的方法,其中该表格式数据用包括与查找条件相关的域的域值的记录数组表示,
所述方法的特征在于包括步骤:
在存储设备中为每个个体域保持个体域信息,从而包括按照与和查找条件相关的域的域值对应的域值号的顺序存储的域值的值控制表,包括按照所述记录的顺序指定所述域值号的信息的域值号指定信息数组,及记录识别信息数组,它在固有的区域中为每个所述域值号存储与相同的域值号相关的一个或多个记录识别信息,并且所述值控制表包括为所述域值号的每一个指示与相同的域值号相关的一个或多个记录识别信息在所述记录识别信息数组中的区域的记录识别信息指定信息,
使用在所述值控制表中的与所述查找条件匹配的域值中的与关于域值的域值号对应的所述记录识别信息指定信息,从所述记录识别信息数组中获取与所述查找条件匹配的记录识别信息。
4、根据权利要求3所述的方法,其特征在于包括步骤:
基于与查找条件匹配的记录识别信息,在存储设备中保持与所述查找条件匹配的记录结果集,
关于所述其它的涉及其它查找条件的个体域信息,从关于所述其它个体域信息的所述域值号指定信息数组中获取对应于与所述结果集中的所述查找条件匹配的记录识别信息的域值号,
关于所述其它个体域信息,判断与所述抽取的域值号相关的域值是否与所述其它的查找条件匹配,
关于所述其它的个体域信息,如果与所述抽区的域值号相关的域值与所述其它查找条件匹配,抽取对应于所述域值号的记录识别信息作为与所述单独的查找条件匹配的记录识别信息,及
如果必要,抽取关于进一步的其它查找条件的关于进一步的其它个体域信息的所述域值号,并重复判断匹配和抽取记录的操作。
5、根据权利要求3所述的方法,其特征在于包括步骤:
在存储设备中保持与所述查找条件匹配的记录结果集,
关于涉及其它查找条件的域,
使用与所述查找条件匹配的存储在其它值控制表中的域值中的域值,及对应于相关域值的记录识别信息指定信息,从记录识别信息数组中抽取与所述其它查找条件匹配的记录,并将与查找条件匹配的记录存储在指定的其它记录集中,
如果必要,关于进一步的其它查找条件,使用进一步的其它记录识别信息指定信息,抽取与进一步的其它查找条件匹配的记录,并重复进一步的其它结果集的存储,及
通过从这样获得的结果集中除去重复的记录获得最终结果集。
6、根据权利要求3-5所述的方法,其特征在于所述值控制表包括,对于所述域值号的每一个,指明所述固有区域的起始位置,和指明具有相同的域值号的记录个数的总计,及
通过访问所述起始位置和总计识别规定的记录识别信息。
7、根据权利要求3-6所述的方法,其特征在于在所述值控制表中对应于所述域值号存储用于对对应于所示域值号的域值进行分类的类别号,及
使用所述类别号识别与查找条件匹配的域值。
8、一种对表格式数据进行列表的方法,其中该表格式数据用包括包含对应于域信息的域值的多个域的记录数组表示,
所述方法的特征在于包括步骤:
如果n表示等于或大于1的帧数,对于在列表中所使用的n个域的每一个,在存储设备中保持包括包含域值的值控制表的个别域信息,其中这些域值按照每个对应于属于域的域值的域值号的顺序进行存储,另外还保持包括指定按照所述记录的顺序的所述域值号的信息的域值号指定信息数组,
如果i表示范围1≤i≤n内的整数,对于第i个个体信息域,所述域值号的总数用Ni表示,Ki表示范围0≤Ki≤Ni-1内的整数,M表示大于或等于1的整数,如果m表示范围1≤m≤M内的整数,则将n维M数据空间中的元素Pm(k1,k2,…,ki,…,kn)初始化为具有大小N1×N2×…×Ni×…×Nn,
对于所述n个单独信息域,当j表示范围0≤j≤记录总数-1内的整数时,抽取在每一个域值号指定信息数组的第j个位置所存储的各域值号,并且当从第i个个体信息域中抽取的域值号用识别所述数据空间中的元素Pm(q1,q2,…,qi,…,qn)的qi表示时,
处理元素Pm(q1,q2,…,qi,…,qn)的所述识别出的值。
9、一种对表格式数据进行列表的方法,其中该表格式数据用包括包含对应于域信息的域值的多个域的记录数组表示,
所述方法的特征在于包括步骤:
如果n表示等于或大于1的整数,对于在列表中所使用的n个域的每一个,在存储设备中保持包括包含域值的值控制表的个别域信息,其中这些域值按照每个对应于属于域的域值的域值号的顺序进行存储,另外还保持包括指定按照所述记录的顺序的所述域值号的信息的域值号指定信息数组,
如果i表示范围1≤i≤n内的整数,对于第i个个体信息域,所述域值号的总数用Ni表示,Ki表示范围0≤Ki≤Ni-1内的整数,M表示大于或等于1的整数,如果m表示范围1≤m≤M内的整数,则将n维M数据空间中的元素Pm(k1,k2,…,ki,…,kn)初始化为具有大小N1×N2×…×Ni×…×Nn,
对于所述n个单独信息域,当j表示范围0≤j≤记录总数-1内的整数时,抽取在每一个域值号指定信息数组的第j个位置所存储的各域值号,并且当用qi表示从第i个个体信息域中抽取的域值号或对应于值控制表中所述域值号的所述第i个个体信息域所存储的类别号时,识别所述数据空间中的元素Pm(q1,q2,…,qi,…,qn),并且
处理元素Pm(q1,q2,…,qi,…,qn)的所述识别出的值。
10、根据权利要求9或权利要求10所述的方法,其特征在于M=1为真,并且处理所述识别的元素Pm的值的步骤包括将所述元素Pm的当前值加1。
11、根据权利要求9或权利要求10所述的方法,其特征在于处理所述识别的元素Pm的值的步骤包括:
对于M个元素Pm中的至少一个元素Pm
对于在存储设备中所保持的独立的个体域信息,获取存储在域值号指定信息数组的第j个位置上的域值号,
从存储在所述独立的个体域信息的值控制表中的域值中,获取对应于所获取的所述域值号的域值,及
更新所述元素Pm的当前值及组合所获得的所述域值的所述元素Pm的值。
12、权利要求1-11所述的方法,其特征在于所述指定域值号的信息是域值号自己。
13、权利要求1-11所述的方法,其特征在于所述指定域值号的信息是一个二进制值,其中为每个域值号分配1位,从而设定是否设定了它。
14、一种用于从表格式数据中抽取对应于特定域和特定记录的域值的装置,其中该表格式数据用包括关于信息的特定域的域值的记录数组来表示,
所述装置的特征在于包括:
存储设备,保持包括按照与属于特定域的域值对应的域值号的顺序存储的域值的值控制表,及包括按照所述记录的顺序指定所述域值号的信息的域值号指定信息数组,
域值号获取装置,从所述域值号指定信息数组获取对应于所述指定记录的域值号,及
域值获取装置,从存储在所述指控表中的域值获取对应于上述获取的域值号的域值。
15、权利要求11所述的装置,其特征在于所述存储设备保持个体域信息,它具有所述值控制表,所述域值号指定信息数组,与相同的域值号相关的一个或多个记录识别信息,及存储在固有区域中为所述域值号的每一个的记录识别信息数组,并且所述值控制表包括为所述域值号的每一个指示与相同的域值号相关的一个或多个记录识别信息在所述记录识别信息数组中的区域的记录识别信息指定信息,
进而具有查找装置,使用在所述值控制表中的与所述查找条件匹配的域值中的与关于域值的域值号对应的所述记录识别信息指定信息,从所述记录识别信息数组中获取与所述查找条件匹配的记录识别信息。
16、一种其上记录了用于对表格式数据进行查找和列表的程序的计算机可读存储介质,其中该表格式数据用包括关于信息的特定域的域值的记录数组来表示,
所述记录了程序的存储介质的特征在于包括步骤:
在存储设备中为每个个体域保持包括按照与属于特定域的域值对应的域值号的顺序存储的域值的值控制表,及包括按照所述记录的顺序指定所述域值号的信息的域值号指定信息数组,
从保持在所述存储设备中的所述域值号指定信息数组获取对应于所述指定记录的域值号,及
从存储在所述指控表中的域值获取对应于上述获取的域值号的域值。
17、一种从记录了用于从表格式数据中查找包括与查找条件匹配的域值的记录的程序的程序的存储介质,其中该表格式数据用包括与查找条件相关的域值多个域的记录数组表示,
所述程序的特征在于包括步骤:
在存储设备中为每个个体域保持个体域信息,从而包括按照与和查找条件相关的域的域值对应的域值号的顺序存储的域值的值控制表,包括按照所述记录的顺序指定所述域值号的信息的域值号指定信息数组,及记录识别信息数组,它在固有的区域中为每个所述域值号存储与相同的域值号相关的一个或多个记录识别信息,并且所述值控制表包括为所述域值号的每一个指示与相同的域值号相关的一个或多个记录识别信息在所述记录识别信息数组中的区域的记录识别信息指定信息,
使用在所述值控制表中的与所述查找条件匹配的域值中的与关于域值的域值号对应的所述记录识别信息指定信息,从所述记录识别信息数组中获取与所述查找条件匹配的记录识别信息。
18、一种可装入计算机存储器的计算机程序产品,它执行根据权利要求1-13的方法。
19、一种排序方法,其中在一个特定域重新排列包括包含关于信息域的域值的多个域的记录识别信息指定记录数组,
所述方法的特征在于包括步骤:
对于所述记录的每一个,将所述记录识别信息域对应于所述域的域值的域值号关联起来,
对于所述域值号的每一个,定义重新排列了所述记录识别信息后的存储地址,
从所述数组顺序抽取所述记录识别信息,
确定对应于所述抽取的记录识别信息的所述域值号,
根据对应于所确定的域值号的记录识别信息指定信息在所述存储地址存储所述抽取出的记录识别信息,及
更新其中要存储所述记录识别信息的所述存储地址,以存储下一个记录识别信息。
20、根据权利要求19所述的方法,进一步包括步骤:
在存储设备中为每个个体域保持个体域信息,从而包括按照与和查找条件相关的域的域值对应的域值号的顺序存储的域值的值控制表,包括按照所述记录的顺序指定所述域值号的信息的域值号指定信息数组,及记录识别信息数组,它在固有的区域中为每个所述域值号存储与相同的域值号相关的一个或多个记录识别信息,并且所述值控制表包括为所述域值号的每一个指示与相同的域值号相关的一个或多个记录识别信息在所述记录识别信息数组中的区域的记录识别信息指定信息,
所述存储步骤包括为根据记录识别信息知道能够信息在存储地址中存储记录识别信息。
21、根据权利要求20所述的方法,其特征在于所述记录识别信息指定信息包括起始位置,它指明所述存储地址区域的起始点,及技术位置,它开始时与起始位置相同,并且其值在所述更新时被增量。
22、一种排序装置,用于重新排列包括包含关于信息域的域值的多个域的记录识别信息指定记录数组,
所述装置的特征在于包括:
对于所述记录的每一个,将所述记录识别信息与对应于所述域的域值的域值号关联起来的装置,
对于所述域值号的每一个,定义重新排列了所述记录识别信息后的存储地址的定义装置,
域值号确定装置,用于从所述数组顺序抽取所述记录识别信息并对应于记录识别信息确定所述域值号,
根据对应于所确定的域值号的记录识别信息指定信息在所述存储地址存储所述抽取出的记录识别信息的记录识别信息存储装置,及
更新其中要存储所述记录识别信息的所述存储地址,以存储下一个记录识别信息的更新装置。
23、根据权利要求22所述的装置,进一步包括:
存储设备,用于为每一个个体域保持值控制表,该表包括对应于唯一识别所述域值的域值号的那个域的域值,其中该域值号是不同的域所共有的,并且具有从一个初始值开始的规定顺序,该存储设备还存储包括用于指定按照所述记录顺序的所述域值号的域值号指定信息数组,
值控制表进一步包括记录识别信息指定信息,它对应于所述域值号,指明在所述记录识别信息指定信息数组中存储了关于相同的域值号的所述一个或多个记录识别信息的区域。
24、一种其上记录了用于重新排列包括包含关于信息域的域值的多个域的记录识别信息指定记录数组的排序程序的计算机可读存储介质,
所述排序程序的特征在于包括:
对于所述记录的每一个,将所述记录识别信息域对应于所述域的域值的域值号关联起来,
对于所述域值号的每一个,定义重新排列了所述记录识别信息后的存储地址,
从所述数组顺序抽取所述记录识别信息,
确定对应于所述抽取的记录识别信息的所述域值号,
根据对应于所确定的域值号的记录识别信息指定信息在所述存储地址存储所述抽取出的记录识别信息,及
更新其中要存储所述记录识别信息的所述存储地址,以存储下一个记录识别信息。
25、一种可装入计算机存储器的计算机程序产品,它执行根据权利要求19或21之一的方法。
CNB998108049A 1998-08-11 1999-08-09 对表格式数据进行查找、列表及分类的方法和装置 Expired - Lifetime CN1194319C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP22727898 1998-08-11
JP227278/1998 1998-08-11
JP338133/1998 1998-11-27
JP33813398 1998-11-27

Publications (2)

Publication Number Publication Date
CN1317117A true CN1317117A (zh) 2001-10-10
CN1194319C CN1194319C (zh) 2005-03-23

Family

ID=26527589

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB998108049A Expired - Lifetime CN1194319C (zh) 1998-08-11 1999-08-09 对表格式数据进行查找、列表及分类的方法和装置

Country Status (7)

Country Link
US (2) USRE41901E1 (zh)
EP (1) EP1136918A4 (zh)
JP (1) JP3581831B2 (zh)
KR (1) KR100688121B1 (zh)
CN (1) CN1194319C (zh)
CA (1) CA2340008C (zh)
WO (1) WO2000010103A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101894133A (zh) * 2010-06-08 2010-11-24 用友软件股份有限公司 用于批量修改表单数据的方法和装置
CN101354721B (zh) * 2004-02-27 2011-01-26 夏普株式会社 服务器、数据处理装置及其中的数据处理方法
CN101133414B (zh) * 2005-05-24 2011-05-04 特博数据实验室公司 多处理器系统及其信息处理方法
CN101853263B (zh) * 2009-04-03 2012-09-19 鸿富锦精密工业(深圳)有限公司 资料结构化处理系统及方法
CN107066564A (zh) * 2017-03-31 2017-08-18 武汉斗鱼网络科技有限公司 一种基于安卓列表的数据处理方法及装置

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4563558B2 (ja) * 2000-07-31 2010-10-13 株式会社ターボデータラボラトリー データのコンパイル方法、および、コンパイル方法を記憶した記憶媒体
GB0100331D0 (en) * 2001-01-06 2001-02-14 Secr Defence Method of querying a structure of compressed data
JP3860992B2 (ja) * 2001-11-09 2006-12-20 株式会社ターボデータラボラトリー データの結合・提示方法、および、データ結合・提示プログラム
JP3861044B2 (ja) 2002-10-24 2006-12-20 株式会社ターボデータラボラトリー 連鎖したジョインテーブルのツリー構造への変換方法、および、変換プログラム
JP4136594B2 (ja) 2002-10-25 2008-08-20 株式会社ターボデータラボラトリー データ処理方法およびデータ処理プログラム
CN1791854B (zh) * 2003-04-16 2010-05-26 特博数据实验室公司 信息处理系统和信息处理方法
US20050027790A1 (en) * 2003-07-28 2005-02-03 Alan Dziejma System and method for an intelligent blotter engine
WO2005041066A1 (ja) * 2003-10-24 2005-05-06 Shinji Furusho 分散メモリ型情報処理システム
WO2005041067A1 (ja) * 2003-10-27 2005-05-06 Shinji Furusho 分散メモリ型情報処理システム
JP2005135221A (ja) * 2003-10-31 2005-05-26 Turbo Data Laboratory:Kk 表形式データの結合方法、結合装置およびプログラム
US7774377B2 (en) * 2003-12-03 2010-08-10 The Trizetto Group, Inc. Range definition method and system
JP4772506B2 (ja) * 2003-12-25 2011-09-14 株式会社ターボデータラボラトリー 情報処理方法、情報処理システムおよびプログラム
JP2005202535A (ja) * 2004-01-14 2005-07-28 Hitachi Ltd 文書集計方法及び装置並びにそれらに用いるプログラムを記憶した媒体
JP4559971B2 (ja) * 2004-01-29 2010-10-13 株式会社ターボデータラボラトリー 分散メモリ型情報処理システム
JP4673299B2 (ja) * 2004-04-28 2011-04-20 株式会社ターボデータラボラトリー 情報処理方法及び情報処理システム
US7890492B2 (en) * 2004-11-15 2011-02-15 Zi Corporation Of Canada, Inc. Organizing pointers to objects in an array to improve the speed of object retrieval
US7725468B2 (en) * 2005-04-08 2010-05-25 Oracle International Corporation Improving efficiency in processing queries directed to static data sets
JP2007034878A (ja) * 2005-07-29 2007-02-08 Turbo Data Laboratory:Kk 情報処理方法、情報処理装置および情報処理プログラム
US7890705B2 (en) 2005-08-15 2011-02-15 Turbo Data Laboratories, Inc. Shared-memory multiprocessor system and information processing method
US7565349B2 (en) * 2005-11-10 2009-07-21 International Business Machines Corporation Method for computing frequency distribution for many fields in one pass in parallel
JP4992301B2 (ja) * 2006-06-05 2012-08-08 富士通株式会社 検索処理方法及び装置
JP4005108B2 (ja) * 2006-09-26 2007-11-07 富士通株式会社 表示制御プログラムおよび記録媒体
JP2008250546A (ja) * 2007-03-29 2008-10-16 Fujitsu Broad Solution & Consulting Inc データ検索方法、プログラム及び装置
JP5008720B2 (ja) * 2007-04-19 2012-08-22 株式会社ターボデータラボラトリー メモリ間接参照をメモリ直接参照に変換する方法及び装置
JP2009003605A (ja) * 2007-06-20 2009-01-08 Fujitsu Broad Solution & Consulting Inc データベース管理装置,データベースシステム及びデータベース管理プログラム
US8620880B2 (en) 2008-05-30 2013-12-31 Nec Corporation Database system, method of managing database, and computer-readable storage medium
JP5392254B2 (ja) 2008-05-30 2014-01-22 日本電気株式会社 データベースシステム、データベース管理方法、データベース構造およびコンピュータプログラム
WO2010013320A1 (ja) * 2008-07-30 2010-02-04 株式会社ターボデータラボラトリー 表形式データを操作する方法、分散メモリ型マルチプロセッサ、及び、プログラム
CN101355560B (zh) * 2008-09-12 2011-12-14 深圳市联软科技有限公司 一种数据传输方法及系统
US8438173B2 (en) * 2009-01-09 2013-05-07 Microsoft Corporation Indexing and querying data stores using concatenated terms
US20100180057A1 (en) * 2009-01-09 2010-07-15 Yahoo! Inc. Data Structure For Implementing Priority Queues
US8402058B2 (en) * 2009-01-13 2013-03-19 Ensoco, Inc. Method and computer program product for geophysical and geologic data identification, geodetic classification, organization, updating, and extracting spatially referenced data records
US8667026B1 (en) 2009-01-22 2014-03-04 American Express Travel Related Services Company, Inc. Method and system for ranking multiple data sources
JP5352310B2 (ja) * 2009-03-30 2013-11-27 株式会社日立製作所 バッチ処理実行システム及びその方法
JP5499825B2 (ja) * 2010-03-29 2014-05-21 日本電気株式会社 データベース管理方法、データベースシステム、プログラム及びデータベースのデータ構造
US8738583B2 (en) * 2011-02-09 2014-05-27 Cisco Technology, Inc. Efficiently delivering event messages using compiled indexing and paginated reporting
CA2887661C (en) * 2012-10-22 2022-08-02 Ab Initio Technology Llc Characterizing data sources in a data storage system
CA2887670C (en) 2012-10-22 2021-05-25 Ab Initio Technology Llc Profiling data with location information
US9607039B2 (en) * 2013-07-18 2017-03-28 International Business Machines Corporation Subject-matter analysis of tabular data
JP6052801B2 (ja) 2013-07-31 2016-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 文書間における記載事項関連付けシステム、方法、及び、プログラム
CA2939915C (en) 2014-03-07 2021-02-16 Ab Initio Technology Llc Managing data profiling operations related to data type
US9870382B2 (en) * 2014-03-25 2018-01-16 Sap Se Data encoding and corresponding data structure
CN107402978A (zh) * 2017-07-04 2017-11-28 第四范式(北京)技术有限公司 拼接数据记录的方法及装置
US11068540B2 (en) 2018-01-25 2021-07-20 Ab Initio Technology Llc Techniques for integrating validation results in data profiling and related systems and methods
CN110264331B (zh) * 2019-04-22 2023-01-17 创新先进技术有限公司 资金数据的分析方法、装置及设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5583962A (en) 1978-12-19 1980-06-24 Sharp Corp Data retrieving system
JPS63298626A (ja) 1987-05-29 1988-12-06 Matsushita Electric Ind Co Ltd デ−タベ−ス管理方法
JPH01219927A (ja) 1988-02-29 1989-09-01 Hitachi Ltd データベースの情報検索方式
JPH03252858A (ja) * 1990-03-02 1991-11-12 Nippon Telegr & Teleph Corp <Ntt> 日本語長文検出装置
JP2585851B2 (ja) * 1990-09-20 1997-02-26 富士通株式会社 ジョイン処理方式
US5204958A (en) * 1991-06-27 1993-04-20 Digital Equipment Corporation System and method for efficiently indexing and storing a large database with high data insertion frequency
JP2905661B2 (ja) 1993-03-26 1999-06-14 富士通株式会社 情報の抽出方法
JPH07319924A (ja) * 1994-05-24 1995-12-08 Matsushita Electric Ind Co Ltd 手書き電子文書のインデックス付けおよび探索方法
US6513041B2 (en) 1998-07-08 2003-01-28 Required Technologies, Inc. Value-instance-connectivity computer-implemented database
US6523027B1 (en) 1999-07-30 2003-02-18 Accenture Llp Interfacing servers in a Java based e-commerce architecture
US6550057B1 (en) * 1999-08-31 2003-04-15 Accenture Llp Piecemeal retrieval in an information services patterns environment

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101354721B (zh) * 2004-02-27 2011-01-26 夏普株式会社 服务器、数据处理装置及其中的数据处理方法
CN101133414B (zh) * 2005-05-24 2011-05-04 特博数据实验室公司 多处理器系统及其信息处理方法
CN101853263B (zh) * 2009-04-03 2012-09-19 鸿富锦精密工业(深圳)有限公司 资料结构化处理系统及方法
CN101894133A (zh) * 2010-06-08 2010-11-24 用友软件股份有限公司 用于批量修改表单数据的方法和装置
CN107066564A (zh) * 2017-03-31 2017-08-18 武汉斗鱼网络科技有限公司 一种基于安卓列表的数据处理方法及装置
CN107066564B (zh) * 2017-03-31 2020-10-16 武汉斗鱼网络科技有限公司 一种基于安卓列表的数据处理方法及装置

Also Published As

Publication number Publication date
CN1194319C (zh) 2005-03-23
KR100688121B1 (ko) 2007-03-09
US6643644B1 (en) 2003-11-04
CA2340008A1 (en) 2000-02-24
KR20010085359A (ko) 2001-09-07
WO2000010103A1 (fr) 2000-02-24
USRE41901E1 (en) 2010-10-26
JP3581831B2 (ja) 2004-10-27
EP1136918A1 (en) 2001-09-26
CA2340008C (en) 2008-09-23
EP1136918A4 (en) 2006-03-29

Similar Documents

Publication Publication Date Title
CN1194319C (zh) 对表格式数据进行查找、列表及分类的方法和装置
CN1144145C (zh) 用于数据仓库的选择聚集层和交叉产品层的方法和装置
CN1109994C (zh) 文件处理装置与记录媒体
CN1171162C (zh) 基于字符分类检索字符串的装置和方法
CN1108579C (zh) 在序列同源性检测中完成模式词典组成的方法和设备
CN1306437C (zh) 用于链接表格式数据的方法以及表现链接的表格式数据的方法
CN101044484A (zh) 信息处理装置、方法以及程序
CN101036141A (zh) 具有持久性、用户可访问的位图值的数据库管理系统
CN1281191A (zh) 信息检索方法和信息检索装置
CN1132564A (zh) 用于数据存储与检索的方法与装置
CN1752963A (zh) 文档信息处理设备、文档信息处理方法及处理程序
CN1728140A (zh) 信息检索系统中基于短语的索引编制
CN1728142A (zh) 信息检索系统中的短语识别
CN1558348A (zh) 将基于模式的分级数据结构转换成平面数据结构的方法以及系统
CN1276575A (zh) 数据库存取系统
CN1310173C (zh) 表格式数据显示方法、插入方法、删除方法和更新方法
CN1728141A (zh) 信息检索系统中基于短语的搜索
CN1728143A (zh) 基于短语产生文献说明
CN1552032A (zh) 数据库
CN1317116A (zh) 值一实例连接的计算机实现的数据库
CN1151465C (zh) 利用候选表进行分类的模式识别设备及其方法
CN1680942A (zh) 文档组分析设备、文档组分析方法及文档组分析系统
CN1761956A (zh) 基于片段的串行化系统与方法
CN1839401A (zh) 信息处理装置及信息处理方法
CN1190477A (zh) 修改现有数据库以反映相应对象模型变化的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: KLEANAIRE DATA LABS CO.,LTD.

Free format text: FORMER OWNER: ANTIQUARIAN HORN

Effective date: 20060901

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20060901

Address after: Kanagawa, Japan

Patentee after: Turbo Data Laboratory Inc.

Address before: Kanagawa

Patentee before: Furusho Shinji

EE01 Entry into force of recordation of patent licensing contract

Assignee: Fujitsu Broad Solution & Consu

Assignor: Turbo Data Laboratory Inc.

Contract fulfillment period: 2009.10.26 to 2026.4.16

Contract record no.: 2009990001259

Denomination of invention: Method for retrieving, listing and sorting table-formatted data, and recording medium recorded retrieving, listing or sorting program

Granted publication date: 20050323

License type: General permission

Record date: 20091112

LIC Patent licence contract for exploitation submitted for record

Free format text: COMMON LICENSE; TIME LIMIT OF IMPLEMENTING CONTACT: 2009.10.26 TO 2026.4.16; CHANGE OF CONTRACT

Name of requester: CO., LTD. FUJITSU BSC

Effective date: 20091112

CX01 Expiry of patent term

Granted publication date: 20050323

CX01 Expiry of patent term