用于链接表格式数据的方法以及 表现链接的表格式数据的方法
技术领域
本发明涉及一种数据处理方法和利用计算机或其它信息处理装置处理大量数据的数据处理装置,特别涉及一种方法和装置,其用于在关系数据库中链接多个表格式数据的表格,以及用于搜索所需记录等等的列表和排序字段值。
背景技术
数据库被用于各种应用程序中,但是能够消除逻辑矛盾的关系数据库(RDB)在中到大规模系统中变为主流。例如,RDB可以用于航线座位预定系统等等中。在这种情况中,可以指定一个关键字段来执行对目标(通常是单个目标)的快速搜索,或者确认、取消或改变预定。另外,由于在每个航班上最多有几百个座位号,因此可以在特定的飞机航班上找到空的座位号。
但是,当尝试使用该RDB来对每个财政年度、一周的每一天、每个月、每条路线、每个时区或者每个飞机的类型执行特定的计算时,已知需要花费大量的时间。即,尽管RDB在执行没有矛盾的处理中是较好的,另一方面,它在对相当大量的记录进行搜索、列表或排序中具有较差的性能。
因此,最近,为了搜索和列表的目的,除了RDB之外一般在系统中构造一种称为数据仓库(DWH)的数据库。也就是说,构造一种具有特定数据格式和数据字段名的超大规模数据库,以迎合最终用户的特定目的,然后该最终用户可以使用该数据库来执行特定类型的搜索和列表。
但是,除了RDB之外提供DWH,或者说提供多个数据库变得远离用于使数据控制集中化的数据库的理想形式,特别是RDB概念的理想形式。这可能导致如下几个问题,例如:
(1)DWH在格式上固定,从而对除了预先在DWH中提供的那些字段之外的其它字段进行搜索和列表是困难的。
(2)除了RDB之外,通过提供固定格式的DWH,数据量变得极大,从而不能进行RDB的更新等等。
本发明的目的是能够按照需要快速地执行多个表格式数据的表格的连接,并且提供一种用于具有小数据量的表格式数据的结构、其链接方法以及用于执行链接表格式数据的快速显示的方法。
发明内容
本发明的目的是通过提供一种链接多个表格式数据的表格的方法而实现的,其中每个表格由一个记录数组所表示,其中包括字段和其中的字段值,其中所述方法的特征包括如下步骤:按照一种方式构造每个表格式数据的表格,使得每个表格被分为一个或多个信息块,其中包括:数值列表,其中按照字段值编号的次序存储字段值,该字段值编号对应于属于特定字段的字段值,以及指针数组,其中用于指向所述字段值编号的指针数值按照唯一的记录次序存储;在多个表格式数据的表格中查找相等的字段;识别对于所述相等字段的信息块;在所述多个表格式数据的表格的每一个表格中,比较包含在所述识别的信息块中的数值列表,并且把数值列表设置为相同数值;在把所述数值列表设置为相同数值时,把指针数值加到增加字段值的信息块中的相关指针数组;以及使包含在用于所述多个相等表格式数据的表格中的特定字段的信息块中的数值列表相等,链接该表格式数据。
通过本发明的方法,包含实际字段值和指针数组的数值列表被用于构造关于特定字段的信息块,其中该指针数组包含用于指定所述数值列表的字段值的特定指针数值,使得表格式数据被表示为一组属于各个字段的信息块。相应地,当链接(即连接)多个表格式数据的表格时,查找在表格式数据中的信息块内的数值列表,并且把数值列表的字段值设置为相同数值,并且相应地改变相关的指针数组。相应地,可以增加数值列表的字段值以及增加伴随指针值(即,共享该数值列表),而不需要任何复杂的处理,因此可以链接两个表格式数据的表格。
在本发明的一个优选实施例中,对于包含相等数值列表的信息块,仅仅实际保存单个数值列表。即,对于共享数值列表,仅仅保存一个就足够了。因此,可以减少所需的存储量。另外,不需要为连接进行大量的处理,从而可以非常高速地进行表格式数值的链接(连接)。
本发明的目的还可以通过一种显示链接的表格式数据的方法而实现,其特征在于包括如下步骤:准备多个表格式数据的表格,其中通过上述链接方法使包含在用于特定字段的信息块中的数值列表相等;对于所述多个表格式数据的表格,在对于特定字段的所述信息块中,识别与关键字段相关的信息块,其中指针数组的指针数值不被复制,并且确定包含要作为子表格式数据的所述信息块的表格式数据;在其中一个信息块中,产生第二指针数组,其识别按照字段列表的字段数值次序的所述子表格式数据的记录号;在包含于所述多个表格式数据的表格的信息块中,识别与要显示的字段相关的信息块;在与要被显示字段相关的所述信息块中,对于构成主表格式数据的信息块,其中该主表格式数据是与所述子表格式数据不同的表格式数据,在指针数组中查找对应于所规定记录号的指针数值,并且获得一个规定的字段值;在所述与要显示的字段相关的所述信息块中,对于构成所述子表格式数据的信息块,查找对应于所规定记录号的记录号,并且获得关于在相应的所述第二指定数组中的子表格式数据的记录号;在构成所述子表格式数据的信息块中,在指针数组中查找对应于与所述子表格式数据相关的记录号的指针数值,并且获得规定的字段值;以及显示如此获得的字段值。
通过本发明的方法,对于多个表格式数据的表格,当用户选择特定的字段并且要求显示该字段时,多个表格式数据的表格被链接,并且第二指针数组可以从主表格式数据的记录号识别在子表格式数据中的记录号(即,可以反向查找)。对于主表格式数据,在指针数组中的指数值可以从主表格式数据的记录号中识别,另外,由所述指针数值所指定的字段值能够被识别,从而可以找到所需的字段值。另一方面,对于子表格式数据,可以从主表格式数据的记录号中识别子表格式数据的记录号,接着,在指针数组中的指针数值和所述指针数组可以顺序识别指定的字段值,从而可以找到所需的字段值。相应地,可以从多个表格式数据的表格选择所需字段,并且高速地产生一个连接的表格(视图“view”)。
为了识别所述子表格式数据的记录号,在与所述关键字段相关的信息块中,可以产生包含指针数值的第二指针数组,用于按照包含在所述信息块中的字段列表的字段值的次序指定记录号。在这种情况中,在与要显示的字段相关的信息块中,在构成子表格式数据的信息块中,查找对应于所述规定的记录号的指针数组中的指针数值,识别关于相应的第二指针数组中的子表格式数据记录号,并且在构成所述子表格式数据的信息块中,查找在指针数组中对应于所述第二指针数组中的所述记录号的指针数值,从而获得一个规定的字段值。该技术在实施例1中更加详细描述。
另外,可以执行如下步骤:在构成所述主表格式数据的一个信息块中,这是一个数值列表相等的信息块,产生包含指针数值的第二指针数组,该指针数值用于按照字段列表的字段值的次序指定所述子表格式数据的记录号;识别在所述第二指针数组中对应于所述规定的记录号的关于子表格式数据的记录号;在关于要显示字段的所述信息块中,在构成所述子表格式数据的信息块中,查找在指针数组内对应于与所述子表格式数据相关的记录号的指针数值,以获得规定的字段值(参见实施例2),或者执行如下步骤:在构成所述子表格式数据的信息块中,在至少一个与要显示字段相关的信息块中,产生包含指针数值的第二指针数组,用于按照字段列表的字段值的次序指定所述子表格式数据的记录号;以及在与要显示的字段相关的信息块中,在构成子表格式数据的信息块中,查找在该指针数组中对应于所述规定的记录号的指针数值,在相应的第二指针数组中识别关于子表格式数据的记录号,并且在构成子表格式数据的信息块中,查找在对应于所述第二指针数组中的所述记录号的在该指针数组中的指针数值,以获得规定的字段值(参见实施例3)。
在本发明的另一个实施例中,进一步包括:在信息块中,其中该字段值要根据规定的次序排序,产生一个计数值,其表明与对应于该字段值的计数数组中的主表格式数据相关的记录号;产生一个位置表示数组,其表示位置的初值,根据所述计数数组在该位置存储关于所述主表格式数据的记录号;根据该位置表示数组,在由相应指针数值所表示的位置放置所述主表格式数据的记录号,并且增加对应于所述位置表示数组的数值,从而产生一个排序数组,其中排序和存储主表格式数据的记录号;以及按照存储于所述排序数组中的记录号的次序获得所需的字段值,并且显示根据所述关键字段排序的字段值。
例如,在要排序的字段是关键字段的情况下,可以在关于该关键字段的信息块中产生一个计数数组,其存储表示在构成所述主表格式数据的信息块的指针数组中的指针数值的数目,并且它是这样一个信息块,其中按照对于所述关键字段的信息块内的数值列表的次序,使该信息块的数值列表与所述信息块相等。在其它情况中,可以在信息块中,利用在该信息块中的指针数组对所述字段值排序,该信息块构成与关于该关键字段的信息块相等的主表格式数据,以及所述第二指针数组,产生计数数组,其中存储表示关于主表格式数据的记录号的计数值。
在本发明的另一个实施例中,执行如下步骤:准备多个表格式数据的表格,其中通过显示链接的表格式数据的方法,使包含在用于特定字段的信息块中的数值列表相等;对于所述多个表格式数据的表格,在用于特定字段的所述信息块中,确定表格式数据,其中在显示时的默认排序被反映为主表格式数据,并且确定要作为从表格式数据的所有其它表格式数据;在构成所述从表格式数据的信息块中,这是一个这样的信息块,其中使其数值列表相等,产生第一计数数组,其中存储表示关于对应该字段值的从表格式数据的记录号的计数值;根据所述第一计数数组,产生第一位置表示数组,其确定在记录号被排序的状态中,用于放置所述从表格式数据的初始位置;根据第一位置表示数组,在由相应指针数值所表示的位置放置所述从表格式数据的记录号,并且增加对应于所述位置表示数组的数值,从而产生第一排序数组,其中主表格式数据的记录号被排序和存储;以及查找所述位置表示数组的初值和终值,以及在信息块中查找指针数组,其中对于所述主表格式数据使其数值列表相等,检测关于所述主表格式数据的其它信息块的指针数组的重复程度,并且根据所述重复程度扩展指针数组;查找所述位置表示数组和所述排序数组的初值和终值,检测关于主表格式数据的信息块的指针数组的重复程度,以及根据重复程度扩展指针数组;以及根据所述扩展的指针数组获得并显示所需的字段值。
本实施例可以应用于不能查找到关于表格式数据的关键字段的情况。在这种情况下,确定表格式数据,其中在显示时的默认排序次序被反映为主表格式数据。并且确定所有其它表格式数据为从表格式数据。通过本实施例,根据指针数组的重复程度进行扩展,并且根据扩展的指针数组识别字段值。相应地,即使在连接表格式数据的情况中,其中特定字段值被重复使用,也可以仅仅操作排序数组和指针数组,来产生适当的表格(视图),而不需要复杂的处理。
为了减小主表格式数据的存储量,只要产生第一转换数组,其中主表格式数据的记录号根据重复程度而复制和放置;以及对于所述主表格式数据,根据所述第一转换数组查找指向信息块的数值列表的指针数组,并且取得该列表的字段值。另外,为了减小从表格式数据的存储量,只要产生第二转换数组,其中根据相关的重复程度复制和放置所述主表格式数据的记录号和从表格式数据的记录号;以及对于所述从表格式数据,根据所述第二转换数组查找指向信息块的数值列表的指针数组,并且取得该列表的字段值(参见实施例5)。
另外,在本发明的另一个实施例中,准备多个表格式数据的表格,其中通过显示链接的表格式数据的方法,使包含在用于两个或多个特定字段的信息块中的数值列表相等;并且对于所述多个表格式数据的表格,在用于特定字段的所述信息块中,通过确定该表格式数据,其中在显示时的默认排序次序被反映为主表格式数据,并且确定所有其它表格式数据为从表格式数据;对于所述主表格式数据,产生指向一个虚拟数值列表的指针数组,该数值列表是两个或多个相等的数值列表的积集(product set);对于所述从表格式数据,产生指向所述虚拟数值列表的指针的第二数组;产生第三指针数组,其表示按照所述虚拟数值列表的字段数值的次序的所述从表格式数据的记录号;在包含于所述多个表格式数据的表格的信息块中,识别关于要显示的字段的信息块;在关于要显示的字段的所述信息块中,对于构成表格式数据的信息块,在指针数组中查找对应于所规定的记录号的指针数值,获得规定的字段值;在关于要显示字段的所述信息块中,对于构成所述子表格式数据的信息块,查找对应于所规定记录号的记录号,并且根据在指向所述虚拟数值列表的指针数组中的相应指针数值,识别在所述第三指针数组中的所述从表格式数据的记录号;在构成所述从表格式数据的所述信息块中,查找在指针数组中对应于与所述从表格式数据相关的记录号的指针数值,并且获得规定的字段值;以及显示如此获得的字段值。
本发明可应用于需要在多个表格式数据的表格中连接多个字段并且查找规定的表格(视图)的情况中。通过本实施例对于该数值列表创建指针数组,该数值列表是多个字段的字段值的积集。相应地,不需要实际创建作为要占用大量存储空间的一个积集的数值列表,而是可以在以极高速度连接多个字段的状态中,通过仅仅产生一个指针数组而获得一个表格(视图)。
如果有两个所述信息块具有相等的数值列表,并且p是对于一个信息块等价的数值列表中的字段值数目,而q是对另一个信息块等价的数值列表中的字段值数目,
指向关于所述主表格式数据的所述虚拟数值列表的指针值Pmi(0≤i≤p-1)表达如下:
Pmi=Pm1i×q+Pm2i
(其中Pm1i是关于一个信息块的数值列表的字段值,并且Pm2i是关于另一个信息块的数值列表的字段值),以及
指向关于所述从表格式数据的所述虚拟数值列表的指针数值Psj(0≤j≤p-1)表达如下:
Psj=Ps1j×q+Ps2j
(其中Ps1j是关于一个信息块的数值列表的字段值,并且Ps2j是关于另一个信息块的数值列表的字段值)
把多个表格式数据的表格中的多个字段相连接以获得所需字段的字段值的另一个方法包括如下步骤:准备多个表格式数据的表格,其中通过使用上述方法使包含在用于特定字段的信息块中的数值列表相等;以及对于所述多个表格式数据的表格,在所述用于特定字段的信息块中,确定该表格式数据,其中在显示时的默认排序被反映为主表格式数据,以及确定所有其它表格数据为从表格式数据;分别对于所述主表格式数据和主表格式记录,通过在除了要反映的默认排序的字段之外的一个字段上排序所述记录号而产生第一排序数组,以及最终在反映所述排序次序的字段上对所述记录号排序;查找所述第一排序数组中的记录号,并且对于所述两个或多个字段,取得两个或多个数值列表的各个相应字段值;在对应于包含由两个或多个字段值的多维数组构成的字段值的多维列表的位置存储在多维数组中如此取得的字段值;在对应于该指针数组中的所述记录号的位置存储所述记录号,用于识别所述多维数值列表的多维数组;在一个信息块中,产生第二指针数组,其按照数值列表的字段值的次序识别所述从表格式数据的记录号;在所述关于要显示的字段的所述信息块中,关于构成所述主表格式数据的信息块,查找一个指针数组的指针数值,用于识别对应于其它指针数组的所规定记录号和/或指针数值的多维数值列表,并且获得规定的字段值;在要显示的所述信息块中,对于构成所述从表格式数据的信息块,查找对应于所述规定的记录号的记录号,以及在所述相应的第二指针数组中,识别关于从表格式数据的记录号;在构成所述子表格式数据的所述信息块中,查找指针数组的指针数值,用于识别对应于关于所述从表格式数据的多维数值列表,和/或在指针数组中的指针数值,并且获得规定的字段值;以及显示如此获得的字段值。
通过该实施例,不需要把指针数组提供给虚拟数值列表,从而可以进一步减小所需的存储量。
另外,本发明的目的还可以通过用一个记录有程序的记录介质而实现,该程序可以实现上述的方法,或者用包括执行上述方法的步骤的装置的一个表格式数据链接装置或表格式数据显示装置来实现。
附图说明
在下文参照附图和实施例的描述中,本发明的目的将变得更加清楚。其中:图1为示出根据本发明的一个实施例能够执行恢复、制表和搜索方法的计算机系统的硬件结构。
图2为示出用于本发明的实施例中的一个信息块。
图3A至3D为示出表格式数据的例子,以及基于该表格的信息块的例子。
图4A至4C为示出表格式数据的另一个例子,以及基于该表格的信息块的例子。
图5为示出在单个字段中搜索的方法的流程图。
图6为用于描述根据表格式数据创建信息块的过程的流程图。
图7A和7B为示出用于创建信息块的原始数据的示意图。
图8A至8C为示出表格式数据的两个表格的示意图。
图9A至9F为示出基于图8A至8C中所示的表格式数据的信息块的示意图。
图10为示出根据本发明的一个实施例在CPU中执行的功能的一个例子的方框图。
图11为示出根据本发明的一个实施例的共享数值列表的处理的流程图。
图12为对于图8A至8C和9A至9F中所示的例子,更加详细地在图11中示出的部分过程的示意图。
图13A和13B为示出根据本发明一个实施例创建视图的过程的流程图。
图14为用于描述根据图13A和13B所创建的视图的示意图。
图15为示出根据本发明一个实施例获得在所要求的字段上排序的表格的过程的流程图。
图16A和16B为用于描述显示关于“客户标识”、“客户名”以及“应付款”的视图以及根据“服务标识”排序的视图的过程的示意图。
图17为根据本发明的一个实施例说明对记录号的排序的示意图。
图18A和18B为示出在特定字段上排序的视图的例子的示意图。
图19A和19B为示出根据实施例2的指针的数组的示意图。
图20为示出根据实施例3的一个指针数组的例子的示意图。
图21A至21C为示出用于图4中的表格式数据(表格)的例子的示意图。
图22为示出根据实施例4的处理的流程图。
图23为用于说明根据实施例4的数值列表共享的示意图。
图24为用于说明根据实施例4的从属表的排序的示意图。
图25为根据实施例4扩展指向主表格的数值列表的一个指针数组的过程的流程图。
图26为用于说明根据实施例4扩展指向主表格的数值列表的指针数组的示意图。
图27为示出根据实施例4扩展指向从表格的数值列表的指针数组的过程的流程图。
图28为用于说明根据实施例4扩展指向从表格的数值列表的指针数组的示意图。
图29A至29D为示出根据实施例用于创建连接表(视图)的信息块的示意图。
图30A和30B为根据实施例5用于描述在主表格侧提供的转换数组的示意图。
图31为根据实施例5创建在从属记录侧提供的转换数组的过程的流程图。
图32A至32C为示出根据实施例5创建在主表格侧的转换数组的一个例子的示意图。
图33为根据实施例5用于描述根据从表格侧的转换数组获得虚拟“比赛数据”信息块的次序的示意图。
图34A至34C为示出用于第六实施例中的表格式数据(表格)的例子的示意图。
图35为示出根据实施例6的处理的流程图。
图36为用于说明根据实施例6数值列表的共享的示意图。
图37为用于说明根据实施例6的虚拟数值列表以及指向这些数值列表的指针数组的示意图。
图38为用于说明根据实施例6的虚拟数值列表,以及指向这些数值列表的指针数组的示意图。
图39为用于说明根据实施例6的虚拟数值列表,以及指向这些数值列表的指针数组。
图40为用于说明根据实施例6的虚拟数值列表、以及指向该记录号的指针数组。
图41为用于说明根据实施例6的创建表格(视图)的过程的示意图。
图42为示出根据实施例7的处理的流程图。
图43为用于说明根据实施例7的主表格的二次排序的示意图。
图44为用于说明根据实施例7具有指针数值的数值列表是由链接的多个字段所构成的多维数组的示意图,以及产生指针数组的过程。
图45为示出根据实施例7在一个主表格中创建的一个新的信息块的示意图,在该主表格上执行图43中所示的排序处理。
图46为示出根据实施例7在主表格中创建的一个新的信息块的示意图,在该主表格上执行图43中所示的排序处理。
图47为示出根据实施例7与从表格相关的一个新信息块的示意图。
图48为用于说明根据实施例7的处理创建表格(视图)的过程的示意图。
图49A和49B为用于说明在第一实施例中获得对其它字段排序的表格(视图)的过程的示意图。
具体实施方式
[示意结构]
在下文中参照附图描述本发明的实施例。图1为示出根据本发明一个实施例能够执行恢复、制表和检索的计算机系统的硬件结构的方框图。如图1中所示,该计算机系统10具有与普通计算机相同的结构,其中包括:CPU12,其通过执行程序而控制整个系统及其各个部件;随机存取存储器(RAM)14,其存储工作数据等等;只读存储器(ROM)16;硬盘或其它固定存储设备18;用于读取CD-ROM19的CD-ROM驱动器20;为CD-ROM驱动器以及连接到外部网络(未示出)的外部终端提供的接口(I/F)22;键盘、鼠标或其它输入设备24;以及CRT显示设备26。CPU12、RAM14、ROM16、外部存储介质18、接口22、输入设备24和CRT显示设备26通过总线相互连接。
根据该实施例,用于链接(连接)表格式数据的程序、用于从链接的表格式数据创建规定字段的表格(视图)的程序、搜索程序、制表程序和排序程序可以包含在CD-ROM19中并且由CD-ROM驱动器20所读取,或者预先存储在ROM16中。另外,一旦从CD-ROM19中读出,该程序还可以存储在外部存储介质18的特定区域。另外,上述程序还可以由外部通过网络(未示出)、外部终端或接口22提供。
另外,在该实施例中,为了快速地执行搜索、制表和排序,如下文中所述,需要产生规定数据格式的信息块。该信息块产生程序可以类似地包含在CD-ROM19上、存储于ROM16中或者存储在外部存储介质18上。另外,这些程序还可以通过网络(未示出)自然地由外部提供。另外,在该实施例中,由产生信息块的上述信息块产生程序所产生的数据(信息块)被存储在RAM14或存储在外部存储介质的特定区域中。
[数据控制和处理的原理]
下面,我们将描述本发明所必备的数据格式以及搜索、制表和排序的原理。为了实现极高速度地进行处理,本发明考虑具有特定数据格式的表格式数据的结构以及一种搜索、制表和排序的方法(PCT申请No.WO00/10103)。在本发明中,根据该申请构造表格式数据,作为信息块的规定集合,以及使用它们进行搜索、制表和排序。
图2为示出用于本发明一个实施例中的信息块的示意图。如图2中所示,信息块100包括数值列表110和指向该数值列表120的指针数组。数值列表110是对于表格式数据的每个字段包含字段值111的表格,根据属于该字段的字段值,该字段值按照被指定(整体指定)的字段值号的次序对应于字段值号。指向该数值列表120的指针数组是包含表格式数据中的列(即,字段)的字段值号的一个数组,也就是说,按照表格式数据记录号的次序指向数值列表110的指针。
通过把上述指向数值列表120和数值列表110的指针数组相合并,给出特定的记录号,可以从指向特定字段的数值列表120的指针数组获得对应于记录号的所存储字段值号,然后获得对应于数值列表110中的字段值号的所存储字段值,这样从记录号获得该字段值。相应地,可以按照常规数据表格的相同方式,引用使用记录号(行)和字段(列)的所有数据(字段值)。
例如,考虑图3A中所示的表格式数据。在该例子中,把各种字段值赋予客户号、客户名和电话号码的字段。在该实施例中,这种表格式数据被作为图3B至3D中所示格式的信息块而存储。例如,在图3B中,指针数组120-1与数值列表110-1相关联,该数值列表包含表示客户标识的字段值。也就是说,用于第一记录(记录号“0”)的指针数组的指针数值为0,并且获得表示客户标识的相应字段值“1”。在图3C中,指针数组120-2与数值列表110-2相关联,其中包含表示客户名的字段值。例如,用于第一记录(记录号“0”)的指针数组的数值为0,并且获得表示客户名的“华盛顿”的相应字段值。在图3D中,可以看出指针数组120-3类似地与数值列表110-3相关联,该数值列表包括表示电话号码的字段值。另外,可以看出在每个数值列表中,该字段值按照相继次序排列(在本例中为升序)。例如,当采用升序时,对于数值,在该数值列表中的字段值以最小值为开始。另外,对于日本语,该字段值按照“aiueo”次序存储,并且对于英语和其它语言,其按照字母次序存储。
另外,在该实施例中,信息块100的数值控制表包含数值列表110以及用于搜索和制表的种类号标志数组、表示存储对应于字段值的指针的存储空间的开始地址的开始位置数组、以及计数数组。种类号标志数组的各种标志和计数数组的计数值分别与字段值相关联。种类号标志数组的标志数值通常为“0”,但是在搜索和制表时被设置为对应于要查找的字段值的“1”。另外,该计数值对应于具有字段值的计录号。请注意,开始位置对应于通过累加小于相应指针数值的指针值而获得的计数值,并且不需要提供该开始位置。
图4A为示出表格数据另一个例子,而图4B和4C为示出关于“性别”和“年龄”的信息块。如图4B中所示,关于性别的信息块200-1的数值控制表格210-1包含对应于指针数组220的各个指针数值(“男性”和“女性”)的字段值和种类号、开始位置和对应于各个字段值的计数值。例如,其中指针数值为“0”(即,在该数值列表中的字段值为“男性”)的记录号为632564,另一方面,指针数值为“1”(即,在数值列表中的字段值为“女性”)的记录号为667426。另外,对应于各个字段值的开始位置表示在指向记录230-1(在下文中描述)的指针数组中的开始地址。可以看出,图4C的情况与上文所述相同。
在下文中描述使用具有这种数据结构的信息块进行搜索的一个例子以及产生信息块的过程。图5为示出搜索单个字段的方法的流程图。在该例子中,我们将搜索“年龄”字段的数值为16或19的记录。首先,在关于表格式数据的信息块中,指定在图4C中所示的“年龄”200-2的信息块(501)。
接着,在如此指定的信息块的数值列表210-2中(在下文中称为“指定的信息块”),“1”被设置为该字段值与上述搜索条件(16或19)相匹配的行的种类号(步骤502)。在该例子的情况中,“1”被设置为与“0”的字段值号或“3”的字段值相对应的行的种类号。接着,获得对应于种类号被设置为“1”的行的开始位置和计数值(步骤503)。该信息被称为指针获取信息。在指向记录的指针数组,根据在步骤503中获得的指针获取信息,获得表示与搜索条件相匹配的指向记录的指针的记录号(步骤504)。在该例子中,可以看出,从“0”的开始位置开始到可以包含45898个指针的位置,对应于字段值号“0”的记录指针被存储在指向记录的指针数组的区域中。另一方面,在从第2383137个指针到可以包含189653个指针的位置,对应于“3”的字段值号的记录指针被存储指向记录的指针数组的一个区域中。最后,为了用于随后的处理中,创建所取得的记录号的数组作为一个结果集合,并且保存该数组(步骤505)。
另外,通过利用种类号、开始位置和计数值还可以实现制表和排序。
下文描述创建用于上述搜索处理等等的信息块的过程。图6为用于描述根据表格式数据创建信息块的过程的流程图。首先,系统10获得表格式原始数据,并且按照字段来对该数据分类(步骤601)。该原始数据可以如7A中所示或如7B中所示。这些原始数据可以从外部提供或者可以存储在外部存储介质18中。包含下文中描述的步骤602至步骤604的处理块610产生关于单个字段的信息块。相应地,当产生多个字段的信息块时,把对应于处理块610的处理过程执行与字段数目相同的次数。作为一个例子,下面描述关于“性别”的信息块的产生。
首先,一个区域被分配在RAM14中,用于与“性别”字段相关的信息块(步骤602)。接着,在该分配的区域中产生一个数值控制表。更具体来说,该数值控制表被初始化。接着,在该原始数据中,从头到尾对所有关于“性别”的数据进行操作,以查找出现字段名的次数。在本例中,字段名“女性”和“男性”分别出现367436和632564次。因此,“女性”和“男性”的字段值被设置在数值列表中,并且适当的数字也被设置在计数栏中。在此之后,根据适当的标准对该字段值进行排序。在排序时,当字段数被重新排序时,计数值也被重新排序。接着,确定开始位置栏的数值。通过取该排序中高于该行的位置中的计数值之和而查找开始位置栏。另外,开始位置栏的数值被指定给相应种类数栏的数值。该数值被用于下一个步骤中。在按照这种方式产生数值控制表之后,产生指向记录的指针数组。对于该指针数组的区域尺寸对应于计数值的总和。
按照这种方式,可以对适当的字段产生一个信息块。通过预先执行信息块的产生,如此产生的信息块被用于执行搜索、列表和排序的处理。
[实施例1]
下面接着描述把表格式数据的两个表格相合并的处理(执行结合处理)、创建单个表格(视图)的处理以及从如此创建的视图对所述字段进行搜索、列表和排序的处理。
例如,考虑图8A至8C中所示的表格式数据的两个表格。在图8A中,每个客户标识被分配到客户名、电话号码和SVC-ID(服务标识)。另一方面,在图8B中,把应付款分配给每个服务标识,具有客户标识“1”的“Washington”被分配“D”的SVC-ID,并且在该服务表中查找“D”服务标识之后,可以看出他的应付款为“12000”元。类似地,通过对每个其他客户查找SVC和服务标识,可以确定它们的应付款。图8C示出客户标识、客户名和应付款的表格式视图。如图8C中所示,在该图中,“SVC-ID”字段具有双重数值(例如在SVC-ID中,字段值“C”和“D”多次出现),从而通过没有重复数值的所谓关键字段“服务标识”显示发票金额。这是所谓的“多个∶1”类型,考虑到没有重复数值(=“1”)的字段是从具有重复数值(=“许多”或者“多个”)的字段中得出这样的事实。另外,在本说明书中,在上述“许多”侧上的表格式数据被称为“主表格式数据”以及在“1”侧上的表格式数据被称为“子表格式数据”。
下面接着描述结合“多个∶1”类型的表格式数据的两个表格的方法。在本实施例中,通过图6中所示的技术,预先从图8中所示的表格式数据的两个表格产生图9中所示的信息块。请注意,图9A至图9B为关于图8A中所示的客户表的信息块,而图9E和9F为关于图8B中所示的服务表的信息块。另外,在这些图中仅仅示出一个列表。
仅仅B、C和D的SVC-ID被用于该客户表中,A、B、C和D的服务标识被用于该服务表中。相应地,需要共享在用于“SVC-ID”的信息块内的数值列表以及在用于“服务标识”的信息块内的数值列表。图10为根据该实施例用于CPU12的功能框图。图11为示出共享数值列表的处理的流程图。如图10中所示,CPU12被提供一个表格提取器32,其查找信息块并且提取要共享的数值列表;数值列表转换器34,其共享数值列表;指针处理器36,其把指针数组的指针数值转换为数值列表并且还产生其它所需的指针数组;以及信息块控制器38,其与RAM14等等交换数据。
如图11中所示,首先信息块控制器38从RAM14获得关于表格式数据的信息块。接着,表格提取器32查找在信息块中的数值列表并且提取要共享的数值列表(步骤1102)。在图8A至8C和9A至9F中所示的例子中,提取用于与客户表相关的“SVC-ID”的信息块的数值列表,以及提取用于与服务表相关的“服务标识”的信息块的数值列表。
在此之后,数值列表转换器34选择要共享的要求字段值转换的两个数值列表等等(步骤1103),然后参照其它数值列表执行字段值的插入。在图8A至8C和9A至9F中所示的例子中,在关于“SVC-ID”的数值列表中的字段值要求转换,这是具有重复数值的字段。数值列表转换器34查找关于没有包含在“SVC-ID”的数值列表中的关键字段“服务标识”的数值列表的字段值。接着,数值列表转换器34根据规定的次序把如此找到的字段值插入到关于“SVC-ID”的数值列表中(步骤1104)。另一方面,随着把字段值插入到数值列表中,需要改变包含指向该数值列表的指针数值的指针数组。相应地,随着数值列表的转化,指针处理器36产生用于相应于转换字段值的该数值列表的指针数组的指针数值(步骤1105)。图12为用于描述在步骤1104和1105中执行的关于图8A至8C以及图9A至9F中所示例子的处理的示意图。在对于“SVC-ID”的信息块中,其中必须执行把字段值插入到数值列表中以及改变指针数组中的指针数值,字段值“A”被插入到该数值列表中。由于该字段值在本实施例中被按照升序排列,则字段值“A”被插入到第一行。由于在第一行中创建新的字段值,因此数值“1”被加到指针数组中的指针数值。在上述实施例中,一个字段值被插入到顶部,但是显然可以把多个字段值插入到任何位置。在这种情况中,每个指针的数值仅仅需要增加插入在从开始到该指针的位置处之间的间隔内的字段值的数目。
在按照这种方式完成数值列表的共享之后,为了创建一个包含两个相结合的表格式数据的表格的视图,或者为了能够进行高速搜索、制表和排序处理,执行关于该服务表的信息块的适当处理。指针处理器36从其它表格(即,不执行数值列表或指针数组的改变的表格)的数值列表创建一个表示记录号的指针数组(指向记录号的指针数组)(步骤1106)。在一个信息块中创建指向记录号的指针数组,该信息块在要显示于接合表(视图)中的字段中包含没有与其它表格共享的列表的表格。
更加具体来说,指针处理器36首先准备与指向数值列表的指针数组相同尺寸的数组,从开始扫描指向该数值列表的指针数组中的指针数值,并且如果第“i”个指针的数值为“j”,则执行一个处理,把数值“i”存储在如此准备的数组的第“j”个单元中。按照这种方式产生指向记录号的指针。信息块控制器38取得带有新的指针数组的信息块,并且把它存储在RAM14的适当区域中(步骤1107)。
请注意,在上述共享处理中,两个表格的数值列表共享相同的含义,从而本质上仅仅需要保存一个数值列表。
在按照这种方式共享适当的数值列表之后,也就是说,对表格式数据的两个表格的数值列表的含义进行统一之后,可以执行用于创建仅仅包含所需字段的视图的“视图创建处理”、搜索处理、制表处理或者排序处理。
在下文中描述视图创建处理。图13A和13B为示出视图创建处理的流程图。图14为用于描述显示的关于“客户标识”、“客户名”以及“应付款”的视图的示意图。
在此,图13A示出根据指针数组显示数值列表中的相关字段值的情况中的处理。图13B示出根据共享数值列表显示在另一个数值列表中的相关字段值的情况中的处理。为了描述例如与图14中所示的“客户标识”的显示相关的处理,首先对记录号进行初始化(步骤1301)。接着,在用于“客户标识”的信息块中,在指向数值列表的指针数组中,在对应于记录号“0”的行上查找指针数值“0”(步骤1302)并且读取“1”的相应字段值(步骤1303)。相应地,在客户标识中的最上方字段变为“1”(步骤1304)。对所有记录号重复上述步骤1302-1304的处理(参见步骤1305和1306)。还对“客户名”显示执行相同的处理。更加具体来说,查找位于与记录号“0”相对应的行上的指针数值“5”,并且读取相应的字段值“Washington”。从而,在该表格(视图)的开始处的数值变为“Washington”。
另一方面,在关于共享数值列表的情况中,即,在使用“SVC-ID”和“服务标识”指针等等的情况中,如图13B中所示,记录号被初始化(步骤1311),并且查找指向对应于记录号“0”的行的数值列表的指针数值“3”(步骤1312)。接着,关于共享信息块(在这种情况中,为用于“服务标识”的信息块),在指向以前产生的记录号(参见图11中的步骤1106)的指针数组中,查找位于由指针数值“3”所表示的行处的指针数值(步骤1314)。通过“反向查找”获得在步骤1314中查找的指针数值,从而所需指针数值可以通过指向位于对应该指针数值的行上的另一个信息块的数值列表的指针而获得。
在上述例子中,根据作为指向记录号的指针数值“3”,在用于“应付款”的信息块中,在指向对应于记录号“3”的行中的数值列表的指针数组中查找指针数值“0”,从而可以提取相应的字段值“12000”。相应地,在该表格的最上侧的字段变为“12000”。通过重复上述步骤1213-1315的处理(参见步骤1216和1317),可以获得在应付款栏中的所有字段。按照这种方式,可以获得如图8C中所示的表格(发票金额视图)。
接着,我们将描述获得存储在所需字段中的表格的处理。图15为示出该处理的内容的流程图。具体来说,图16A和16B为用于描述显示与“客户标识”、“客户名”和“应付款”相关的视图以及根据“服务标识”排序的视图的处理的示意图。该处理包括计数数组的产生等等(步骤1501至步骤1507)以及排序数组的产生(步骤1508至步骤1513)。首先,对记录号初始化(步骤1501),并且分配具有与数值列表中的行数(字段数)相同的行数的计数数组(步骤1502)。接着,在数值列表指针数组中查找特定的记录号(步骤1503),并且增加在对应于该指针数值的行上的计数数组中的数值(计数值)(步骤1504)。例如,在图16A中,“3”为在指向对应记录号“0”的数值列表的指针数组中的指针数值,并且相应地,在计数数组中的相应行(行4)中的数值(计数值)从“0”变为“1”。或者,“1”是在指向对应记录号“2”的数值列表的指针数组中的指针数值,因此在该计数数组中的该相应行(行2)中的数值从“0”变为“1”。通过按照这种方式对所有记录号执行步骤1503和步骤1504中所示的处理(参见步骤1505和步骤1506),创建由在图16A中的符号1601所表示的计数数组。
当该计数数组完成时,根据该计数数组产生一个开始位置数组,其表示在存储空间中要放置总数数组和排序记录号的位置(步骤1507)。该总数数组与初始位置数组相同,并且用于下文中描述的各种处理中。其注意,在本说明书中总数数组或初始位置数组也被称为表示初值的位置表示数组或初始位置表示数组。
更加具体来说,在对应于具有放置在该计数数组中的行上的位置处的总数和开始位置变为比该计数值所在行的行号更小的行的计数值和总数(在图16A和16B中的上行。例如,在行1上的总数和开始位置都为“0”,并且在行2上的总数和开始位置也变为“0”,因为在行1上的计数值为“0”。另一方面,由于在行1上的计数值为“0”,则在行2上的计数值为“2”,在行3上的计数和开始位置变为“(0+2)=2”。
当按照这种方式创建计数数组、总数数组和开始位置数组时,如此创建的开始位置数组被用于执行在排序位置的各个记录号的排列处理。首先,记录号被初始化(步骤1508),并且当分配保存记录号的数组时(步骤1509),对特定的记录号执行数值列表指针数组的查找(步骤1510)。接着,在开始位置数组中,检验由在步骤1510中获得的指针数值所指向的行的开始位置,并且在记录号数组中,所述记录号被存储在对应于如此获得的开始位置的区域中(步骤1511)。例如在图16B中,在用于“SVC-ID”的信息块中,“3”是在指向对应于记录号“0”的数值列表的指针数组中的指针数值,从而查找相应的开始位置(在第四行上的开始位置)。该数值是“5”,从而记录号“0”被存储在对应于“5”的记录号数组中的一个位置(即,第6行)。
当完成记录号的存储时,增加要查找的开始位置(步骤1512)。这是因为当该开始位置是下一个要查找的位置时,需要增加在要存储该记录号的该记录中的位置。通过对所有所需记录号执行该处理(参见步骤1512、1513),可以获得一个排序的记录号数组(参见图17)。
当排序处理完成时,可以根据对应于由图12所示处理获得的记录号和由图15的装置获得的排序记录号数组的客户标识、客户名、应付款和其它显示字段获得在所需字段上排序的列表(视图)。图18A为示出按照这种方式获得的表格的示意图(在“服务标识”上排序的发票金额视图)。可以看出,即使在对另一个字段排序的情况中(例如,“应付款”),类似地可以获得例如图18B中所示的表格(按照“应付款”排序的发票金额视图)。
按照这种方式,通过该实施例,对于两个表格式数据的表格,通过从构成表格式数据的各个表格的信息块中提取要共享的数值列表,并且通过使这些数值列表的含义相同,可以实现两个表格数据的表格的接合。
[实施例2]
下面描述本发明的实施例2。在实施例1中,在共享信息块中,首先查找指向一个信息块(在“多个∶1”中的“多个”侧的信息块)的数值列表的指针数值,然后在由该指针所指向的其它信息块(在“多个∶1”中的“1”侧信息块)中查找指向该记录号的指针数值,另外,查找相应于由指向记录号的指针数值所指向的记录号的数值列表。例如在图14中所示的例子中,i)指向对于“SVC-ID”的信息块中的数值列表的指针数组,ii)指向对于“服务标识”的信息块中的数值列表中的指针数组,以及iii)指向对于“应付款”的信息块中的数值列表中的指针数组,被使用并且顺序执行各个指针数值的查找。相反,在实施例2中,指向其它信息块的记录号的指针数组被准备于一个信息块中(在“多个:1”的“多个”侧的信息块)。也就是说,在上述步骤i)-iii)中,在所述一个信息块中构造结合i)和ii)的指针数组。从而,在“1”侧上的记录号可以从“多个”侧信息块中识别。请注意,在实施例2中,除了下文中所述的指针之外,由信息处理系统10所执行的处理及其结构等等与实施例1相同。
图19A和19B是用于描述共享数值列表的处理。图19A示出用于实施例1中的客户表和服务表的信息块的一部分,而图19B示出实施例2的信息块的一部分。如图19A和19B中所示,指针处理器36(参见图10)在用于“服务标识”的信息块侧上产生用于查找指向对于“应付款”的信息块内的数值列表的指针数组的指针数组(指向记录号的指针数组)。相反,在实施例2中,指针处理器36在用于“SVC-ID”的信息块侧上产生指向记录号的指针数组,用于查找指向用于“应付款”的信息块的数值列表的指针数组,该信息块是我们最终希望查找的信息块。
更加具体来说,在实施例1中,可以准备与指向在包含共享数值列表的信息块中(例如用于图19A中的“服务标识”的信息块)为该信息块创建的记录号的指针数组相等同的虚拟指针数组,并且创建一个指针数组,其可以从“多个”侧上的信息块直接指向“1”侧上的记录号。
请注意,在图19B中所示的例子中,在指向记录号的指针数组中的指针数值在用于“服务标识”的信息块中按照升序排列,从而在指向数值列表的指针数组中的指针数值与指向用于“SVC-ID”信息块中的记录号的指针数组中的指针数值相匹配,但实际上它们不一定要匹配。
通过本实施例,在“多个∶1”的“多个”侧上的信息块中创建指向记录号的一个指针数组,从而与实施例1相比指针数组的尺寸变大。但是,当创建视图和执行排序时查找的指针数组数可以减少,从而可以进一步增加处理速度。
[实施例3]
在下文中描述本发明的实施例3。在该实施例中,指针数组被提供于要最终显示字段值的信息块中(在图9A至9F中所示的例子中,为用于“应付款”的信息块)(参见图20)。也就是说,指向提供于实施例2中的“多个”侧信息块上的记录号(参见图19B)的指针数组被提供在用于要被显示于表格(视图)中的字段的“1”侧信息块上。
通过本实施例的方法,用于“1”侧表格的记录号可以直接从用于“多个”侧表格的记录号中识别,从而可以进一步增加处理速度。
[实施例4]
在下文中描述本发明的实施例4。实施例1至3涉及从具有重复数值(=“多个”)的字段中推导不具有重复数值(=“1”)的字段这样的类型,但是在实施例4中,在“多个∶多个”类型中执行共享数值列表的处理。
例如,考虑如图21A至21C中所示的表格式数据的两个表格。在图21A中,会员名与棒球队名相关联,该会员是该棒球队的支持者。在图21B中,棒球队名和比赛日期相关联。在此,人们可以参见图21A并找到“Williams”先生是“队A”的支持者,并且还参见图21B并找到“队A”在“5/10”和“5/11”的日期进行比赛。另外,人们可以看到“Smith”也是“队A”的支持者,并且这些比赛在“5/10”和“5/11”的日期举行。
相应地,表示由每个会员所需门票的表格(门票确认视图)在图21C中示出。该视图把“支持者”和“棒球队”字段相结合,但是“支持者”字段具有重复数值(即,字段值“队A”多次出现,并且另一方面,“棒球队”字段也具有重复数值(即,字段值“队A”多次出现)。这是所谓的“多个:多个”类型,考虑到从具有重复数值(=“多个”)的字段中推导具有重复数值(=“多个”)的字段的这样一个事实。
另外,在“多个∶多个”类型中,在逻辑上,这两个表格(在图21A至21C中,“棒球支持者俱乐部会员表”以及“比赛日程安排表”)具有相同的基础,但是在此,反映输出表(视图)(在图21A至21C中为“棒球支持者俱乐部会员表”)的默认排列次序的表格被称为“主表格”,而其它表格被称为“从表格”。另外,在本说明书中,上述主表格还可以称为主表格式数据,并且从表格可以称为从表格式数据。按照与实施例1-3相同的方式,CPU具有在实施例4的图10中所示的结构,并且CPU12执行图22中所述的处理。
在图22中,数字列表共享处理(步骤2201)对应于图11中所示的处理,产生用于从表格等等的计数数组的处理(步骤2202)大致对应于图15中所示的处理的第一阶段(步骤1501至步骤1507),以及产生从表格的排序数组的处理(步骤2203)大致对应于图15中所示的处理的最后阶段(步骤1508至步骤1513)。
在步骤2201中,要共享的数值列表被提取(图11中的步骤1102),并且当要求转换的字段值被选择时(步骤1103),所需字段值被插入到该数值列表(参见图11的步骤1104以及图23的符号2301和2302)。接着,在指向包含所转换列表的信息块中的数值列表的指针数组内的指针数值被更新(参见图11的步骤1105和图23的符号2303和2304)。在图23的例子中,数值列表和指向主表格的数值列表的指针数组的转换和更新被执行,但是转换等等不必仅仅在主表格上执行,而是转换等等还可以在从表格或两个表格上执行。
接着,在步骤2202中,计数数组(未示出)、总数数组(未示出)以及开始位置数组(参见图24的数组2402)被产生用于从表格。在这种状态下,当步骤2401完成时,在总数数组中的特定行和在开始位置数组中的相应位置的数值相等。在从表格中,在计数数组和对应于共享数值列表的位置数组之后可以在从表格中创建共享数值列表,用于从表格的共享数组被产生(步骤2203)。在图24中,用于“棒球队”的信息块,“2”是在指向对应于记录号“0”的指针数组,从而相应的开始位置(开始位置数组的行3)被查找(参见图15的步骤1510),并且根据该数值“3”,把查找表(参见图15的步骤1510),并且根据该数值“3”,把记录号“0”置于排序矩阵(记录号矩阵)的相应位置(即行4)(参见图15的步骤1511)。另外,在查找开始位置的数值被增加,从“3”变为“4”。
在用于从表格的各个记录号被置于该排序数组(记录号数组)(参见图24的符号2401)中的正确位置上之后,产生指向该主表格的数字列表的新的指针数组。在作为本实施例的“多个∶多个”类型中,由于在主表格上的信息块中的字段值多次出现,因此可以进行这种处理。
更加具体来说,如图25中所示,在记录号被初始化之后(步骤2501),对于特定的记录号,查找在包含共享数字列表的信息块中查找指向该数值列表的指针数组,并且查找在对应于该记录号的位置(行)处的指针数值(步骤2502)。接着,查找通过对从表格排序所产生的总数数组和开始位置数组(参见步骤2203),并且计算在开始位置和在由指针数值所表示的位置处的计数之间的差(步骤2503)。
该差值表示在包含共享数字列表的信息块的数值列表中一个字段值在主表格中对于特定记录号出现的重复次数的数值。相应地,在该接合表(视图)中,指向用于已经在主表侧的字段的信息块内的数字列表的指针数组被根据由上述重复程度所示的差值而扩展(步骤2504)。也就是说,在所计算差值对于特定的记录号是“d”的情况下,在要被创建的指向数值列表的指针的新数组中,对应于在记录号的指针数值被增加“d”。
在图26中,对于记录号“0”,例如,查找指向用于包含共享数值列表的“支持者”的信息块内的数值列表的指针数组。在该指针数组中,“0”是指向对应于“0”的记录号的位置(行1)的指针数值,从而在用于包含要在从表格侧上共享的数值列表的“棒球队”的信息块中的总数数组和开始位置数组之间,查找在行1上的计数和开始位置,并且计算在开始位置和计数之间的差值(2-0=2)。接着,为了创建该接合表(视图),通过扩展指向用于主表格中的“会员名”的信息块的数值列表的指针数组而创建一个新的指针数组。请注意,在包含新的指针数组的信息块中的数值列表(用于“门票/会员名”的信息块)与包含在用于主表格的“会员名”的信息块中的数值列表相同。这是因为,该字段名“会员名”本身是共同的。请注意,由于这些数值列表是相同的,实际可以仅仅显示单个数值列表,并且这可以在两个字段之间共享。
按照这种方式,创建具有“2”指针值的两个指针。
类似地,对于记录号“1”,2是指向对应于“1”的记录号的位置(行2)的指针数值,从而在用于“棒球队”的信息块中,在相应行(行3)上的计数和开始位置被提取,并且计算通过从后者中减去前者而得出的数值(4-3=1)。相应地,在用于“门票/会员名”的信息块中,在先前创建指针之后,创建对应于用于“会员名”的信息块的具有数值“0”的指针。
另外,在主表格中的“支持者”也是要在该表格(视图)中显示的字段,并且相同的技术被用于创建一个新的信息块,其被称为用于该“支持者”字段的信息块的“门票/支持者”(参见图29B)。
在按照这种方式创建指向主表格侧上的数值列表的指针数组之后,创建指向在从表格侧上的数字列表的指针数组(步骤2205)。正如在主表格侧上多次出现的字段值那样,由于该处理是在从表格侧上执行的,以便于显示相应的字段值。更加具体来说,如图27中所示,在该记录号被初始化之后(步骤2701),对于在主表格侧上的特定记录号,在指向在主表格侧上的共享信息块的数值列表的指针数组内查找相应于该记录号的位置(行)处的指针数值(步骤2702)。接着,查找通过对从表格排序而创建的总数数组和开始位置数组(参见步骤2203),并且计算在由上述指针数值所表示的位置(行)处的开始位置和计数之间的差值(步骤2703)。在此,在所排序的记录号数组中,即该排序数组(参见图24的符号2401),可以分别从该计数和开始位置查找从哪个与主表格中的记录号相关联的位置开始的记录号的数目。也就是说,上述位置与由该计数所表示的位置相一致,并且上述数目与开始位置和计数之间的差别相一致。
相应地,根据在步骤2703中查找的总数和开始位置获取记录号,并且在指向包含要显示在接合表(视图)中的字段的信息块中的数值列表的指针数组中,表示各个记录号的指针数值被作为一个新的指针数组而提取并且按次序重新排列(步骤2703)。从而,在要被结合的信息块的组中,要从主表格提取的信息块在它们创建之后完成。
在图28中,对于记录号“0”,“0”是指向指针数组中的相应位置(行1)的指针数值,该指针数组指向用于“支持者”的信息块中的数值列表,从而获取在对应于“0”的上述指针数值的位置(行1)上的总数“0”和开始位置“2”。从这些数值,可以看出在排序集合(排序数组)中的相应于“0”的位置(行1)的“2-0=2”个记录号“1”和“3”是与主表格的记录号“0”相关联的从表格的记录号。相应地,在从表格侧,“0”和“1”的指针数值被顺序从由用于要显示在该表格(伺服)中的“比赛日期”字段的信息块内的记录号“1”和“3”(行2和行4)所表示的位置顺序地获取,它们被作为新指针放置在作为用于接合表(视图)的信息块的用于“门票/比赛日期”的信息块的数值列表中的新指针。请注意,包含在用于“门票/比赛日期”的该信息块中的数值列表与包含在用于该从表格中的“比赛日期”的信息块中的数值列表相同。相应地,可以仅仅实际显示单个数字列表,并且该数字列表可以在两个字段之间共享。
类似地,对于记录号“1”,“2”是指向指针数组内的相应位置(行2)的指针数值,该指针数组指向用于“支持者”的信息块中的数值列表,从而获取在用于“棒球队”的信息块的相应位置(行3)上的总数“3”和开始“4”。由此可以看出来自对应于排序集合(排序数组)中的“2”总数(行4)的位置的“3-2=1”个记录号“0”是与主表格的记录号“1”相关的从表格的记录号。相应地,“0”的指针数值从在指向用于“比赛日期”的记录块内的数字列表的指针数组中的记录号(行1)所表示的位置获取,并且这随后被作为一个指向包含在用于“门票/比赛日期”的信息块中的数值列表的指针(对应于主表格的记录号“0”创建的指针)。
图29A至29D为示出用于创建通过上述处理获得的结合表(视图)的信息块的示意图。图29A和29B是由图25中所示的处理根据主表格侧上的信息块而创建的,而29C是由图27的处理根据在从表格上的信息块而创建的。上述处理可以用于处理在多个信息块中重复出现的字段值。相应地,通过按照次序从开端(行1)获取数值列表的指针数值中表示的字段值,可以获得要在表格(视图)中出现的字段值。这意味着创建一个虚拟数组(对一个视图扩展的记录号数组),并且根据在相应于每个记录号的指针数组中的指针数值获得该字段值。
例如,对于开端(行1),“2”是指向用于“门票/会员”的信息块的指针数组中的相应位置(行1)的指针数值,从而可以确定要显示“Williams”的字段值,并且“0”是在用于“门票/支持者”的信息块的指针数组中的相应指针数值,从而可以确定要显示“队A”的字段值。另外,“0”是在用于“门票/比赛日期”的信息块的指针数组中的相应指针数值,从而可以确定要显示“5/10”的字段值。
如上文所述,在该实施例中,当接合两个表格时,反应输出表格(视图)的默认排序次序的表格被定义为“主表格”,而其它表格被定义为“从表格”。另外,在两个表格的信息块中共享数值列表之后,从表格侧的记录号被根据包含在从表格侧上的共享数值列表的信息块而排序。也就是说,该排序是在从表格的链接字段上执行的。接着,对于主表格和从表格,考虑到“多个∶多个”重复的情况,通过得知该重复程度根据通过上述排序获得的每个数值列表的计数和最终开始位置而创建一个指针数组。在此之后,通过根据考虑到重复的转换数组(虚拟记录号)获取相应的字段值,可以获得适当的视图。
如果用于创建表格(视图)的信息块(例如,用于图29A至29D中的“门票/会员”、“门票/支持者”以及“门票/比赛日期”的信息块)被按照这种方式而创建,通过在每个信息块中提供参照图4B、4C等等描述的种类数数组、计数数组和开始位置数组,可以清楚看出能够在该数值列表中容易地利用单个或多个字段执行搜索、制表或排序。在这种情况中,尽管已经对图4A、4B等等描述该“记录号”,但是在本实施例中,可以使用“转换数组(虚拟记录号)”来取代。
[实施例5]
在下文中描述本发明的实施例5。实施例5也实现“多个∶多个”的结合,但是在主表格侧和/或从表格侧所需的存储量被减少。
首先,我们将描述减少在主表格侧上的存储量的技术。参见图25和图6的步骤2504,在从表格中,计算在包含共享数值列表的信息块中的字段值中出现的主表格的记录号的重复次数,并且由此在主表格侧,在用于要显示在表格(视图)中的字段的各个信息块中产生指向数值列表的指针的扩展数组。但是,由于根据重复程度在从表格侧上扩展该指针,因此该重复程度在主表格中的各个记录号之间是共同的。例如,如图29A和29B中所示,如果我们查看指向两个信息块中的数值列表的指针数组中的指针数值,则在行1和行2上的指针数值是共同的。按照相同的方式,行4和行5也是共同的。当具有作为在从表格上的重复程度的共同程度,并且相应地,在主表格侧,通过提供一个数组,考虑到上述重复程度,不需要提供指向每个信息块内的数值列表的指针的数组。
图30A和30B是用于描述提供于主表格侧上的转换数组(虚拟记录号)的示意图。从图30A和30B可以清楚看出,如果创建这样一个转换数组,则可以获得与图29A至29D用于主表格侧相同的视图字段。这样一个转换数组可以通过对图25的步骤2504的处理作略微的改变而产生。也就是说,通过获得在对应于主表格的记录号的指针数组内的指针数值,可以获得在从表格侧上的排序信息块的总数数组和开始位置数组。在此,通过计算开始位置和对应于上述记录号的总数之间的差值,可以获得记录号的重复程度。因此,通过把该记录号重复与重复程度相同的次数可以获得一个新的转换矩阵。
在该实施例中,可以看出不需要实际创建该虚拟信息块(参见图30A和30B的符号3001和3002)。也就是说,通过仅仅创建该转换数组,该数组是一个虚拟记录,它可以在指向主表格侧上的信息块的数值列表的指针数组上执行查找,并且在每次创建表格(视图)时获得指向信息块的虚拟数值列表的指针的数组。相应地,可以在主表格侧创建转换数组,并且仅仅保存该数组,以创建一个接合表(视图)。
接着,我们将描述减少从表格的存储量的技术。在从表格侧,也可以通过创建对所有字段共同的转换数组而减少要分配的存储量。图31为示出在从记录侧上创建转换数组的处理的流程图。步骤3101至3103的处理类似于图27的步骤2701至2703的处理。更加具体来说,对于在主表格侧上的特定记录号,在指向主表格侧上的共享信息块的数值列表的指针数组中查找在对应于该记录号的位置(行)处的指针数值(步骤3102)。接着,识别对应于该指针数值的总数数组和开始位置数组,并且通过计算开始位置和总数之间的差值,而识别把相应记录号存储在排序的记录号集合(排序数组)中的范围(步骤3103)。然后,所识别的记录号被顺序存储在该转换矩阵中。
图32A至32C为示出创建在主表格侧上的转换数组的例子的示意图。图32A示出对应于用于“支持者”的共享信息块的指针数值“0”的查找,该指针数值相应于主表格的记录号“0”。开始位置和总数之间的差值在对应于用于在从表格侧上排序的“棒球队”的信息块的位置(行1)处为“2”,从而在记录号的排序集合(排序数组)中,可以看出在开端的两个记录号“1”和“3”与上述主表格中的记录号“0”相关联。相应地,来自开端的数值“1”和“3”被存储在转换数组中。类似地,在图32B中,根据对应于主表格的记录号“1”查找的用于“支持者”的信息块的指针数值“2”,在用于“棒球队”的信息块的相应位置(行3)的开始位置“4”和总数“3”被确定。它们之间在排序数组中的差值是“1”,可以看出,来自总数“3”所表示的位置(行4)的“1”个记录号“0”是对应于主表格中的记录号“1”的记录号。相应地,在上述图32A的转换数组中,记录号“0”被存储在与对于主记录号“0”执行存储的区域相邻的区域中。通过重复该处理,可以在从表格获得公共的转换数组。
图33为用于描述根据通过上述处理获得的从表格侧上的转换数组获得用于“比赛日期”的虚拟信息块的次序的示意图。如图33所示,通过获得在指向对应于转换数组中的数值的数值列表的指针数组中的指针数值,可以创建用作为接合表(视图)的一个虚拟信息块。按照与主表格的描述相同的方式,可以在每次创建一个表格(视图)时创建该虚拟信息块。也就是说,通过仅仅创建转换数组,可以根据要创建的表格(视图)按照需要创建该虚拟信息块。只要存在转换数组和原始信息块,则可以立即创建最终创建的用于“比赛日期”的信息块(由图33中的虚线所框住),从而不需要创建并保存该信息块。
请注意,还可以仅仅创建在主表格侧上的转换矩阵或者在从表格侧上的转换矩阵。例如,在仅仅对于一个表格的存储量变大的情况下,可以仅仅对其它表格创建转换数组。实际上不必说,该转换数组还可以对两个表格创建。
另外,该实施例还用于通过与实施例4相同的技术进行搜索和排序。
通过该实施例,在“多个∶多个”类型中,通过分别在主表格和/或从表格中保存一个转换数组,可以获得一个接合表(视图),而不创建新的信息块。相应地,可以减少所需的存储量。
[实施例6]
在下文中描述本发明的实施例6。在实施例4和5中,在主表格和从表格中共享单个字段(信息块的数值列表),但是在实施例6中,实现多个字段的结合。
例如,考虑如图34A和34B中所示的两个表格(人名表和年龄表)。首先,对于人名表,可以找到“姓”字段和“名”字段。另一方面,对于年龄表,可以找到“年龄/姓”字段、“年龄/名”字段和“年龄字段”。相应地,为了创建所谓人名/年龄视图的表格(视图),其中包括人名和年龄,需要把“姓”和“年龄/姓”相结合,并且还把“名”和“年龄/名”相结合(参见图34C)。请注意,在上述例子中,人名表是保持字段次序的表格(主表格)。
在下文描述创建表格(视图)的技术,在该表格中按照上文所述接合多个字段。图35为示出根据实施例6的处理的流程图。如图35所示,首先对所有要共享的数字列表执行共享处理(步骤3501)。每个共享处理对应于图11中所示的处理。在图34A至34C中所示的例子中,在上述用于人名表中的“姓”的信息块中的数值列表和在用于年龄表中的“年龄/姓”的信息块中的数字列表被共享,并且用于在人名表中“名”的信息块中的数据列表和用于在人名表中的“年龄/名”的信息块中的数值列表被共享(参见图36)。
接着,对于主表格,创建用于合并在获得一个接合表(视图)时所要求的字段的虚拟数值列表的指针数组(步骤3502)。例如,在由两个要共享的表格并且其中一个表格的数字列表包含“p”字段值而另一个表格的数值列表包含“q”的字段值的情况下,把它们相结合可以得到一个虚拟数值列表,其具有“p×q”字段值。另一方面,指向实际创建的数字列表的数组包含与在该主表格中的记录号的数目相同数目的指针数值。
更加具体来说,“第i个”指针数值Pmi(0≤i≤p-1,其中p:在一个数字列表中的字段值数目)被计算如下。取Pm1i为在指向其中一个用于要接合的字段的信息块的数值列表的指针数组中的“第i个”指针数值,并且Pm2i为指向另一个信息块的数值列表的指针数组中的“第i个”指针数值,该数值由方程(1)获得:
指针数值Pmi=Pm1i×q+Pm2i...............................(1)
(q:在其它数值列表中的字段值数目)
另外,对于从表格,创建用于合并在获得接合表(视图)时要求的字段的虚拟数值列表的指针数组(步骤3503)。该指针数组包含与从表格的记录号的数目相同数目的指针数值。
“第j个”指针数值Psj(0≤j≤p-1,其中p:在一个数字列表中的字段值数目)被按照与用于上述主表格的指针数值相同的方式计算。也就是说,取Ps1j为在指向其中一个用于要接合的字段的信息块的数值列表的指针数组中的“第j个”指针数值,并且Ps2j为指向另一个信息块的数值列表的指针数组中的“第j个”指针数值,该数值由方程(2)获得:
指针数值Psj=Ps1j×q+Ps2j.............................(2)
(q:在其它数值列表中的字段值数目)
请注意,如果要结合三个字段,则可以根据方程(3)查找“第i个”指针数值Pmi(0≤i≤p-1,其中p:一个数值列表中的字段值)。
指针数值Pmi=Pm1i×q+Pm2i×r+Pm3i.....................(3)
请注意,在此Pm1i为在指向第一信息块的数值列表的指针数组中的“第i个”指针数值,Pm2i为在指向第二信息块的数值列表的指针数组中的“第i个”指针数值,以及Pm3i为在指向第三信息块的数值列表的指针数组中的“第i个”指针数值。另外,q为在第二数值列表中的字段值的数目以及r为在第三数值列表中的字段值的数目。不必说,即使在四个或更多字段的情况下,也可以通过相同的技术查找指针数值。
图37为用于说明根据实施例6的虚拟数值列表的示意图,以及指向这些数值列表的指针数组。在作为主表格的“人名表”中,对于用于“姓”的信息块,“1”是对应于指向数值列表的指针数组中的记录号“0”(即行1)的指针数值。另一方面,对于用于“名”的信息块,“0”是在指向该数值列表的指针数组中的行1的指针数值。相应地,在指向该虚拟数值列表的指针数组中,1×q(在此为4)+0=4是对应于记录号“0”(即行1)的指针数值。另外,对于记录号“1”,在指向该虚拟数值列表的指针数组中,相应的指针数值变为0×4+3=3。
在下文中描述在上述指向虚拟数值列表的指针数组中的指针数值的含义。在上述例子中,在“人名表”中,关于用于“姓”的信息块的指针数值的数目p为3,关于“名”的信息块的指针数值的数目q为4。
对于记录号“0”,在指向虚拟数值列表的指针数组中的指针数值为“4”。由于该数值为“4/q=4/4=1”,在用于“姓”的信息块的数值列表中查找之后,可以看出该姓氏为“Smith”。另外,由于“4mod(q)=4mod4=0”,在用于“名”的信息块的数值列表中查找之后,可以看出该名字为“John”。另外,对于记录号“1”和“2”,在指向虚拟数值列表的指针数组中的指针数值为“3”和“5”。由于这些数值分别为“3/q=3/4=0”和“5/q=5/4=1”,在用于“姓”的信息块的数值列表中查找之后,可以看出该姓氏为“Carter”和“Smith”。另外,由于“3mod(q)=3mod4=3”和“5mod(q)=5mod4=1”,在用于“名”的信息块的数值列表中查找之后,可以看出该名字为“Tom”和“Ken”(参见图38)。
并且对于作为从表格的“年龄表”,在指向虚拟数值列表的指针数组中的指针数值可以通过相同的技术而获得。如此获得的在指针数组中的指针数值的含义也与主表格相同(参见图39)。
通过步骤3502和步骤3503的处理,可以用与单个字段相同的方式考虑多个字段。相应地,在子表格的信息块中,可以用指向虚拟数值列表的数组产生指向记录号的指针数组的指针数值,并且这些数值被存储在适当的位置(步骤3504)。该技术与图11的步骤1105中所用的相同。为了再次说明,在从表格的虚拟信息块中,准备与虚拟数值列表相同尺寸的数组。接着,执行处理,从而从开头扫描指向数值列表的指针数组的指针数值,并且当“第i个”指针数值为“j”时,该数值“i”被作为“第j个”单元存储在如此准备的数组中。
在图40中,对于作为从表格的“年龄表”,对包含在指向用于“年龄/应付款+年龄/名”的虚拟信息块的数值列表的指针数组中的各个指针数值进行查找,其中该虚拟信息块包含通过共享获得的虚拟数值列表。例如,“3”为对应于记录号“0”的指针数值,并且记录号“0”存储在指向记录号的指针数组中的相应位置(行4)。
一旦按照这种方式创建指向记录号的指针数组,则获得接合表(视图)(步骤3505)。更加具体来说,在主表格中的记录号规定在指向数值列表的指针数组中的指针数值,从该指针数值获取在主表格的信息块中的字段值。另外,通过根据该指针数值查找在指向包含虚拟数值列表的信息块中的数值列表的指针数组中的指针数值,识别指向在步骤3504中获得的记录号的指针数值。由于由该指针数值所表示的记录号是其中一个从表格,则在包含具有要显示数值的数值列表的该信息块中,查找该相应位置的指针数值,从而识别在该数值列表中的字段值。
在图41中,主表格的记录号(例如,“0”)被用于从主表格中用于“姓”的信息块和用于“名”的信息块的数值列表中获得字段值(例如,“Smith”和“John”)。另一方面,上述记录号还用于获得在指向包含虚拟数值列表的用于“姓+名”的信息块的数值列表的指针数组中的相应指针数值(例如,“4”),从而查找从表格的记录号(例如,“1”)。相应地,可以从用于“年龄”的信息块的数值列表中取得相应的字段值(例如,“22”),该信息块具有要显示在从表格中的字段。
通过该实施例的方法,为了处理要接合为单个字段的多个字段,在多个字段被链接的状态中创建一个信息块,并且利用对应于由该信息块所获得的字段值的虚拟指针数组识别所需记录号和指针数值。另外,不需要包含要实际创建的字段值的上述虚拟数值列表,但是仅仅创建用于指定在该数值列表中的字段值的指针数组。例如,在两个字段的字段值分别为“p”和“q”的情况下,可以创建要指向“p×q”大小的记录号的指针数组。相应地,可以实现多个字段的接合,而不需要创建包含实际链接的字段值的大数值列表。
[实施例7]
在下文中描述本发明的实施例7。在实施例6中,在多个字段被链接的状态中创建一个信息块,并且对于该信息块创建指向记录号的指针数组。但是,假设上述两个字段的字段值为“p”和“q”,在每个字段值特别大的情况下(例如,在它们为100000的情况下),仅仅指向记录号的指针数组变为特别大。为了解决该问题,在实施例7中,不创建指向该虚拟数值列表的指针数组,而是创建具用多维(例如,二维)方式编码的多字段有的数值列表,从而避免指针数组变得太大。在本说明书中的特定情况下,在具有上述编码的多个字段的数值列表中的这些字段值中以被称为多维数组。
图42为示出根据实施例7的处理的流程图。在该处理中,按照与图35相同的方式,首先执行共享处理(步骤4201)。接着,对于要接合多个字段中的每一个,对该记录号排序(步骤4202)。这样创建包含如此排序的记录号的数组(排序数组或者排序的记录号列表)。
在要接合两个字段的情况下,两次执行排序处理。例如,如图43中所示,在接合“名”和“姓”的两个字段的情况下,在共享之后,根据在用于“名”的信息块中的数值列表的次序被记录号排序,然后根据在用于“名”的信息块中的数值列表的次序排序。
接着,通过在排序数组中执行记录号的查找,产生具有链接的多个字段的数值列表以及指向该数值列表的指针(步骤4203)。更加具体来说,如图44中所示,在排序数组的数字被初始化之后(步骤4401),对于指向对应一个多字段的信息块中的数值列表的指针数组,与存储在排序数组中的指针数值一样,存储在由记录号所表示的位置的指针数值被识别(步骤4402)。当对所有上述多字段执行步骤4402的处理时(参见步骤4403和4404),按照适当的次序(步骤4405),把多个指针数值放置在对应该排序数组中的数字的位置处的新数值列表中。按照这种方式放置的多个指针数值(作为多维数组的指针数值)变为在该数值列表中的字段值。
另外,产生对应于该指针数组的指针数值,用于识别上述新数值列表的字段值(步骤4406)。也就是说,表示存储字段值的位置的数值被存储在对应于记录号的位置处。因此,该记录号可以用于获取在指向该数值列表的指针数组中的相应指针数值,并且取得在该数值列表中由指针数值所表示的字段值,其中多维数组的指针数值被存储为该字段值。
对于排序数组中的所有数字执行上述步骤4402至步骤4407的处理(参见步骤4407和4408),然后结束该处理。
图45和图46为示出在图43中所示的排序处理之后创建“姓+名”信息块的一个例子。如图45中所示,“1”为存储在排序数组(排序的记录号列表)的开端(第一位置)处的记录号,从而取得在指向各个信息块的数值列表的指针数组中的相应位置(行2)的指针数值,并且该二维数组“0 3”被按照由这些指针数值“0”和“3”所确定的次序存储在用于“姓+名”的新信息块的字段值的开始位置。另外,在存储所述数值列表的位置被置于由指针数组中的记录号所表示位置处,作为指向该数值列表的指针数值。对于其它存储在排序阵中的记录号,按照相同的程序存储作为二维数组的字段值和在指向数值列表的指针数组中的指针数值。
对于该从表格,执行与步骤4202和步骤4203中相同的处理(步骤4204和4205)。对于上述例子,产生用于“年龄/姓+年龄/名”的信息块,以及创建指向该数值列表的所需指针数组和具有二维数组的字段值的数值列表(参见图47)。
当以该方式获得在主表格或从表格中表示作为二维数组的字段值的多个字段的数值列表时,包含这些数值列表的信息块以及关于要在该表格(视图)中显示的字段的其它信息块被用于执行与图11中相同的处理。也就是说,共享表示作为二维数组的字段值的多个字段的数值列表(参见步骤1101至步骤1105)。接着,为了识别在上述其它信息块中的数值列表的字段值,产生指向记录号的指针数组(步骤1106)。一旦按照这种方式执行适当指针数组和数值列表的更新和产生之后,执行图12中所示的处理,并且通过获取字段值创建所需表格。
图48为用于说明根据实施例7中的图12所示的处理的创建表格(视图)的处理的示意图。例如,对于记录号“0”,在包含数值列表的信息块中,其中多个字段被表示为二维数组的字段值(用于“姓”+“名”的信息块),“0 3”为在指向相应数值列表的指针数组中的指针数值。在这些数值之间,前者(即“0”)具有“Smith”字段值的含义,而后者(即“3”)具有“John”字段值的含义。另一方面,对于“0”的记录号,“1”是在指向其它表格的记录号的指针数组中的相应数值。相应地,在用于“年龄”的信息块中,在指向用于“年龄”的信息块中的数值列表的指针数组中的相应位置查找指针数值“0”。相应地,在由指针数值所指向的位置处的“22”的字段值被显示在开始行上。不用说,通过相同的程序对其它记录号获得该字段值。
通过该实施例的方式,可以减少所需的存储量,并且还实现多个字段的结合。
[处理速度的讨论]
在下文中简要讨论使用在本发明的实施例中描述的技术来接合表格式数据并在所接合的表格式数据中创建表格(视图)的处理的比较,以及使用常规方法来创建相同类型的表格(视图)的处理。
对于本发明的实施例,我们启动200MHz的PentiumPro处理器,并且在RAM中创建构成表格式数据的一组信息块。所用的表格式数据包括对于每个用户的具有用户标识(0-9999:字段1)和喜好的棒球队(12队:字段2)的名称的用户表格(10000个记录)以及具有比赛号(0-119:字段1)、棒球队名(12队:字段2)和在每次比赛中的得分(0-19点)的比赛表格(120×12=1440个记录),我们创建一个用于每个用户喜好的棒球队的得分列表。在这种情况中,记录的总数变为10000(用户)×120(比赛)=1200000记录。利用对主表格和从表格保留存储空间的方法创建用于上述记录的列表,平均需要0.195秒。
相反,当利用商业数据库软件software InterBase4.2和Paradox7作为客户机在一台机器上执行常规的技术(用PentiumPro处理器在相同的条件下执行上述处理),结合上述表格式数据并且创建一个视图,需要510秒。相应地,通过本发明的方法,可以看出结合表格式数据并且创建表格(视图)大约比常规处理的速度快3000倍。
本发明不限于上述实施例,而可以在本发明的范围内具有各种变型,并且这些变型都包含在本发明的范围内。
例如,在上述实施例1中,下面描述显示对关键字段之外的一个字段排序的表格(视图)的情况。在显示对关键字段排序的表格(视图)的情况中,如图18A所示,对于作为关键字段的信息块(用于上述例子中的“服务标识”的信息块),对数值列表中的每个字段值计算在主表格式数据中的记录的数目(计数数组),并且在主表格式数据的记录号被排序的状态下替换该记录号(参见图17),但是增加特定量的额外程序以对其它字段排序。
在根据实施例1的技术中,如图49A中所示,关于关键字段的信息块(在这种情况中,为用于“服务标识”的信息块)作为用于计数数组、总数数组等等其它信息块的创建的中间产物(在这种情况中,为用于“应付款”的信息块)。也就是说,包含共享数值列表的信息块作为用于产生关于排序的主表格式数据的记录号数组(母记录号)的中间产物(参见图49B)。
另外,在以前的实施例中,已经为每个接合和表格(视图)创建,执行要共享数值列表的信息块的识别、计数数组和/或开始位置数组的计算以及转换数组的产生,而且还可以预先必要地执行它们的接合或者所需数组的创建。另外,可以预先在接收表格式数据时执行根据表格式数据构造规定格式的信息块,或者可以响应创建表格(视图)的命令而执行。
另外,上述实施例6和7描述了所多个表格式数据的表格中的两个字段相结合的技术以及显示与规定字段相关的字段值的技术,但是不必说还可以结合3个或更多的字段。例如,对于上述实施例6,可以创建指向包含如上文所述的(p×q×r)个指针的虚拟数值列表的一个指针数组,并且确定与该虚拟数值列表的对应关系。另外,对于实施例7,可以提供一个数值列表作为一组多维数组,每个数组包含3个或更多的数值。
另外,在上述实施例中,通过把规定的程序装载到普通的计算机系统10并执行该程序,而执行接合多个表格式数据的表格以及对所接合的表格执行各种操作的处理,但是本发明的不限于此,不用说,它还可以通过把专用于数据库处理的插件式计算机连接到个人计算机或者其它普通计算机系统,并且由所述插件式计算机执行上述处理而实现。相应地,在本说明书中,所述装置不一定是指实体的装置,而是还包括用软件实现的各种装置的功能。另外,一个装置的功能可以在两个或多个实体装置中实现或者两个或多个装置的功能可以由一个实体装置所实现。
如上文所述,利用链接方法和显示链接的表格式数据的方法,通过本发明的装置,可以提供用于表格式数据的结构,其允许多个表格式数据的表格按照需要来接合,并且具有小的数据量。
发明领域
本发明可用于处理大量数据的系统,例如数据库和数据仓库。更加具体来说,它可用于大规模科学和技术计算、用于飞机能源的控制系统等等,并且用于顺序管理以及例如证券交易这样的任务管理。