CN1345426A - 用于提取索引关键字数据字段的系统和方法 - Google Patents
用于提取索引关键字数据字段的系统和方法 Download PDFInfo
- Publication number
- CN1345426A CN1345426A CN00805523A CN00805523A CN1345426A CN 1345426 A CN1345426 A CN 1345426A CN 00805523 A CN00805523 A CN 00805523A CN 00805523 A CN00805523 A CN 00805523A CN 1345426 A CN1345426 A CN 1345426A
- Authority
- CN
- China
- Prior art keywords
- field
- index key
- index
- data
- row
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种用于提取索引关键字数据字段的系统。该系统含有用于从一个数据库中提取索引定义和列定义的定义查询器。该系统还含有与定义查询器相连的代码发生器。代码发生器能够根据索引定义和列定义建立用于提取索引关键字数据字段的计算机代码。一个表分析器与代码发生器相连,并利用计算机代码从数据表中提取索引数据。
Description
发明领域
本发明一般设计数据库管理系统,更具体地说,本发明设计一种用于从数据库中提取索引关键字数据字段的系统和方法。
发明背景
可以将计算机数据库表示为具有一个或多个数据列的表。各个数据列可以含有固定或可变数目的数据字符。上述表的各个行一般含有一个数据库记录,从而使各个数据库记录中出现相同列数。一个列也可被标识为一个索引关键字,这样就可以对第一索引关键字列排序,然后对第一列中出现的各个项排序第二索引关键字列。例如,如果第一索引关键字列为“州”,且第二索引关键字列为“城市”,则索引在第一列中将会按州的字母顺序排列,在第二列中则按每个州的各个城市的字母顺序排列。
一般被为计算机数据库生成各种索引以用于各种目的。例如,可以生成一个索引以允许用户立刻确定相关的数据组,或者立刻确定某一数据类是否含有其它数据子类。在若用于先前版本索引的数据存储装置损坏的情况下,也可生成一个索引。另外,如果必须从数据库的一备份版本中恢复数据库,将生成一个索引,这样就可对备份版本与已知的最新版本进行比较以保证数据的连续性。
尽管各种索引都具有很多重要的用途,但从一数据库中提取索引关键字数据字段需要大量的处理时间。现有的用于提取索引关键字数据字段的方法和系统一般会对数据库各个行的各个列中保存的数据进行校验,即使数据不是索引关键字。例如,可对数据进行校验以确定它是否为:日期字段,十进制字段,浮点字段,整数字段,小整数字段,时标字段,字符字段,图形字段,变量字符字段,变量图形字段或其它字段。而这些校验都需要处理时间。因此,对其中只有三个用于索引的30列数据库来说,处理器所执行的处理将比提取索引关键字数据字段所用的处理多至少90%。
因此,需要有一种用于从数据表中提取索引关键字数据字段的系统和方法,以基本消除或减少与传统的用于从数据表中提取索引关键字数据字段的系统和方法相关的问题。
具体来说,需要有这样一种用于从数据表中提取索引关键字数据字段的系统和方法,它不需要在不是索引关键字数据字段的数据字段上执行大范围的数据处理。
发明的概述
根据本发明的一个实施例,它提供了一种用于提取索引关键字数据字段的系统。该系统包括一个可从数据库中提取索引定义和列定义的定义查询器。该系统还含有一个与上述定义查询器连接的代码发生器。此代码发生器能够根据索引定义和列定义而建立计算机代码以提取索引关键字数据字段。一表分析器与代码发生器相连,并且可利用计算机代码从数据表中提取索引数据。
本发明提供了许多优点。其优点之一是它提供了一种用于索引关键字提取的系统和方法,从而优化了处理器从表数据中提取索引关键字时的资源使用。通过在提取索引关键字时跳过数据记录或表格行中无用的字符,本发明减少了对处理器资源的使用,而且它无需对字符进行分析以确定或校验它们是否含有确定的数据类型。
本发明的另一个优点是提供了一种可提高索引关键字提取操作速度的系统和方法。本发明提取索引和列字段定义,并且利用这些提取的定义而采用比现有技术所述方法更快的方法来对数据库表格进行分析。
附图的简要说明
以下将参考附图并仅用举例的方法对本发明的一个实施例进行说明,在附图中,相同的参考标号代表了相同的特征:
图1是一个体现本发明概念的示例性关键字提取系统的框图;
图2是根据本发明所述用于提取索引关键字数据字段的示例性方法的流程图;
图3是根据本发明所述的一种用于处理行数据的方法的流程图;
图4a和4b是根据本发明的用于形成一个公式以从表数据中提取索引关键字数据的示例性方法的流程图。
详细说明
图1是一个体现本发明概念的示例性关键字提取系统100的框图;可以利用硬件、软件或硬件和软件的适当组合来实现该关键字提取系统100。最好在配置用于处理DB2兼容数据库中的数据的D92数据库系统中使用此关键字提取系统100,或者也可在其它适当的数据库系统中使用它。
关键字提取系统100包括:定义查询器102、代码发生器104以及表分析器106。关键字提取系统100被连接至表数据存储装置108和索引数据存储器110。例如,关键字提取系统100可通过物理连接(例如,导线)、虚拟连接(例如,通过参考保存在一预定缓冲区或位置中的数据)、逻辑连接(例如,通过处理器的逻辑器件)或通过其它其它适当的连接而与上述单元耦合相连。关键字提取系统100还能执行查询表格、列和索引的定义,并可通过产生代码以对表格进行分析,从而提取出索引关键字数据字段。在必要时,关键字提取系统100还可执行其所产生的代码以从一个索引中提取数据索引关键字数据字段,例如当索引数据存储装置110出现错误时,或当保存在表格装置108的表格被恢复时。
可以利用硬件、软件或硬件和软件的适当组合来实现定义查询器102。定义查询器102最好能够运行可在普通用途计算机(如主干计算机、工作站、个人电脑或其它适当的处理器)上使用的代码。定义查询器102被设置成可按照顺序对一个数据库进行查询以提取表格、列和索引定义。例如,定义查询器102可与一保存有用于数据库索引关键字数据字段和其它适当数据的数据字段定义的DB2目录连接。定义查询器102被设置成能够提取代码发生器104所需的表格、索引和列定义,从而产生代码以自动从数据库或列表数据中提取索引关键字数据字段。
可以利用硬件、软件或硬件和软件的适当组合来实现代码发生器104。代码发生器104最好是软件,如可在普通用途计算机(如主干计算机、工作站、个人电脑或其它适当的处理器)上使用的操作代码。代码发生器104为数据库索引关键字数据字段从定义查询器102中接收各种定义,并且产生将用于分析表格数据的代码以提取索引关键字数据字段。例如,代码发生器104可以从定义查询器102中接收以下信息:
表格-8列
索引1[列6,列2]
索引2[列3,列8]
代码发生器104随后定制列和索引定义,以产生用于从列表数据中提取索引关键字数据字段的代码。例如,列定义可包括以下内容:
列1-5字符,固定 列2-10字符,固定
列3-10字符,可变,加4字符长度的字段
列4-10字符,可变,加4字符长度的字段 列5-8字符,固定 列6-7字符,固定
列7-6字符,可变,加4字符长度的字段
列8-9字符,可变,加4字符长度的字段
代码发生器104可响应上述定义而产生以下的示例性伪代码:
*READ ROWS OF DATA(读取数据行)
读取列2=列(列1+1)至(列1+列2)的字符
读取列3=列(列1+列2+5)至(列1+列2+5加长度(列3))的字符
读取列6=列(列1+列2+4+长度(列3)+4+长度(列4)+9)至(列1+列2+4+长度(列3)+4+长度(列4)+16)的字符
读取列8=列(列1+列2+4+长度(列3)+4+长度(列4)+16+4+长度(列7)+5)至(列1+列2+4+长度(列3)+4+长度(列4)+16+4+长度(列7)+5+长度(列8))上的字符
*WRITE INDICES TO WORK SPACES(将索引写入工作区)
写(列6,列2)入索引1工作区
写(列3,列8)入索引2工作区
本领域的技术人员将会认识到,上述伪代码只是一个例子,也可对代码发生器104进行适当配置以产生可用于分析根据本发明的表格数据的代码。
一般来说,代码发生器104产生代码以读取一个数据库记录或表格行中的数据,数据库记录或表格行被分割成预定的列数。代码发生器104根据数据字段相对于数据库记录起始点及相对于其它数据字段的位置而读取具有固定或可变数目字符的数据字段。代码发生器104可产生代码以跳过预定字符数、或确定并跳过一可变数据字段中的字符数、或者跳过固定和可变数据字段的一个组合。代码发生器104还能产生代码以读取一个固定或可变的数据字段,并将此数据字段与其它数据字段一起写入一工作区,从而使多个数据字段排序形成一个索引。
表分析器106与代码发生器104相连。可以利用硬件、软件或硬件和软件的适当组合来实现表分析器106。表分析器106最好能够运行可在通用计算机(如主干计算机、工作站、个人电脑或其它适当的处理器)上使用的代码。表分析器106能够接收代码发生器104所产生的代码,并执行此代码以分析表格数据并从表格数据中提取索引关键字数据字段。例如,当索引数据存储装置110出现故障后,表分析器106可从保存在表格存储装置108上的表格数据中提取索引关键字数据字段,从而重新生成索引数据。在这种情况下,将需要用关键字提取系统100把索引数据保存在一备份索引数据存储装置110上。
同样,表分析器106也可在当恢复一表格时用于产生表格数据。例如,表格数据存储装置108可能要每日进行备份,而可能因系统故障、错误的备份过程、错误的备份数据或其它错误源而出现意外损坏。在这种情况下,就需要先将表格数据存储装置108上备份的表格数据恢复成先前的备份版本,然后再检验此先前的备份版本未被损坏。一种执行这种检验的方法就是对备份表格中的索引数据与最近的索引数据进行比较。表分析器106可以被用于从此备份表格数据中提取索引数据。
在操作中,关键字提取系统100被激活以对表格数据进行分析。关键字提取系统100首先激活定义查询器102,后者接收来自适当数据存储区(如DB2目录)的数据库索引关键字数据。代码发生器104接收来自定义查询器102的定义并产生代码以用于分析表格数据。表分析器106接收代码发生器104所产生的代码并分析表格数据以提取索引关键字数据字段。按照这种方式,与现有技术中使用不是基于来自定义查询器的定义的普通代码的方法和系统相比较,关键字提取系统100的索引关键字提取操作可被优化。
图2是根据本发明所述用于提取索引关键字数据字段的示例性方法200的流程图。方法200最好与一DB2数据库系统或被配置为用于处理与DB2兼容的数据库中数据的方法一起使用,当然也可与其它适当的数据库系统或方法一起使用。
方法200始于步骤202,在此步骤中,列定义被从一数据存储区(例如:DB2目录)中提取出来。然后它前进至步骤204,在此步骤中,索引定义被从一数据存储区(例如:DB2目录)中提取出来。然后该该方法前进至步骤206,此步骤中将执行处理以确定数据字段在被编排成表格数据行的数据库记录中的位置。例如,列定义可包括10个数据字段列,它们定义出了数据库的各个行。列定义也可包括固定和可变的字段。索引定义包括多个列数据字段标识符,它们用于为表格产生索引。
例如,10列数据中的第三列和第四列可被用于产生一个索引,其中第三列被排序成第一位,而第四列则被排成第二位。按照这种方式,通过参考此索引,就可简单地确定出具有与第三列中相同的数据字段的第五列中的所有数据字段。用于确定数据字段在与数据的列相对应的行中的位置的公式是根据步骤202所检索出的固定和可变列定义而产生的。在步骤206上产生写入命令以将检索出来的数据字段写入一工作区,从而使列数据得到排序以产生索引数据。然后该方法前进至步骤208。
在步骤208,启动表格分析。例如,表格分析可在当一已有的表格索引被损坏或当表格数据被损坏需要对表格数据的备份版本进行检验时被启动。然后,该该方法前进至步骤210,在此步骤中,读取表格数据的第一列。例如,表格数据通常由被排列成数据列字段的数据行组成。当在步骤210读取了第一列之后,该方法前进至步骤212,在此步骤中,对数据行执行用于确定索引关键字列数据在数据行中的位置的处理。
例如,可以通过步骤202至206确定,列1、2、3、5、7和10是具有固定长度的列,而列4、6、8和9则是具有可变长度的列。另外,还可以确定列4、6、9和10应被写入一工作区以用于排序并准备作为一个索引。随后,数据的行在步骤212上得到分析,以使指针首先经过与前三列中的字符数总和相等的字符数而移动到其后的字符上。然后,可变的第四列的长度将被读取,指针将被移动到第四列以外的后面字符上,并且第四列中的数据将被读取并被写入工作区。
然后,指针将向前移动适当的字符数,此字符数与第四列中的字符数相等,而且可变的第六列的长度将被读取。之后,指针将被移动到第六列以外的后面字符上,并且第六列中的数据将被读取并被写入工作区。上述步骤将被重复执行以使指针经过第七和第八列,并对第九和第十列中的数据进行读和写。
当最后一个索引关键字被读取之后,该方法前进至步骤214,此步骤中,最后一个索引关键字的列数据被设置入工作区。然后该方法前进至步骤216,该步骤确定了是否有任何附加的行必须被读取。如果有附加的行存在,则方法返回至步骤210以读取下一行。否则,该方法前进至步骤218从而对已保存在索引工作区中的索引关键字数据进行排序。在一个索引具有三个关键字的例子中,第一个关键字被用于所有数据库记录的排序。第二个关键字被用于对具有相同第一关键字的所有剩余数据库记录的排序,而第三个关键字则被用于对具有相同第二关键字的所有剩余数据库记录的排序。
在这个例子中,假设第一关键字为州,第二关键字为城市,第三关键字为顺序号。则第一排序将根据州数据字段来排列所有的行或数据库记录,然后,再根据城市数据字段来排列所有的顺序号,之后,数据库记录将被排列成使顺序号按顺序排列。排序可以按字母、字母数字升序、字母数字降序、或其它适当的顺序排列。
在操作中,方法200被用于提取索引关键字数据字段并对表格数据进行处理以产生索引。方法200跳过了在用于处理索引关键字数据字段的已知方法中出现的不必要的步骤,由此减少了处理时间并优化了索引关键字提取和索引方式程序的性能。
图3是根据本发明教导的一种用于处理行数据的示例方法300的流程图。方法300可在方法200的步骤212上单独使用,也可与其它适当的方法一起读取并处理表格行数据,以提取索引关键字。方法300最好在DB2数据库系统中或与被配置成用于处理一DB2兼容数据库中的数据的方法一起使用,当然也可与其它适当的数据库系统或方法一起使用。
方法300始于步骤302,在此步骤中,数据的一个表格行被从一数据存储区读入数据内存、缓冲区或其它适当位置。然后,该方法前进至步骤304,在此步骤中,指针被设定为跳过任何通过对列和表格定义进行分析而确定的固定的字段。利用图1所讨论的例子,指针将被设定为跳过任何行首标数据以及第一列的5个固定字符。然后该方法前进至步骤306。
步骤306确定了下一个字段是否为一可变字段。本例中,下一字段是一个固定字段,所以该方法将前进至步骤312。在步骤312上确定下一字段是否为一个索引关键字。本例中,列2是一个索引关键字,所以该方法将前进至步骤314以读取该索引关键字。该索引关键字随后在步骤316上被写入一个索引工作区。上述索引工作区是一个被分配用于索引数据处理的数据存储区。然后,该该方法前进至步骤318,该步骤确定了行的最后一个索引关键字是否已得到处理。本例中,列2不是最后一个索引关键字,所以该方法将返回至步骤304。
在步骤304,流程确定了下一个字段是否为一个固定字段。本例中,下一字段为列3,它是一个可变字段。所以方法将前进至步骤306,此步骤确定出该字段是一个可变字段,然后该方法前进至步骤308。在步骤308,可变字段的字段长度被读取。然后该方法前进至步骤310,此步骤中,指针被设定成跳过可变字段的下一个字符。
当在步骤310设定指针之后,该方法前进至步骤312,此步骤确定出列数据字段是否为一个索引关键字。本例中,列3是一个索引关键字,所以该方法将前进至步骤314以读取该索引关键字。随后在步骤316将该索引关键字字段写入工作区,然后该方法前进至步骤318。剩余的列将按类似的方式得到处理,直到最后一个索引关键字被处理完为止。当在步骤318确定出最后一个索引关键字已被处理完之后,该方法前进至步骤320并终止。
在操作中,方法300被用于处理表格数据的各个行以提取索引关键字。方法300使用标识出表格数据行中的数据列数、列的长度以及含有索引关键字的列的表格和列定义,并由此提取索引关键字和将它们写入一工作区。方法300可被用于处理多个列和索引关键字的适当组合,从而使任何数目的可变和固定列数据字段都可被插入到数据表行的起点、第一索引关键字与任何附加索引关键字之间。
图4a和4b是根据本发明的用于形成一个公式以从表数据中提取索引关键字数据的示例性方法400的流程图。
方法400最好在DB2数据库系统中或与被配置成用于处理DB2兼容数据库中的数据的方法一起使用,当然也可与其它适当的数据库系统或方法一起使用。
方法400始于步骤402,该步骤确定了行的起点与第一索引关键字之间的数据字段的数目。然后该方法前进至步骤404,此步骤确定了是否任何数据字段都是可变数据字段。如果任何数据字段都是可变数据字段,则该方法前进至步骤406,此步骤中生成了一个命令用以读取表格行中位于可变数据字段之前的所有固定数据字段。然后该方法前进至步骤408,此步骤生成了一个命令以读取可变数据字段的长度字段。例如,可变数据字段通常含有一个或多个定义了可变数据字段的长度的字符,从而即使具有一零长度的可变数据字段也含有一个或多个定义该字段是无效字段的字符。然后该方法前进至步骤410,该步骤确定出是否存在有附加的可变数据字段。如果存在附加的可变数据字段,则该方法将返回至步骤406,否则该方法将前进至步骤414。
在步骤414产生一个命令,以读取在最后一个可变数据字段与第一个索引关键字数据字段之间可能存在的固定数据字段。然后该方法前进至步骤416。如果在步骤404没有出现可变数据字段,则该方法前进至步骤412。在步骤412,产生一个命令以读取从第一个字符开始跳过行的起点与第一索引关键字数据字段之间出现的固定数据字段的索引关键字数据字段。然后该方法前进至步骤416。
在步骤416产生一个命令,以读取第一索引关键字数据字段。例如,第一索引关键字数据字段可以是一固定列或是一可变列。如果第一索引关键字数据字段是一个可变数据字段,将会产生附加的命令以对该可变数据字段的长度字段进行分析,从而确定此含有第一索引关键字数据字段的可变数据字段中的字符数。然后该方法前进至步骤418,该步骤产生一个命令以将上述索引关键字数据字段写入索引工作区。
当步骤418产生索引关键字命令之后,该方法前进至步骤420,该步骤确定了是否有附加的索引关键字数据字段存在。一般来说,一个索引需至少一个索引关键字数据字段。只有当若有两个或多个索引关键字被使用时,该方法才前进至步骤424。如果全部索引关键字数据字段都已被提取出来,则该方法将前进至步骤422并且终止。
在步骤424,确定最后一个索引关键字数据字段与下一个索引关键字数据字段之间的数据字段的数目。然后该方法前进至步骤426,该步骤确定出是否有任何数据字段是可变字段。如果有可变数据字段存在,则该方法前进至步骤428,该步骤产生一个命令以读取可变字段之前出现的所有固定字段。当在步骤428产生命令之后,该方法前进至步骤430,在该步骤产生了一个命令以读取可变数据字段的长度字段。还产生另一个命令以根据从可变数据字段的长度字段中所读取的字符数来读取可变数据字段。然后该方法前进至步骤432,该步骤确定是否有另外的可变数据字段存在。如果有另外的可变数据字段存在,则方法将返回至步骤428。否则,该方法前进至步骤436,在该步骤中,生成一个命令,读取从最后的可变数据字段到下一个索引关键字数据字段的固定数据字段之后的第一个字符开始下一个索引关键字数据字段。然后该方法前进至步骤438。
如果步骤426上确定出没有可变字段出现,则该方法前进至步骤434,该步骤产生一个命令以读取在前一个索引关键字与下一个索引关键字数据字段之间出现的固定字段的数目。然后该方法前进至步骤438。在步骤438,一个命令被产生以读取下一个索引关键字数据字段。例如,索引关键字可以含有一个固定或可变的字段。如果索引关键字数据字段含有一个可变数据字段,则会产生一个附加的命令以读取该可变数据字段的长度字段,并且确定出该可变数据字段中的字符数。然后该方法返回至步骤418,该步骤产生一个命令以将索引关键字数据字段写入一个工作区。
方法400被用于产生代码以通过例如图1中的代码发生器104对一表格进行分析。方法400产生为特定表格优化的代码,这样就可跳过索引提取操作所不需要的列和字段,并且也不必对它们进行分析。按照这种方式,方法400提高了从表格中提取索引的速度,而这进一步降低了必须用于提取索引关键字数据字段工作的处理器资源量。
尽管以上说明的是本发明的一个特定实施例,但应该明白,本发明并不仅限于该特定实施例,在由以下权利要求所定义出的本发明的范围内,可对其进行各种修改和增补。
Claims (19)
1.一种用于提取索引关键字数据字段的方法,其中包括以下步骤:
查询至少包括一个列标识符的索引定义;
查询至少一个列定义;以及
根据索引定义和列定义形成用于提取索引关键字数据的算法。
2.如权利要求1所述的方法,还包括以下步骤:利用算法从一表格中提取索引关键字数据;并将索引关键字数据保存入一索引工作区中。
3.如权利要求2所述的方法,还包括以下步骤:在全部索引关键字数据都已被从表中提取出来之后,对索引工作区中的索引关键字数据进行排序。
4.如权利要求1所述的方法,其中所述查询索引定义的步骤包括从DB2目录查询索引定义。
5.如权利要求1所述的方法,其中所述查询至少一个列定义的步骤包括从DB2目录查询至少一个列定义。
6.如权利要求1所述的方法,其中所述根据索引定义和列定义形成用于提取索引关键字数据的算法的步骤包括:
确定分隔各个索引关键字的固定和可变数据字段的数目;
产生一个或多个命令以从分隔各个索引关键字的固定和可变数据字段中提取各个索引关键字;以及
产生一个或多个命令以将索引关键字数据写入一索引工作区。
7.一种用于提取索引关键字数据字段的方法,包括以下步骤:
确定固定和可变数据字段的第一块;
提取在固定和可变数据字段的第一块之后出现的第一索引关键字;
将该第一索引关键字写入一工作区;
确定固定和可变数据字段的第二块;
提取在固定和可变数据字段的第二块之后出现的第二索引关键字;以及
将第二索引关键字写入工作区;
8.如权利要求7所述的方法,其中所述确定固定和可变数据字段的第一块的步骤包括:
通过将位于可变数据字段的长度字段之前的全部固定数据字段的字符数相加,确定可变数据字段的长度字段的位置;
读取可变数据字段的长度字段;和
将可变数据字符的数目与固定和可变数据字段的第一块相加。
9.如权利要求7所述的方法,还包括重复以下步骤:
对位于一行中的第一个字符与第一个索引关键字之间的各个可变数据字段,确定可变数据字段的长度字段位置,读取可变数据字段的长度字段,以及将可变数据字符的数目与固定和可变数据字段的第一块相加。
10.如权利要求7所述的方法,其中所述确定固定和可变数据字段的第二块的步骤包括:
通过将第一索引关键字数据字段之后且在可变数据字段的长度字段之前的全部固定数据字段的字符数相加,确定可变数据字段的长度字段的位置;
读取可变数据字段的长度字段;以及
将可变数据字符的数目与固定和可变数据字段的第二块相加。
11.如权利要求10所述的方法,还包括重复以下步骤:
对第一个索引关键字数据字段与第二个索引关键字数据字段之间的各个可变数据字段,确定可变数据字段的长度字段位置,读取可变数据字段的长度字段,以及将可变数据字符的数目与固定和可变数据字段相加。
12.如权利要求7所述的方法,还包括重复如下步骤:
对于一个或多个附加索引关键字数据字段的每个字段,确定固定和可变数据字段的附加预定数目,提取一附加索引关键字,并将附加索引关键字写入工作区。
13.如权利要求7所述的方法,其中所述确定固定和可变数据字段的第一块的步骤包括:
查询一含有两个或多个列标识符的索引定义;
查询两个或多个列定义,其中各个列定义都与一个固定或可变数据字段相对应;以及
确定一行中的第一个字符与第一索引关键字数据字段之间的字符数目。
14.如权利要求7所述的方法,其中所述确定固定和可变数据字段的第二块的步骤包括:
查询含有两个或多个列标识符的索引定义;
查询两个或多个列定义,其中各个列定义都与一个固定或可变数据字段相对应;以及
确定第一个索引关键字数据字段与第二个索引关键字数据字段之间的字符数目。
15.一种用于提取索引关键字数据字段的系统,包括:
用于从数据库中提取索引定义和列定义的定义查询器;
与定义查询器连接的代码发生器,其根据索引定义和列定义建立用于提取索引关键字数据字段的计算机代码;以及
与代码发生器连接的表分析器,其利用计算机代码从一数据表中提取索引。
16.如权利要求15所述的系统,其中所述定义查询器可从一DB2目录中提取索引定义和列定义。
17.如权利要求15所述的系统,其中所述代码发生器还包括:
固定字段代码发生器,该固定字段代码发生器产生代码使处理器跳过具有预定字符数的字段;和
可变字段代码发生器,该可变字段代码发生器使处理器跳过具有可变字符数的字段。
18.如权利要求17所述的系统,其中所述可变字段代码发生器产生代码以使处理器能够定位长度字段并跳过与保存在长度字段中的数值相对应的字符数加上长度字段的字符数之和。
19.如权利要求17所述的系统,其中所述表分析器还包括一与代码发生器相连的处理器,该表分析器可利用计算机代码从一数据表中提取索引数据。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/276,994 | 1999-03-26 | ||
US09/276,994 US6457014B1 (en) | 1999-03-26 | 1999-03-26 | System and method for extracting index key data fields |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1345426A true CN1345426A (zh) | 2002-04-17 |
Family
ID=23058994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN00805523A Pending CN1345426A (zh) | 1999-03-26 | 2000-03-24 | 用于提取索引关键字数据字段的系统和方法 |
Country Status (11)
Country | Link |
---|---|
US (1) | US6457014B1 (zh) |
EP (1) | EP1226485A4 (zh) |
JP (1) | JP2003515802A (zh) |
KR (1) | KR20020009583A (zh) |
CN (1) | CN1345426A (zh) |
AU (1) | AU762634B2 (zh) |
BR (1) | BR0009321A (zh) |
CA (1) | CA2368710A1 (zh) |
IL (2) | IL145325A0 (zh) |
WO (1) | WO2001038952A2 (zh) |
ZA (1) | ZA200107321B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103390020A (zh) * | 2012-05-10 | 2013-11-13 | 西门子公司 | 在数据库中存储数据的方法和系统 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU5181099A (en) * | 1998-07-30 | 2000-02-21 | British Telecommunications Public Limited Company | An index to a semi-structured database |
US6938046B2 (en) * | 2001-03-02 | 2005-08-30 | Dow Jones Reuters Business Interactive, Llp | Polyarchical data indexing and automatically generated hierarchical data indexing paths |
US7263536B1 (en) * | 2002-09-23 | 2007-08-28 | Ncr Corp. | System and method for updating an index in a database |
US7181481B2 (en) * | 2003-10-20 | 2007-02-20 | International Business Machines Corporation | System and method for concurrently reorganizing logically related LOB table spaces |
US7392266B2 (en) * | 2005-03-17 | 2008-06-24 | International Business Machines Corporation | Apparatus and method for monitoring usage of components in a database index |
US7562067B2 (en) * | 2005-05-06 | 2009-07-14 | Microsoft Corporation | Systems and methods for estimating functional relationships in a database |
US20080059486A1 (en) * | 2006-08-24 | 2008-03-06 | Derek Edwin Pappas | Intelligent data search engine |
WO2008032393A1 (en) * | 2006-09-15 | 2008-03-20 | Fujitsu Limited | Information processing method and device for work process analysis |
WO2009098766A1 (ja) | 2008-02-07 | 2009-08-13 | Fujitsu Limited | 業務フロー処理プログラム、方法及び装置 |
US9535932B1 (en) * | 2012-06-29 | 2017-01-03 | ParAccel, LLC | Backup and restore of databases |
KR101440475B1 (ko) * | 2012-10-17 | 2014-09-17 | 주식회사 리얼타임테크 | 혼합 질의 처리를 위한 색인 생성 방법, 혼합 질의 처리 방법 및 색인 자료구조를 기록한 기록 매체 |
US9400817B2 (en) * | 2013-12-31 | 2016-07-26 | Sybase, Inc. | In-place index repair |
US11321183B2 (en) | 2018-05-02 | 2022-05-03 | Commvault Systems, Inc. | Multi-tiered backup indexing |
US11249863B2 (en) * | 2018-05-02 | 2022-02-15 | Commvault Systems, Inc. | Backup-based media agent configuration |
US10673943B2 (en) | 2018-05-02 | 2020-06-02 | Commvault Systems, Inc. | Network storage backup using distributed media agents |
US11263173B2 (en) | 2019-07-30 | 2022-03-01 | Commvault Systems, Inc. | Transaction log index generation in an enterprise backup system |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8815988D0 (en) * | 1988-04-08 | 1988-08-10 | Ibm | Relational databases |
CA2284250C (en) * | 1989-09-01 | 2001-12-04 | Amdahl Corporation | Computer method for implementing a get instruction |
US5623556A (en) * | 1990-07-31 | 1997-04-22 | Kabushiki Kaisha Toshiba | System and method of extracting binary image data |
JP2711204B2 (ja) * | 1992-03-09 | 1998-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | リレーショナルデータベースのユーザインターフェースを生成する方法 |
US5396623A (en) * | 1992-10-30 | 1995-03-07 | Bmc Software Inc. | Method for editing the contents of a DB2 table using an editproc manager |
JP3104953B2 (ja) * | 1993-12-17 | 2000-10-30 | 日本電信電話株式会社 | 多重読み取り特殊再生方法 |
CA2124094C (en) * | 1994-05-20 | 1999-07-20 | K. Bernhard Schiefer | Method and apparatus for optimizing data retrieval using index scanning |
US5729730A (en) * | 1995-03-28 | 1998-03-17 | Dex Information Systems, Inc. | Method and apparatus for improved information storage and retrieval system |
US6112199A (en) * | 1995-10-18 | 2000-08-29 | Nelson; Paul M. | Data item values |
US5893104A (en) * | 1996-07-09 | 1999-04-06 | Oracle Corporation | Method and system for processing queries in a database system using index structures that are not native to the database system |
US5842197A (en) * | 1996-08-29 | 1998-11-24 | Oracle Corporation | Selecting a qualified data repository to create an index |
US5873079A (en) * | 1996-09-20 | 1999-02-16 | Novell, Inc. | Filtered index apparatus and method |
US6167393A (en) * | 1996-09-20 | 2000-12-26 | Novell, Inc. | Heterogeneous record search apparatus and method |
GB2329044B (en) * | 1997-09-05 | 2002-10-09 | Ibm | Data retrieval system |
US6055526A (en) * | 1998-04-02 | 2000-04-25 | Sun Microsystems, Inc. | Data indexing technique |
-
1999
- 1999-03-26 US US09/276,994 patent/US6457014B1/en not_active Expired - Lifetime
-
2000
- 2000-03-24 JP JP2001540443A patent/JP2003515802A/ja active Pending
- 2000-03-24 CA CA002368710A patent/CA2368710A1/en not_active Abandoned
- 2000-03-24 AU AU43000/01A patent/AU762634B2/en not_active Ceased
- 2000-03-24 IL IL14532500A patent/IL145325A0/xx active IP Right Grant
- 2000-03-24 CN CN00805523A patent/CN1345426A/zh active Pending
- 2000-03-24 KR KR1020017012120A patent/KR20020009583A/ko not_active Application Discontinuation
- 2000-03-24 BR BR0009321-1A patent/BR0009321A/pt not_active IP Right Cessation
- 2000-03-24 WO PCT/US2000/007895 patent/WO2001038952A2/en not_active Application Discontinuation
- 2000-03-24 EP EP00992291A patent/EP1226485A4/en not_active Ceased
-
2001
- 2001-09-04 ZA ZA200107321A patent/ZA200107321B/en unknown
- 2001-09-06 IL IL145325A patent/IL145325A/en unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103390020A (zh) * | 2012-05-10 | 2013-11-13 | 西门子公司 | 在数据库中存储数据的方法和系统 |
CN103390020B (zh) * | 2012-05-10 | 2018-10-12 | 西门子公司 | 在数据库中存储数据的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2001038952A2 (en) | 2001-05-31 |
WO2001038952A3 (en) | 2002-05-16 |
AU4300001A (en) | 2001-06-04 |
EP1226485A2 (en) | 2002-07-31 |
US6457014B1 (en) | 2002-09-24 |
JP2003515802A (ja) | 2003-05-07 |
ZA200107321B (en) | 2002-09-04 |
IL145325A0 (en) | 2002-06-30 |
EP1226485A4 (en) | 2004-05-19 |
IL145325A (en) | 2007-06-03 |
AU762634B2 (en) | 2003-07-03 |
BR0009321A (pt) | 2002-01-22 |
KR20020009583A (ko) | 2002-02-01 |
CA2368710A1 (en) | 2001-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8108411B2 (en) | Methods and systems for merging data sets | |
US6678687B2 (en) | Method for creating an index and method for searching an index | |
CN1345426A (zh) | 用于提取索引关键字数据字段的系统和方法 | |
CN1297936C (zh) | 用来比较两个计算机文件的方法及系统 | |
KR101972645B1 (ko) | 클러스터링 저장 방법 및 장치 | |
US6725223B2 (en) | Storage format for encoded vector indexes | |
US7424467B2 (en) | Architecture for an indexer with fixed width sort and variable width sort | |
US6701317B1 (en) | Web page connectivity server construction | |
US7730316B1 (en) | Method for document fingerprinting | |
US6598051B1 (en) | Web page connectivity server | |
Cheung et al. | Constructing suffix tree for gigabyte sequences with megabyte memory | |
EP0304302A2 (en) | Data retrieval system | |
CN1531692A (zh) | 用于处理大量字符的高效排序元素结构 | |
US20030037037A1 (en) | Method of storing, maintaining and distributing computer intelligible electronic data | |
O'Neil et al. | Bitmap index design choices and their performance implications | |
CN110532347B (zh) | 一种日志数据处理方法、装置、设备和存储介质 | |
CN101079074A (zh) | 一种数据存储与检索的方法及系统 | |
US20110113052A1 (en) | Query result iteration for multiple queries | |
US8234270B2 (en) | System for enhancing decoding performance of text indexes | |
CN1851701A (zh) | 一种二进制数据的访问方法 | |
CN111522820A (zh) | 数据存储结构、存储检索方法、系统、设备及存储介质 | |
CN115080684B (zh) | 网盘文档索引方法、装置、网盘及存储介质 | |
CN1287316C (zh) | 在索引高键码生成期间压缩变长列的方法和系统 | |
CN103853796B (zh) | 数据插入方法和装置 | |
US20230376542A1 (en) | Identifying similar documents in a file repository using unique document signatures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |