CN1449531A - 数据编译方法 - Google Patents

数据编译方法 Download PDF

Info

Publication number
CN1449531A
CN1449531A CN01814732A CN01814732A CN1449531A CN 1449531 A CN1449531 A CN 1449531A CN 01814732 A CN01814732 A CN 01814732A CN 01814732 A CN01814732 A CN 01814732A CN 1449531 A CN1449531 A CN 1449531A
Authority
CN
China
Prior art keywords
numerical value
array
intermediate mass
project
order
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
CN01814732A
Other languages
English (en)
Other versions
CN100465946C (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
Turbo Data Laboratories Inc
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 Turbo Data Laboratories Inc filed Critical Turbo Data Laboratories Inc
Publication of CN1449531A publication Critical patent/CN1449531A/zh
Application granted granted Critical
Publication of CN100465946C publication Critical patent/CN100465946C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/32Merging, i.e. combining data contained in ordered sequence on at least two record carriers to produce a single carrier or set of carriers having all the original data in the ordered sequence merging methods in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • 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/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

一种数据编译方法,用于将表格格式数据转换为一种含有数值列表的信息块的形式,在其中表格格式数据被表示为记录的一个数组,其中每个记录都包括项目以及各项目所含的项目数值,上述表格格式数据被这样排列,使得项目数值均按照预定顺序排列,并且没有冗余,以及一个位置指定数组,其中含有位置指定号码,用以在数值列表中指定项目数值并与记录号码相关。邻接的部分中间块(811-0,811-1),其中包括一个含有涉及记录号码的项目数值的项目数值数组,一个顺序指定数组(VLP),用于指定项目数值在项目数值数组中的位置,以及一个位置指定数组(PV),用于指定元素在顺序指定数组中的位置。上述部分中间块被合并,以生成新的部分中间块(812-0),并且部分中间块的合并操作被重复执行,直到各块被合并成一个为止。

Description

数据编译方法
技术领域
本发明涉及一种数据处理方法以及数据处理装置,通过使用信息处理装置,例如计算机,用以处理大量数据。更具体地说,本发明涉及一种方法和装置,用以将处于任意表格格式之中的数据转换为处于适于快速处理的预定格式的数据。
背景技术
对大量的数据(例如数据库)进行检索、总结(summarize)和排序,或者进行连接与更新,都需要大量的时间。为了解决这个问题,本发明人提出了一种方法,用于在一种表格格式中极快地进行检索、总结和排序,以及一种方法,用于进行连接与更新,或者用于对处于一种表格格式之中的数据进行事务处理(JP-A-10-227278和JP-A-10-338133:PCT/JP99/04300,JP-A-11-151156:PCT/JP00/03465,以及JP-A-11-215450:PCT/JP00/05135)。
根据一系列已提出的这些方法,就能通过不使用索引来创造性地进行统一的处理。此外,通过保持效率,就能在一个子集中进行处理。
为了实现快速检索、总结、排序、连接和更新,必须将处于给定的表格格式之中的数据转换为处于预定格式之中的数据(在下文中,这种处理将被称为“编译”或“编译处理”)。在这种形式中,如图2所示,提供了一个数值列表以及一个数组(指针数组)。在数值列表中,以无冗余方式、按照预定顺序来定位一个给定项目的项目数值。该数组包括对应于记录号码的元素。每一个元素都在含有对应于记录号码的项目数值的数值列表中指定一个位置。处于预定格式之中的一个给定项目的一个数据组被称为信息块。
在下列情形下需要编译处理:
(1)在新给出的表格格式之中的数据应当被转换并且被存储为处于预定格式之中的数据时;
(2)从一个或多个项目来计算一个新项目时;以及
(3)在一种表格格式之中的数据应当被添加到处于其他表格格式之中的数据时,例如,在将二月份的表格添加到一月份的表格时。
为了实现在这些情形下的编译处理,按照常规是通过使用一种已知的排序方法(例如,快速排序),以不同的顺序来排列处于一个数值列表之中的项目数值。
然而,当使用已知的排序方法来生成一个信息块时,可能会出现下列问题:
(1)一般来说,需要进行O(n*log(n))次比较计算,这需要大量的处理时间;
(2)当特殊地使用快速排序时,在某些数据分布中,处理效率可能会极度地降低;以及
(3)难以通过使用多处理器来进行快速排序。
本发明的一个目标就是提供一种数据编译方法,它允许较快的处理时间,同时,不会在某些数据分布中极度地降低处理效率。
本发明可以同样有效地应用于单一处理器的情形。特别是,本发明的另一个目标就是提供一种数据编译方法,它能在一个大规模的并行系统中,显著地改进其性能。
发明内容
通过一种数据编译方法就能实现本发明的各项目标。该方法将表格格式数据转换为一种信息块形式,上述表格格式数据被表示为记录的一个数组,其中每个记录都包括一个项目以及其中所含的项目数值;上述信息块形式具有一个数值列表,其中包括按照预定顺序、无冗余排列的项目数值,以及一个位置指定数组,含有位置指定号码,用以根据记录号码在数值列表中指定项目数值,该方法包括下列各步骤:
在表格格式数据中,生成一个含有一个项目数值数组的部分中间块,上述项目数值数组包括对应于记录号码的项目数值,一个顺序指定数组,用以指定项目数值在项目数值数组中的位置,以及一个位置指定数组,用以在顺序指定数组中指定元素,该部分中间块初始地对应于一个单一的记录;
选择相邻的部分中间块,并生成由第一部分中间块和第二部分中间块组成的一个对子;
合并该对子的项目数值数组,以生成一个新项目数值数组;
确定顺序指定数组的元素,以便在已合并的新项目数值数组中,通过将该对子中属于第一部分中间块的项目数值与属于第二部分中间块的项目数值进行比较,来以预定的顺序规定项目数值;
当顺序指定数组的元素被确定时,确定位置指定数组的元素以便规定在合并前的项目数值;以及
重复选择相邻的部分中间块并结成对子,并生成一个新的部分中间块,其中包括一个已合并的项目数值数组,以及其元素已被确定的一个顺序指定数组以及位置指定数组,以便最后生成一个部分中间块,
其中,最后生成的部分中间块是一个信息块,并且其中一个数值列表包括顺序指定数组以及项目数值数组。
根据本发明,部分中间块是成对的,并且,通过对部分中间块的项目数值进行比较,来确定在对子中的项目数值的顺序。通过顺序地将相邻的各个部分中间块结成对子,来生成新的部分中间块,这就是说,在一种所谓的锦标赛(tournament)的形式中,生成一个较大的部分中间块。根据本发明,对“n”个记录来说,当项目数值完全不同时,比较次数约为“n*(log2(n)-1)”次,即,0(n*log(n))。然而,当只有“m(n>m)”个项目数值为不同并且当“m”显著地小于“n”时,比较次数才会降低到大约“n”。即使当“m”为相对地较大时,比较次数也为“m*(log2(n)-1)”。换句话说,可以对处理效率进行评估。此外,即使当处理效率为最低时,处理效率仍然不低于0(n*log(n))。
而且,由于采用所谓的锦标赛的形式,可以适当地通过多处理器,以并行方式来进行部分中间块的对子的比较。这样一来,就能显著地缩短处理时间。
根据本发明的一个优选实施例,确定顺序指定数组的元素的步骤包括下列各步骤:生成一个新的顺序指定数组;以及将在第一部分中间块中的项目数值与在第二部分中间块中的项目数值进行比较,确定较高的一个,并且从在新顺序指定数组中较高的项目数值开始,顺序地定位由项目数值指定的第一部分中间块或第二部分中间块中的顺序指定数组的数值。
确定位置指定数组的元素的步骤包括下列各步骤:生成一个位置指定重定义数组,用以指定新的顺序指定数组;以及当顺序指定数组的数值被定位之后,对元素进行定位,用以规定定位于新的顺序指定数组的数值在第一部分中间块或第二部分中间块的位置指定重定义数组中的相应位置。
该方法还包括一个在位置指定重定义数组中转换位置指定数组的数值,并获得一个新的位置指定数组的步骤。
根据本发明,各信息块的数值列表可以是一个顺序指定数组和一个项目数值数组。可供选择地,根据另一个实施例,本方法包括这样一个步骤:在最后生成一个部分中间块之后,顺序地定位由顺序指定数组中位置较高的元素所规定的项目数值,以便生成一个在其中项目数值按照预定顺序、无冗余地定位的新项目数值数组。
本发明的各项目标可以通过一种计算机可读介质来实现。该计算机可读介质存储着含有上述各步骤的程序。而且,本发明的各项目标可以通过一段程序来实现,该程序令计算机去执行上述各步骤。
附图说明
图1是一个方框图,表示一个能实行根据本发明的一个实施例的检索、总结和查找方法的计算机系统的硬件配置;
图2表示在该实施例中所使用的一个信息块;
图3A是表格格式数据的一个实例;图3B至3D这3个图表示基于表格格式数据的各种信息块的实例;
图4A表示表格格式数据的另一个实例;图4B和4C表示基于表格格式数据的一个信息块的其他实例;
图5是一个流程图,表示针对一个单一项目的检索方法;
图6A和6B分别表示介于记录号码以及针对一个给定项目的项目数值之间的关系,以及根据本实施例的一个完整的信息块;
图7是一个流程图,表示根据本实施例的编译处理过程的要点;
图8A至8C表示在根据本实施例的处理步骤中的部分中间块的一些实例;
图9是一个流程图,表示通过将根据本实施例的两个部分中间块加以合并,以便生成一个新的部分中间块的处理过程的要点;
图10是一个流程图,详细表示在图9中的步骤904的处理过程;
图11是一个流程图,详细表示在图10中的步骤1005的处理过程;
图12是一个流程图,详细表示在图10中的步骤1007和1013的处理过程;
图13是一个流程图,详细表示在图10中的步骤1009和1011的处理过程;
图14是一个流程图,详细表示在图10中的步骤1014的处理过程;
图15A和图15B表示通过对初始部分中间块加以合并,来生成一个新的部分中间块的实例;
图16表示生成一个根据本实施例的新的PV的处理过程;
图17A和17B表示根据本实施例对部分中间块进行合并时的各种状态;
图18A至18D分别说明根据本实施例对各个部分中间块进行合并的处理过程;
图19A至19C分别说明根据本实施例对各个部分中间块进行合并的处理过程;
图20A和20B这两个实例分别表示用以生成一个根据本实施例的新的PV的处理过程;
图21A至21C分别说明根据本实施例对各个部分中间块进行合并的处理过程;
图22A至22C分别说明根据本实施例对各个部分中间块进行合并的处理过程;
图23A和23B分别表示用以生成一个根据本实施例的新的PV的处理过程;
图24是一个流程图,表示根据本实施例用于生成一个压缩型数值列表的处理过程;
图25A和25B说明根据本实施例用于生成一个压缩型数值列表的处理过程;
图26表示根据本实施例用于检查处理速度的一个数组的实例。
具体实施方式
在下文中,将参照附图,对本发明的实施例进行说明。
图1是一个方框图,表示一个能实行根据本发明的一个实施例的检索、总结和搜索方法的计算机系统的硬件配置。如图1所示,计算机系统10具有与通常的计算机相同的配置。计算机系统10包括一个CPU 12,通过执行各项程序,来控制整个系统以及各个部件,一个随机存取存储器(RAM)14用于存储工作数据等,一个只读存储器(ROM)16用于存储各项程序等,一个静止存储器介质18(例如一个硬盘),一个CD-ROM驱动器20用于访问CD-ROM 19,一个接口(I/F)22,用于与被连接到CD-ROM驱动器20以及外部网络(未示出)的外部终端建立接口关系,一个输入设备24,包括一个键盘和/或一个鼠标以及一个CRT显示装置26。CPU 12,RAM 14,ROM 16,外存储器介质18,接口22,输入设备24,以及显示装置26通过总线28互相连接。
在CD-ROM 19中,可以存储着根据本实施例的用于编译任意表格格式数据的程序,用于生成含有来自已编译的表格格式数据的一个预定项目的表格(视图)的程序,检索程序,总结程序以及排序程序。然后,可以由CD-ROM驱动器20对CD-ROM 19进行读出。可供选择地,也可以事先将这些程序存储在ROM 16之中。从CD-ROM 19读出的各项程序可以存储在外部存储器介质18的一个预定区域之中。可供选择地,也可以通过一个网络(未示出)、一个外部终端以及接口22从外部提供这些程序。
根据本发明,对任意表格格式数据进行编译,以建立具有信息块集合形式的数据,这些信息块集合可以快速地被检索、被总结以及被排序。用于建立数据的快速编译方法是本发明的实质内容。
本发明人已经提出了一种检索、总结和排序方法(JP-A-10-227278:PCT/JP99/04300),该方法使用具有一种信息块集合形式的数据。而且,本发明人也已经提出了一种用于连接数据的方法,以及一种通过具有该种形式的数据、用于删除/添加/更新数据的方法(JP-A-11-151156:PCT/JP00/03465以及JP-A-11-215450:PCT/JP00/05135)。首先,将说明这些信息块的结构以及通过使用这种结构来进行搜索。然后将说明各信息块的生成(编译)。
图2表示在本实施例中所使用的信息块。如图2所示,信息块100含有一个数值列表110和一个指向数值列表的指针数组120。数值列表110是一个表格,其中存储了表格格式数据中与项目数值号码相对应的每个项目的项目数值111。项目数值号码(整数)指的是属于一个给定项目的项目数值的顺序。指向数值列表的指针数组120是存储表格格式数据的列(即,一个给定项目)的项目数值号码的数组。也就是说,指向按照表格格式数据的记录号码顺序排列的数值列表110的指针。
当给定一个记录号码时,通过将指向数值列表的指针数组120与数值列表110组合在一起,就能从涉及一个预定项目的指向数值列表的指针数组120中取出按照该记录号码而被存储的项目数值号码。接下来,在数值列表110中取出按照项目数值号码而被存储的一个项目数值。这样,在记录号码的基础上,就能得到该项目数值。因此,像普通的数据表一样,通过使用包括记录号码(行)和项目(列)的坐标,就能查找所有的数据(项目数值)。
图3A所示的表格格式数据就是一个实例。在该实例中,向各项目给定了各种项目数值,包括客户标识,客户名字和电话号码。根据本实施例,表格格式数据是按照图3B-3D所示的格式作为信息块而被保存的。例如,在图3B中,指针数组120-1是与数值列表110-1相关的,数值列表110-1存储着表示客户标识的项目数值。换句话说,也就是指向第一个记录(记录号码为“0”)的指针数组的指针数值为零(0)。相应地,项目数值“1”表示可以得到客户标识。在图3B中,指针数组120-2与数值列表110-2相关,该数值列表存储着表示客户名字的项目数值。例如,在指针数组中与第一项记录(记录号码“0”)相对应的指针数值为“5”。相应地,就可以得到表示客户名字的项目数值“Williams”。在图3C中,类似地和明显地,指针数组120-3与数值列表110-3相关,该数值列表存储着表示电话号码的项目数值。在每个数值列表中,项目数值按照预定的顺序排列(在本实例中按升序排列)。
而且,根据本实施例,信息块100的数值管理表包含数值列表110,一个用于检索和总结的分类号标志数组,一个起始位置数组,用于指示存储与项目数值相对应的指针的存储器空间的第一地址,以及一个基数数组。分类号标志数组中的各标志和基数数组中的基数分别对应于项目数值。通常,分类号标志的标志数值通常为“0”,在进行检索和/或总结时,根据待查找的项目数值,它被设置为“1”。基数与具有给定项目数值的记录号码相对应。起始位置与基数的总和相对应,所述基数是与低于相应指针数值的指针数值相对应的。因此,并不总是需要起始位置。
图4A是表示表格格式数据的另一个实例的示意图。图4B和图4C分别表示与“性别”和“年龄”相关的信息块。如图4B所示,与“性别”相关的信息块200-1的值管理表210-1含有与指针数组220中的指针数值对应的项目数值(“男”和“女”),分类号,起始位置,以及与项目数值相对应的基数。例如,与指针数值“0”(也就是数值列表中的项目数值为“男”)相对应的记录数为632,564。另一方面,与指针数值“1”(也就是数值列表中的项目数值为“女”)相对应的记录数为367,426。与每个项目数值相对应的起始位置表示指向记录的一个指针数组230-1的第一地址。这将在以后加以叙述。很显然,图4C中的情况也是如此。
下面将对使用具有数据结构的信息块进行检索的实例进行说明。图5是涉及单一项目检索方法的流程图。中央处理器(CPU)12(见图1)通过执行一个预定的检索程序来完成处理。在本例中,对“年龄”方面的项目数值为16岁或19岁的记录进行检索。首先,在涉及表格格式数据的各信息块中,规定示于图4C的与“年龄”有关的一个信息块200-2(步骤501)。
其次,在已规定的信息块的数值列表210-2中,具有与检索条件(16岁或19岁)相匹配的行的分类号被设置为“1”(步骤502)。在本例中,与项目数值“0”和项目数值号码“3”相对应的行的分类号被设置为“1”。然后,就得到了对应于分类号被设置为“1”的行的起始位置和基数(步骤503)。这些类信息被称为指针取出(pointer taking-out)信息。在步骤503所获得的指针取出信息的基础上,从指向记录的指针数组中取出表示指向匹配于检索条件的记录的指针的记录号码(步骤504)。在本例中,指向与项目数值号码“0”相对应的记录的指针被存储在从起始位置“0”开始的一个区域,也就是说,从第一号地址起,直到第45898号地址为止。另一方面,指向项目数值号码“3”所对应的记录的指针被存储在指向记录的指针数组中从第2383137号地址到第189653号地址的区域。最后,为了在以后处理中加以应用,生成已检索到的记录号码的数组,并且作为一个结果集合被保存(步骤505)。
可以通过使用分类号、起始位置和基数来实施总结和排序。
下面,对生成信息块的编译处理过程进行说明。在编译处理过程中,生成一个数值列表。与给定项目有关的随机排列的数据以无冗余的方式、按照一种给定的顺序(例如,按照字母顺序)在数值列表中进行排序。图6A是表示在表格格式数据中对一个给定项目的各项记录和项目数值的示意图。在如图6A所示的根据本实施例的编译处理过程中,以图6B所示的形式,为一个具有随机排列的项目数值的项目生成一个信息块。
在图6B中,信息块600包含一个指向数值列表(以下称为“PV”)的指针数组601和一个数值列表602。紧接在编译处理过程之后,数值列表602含有一个存储着各项原始项目数值603的数组(原始项目数值数组)和存储着原始项目数值数组603的位置号码的数组604(以下称为“VLP”)。指针数组(PV)可能就是位置指定数组,因为在数值列表中的项目数值已被指定。而且,VLP也可能是一个位置指定数组,因为VLP指定项目数值的顺序。紧接在编译处理过程之后的信息块的形式与图3B所示的上述信息块的形式稍有不同。但是,通过在后面描述的处理,信息块就能拥有相同的形式。
图7是一个流程图,表示本实施例编译处理过程的要点。如图7所示,在编译处理过程中,举例来说,计算机系统10读出存储在静态存储介质18中的表格格式数据(步骤701)。然后,计算机系统10识别需要生成信息块的项目(步骤702)。例如,可能为所有的项目生成信息块。另外一种情况就是只生成针对某个规定的任意项目的信息块。考虑到处理时间,已读出的表格格式数据最好暂时地保存在RAM 14之中。
其次,计算机系统10从表格格式数据中选择一个预定的项目。然后,计算机系统10通过与记录号码建立关联,来取出与该项目有关的数据(项目数值)(步骤703)。这样一来,就能取出例如具有如图6A所示形式的数据。接着,生成针对该项目的一个信息块(步骤704)。其处理步骤将在下面详细说明。对所有已规定的项目都执行步骤703和704(见步骤705和706)。因此,针对预定项目的信息块完成。
下面,将详细说明步骤704的处理过程。通过对相邻的记录顺序地加以组合以及通过确定在该组合的PV和/或VLP中的数值,来实施步骤704的处理过程。例如,如图8A所示,4n+1个部分中间块801-0至801-(4n)初始地被认为是具有记录号码0至4n的项目(记录的数目=4n+1)。相邻的两个部分中间块(例如,一个部分中间块801-0以及一个部分中间块801-1)被组合。然后,考虑一个示于图8B的新的部分中间块(例如,部分中间块811-0)。在新的部分中间块中,在PV和VLP中的各项数值均被更新。这里,如图8B所示,生成了(2n+1)个新的部分中间块。
而且,相邻的两个部分中间块(例如,部分中间块811-0以及811-1)被组合。如图8C所示,生成了一个新的部分中间块(例如,部分中间块821-0)。然后,新的部分中间块的PV和VLP中的各项数值均被更新。
通过重复执行这样的处理过程,就能最后生成将两个部分中间块组合而成的一个新块。该块是一个信息块。图9是表示这样的处理过程的流程图。
在图9的步骤901中生成的初始的各个部分中间块对应于图8A中的各个部分中间块。相邻的各个部分中间块被选出,直到最后一块为止(步骤902)。它们被合并,并且获得用于一个转换数组(以下称为“TR”)和/或用于表示合并后的新的存储位置号码的一个数组(以下称为“VLP’”)的空间(步骤903)。其次,在已合并的部分中间块的PV和/或VLP中的各项数值均被更新(步骤904和905)。TR被用来重新定义PV。因此,TR可能是一个位置指定重定义数组。
当已经以一定的层次将部分中间块合并到部分中间块的末尾时,确定已合并的部分中间块的数目是否为1(步骤906)。在这里,若结果为“是”,则这一个部分中间块就是一个完成的信息块。另一方面,若结果为“否”,则在步骤902至905,对已合并的多个部分中间块再次进行处理。
下面,将参照在图6A中所示的记录号码以及对应于项目“姓”的项目数值,详细说明在图9中,特别是在步骤902至904中的处理过程。
首先,如图15A所示,生成9个初始部分中间块(见图9中的步骤901)。在这里,起始处的部分中间块1501-0和1501-1被合并。然后,对PV和VLP进行更新(见图9中的步骤904)。
图10是一个流程图,详细说明在图9的步骤904中的处理过程。在处理过程中,分别将待合并的两个部分中间块中有较小的记录数的以及有较大的记录数的称为第一部分中间块和第二部分中间块。定位于第一部分中间块的、在VLP中指定一个数值以表示待比较的一个项目数值的指针被称为第一比较位置指针。定位于第二部分中间块的、在VLP中指定一个数值以表示待比较的一个项目数值的指针被称为第二比较位置指针。在图10的处理过程的开始,比较位置指针在每一个部分中间块中都指定一个具有最小记录号的VLP数值。而且,指定用以存储在处理过程中生成的一个VLP’中的数值的位置的指针被称为存储位置指针。在进行图10的处理之前,第一比较位置指针、第二比较位置指针以及存储位置指针都被设置在起始位置(在每一个VLP中的开始位置)上。
如图10所示,计算机系统10取出由第一比较位置指针所指定的一个项目数值(第一指定数值),以及由第二比较位置指针所指定的一个项目数值(第二指定数值),并对这些数值进行比较(步骤1001至1003)。接着,根据第一指定数值以及第二指定数值的大和小,或者根据第一比较指针和第一比较指针的位置,执行不同的处理过程(见步骤1004至1014)。
在图15A所示的部分中间块1501-0和1501-1中,第一比较位置指针起初在部分中间块1501-0中指定“Smith”。另一方面,第二比较位置指针起初在部分中间块1501-1中指定“Carter”。因此,它们的比较(见图10中的步骤1003)将导致“第一指定数值>第二指定数值”(见步骤1008)。在这种情况下,本方法进入步骤1009,执行图13所示的处理过程。
更详细地说,对应于由第二比较位置指针所指定的项目数值“Carter”的一个VLP数值“1”被规定(步骤1301)。VLP数值“1”被存储在由VLP的存储位置指针所指定的一个位置(起始位置,即,存储位置号码为“0”的位置)上(步骤1302)。其次,给出存储位置指针所在的一个存储位置号码(在本例中为“0”),作为对应于第二比较位置指针的位置的一个TR数值(步骤1303)。
然后,计算机系统10将第二比较位置指针移动到下行一侧(存储位置号码变大的一侧)(步骤1304)。此外,计算机系统10将存储位置指针移动到下行一侧(步骤1305)。
进行此项处理之后,再次进行步骤1001至1003的处理。然而,当第二存储位置指针被移动到上述实例中的下行一侧时,由第二比较指针所指定的一个项目数值并不存在。因此,步骤1012的结果为“是”。接着,进行图12所示的处理。
更详细地说,对应于由第一比较位置指针所指定的项目数值“Smith”的一个VLP数值“0”被识别(步骤1201)。VLP数值“0”被存储在由VLP’的存储位置指针所指定的一个位置(第二位置,即,存储位置号码为“1”所指示的位置)上。其次,给出表示存储位置指针的位置的一个存储位置号码(在本例中为“1”),  作为对应于第一比较位置指针的位置的一个TR数值(步骤1203)。然后,第二比较位置指针被移动到下行一侧(存储位置号码变大的一侧)(步骤1204)。存储位置指针也被移动到下行一侧(步骤1205)。
然后,再次执行步骤1001至1003。然而,由第一比较指针和第二比较指针所指定的两个项目数值并不存在。因此,步骤1004至1012的结果为“否”。接着,处理过程进入步骤1014。
更详细地说,在第一部分中间块(见图15A中的参考数字1501-0)中,PV数值被转换为一个对应的TR数值,以便生成一个新的PV数值(步骤1401)。在第二部分中间块(见图15A中的参考数字1501-1)中,PV数值被转换为一个对应的TR数值,以便生成一个新的PV数值(步骤1402)。图16特别地说明新的PV和VLP各项数值的生成。例如,在第一部分中间块1501-0中取出一个PV(旧PV)1601的一个元素(数值)“0”,并且规定具有由该元素所指定的一个存储位置号码的一个TR 1602的一个元素(数值)。由于该元素(数值)为“1”,所以,旧PV中的元素“0”可以被存储在由该TR的该元素所指定的存储位置号码所指定的一个新的PV 1603的位置上。在第二部分中间块中,执行相同的处理。因此,就能生成一个新的PV。
通过重复执行在图10的步骤1001至1013中的处理过程而生成的一个VLP’变为一个新的VLP(见图16中的步骤1403以及参考数字1604)。
对其他部分中间块集合执行图10所示的处理过程,以便生成新的PV’和新的VLP’。通过着重于在图10至14中迄今尚未被说明的处理部分,来说明对其他部分中间块集合所进行的处理。例如,在图15A所示的部分中间块1501-4中,第一比较位置指针起初指定“Carter”。另一方面,在图15A所示的部分中间块1501-5中,第二比较位置指针起初指定“Smith”。它们的比较将导致“第一指定数值<第二指定数值”(在步骤1006中的“是”)。处理过程进入步骤1007,执行图12所示的处理过程。
在图12中,对应于由第一比较位置指针所指定的项目数值“Carter”的一个VLP数值“4”被规定(步骤1201)。然后,VLP数值“4”被存储在由VLP’的存储位置指针所指定的一个位置(存储位置号码为“4”的位置)上(步骤1202)。其次,给出存储位置指针所在的一个存储位置号码(在本例中为“4”),作为对应于第一比较位置指针的位置的一个TR数值(步骤1203)。
然后,计算机系统10将第一比较位置指针移动到下行一侧(存储位置号码变大的一侧)(步骤1204)。存储位置指针也被移动到下行一侧(步骤1205)。
进行上述处理之后,再次进行步骤1001至1003的处理。然而,在这个实例中,当第一比较位置指针被移动到下行一侧时,由第一比较指针指定的一个项目数值并不存在。因此,在这里,步骤1010的结果为“是”。接着,执行图13所示的处理过程。
在图13所示的处理过程中,对应于由第二比较位置指针所指定的项目数值“Smith”的一个VLP数值“5”被规定。VLP数值“5”被存储在由VLP’的存储位置号码“5”所指定的一个位置上(步骤1301和1302)。给出存储位置号码“5”,作为对应于第二比较位置指针的一个TR数值(步骤1303)。其次,第二比较位置指针以及存储位置指针都被移动到下行一侧(步骤1304和1305)。
在这里,由第一比较指针以及第二比较指针指定的项目数值均不存在。因此,处理过程进入步骤1014,生成一个新的PV和一个新的VLP(见步骤1401至1403)。
其次,在图15A所示的部分中间块1501-7中,第一比较位置指针起初指定“Greene”。另一方面,在图15A所示的部分中间块1501-7中,第二比较位置指针起初指定“Greene”。它们的比较将导致“第一指定数值=第二指定数值”(在步骤1004中的“是”)。然后,处理过程进入步骤1005。
在图11中,对应于由第一比较位置指针所指定的项目数值“Greene”的一个VLP数值“6”被规定。然后,VLP数值“6”被存储在该VLP’中由存储位置指针所指定的一个位置(即,存储位置号码“6”)上(步骤1102)。其次,给出存储位置指针所在的存储位置号码“6”,作为对应于第一比较位置指针的一个TR数值(步骤1103)。随后,第一比较位置指针被移动到下行一侧。
类似地,给出存储位置指针所在的存储位置号码“6”,作为对应于第二比较位置指针的位置的一个TR数值,(步骤1105)。随后,第二比较位置指针被移动到下行一侧(步骤1106)。
这样一来,当在两个部分中间块中存在相同的项目数值时,通过消除重复,将该数值存储在VLP’之中。
在后继的处理中,由第一比较位置指针和第二比较位置指针所指定的项目数值均不存在。处理过程进入图4所示的处理,在此生成一个新的PV以及一个新的VLP。
这样一来,就能获得如图15B中的参考数字1511-0至1511-4所表示的新的部分中间块。对这些部分中间块执行在图9至14中所示的处理过程。在这里,如图17A所示,部分中间块1511-0保留原样。部分中间块1511-1和1511-2以及部分中间块1511-3和1511-4被组成对子。对部分中间块的对子中的每一个进行处理。
下面,将参照流程图,再次对部分中间块1511-1和1511-2组成的对子的处理过程进行说明。如图18A中的箭头A,B和C所示,开始时,第一比较位置指针,第二比较位置指针以及第三比较位置指针均被定位于VLP’和VLP’的开始处。
在图10中,取出由第一比较位置指针(图18A中的箭头A)所指定的一个VLP数值“3”所规定的一个项目数值“Greene”(见步骤1011)。另一方面,取出由第二比较位置指针(图18A中的箭头B)所指定的一个VLP数值“4”所说明的一个项目数值“Carter”(步骤1012)。
介于第一指定数值“Greene”以及第二指定数值“Carter”之间的比较将导致“第一指定数值>第二指定数值”(在步骤1008中的“是”),因此,执行图13所示的处理过程。这样一来,如图18B所示,VLP数值“4”以及在TR中的一个预定数值被定位于由存储位置指针(箭头C)所指定的一个位置上。然后,第二比较位置指针以及存储位置指针被移动到下行一侧(见箭头B’和C’)。
其次,对由第一比较位置指针(图18B中的箭头A)所指定的一个VLP数值“3”所规定的一个项目数值“Greene”以及由第二比较位置指针(图18B中的箭头B’)所指定的一个VLP数值“5”所规定的一个项目数值“Smith”进行比较(图10中的步骤1001至1003)。在这种情况下,第一指定数值<第二指定数值。因此,处理过程进入步骤1007。如图18C所示,由第一比较位置指针所指定的一个VLP数值“3”以及一个预定的TR数值均被定位于由存储位置指针(图18C中的箭头C)所指定的位置上。然后,第一比较位置指针和存储位置指针被移动到下行一侧(见箭头A’和C’)。
再有,对由第一比较位置指针(图18C中的箭头A’)所指定的一个VLP数值“2”所规定的一个项目数值“Smith”以及由第二比较位置指针(图18C中的箭头B)所指定的一个VLP数值“5”所规定的一个项目数值“Smith”进行比较(图10中的步骤1001至1003)。在这种情况下,第一指定数值=第二指定数值。因此,处理过程进入步骤1005。在这里,如图18D所示,由第一比较位置指针所指定的一个VLP数值“2”被定位于由存储位置指针(箭头C)所指定的位置上。然后,作为对应于由第一比较位置指针和第二比较位置指针所指定的位置的一个TR数值,由存储位置指针所指定的一个存储位置号码“4”位于其中。
在此项处理之后,再次进行图10的处理过程。随后,处理过程进入步骤1014。在这里,在TR中的旧PV被转换,以生成新的PV。旧PV数值被取出,并且由该数值所指定的一个位置的TR数值被规定。该TR数值被定位于在新的PV中对应于从其中取出旧PV的那个数值的位置的一个位置上。通过重复进行此项处理,就能获得如图20B所示的一个新PV 2001。
其次,将简要地说明对部分中间块1511-3和1511-4所组成的对子的处理过程。在这里,还进行与对前面的部分中间块集合所进行的处理相同的处理。例如,如图19B所示,通过首先执行图10中的处理过程,由第二存储位置指针(图19B中的箭头B)所指定的一个VLP数值“8”被定位于该存储位置指针(图19B中的箭头C)的一个位置上,此外,对应的TR数值“6”被确定。如图19C所示,通过其次执行图10中的处理过程,由第一比较位置指针(图19B中的箭头A)所指定的VLP数值“6”被定位于该存储位置指针(图19C中的箭头C)所指定的一个位置上。此外,预定的TR数值(对应于由第一比较位置指针以及第二比较位置指针所指定的位置的一个TR数值)被确定。
最后,通过再次执行图10中的处理过程,在步骤1014中生成一个新的PV(见图20B)。
这样一来,就能生成在图17A中由参考数字1701-1和1701-2所指示的各个部分中间块。
还有,在本例中,部分中间块1701-0(实际上相同于部分中间块1501-0)以及部分中间块1701-1被合并。在这里,也重复执行图10所示的处理过程。对由部分中间块1701-0和1701-1的比较位置指针所指定的VLP数值所规定的项目数值进行比较。根据比较结果,顺序地确定VLP’数值和TR数值。
如图21A所示,对部分中间块1701-0和部分中间块1701-1进行图10所示的处理。如图21A所示,在首先进行的图10的处理过程中,由第一比较位置指针(图21中的箭头A)所指定的一个VLP数值“1”所规定的一个项目数值“Carter”与由第二比较位置指针(图21中的箭头B)所指定的一个VLP数值“4”所规定的一个项目数值“Carter”进行比较,根据比较结果,执行在图11中的处理过程(步骤1105)。这样一来,就确定由存储位置指针(图21A中的箭头C)所指示的VLP’中的数值“1”。此外,还确定对应于第一和第二比较位置指针的TR中的一个数值“0”。
如图21B所示,在图10的下一步处理中,由第一比较位置指针(图21A中的箭头A)所指定的VLP数值“0”所规定的一个项目数值“Smith”与由第二比较位置指针(图21B中的箭头B)所指定的一个VLP数值“3”所规定的一个项目数值“Greene”进行比较,根据比较结果,执行在图13中的处理过程(步骤1109)。这样一来,就确定由存储位置指针(图21B中的箭头C)所指定的VLP’中的数值“3”。此外,还确定对应于第二比较位置指针的TR中的一个数值“1”。
而且,如图21C所示,在图10的下一步处理中,由第一比较位置指针(图21C中的箭头A)所指定的VLP数值“0”所规定的一个项目数值“Smith”与由第二比较位置指针(图21C中的箭头B)所指定的VLP数值“2”所规定的一个项目数值“Smith”进行比较。根据比较结果,执行在图11中的处理过程(步骤1005)。这样一来,就确定由存储位置指针(图21C中的箭头C)所指定的VLP’中的数值“0”。此外,还确定对应于第一和第二比较位置指针的TR中的一个数值“2”。在此后执行的图10的处理中,由第一比较位置指针和第二比较位置指针所指定的VLP数值并不存在。因此,执行在图14中的处理过程(步骤1014)。在相关的TR中,对PV(旧PV)数值进行转换。这样一来,就能获得一个新的PV(见图23A)。
通过执行上述处理过程,生成由图17B中的参考数字1711-0所表示的一个部分中间块。最后,部分中间块1711-0和部分中间块1711-1(它们实际上相同于部分中间块1701-2)被组成对子。随后,对该部分中间块的对子进行预定的处理。
下面将参照流程图等,来说明准备对部分中间块1711-0和1711-1组成的对子所进行的处理。例如,在图10的处理中,首先,如图22A所示,由第一比较位置指针(图22A中的箭头A)所指定的VLP数值“1”所规定的一个项目数值“Carter”与由第二比较位置指针(图22B中的箭头B)所指定的VLP数值“8”所规定的一个项目数值“Carter”进行比较。根据比较结果,执行在图11中的处理过程(步骤1005)。这样一来,就确定由存储位置指针(图22A中的箭头C)所指定的VLP’中的数值“1”。此外,还确定对应于第一和第二比较位置指针的TR中的一个数值“0”。
如图22A所示,在此后执行的图10的处理中,由第一比较位置指针(图22A中的箭头A)所指定的VLP数值“3”所规定的一个项目数值“Greene”与由第二比较位置指针(图22B中的箭头B)所指定的VLP数值“3”所规定的一个项目数值“Greene”进行比较,根据比较结果,执行在图11中的处理过程(步骤1005)。这样一来,就确定由存储位置指针(图22B中的箭头C)所指定的VLP’中的一个数值“3”。此外,还确定对应于第一和第二比较位置指针的TR中的一个数值“1”。
还有,如图22C所示,在图10的下一步处理过程中,存在由第一比较位置指针(图22C中的箭头A)所指定的VLP数值“0”。然而,第二比较位置指针(图22C中的箭头B)所指定的VLP数值并不存在。因此,执行在图12中的处理过程(步骤1013)。在这里,确定由存储位置指针(图22C中的箭头C)所指定的VLP’数值“0”。此外,还确定在对应于第一比较位置指针的TR中的一个数值“2”。在此后执行的图10的处理中,由第一比较位置指针和第二比较位置指针所指定的VLP数值并不存在。因此,执行在图14中的处理过程(步骤1014)。在相关的TR中,对PV(旧PV)数值进行转换。这样一来,就能获得一个新的PV(见图23B)。
这样一来,如图6B所示,就获得了一个信息块600,它有一个数值列表602,在数值列表602中又包括一个VP 601,一个VLP 604以及一个原始项目数值数组603。这里,在原始项目数值数组603中,实际上被使用的仅有对应于存储位置号码“0”、“1”、和“3”的元素(项目数值)“Smith”、“Carter”和“Greene”(见参考数字610、611和613)。显而易见,其他元素(项目数值)(例如,参考数字612和614)均不被使用,即,不被VLP数值所指定。换句话说,当在原始项目数值数组中存在相同的项目数值时,只有具有最小的存储位置号码的那一个才被使用。其他的均不被使用。
下面将说明这种形式的信息块等效于图3B所示的信息块这样一个事实。例如,在图6A中,根据记录号码“0”来规定项目数值“Smith”。同样,在图6B中,根据记录号码“0”来规定在PV中的一个元素(数值)“2”。当在VLP中的一个元素(数值)被规定、使得元素“2”成为存储位置号码时,就能获得“0”。而且,在原始项目数值数组中,还可能获得其存储位置号码为VLP元素(数值)“0”的项目数值“Smith”。显而易见,类似地,可以为其他记录号码规定各自的项目数值。
因此,通过使用图6B所示的含有VLP 604以及原始项目数值数组603的数值列表602,就能进行检索、总结和排序。然而,在这种情况下,原始项目数值数组照原样被使用。从图6B可以清楚地看出,当在原始项目数值数组中存在相同的项目数值时,只有具有最小的存储位置号码的那一个才被使用。其他的项目数值均不被使用。因此,当在原始项目数值数组中存在多项重叠时,许多部分均不被使用。通过把由一个VLP数值所指定的一个项目数值存储到一个新的数组中,就能生成一个没有冗余的项目数值数组(压缩型数值列表)。
图24是一个流程图,表示生成一个压缩型数值列表的处理过程。如图24所示,计算机系统10对存储位置号码进行初始化,并获得用于压缩型数值列表的一个区域(步骤2401)。定位于这个区域的用于数据(项目数值)的记录数目对应于在VLP中所包括的数值的数目。因此,所获得的区域对应于数值的数目。
其次,在VLP中取出由存储位置号码所指定的一个数值(步骤2402)。在原始项目数值数组中由VLP的数值所指定的一个项目数值被规定(步骤2403)。随后,被规定的项目数值被定位于在压缩型数值列表中由存储位置号码所指定的一个位置上(步骤2404)。对VLP中的所有数值都进行这样的处理(见步骤2405和2406)。例如,对图6B中所示的数值列表602进行图24所示的处理时,由VLP中的一个数值(例如,由存储位置号码“0”所指定的一个数值“1”),来规定在原始项目数值数组中的一个项目数值(例如,“Carter”),如图25A所示。然后,该项目数值被定位于在压缩型数值列表中由存储位置号码所指定的一个位置(例如,处于“0”的位置)上。
作为处理的结果,图6B所示的信息块600被转换为含有PV 601以及压缩型数值列表2501的信息块2500,如图25B所示。新获得的信息块2500明显地具有与图3B所示的信息块相同的形式。基于从图24的处理过程中所得到的信息块2500,就能明显地进行检索、总结和排序的处理。
下面将进一步地说明在编译处理中通过重复执行图10所示的处理过程使两个部分中间块合并而获得的一个数组。例如,参照于图18D中的VLP’以及项目数值数组。由存储在VLP’(这是一个新的VLP)中的存储位置号码“2”的一个位置的数值“4”见参考号码1801)来规定在项目数值数组中的一个元素(数值)“Carter”(见参考号码1802)。由存储在新的VLP 1801的存储位置号码“3”中的一个位置的数值“3”来规定在项目数值数组1802中的一个元素(数值)“Greene”。由存储在新的VLP 1801的存储位置号码“4”中的一个位置的数值“2”来说明在项目数值数组1802中的一个元素(数值)“Smith”。这样一来,就从新的VLP以及项目数值数组中生成一个数值列表,它涉及已合并的部分中间块。项目数值被存储在数值列表中。换句话说,通过对两个部分中间块重复执行图10的处理过程,使两个部分中间块合并,就生成该部分中间块的数值列表。在数值列表中,项目数值均按照预定的顺序来排列,并且没有冗余。
下面将进一步地说明具有上述结构的数据编译方法的处理速度。在这里,为了说明得简单一些,数值列表不采取VLP和项目数值数组的形式。然而,分别由VLP中的数值来规定在项目数值数组中的数值。因此,数值列表采取含有被规定的数值的一个数组(压缩型数值列表)的形式。
如图26所示,0至7中的任何数目都可以被分配给8个记录中的每一个作为项目数值。这里,分别对应于记录的项目数值彼此不同。在这种情况下,根据本实施例,对4个部分中间块的对子(例如,见图26中的参考号码2602-1和2602-2)重复进行图10的处理,上述部分中间块的对子包括一对涉及针对记录号码“0”和“1”的数值列表(见参考数字2601-0和2601-1)的部分中间块,以及一对涉及针对记录号码“2”和“3”的数值列表的部分中间块。
在这个实例中,项目数值是完全不同的。因此,要进行4个项目数值的比较,包括介于“2”和“6”,“4”和“0”,“3”和“7”,以及“5”和“1”之间的比较。一般来说,若一个元素为“n(这里,n最好是2的一个幂)”,在第一次处理中,进行“n/21”次比较。
其次,4个部分中间块被合并为两个部分中间块(例如,见图26中的参考数字2602-1,2602-2,2603-1和2603-2)。在这里,对部分中间块2602-0和2602-1进行3次项目数值比较。即,对“2”和“0”,“2”和“4”,以及“6”和“4”进行比较。对信息块的其余部分也类似地进行3次项目数值的比较。即,对“3”和“1”,“3”和“5”,以及“7”和“5”进行比较。一般来说,若一个元素为“n(这里,n最好是2的一个幂)”,则最多进行“n/22*(22-1)”次比较。
而且,从两个部分中间块(例如,见图26中的参考数字2603-1,2603-2和参考数字2604)生成一个最后的信息块。在这里,进行7次项目数值比较。即,对“0”和“1”,“2”和“1”,“2”和“3”,“4”和“3”,“4”和“5”,“6”和“5”以及“6”和“7”进行比较。一般来说,若一个元素为“n(这里,n最好是2的一个幂)”,则最多进行“n/23*(23-1)”次比较。
考虑到上述的比较次数,在对部分中间块进行合并时,要进行下列次数的比较。
第一次:  (n/21)次比较
第二次:  (n/22)*(22-1)次比较
第三次:  (n/23)*(23-1)次比较
第log2(n)次:  (n/2log2(n))*(2log2(n)-1)次比较
为生成信息块所需的比较次数可能是在合并处理过程中的比较次数的总和。因此,可以从下列方程式1来获得比较的总次数:
显而易见,当项目数值互相不重叠(当项目数值完全不同)时,要进行最多为大约“n*log2(n)-1”次比较。
另一方面,若“n”个项目数值中的“m”个项目数值不同,则在对部分中间块进行合并时,要进行下列次数的比较。
第一次:   (n/21)次比较
第二次:   (n/22)*Max((m/n)*22-1,1)次比较
第三次:   (n/23)*Max((m/n)*23-1,1)次比较
第log2(n)次:(n/2log2(n))*Max((m/n)*2log2(n)-1,1)次比较
这里,当“m”显著地小于“n”(例如,m=1至4的量级)时,
第一次:   (n/21)次比较
第二次:   (n/22)次比较
第三次:   (n/23)次比较
第log2(n)次:   (n/2log2(n))次比较
因此,比较的总次数可以近似地被认为是“n”。
另一方面,当“n”大于“m”时,
第一次:   (n/21)次比较
第二次:   (n/22)*((m/n)*22-1)次比较
第三次:   (n/23)*((m/n)*23-1)次比较
第log2(n)次:   (n/2log2(n))*((m/n)*2log2(n)-1)次比较
因此,可以从下列方程式2来获得比较的总次数:
Figure A0181473200301
这样一来,当n个项目数值中的m个项目数值不同时,根据“m”的大小,进行下列次数的比较处理:
当“m”为显著地小时:大约“n”次比较
当“m”为较大时:大约“m*log2(n)-1”次比较
因此,当项目数值的重叠程度特别大时,将生成其量级基本上为“n”个的信息块。
根据本实施例,从一对部分中间块生成一个新的部分中间块。然后,通过对在新的部分中间块中的项目数值进行比较,生成处于部分中间块之中的一个项目数值数组。通过逐渐增加部分中间块的大小,最后获得一个部分中间块。最后的部分中间块是一个信息块。因此,可以通过多个处理器以并行方式对各个对子进行处理。
本发明并不局限于上述实施例。在权利要求书所描述的本发明的范围内,各种改变都是可能的。显而易见,这些改变均被纳入本发明的范围之内。
根据本实施例,可以由一个单一的处理器来进行一对部分中间块的处理。可供选择地,对各对子的处理可以分配到在一个具有并行处理器的系统中的各个处理器。这样一来,就能实现快速处理。
对一对部分中间块的选择不限于在实施例中所描述的这一种。任何两个相邻的部分中间块都可以根据需要构成对子。
而且,根据本实施例,一段预定的程序被读入到通用计算机系统10之中。通过执行该程序,进行用于连接多块表格格式数据的处理以及涉及已连接的表格格式数据的处理。然而,本发明并不局限于此。一部特别用于数据库处理的插件式计算机可以被连接到一个通用计算机系统(例如一部个人计算机),使得该插件式计算机能进行处理。因此,这里的单元不仅是物理的方案。然而,每一个单元的功能都可以通过软件来实现。而且,可以由两个或多个物理单元来执行一个单元的功能。可供选择地,也可以由一个物理单元来执行两个或多个单元的功能。
根据本发明,可以提供一种数据编译方法,它能实现短的处理时间,并且在任何数据分布中,都不会极端地降低处理效率。
而且,根据本发明,提供了一种编译方法,它能在一个大规模的并行系统中,显著地改进其性能。
工业适用性
本发明可以应用于管理大量数据(例如数据库和数据仓库)的系统。更具体地说,本发明可以应用于大规模的科学技术计算基础业务管理,例如订货管理和股票交易,以及办公事务管理。

Claims (9)

1.一种数据编译方法,用于将表格格式数据转换为一种信息块形式,上述表格格式数据被表示为记录的一个数组,其中每个记录都包括一个项目以及其中所含的项目数值;上述信息块形式具有一个数值列表,其中包括按照预定顺序、无冗余排列的项目数值,以及一个位置指定数组,含有位置指定号码,用以根据记录号码在数值列表中指定项目数值,该方法包括下列各步骤:
在表格格式数据中,生成一个含有一个项目数值数组的部分中间块,上述项目数值数组包括对应于记录号码的项目数值,一个顺序指定数组,用以指定项目数值在项目数值数组中的位置,以及一个位置指定数组,用以在顺序指定数组中指定元素,该部分中间块初始地对应于一个单一的记录;
选择相邻的部分中间块,并生成由第一部分中间块和第二部分中间块组成的一个对子;
合并该对子的项目数值数组,以生成一个新项目数值数组;
确定顺序指定数组的元素,以便在已合并的新项目数值数组中,通过将该对子中属于第一部分中间块的项目数值与属于第二部分中间块的项目数值进行比较,来以预定的顺序规定项目数值;
当顺序指定数组的元素被确定时,确定位置指定数组的元素以便规定在合并前的项目数值;以及
重复选择相邻的部分中间块并结成对子,并生成一个新的部分中间块,其中包括一个已合并的项目数值数组,以及其元素已被确定的一个顺序指定数组以及位置指定数组,以便最后生成一个部分中间块,
其中,最后生成的部分中间块是一个信息块,并且其中一个数值列表包括顺序指定数组以及项目数值数组。
2.根据权利要求1所述的数据编译方法,其中,确定顺序指定数组的元素的步骤包括下列各步骤:
生成一个新的顺序指定数组;以及
将在第一部分中间块中的项目数值与在第二部分中间块中的项目数值进行比较,确定较高的一个,并且从在新顺序指定数组中较高的项目数值开始,顺序地定位由项目数值指定的第一部分中间块或第二部分中间块中的顺序指定数组的数值;
其中,确定位置指定数组的元素的步骤包括下列各步骤:
生成一个位置指定重定义数组,用以指定新的顺序指定数组;以及
当顺序指定数组的数值被定位之后,对元素进行定位,用以规定定位于新的顺序指定数组的数值在第一部分中间块或第二部分中间块的位置指定重定义数组中的相应位置,以及
该方法还包括一个在位置指定重定义数组中转换位置指定数组的数值,并获得一个新的位置指定数组的步骤。
3.根据权利要求1或2所述的数据编译方法还包括,在最后生成一个部分中间块之后,顺序地定位由顺序指定数组中位置较高的元素所规定的项目数值,以便生成一个在其中项目数值按照预定顺序、无冗余地定位的新项目数值数组。
4.一种计算机可读介质,用于存储将表格格式数据转换为一种信息块形式的数据编译方法,上述表格格式数据被表示为记录的一个数组,其中每个记录都包括一个项目以及其中所含的项目数值;上述信息块形式具有一个数值列表,其中包括按照预定顺序、无冗余排列的项目数值,以及一个位置指定数组,含有位置指定号码,用以根据记录号码指定数值列表中的项目数值,令计算机执行下列各步骤:
在表格格式数据中,生成一个含有一个项目数值数组的部分中间块,上述项目数值数组包括对应于记录号码的项目数值,一个顺序指定数组,用以指定项目数值在项目数值数组中的位置,以及一个位置指定数组,用以在顺序指定数组中指定元素,该部分中间块对应于一个单一的记录;
选择相邻的部分中间块,并生成由第一部分中间块和第二部分中间块组成的一个对子;
合并该对子的项目数值数组,以生成一个新项目数值数组;
确定顺序指定数组的元素,以便在已合并的新项目数值数组中,通过将该对子中属于第一部分中间块的项目数值与属于第二部分中间块的项目数值进行比较,来以预定的顺序规定项目数值;
当顺序指定数组的元素被确定之后,确定位置指定数组的元素以便规定在合并前的项目数值;以及
重复选择相邻的部分中间块并结成对子,并生成一个新的部分中间块,其中包括一个已合并的项目数值数组,以及其元素已被确定的一个顺序指定数组和位置指定数组,以便最后生成一个部分中间块,
其中,最后生成的部分中间块是一个信息块,并且其中一个数值列表包括顺序指定数组以及项目数值数组。
5.根据权利要求4所述的存储介质,其中,确定顺序指定数组的元素的步骤包括下列各步骤:
生成一个新的顺序指定数组;以及
将在第一部分中间块中的项目数值与在第二部分中间块中的项目数值进行比较,确定较高的一个,并且从新顺序指定数组中较高的项目数值开始,顺序地定位由项目数值指定的第一部分中间块或第二部分中间块中的顺序指定数组的数值;
其中,确定位置指定数组的元素的步骤包括下列各步骤:
生成一个位置指定重定义数组,用以指定新的顺序指定数组;
以及
当顺序指定数组的数值被定位之后,对元素进行定位,用以规定定位于新的顺序指定数组中的数值在第一部分中间块或第二部分中间块的位置指定重定义数组中的相应位置,以及
其中,该方法还包括一个用于在位置指定重定义数组中转换位置指定数组的数值,并获得一个新的位置指定数组的步骤。
6.根据权利要求4或5所述的数据编译方法还包括,在最后生成一个部分中间块之后,顺序地定位由顺序指定数组中位置较高的元素所规定的项目数值,以便生成一个在其中项目数值按照预定顺序、无冗余地定位的新项目数值数组。
7.一种令计算机执行数据编译方法的程序,该数据编译方法用于将表格格式数据转换为一种信息块形式,上述表格格式数据被表示为记录的一个数组,其中每个记录都包括一个项目以及其中所含的项目数值;上述信息块形式具有一个数值列表,其中包括按照预定顺序、无冗余地排列的项目数值,以及一个位置指定数组,含有位置指定号码,用以根据记录号码指定数值列表中的项目数值,本程序令计算机执行下列各步骤:
在表格格式数据中,生成一个含有一个项目数值数组的部分中间块,上述项目数值数组包括对应于记录号码的项目数值,一个顺序指定数组,用以指定项目数值在项目数值数组中的位置,以及一个位置指定数组,用以在顺序指定数组中指定元素,该部分中间块对应于一个单一的记录;
选择相邻的部分中间块,并生成由第一部分中间块和第二部分中间块组成的一个对子;
合并该对子的项目数值数组,以生成一个新项目数值数组;
确定顺序指定数组的元素,以便在已合并的新项目数值数组中,通过将该对子中属于第一部分中间块的项目数值与属于第二部分中间块的项目数值进行比较,来以预定的顺序规定项目数值;
当顺序指定数组的元素被确定之后,确定位置指定数组的元素以便规定合并前的项目数值;以及
重复选择相邻的部分中间块并结成对子,并生成一个新的部分中间块,其中包括一个已合并的项目数值数组,其元素已被确定的一个顺序指定数组以及位置指定数组,以便最后生成一个部分中间块,
其中,最后生成的部分中间块是一个信息块,并且其中一个数值列表包括顺序指定数组以及项目数值数组。
8.根据权利要求7所述的程序,令计算机执行下列各步骤:
在确定顺序指定数组的步骤中,
生成一个新的顺序指定数组;以及
将在第一部分中间块中的项目数值与在第二部分中间块中的项目数值进行比较,确定较高的一个,并且从新的顺序指定数组中较高的项目数值开始,顺序地定位由项目数值指定的第一部分中间块或第二部分中间块中的顺序指定数组的数值;以及
在确定位置指定数组的步骤中,
生成一个位置指定重定义数组,用以指定新的顺序指定数组;
以及
当顺序指定数组的数值被定位之后,对元素进行定位,用以规定定位于新的顺序指定数组的数值在第一部分中间块或第二部分中间块的位置指定重定义数组中的相应位置,以及
其中,该程序还令计算机进一步地执行一个用于在位置指定重定义数组中转换位置指定数组的数值,并获得一个新的位置指定数组的步骤。
9.根据权利要求7或8所述的程序,令计算机进一步地执行:在最后生成一个部分中间块之后,顺序地定位由顺序指定数组中位置较高的元素所规定的项目数值,以便生成一个在其中项目数值按照预定顺序、无冗余地定位的新项目数值数组。
CNB018147321A 2000-07-31 2001-07-30 数据编译方法 Expired - Fee Related CN100465946C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP231029/2000 2000-07-31
JP2000231029A JP4563558B2 (ja) 2000-07-31 2000-07-31 データのコンパイル方法、および、コンパイル方法を記憶した記憶媒体
JP231029/00 2000-07-31

Publications (2)

Publication Number Publication Date
CN1449531A true CN1449531A (zh) 2003-10-15
CN100465946C CN100465946C (zh) 2009-03-04

Family

ID=18723912

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018147321A Expired - Fee Related CN100465946C (zh) 2000-07-31 2001-07-30 数据编译方法

Country Status (6)

Country Link
US (1) US7225198B2 (zh)
EP (1) EP1315100A4 (zh)
JP (1) JP4563558B2 (zh)
CN (1) CN100465946C (zh)
CA (1) CA2418093A1 (zh)
WO (1) WO2002010976A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100389418C (zh) * 2004-01-15 2008-05-21 佳能株式会社 电子词典中多个专业词典的数据结构的合并方法及装置
CN102508825A (zh) * 2011-11-02 2012-06-20 北京中电普华信息技术有限公司 一种列表数据动态排序方法和装置
CN102724019A (zh) * 2006-03-24 2012-10-10 华为技术有限公司 发送子带指示的方法和系统

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3860992B2 (ja) * 2001-11-09 2006-12-20 株式会社ターボデータラボラトリー データの結合・提示方法、および、データ結合・提示プログラム
JP4646624B2 (ja) * 2002-05-10 2011-03-09 オラクル・インターナショナル・コーポレイション リレーショナルデータを圧縮格納フォーマットに格納および問合せすること
CN1791854B (zh) * 2003-04-16 2010-05-26 特博数据实验室公司 信息处理系统和信息处理方法
JP2005135221A (ja) * 2003-10-31 2005-05-26 Turbo Data Laboratory:Kk 表形式データの結合方法、結合装置およびプログラム
US20080281843A1 (en) * 2003-12-25 2008-11-13 Turbo Data Laboratories, Inc. Distributed Memory Type Information Processing System
US7792825B2 (en) * 2005-09-08 2010-09-07 International Business Machines Corporation Fast select for fetch first N rows with order by
JP5010958B2 (ja) * 2007-03-30 2012-08-29 株式会社富士通ビー・エス・シー データ管理方法、プログラム及び装置
EP2328074A1 (en) * 2009-11-27 2011-06-01 STMicroelectronics S.r.l. Queue management

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60247732A (ja) * 1984-05-23 1985-12-07 Nec Corp デ−タ記憶装置
US5237678A (en) * 1987-05-08 1993-08-17 Kuechler William L System for storing and manipulating information in an information base
JPS63298626A (ja) * 1987-05-29 1988-12-06 Matsushita Electric Ind Co Ltd デ−タベ−ス管理方法
US5210870A (en) * 1990-03-27 1993-05-11 International Business Machines Database sort and merge apparatus with multiple memory arrays having alternating access
JPH0580977A (ja) * 1991-09-21 1993-04-02 Toshiba Corp データ処理装置
JPH0756652B2 (ja) * 1992-03-24 1995-06-14 インターナショナル・ビジネス・マシーンズ・コーポレイション 動画像のフレーム列の検索
US5555388A (en) * 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
US5794229A (en) * 1993-04-16 1998-08-11 Sybase, Inc. Database system with methodology for storing a database table by vertically partitioning all columns of the table
JPH07253991A (ja) * 1994-03-16 1995-10-03 Mitsubishi Electric Corp ジョイン処理方式
US5819086A (en) * 1995-06-07 1998-10-06 Wall Data Incorporated Computer system for creating semantic object models from existing relational database schemas
US5978796A (en) * 1997-06-30 1999-11-02 International Business Machines Corporation Accessing multi-dimensional data by mapping dense data blocks to rows in a relational database
US5940841A (en) * 1997-07-11 1999-08-17 International Business Machines Corporation Parallel file system with extended file attributes
WO2000010103A1 (fr) * 1998-08-11 2000-02-24 Shinji Furusho Procede et dispositif de recuperation, de stockage et de triage de donnees formatees en tableaux
JP4428488B2 (ja) * 1999-05-31 2010-03-10 株式会社ターボデータラボラトリー 表形式データの結合方法、上記方法を実現するプログラムを記憶した記憶媒体、および、表形式データを結合する装置
JP4425377B2 (ja) 1999-07-29 2010-03-03 株式会社ターボデータラボラトリー データ処理装置、および、データ処理方法
CA2743462C (en) * 1999-07-30 2012-10-16 Basantkumar John Oommen A method of generating attribute cardinality maps
US6871201B2 (en) * 2001-07-31 2005-03-22 International Business Machines Corporation Method for building space-splitting decision tree

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100389418C (zh) * 2004-01-15 2008-05-21 佳能株式会社 电子词典中多个专业词典的数据结构的合并方法及装置
CN102724019A (zh) * 2006-03-24 2012-10-10 华为技术有限公司 发送子带指示的方法和系统
CN102508825A (zh) * 2011-11-02 2012-06-20 北京中电普华信息技术有限公司 一种列表数据动态排序方法和装置

Also Published As

Publication number Publication date
CA2418093A1 (en) 2003-01-31
WO2002010976A1 (fr) 2002-02-07
JP2002041551A (ja) 2002-02-08
EP1315100A4 (en) 2008-07-30
JP4563558B2 (ja) 2010-10-13
US7225198B2 (en) 2007-05-29
CN100465946C (zh) 2009-03-04
US20040044683A1 (en) 2004-03-04
EP1315100A1 (en) 2003-05-28

Similar Documents

Publication Publication Date Title
CN1194319C (zh) 对表格式数据进行查找、列表及分类的方法和装置
CN1198225C (zh) 关键字提取系统及采用该系统的文本检索系统
CN1133127C (zh) 文件检索系统
CN1198220C (zh) 用于在单聚集过程中载入多数据集市的方法
CN1218265C (zh) 数据库检索装置及方法
CN1306437C (zh) 用于链接表格式数据的方法以及表现链接的表格式数据的方法
CN1262915C (zh) 迅速完成网络上分布的数据处理任务的系统及方法
CN1171162C (zh) 基于字符分类检索字符串的装置和方法
CN101036141A (zh) 具有持久性、用户可访问的位图值的数据库管理系统
CN1786955A (zh) 用于管理相互相关的数据对象的方法和系统
CN1556482A (zh) 一种用于实现数据库多表查询的数据处理方法
CN101030157A (zh) 一种用户词库同步更新的方法和系统
CN1122216C (zh) 优化器
CN1315017A (zh) 包含内部引用的两种版本数据表格之间的差别提取
CN1310824A (zh) 用于数据仓库的选择聚集层和交叉产品层的方法和装置
CN1823335A (zh) 抽象数据链接和联接接口
CN1211769A (zh) 基于贝叶斯网络的用于文件检索的方法和设备
CN1910581A (zh) 用于按类别提供关键字输入频率信息的搜索系统及其方法
CN1795434A (zh) 程序执行控制设备,程序执行控制方法,控制程序和记录介质
CN1666196A (zh) 存储和访问数据,以及提高数据库查询语言语句性能的方法和机制
CN1449531A (zh) 数据编译方法
CN1920825A (zh) 在流设计工具中显示性能约束的方法和系统
CN1731402A (zh) 用协处理器加速文件系统操作的方法及装置
CN1900959A (zh) 设计制造的支援装置、支援程序和支援方法
CN1839401A (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
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: Embedded compiling method of user interest point data capable of supporting increment update

Granted publication date: 20090304

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

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090304

Termination date: 20190730