← Back to Patent Explorer
US6507846B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Indexing databases for efficient relational querying

Assignee: Progress Software Corp
•
Filing: 1999-11-09
•
Granted: 2003-01-14
•
Expires: 2019-11-09
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Provided is an indexing system for structured or semi-structured source data comprising a tokenizer for accepting source data and generating tokens representing the source data, the tokens from the tokenization representing the source data in a relational view, where for tokens representing a subset of the source data, the system generates tokens identifying the table and column of the subset of the data in the relational view of the source data, and an index builder for building index structures based on the tokens generated by the tokenizer, the index builder creating indexes which comprise a set of positional indexes for indicating the position of token data in the source data, a set of lexicographical indexes comprising a sort vector index and a join bit index, associated with the sort vector index, a set of data structures mapping between the lexicographical indexes and the positional indexes.

Inventors

  • 👤 Mariano Paulo Consens

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-09 12:45
CPC Classifications
G; G06; G06F; G06F16/00; G06F16/20; G06F16/22; G06F16/2228; G06F16/2237; Y; Y10; Y10S; Y10S707/00; Y10S707/99931; Y10S707/99932; Y10S707/99939; Y10S707/99941; Y10S707/99944; Y10S707/99945

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 206 words
An indexing system for structured or semi-structured source data, the source data being capable of being represented by a relational data view, the source data comprising data subsets which in the relational view correspond to attributes in one or more tables, each table comprising columns and rows, the indexing system comprising a tokenizer for accepting the source data and generating data tokens in a token stream representing the source data, the tokenizer comprising means for generating identifier tokens identifying the table and column of the relational view for the data subsets of the source data, the identifier tokens being inserted in the token stream to precede the data tokens for the data subsets to which the identifier tokens correspond, and an index builder for building indexes based on the token stream, the index builder creating token stream indexes which comprise a set of positional indexes for indicating the position of data tokens in the source data, a set of lexicographical indexes for indicating the lexicographical ordering of all tokens, the set of lexicographical indexes comprising a sort vector index and an associated join bit index, and a set of data structures mapping between the lexicographical indexes and the positional indexes, comprising a lexicographic permutation data structure.
Claim 2
Dependent Claim 206 words
An indexing system for structured or semi-structured source data, the source data being capable of being represented by a relational data view, the source data comprising data subsets which in the relational view correspond to attributes in one or more tables, each table comprising columns and rows, the indexing system comprising a tokenizer for accepting the source data and generating data tokens in a token stream representing the source data, the tokenizer comprising means for generating identifier tokens identifying the table and column of the relational view for the data subsets of the source data, the identifier tokens being inserted in the token stream to precede the data tokens for the data subsets to which the identifier tokens correspond, and an index builder for building indexes based on the token stream, the index builder creating token stream indexes which comprise a set of positional indexes for indicating the position of data tokens in the source data, a set of lexicographical indexes for indicating the lexicographical ordering of all tokens, the set of lexicographical indexes comprising a sort vector index and an associated join bit index, and a set of data structures mapping between the lexicographical indexes and the positional indexes, comprising a lexicographic permutation data structure.
Claim 3
Dependent Claim 175 words
The indexing system of claim 1 further comprising join operation means for performing relational join operations on the source data, the join operation means comprising, means for selecting a first join column and a second join column in the relational view of the source data, means for accessing the sort vector index entries for identifier tokens corresponding to the first join column and for accessing the sort vector index entries for identifier tokens corresponding to the second join column, means for determining a relational join data set for the first join column and the second join column, by accessing the sort vector index and the associated join bit index and identifying the token values for each of the attributes in the first join table column which are matched by token values for attributes in the second join column, means for accessing the source data by the positional indexes to retrieve the set of rows in the tables of the first join column and the second join column which correspond to the relational join data set.
Claim 4
Dependent Claim 167 words
The indexing system of claim 1 further comprising query operation means for performing a relational constrained query operation for a column constant on the source data, the column constant having a column identifier and an attribute value, the query operation means comprising, means for representing the column constant as a constant token stream comprising an identifier token corresponding to the column constant column identifier and data tokens corresponding to the column constant attribute value, means for accessing the sort vector index entries for identifier tokens corresponding to the column identifier, means for determining a query return data set by accessing the sort vector index and the associated join bit index to identify token values in the sort vector index which are matched by data token values in the constant column token stream, means for accessing the source data by the positional indexes to retrieve the set of rows in the tables of the relational view of the source data which correspond to the query return data set.
Claim 5
Dependent Claim 122 words
The indexing system of claim 1 in which the index builder further comprises: means for making a pass over the token stream to produce a temporary sort vector index, means for sorting the temporary sort vector file on a run by run basis to produce an inverse lexicographic permutation index, means for making a pass over the temporary sort vector index to generate the sort vector index on a run by run basis by rearranging the entries within each run in the temporary sort vector index according to the permutation, and means for taking the sort vector index as input and following chains of pointers within the sort vector index to resolve equality of attribute entries to generate the join bit index.
Claim 6
Independent Claim 185 words
A method for indexing structured or semi-structured source data, the source data being capable of being represented by a relational data view, the source data comprising data subsets which in the relational view correspond to attributes in one or more tables, each table comprising columns and rows, the method of indexing comprising accepting the source data and generating data tokens in a token stream representing the source data, generating identifier tokens identifying the table and column of the relational view for the data subsets of the source data, the identifier tokens being inserted in the token stream to precede the data tokens for the data subsets to which the identifier tokens correspond, and creating token stream indexes which comprise a set of positional indexes for indicating the position of data tokens in the source data, a set of lexicographical indexes for indicating the lexicographical ordering of all tokens, the set of lexicographical indexes comprising a sort vector index and an associated join bit index, and a set of data structures mapping between the lexicographical indexes and the positional indexes, comprising a lexicographic permutation data structure.
Claim 7
Independent Claim 185 words
A method for indexing structured or semi-structured source data, the source data being capable of being represented by a relational data view, the source data comprising data subsets which in the relational view correspond to attributes in one or more tables, each table comprising columns and rows, the method of indexing comprising accepting the source data and generating data tokens in a token stream representing the source data, generating identifier tokens identifying the table and column of the relational view for the data subsets of the source data, the identifier tokens being inserted in the token stream to precede the data tokens for the data subsets to which the identifier tokens correspond, and creating token stream indexes which comprise a set of positional indexes for indicating the position of data tokens in the source data, a set of lexicographical indexes for indicating the lexicographical ordering of all tokens, the set of lexicographical indexes comprising a sort vector index and an associated join bit index, and a set of data structures mapping between the lexicographical indexes and the positional indexes, comprising a lexicographic permutation data structure.
Claim 8
Dependent Claim 23 words
A computer program product tangibly embodying a program of instructions executable by a computer to perform the method steps of claim 5 .
Claim 9
Dependent Claim 117 words
The method of claim 5 in which the step of creating token stream indexes further comprises: making a pass over the token stream to produce a temporary sort vector index, sorting the temporary sort vector file on a run by run basis to produce an inverse lexicographic permutation index, making a pass over the temporary sort vector index to generate the sort vector index on a run by run basis by rearranging the entries within each run in the temporary sort vector index according to the permutation, and taking the sort vector index as input and following chains of pointers within the sort vector index to resolve equality of attribute entries to generate the join bit index.
Claim 10
Dependent Claim 157 words
The method of claim 5 further comprising steps for carrying out a join operation comprising: selecting a first join column and a second join column in the relational view of the source data, accessing the sort vector index entries for identifier tokens corresponding to the first join column and accessing the sort vector index entries for identifier tokens corresponding to the second join column, determining a relational join data set for the first join column and the second join column, by accessing the sort vector index and the associated join bit index and identifying the token values for each of the attributes in the first join table column which are matched by token values for attributes in the second join column, and accessing the source data by the positional indexes to retrieve the set of rows in the tables of the first join column and the second join column which correspond to the relational join data set.
Claim 11
Dependent Claim 161 words
The method of claim 5 further comprising the step of carrying out a relational constrained query operation for a column constant on the source data, the column constant having a column identifier and an attribute value, the query operation comprising the steps of: representing the column constant as a constant token stream comprising an identifier token corresponding to the column constant column identifier and data tokens corresponding to the column constant attribute value, accessing the sort vector index entries for identifier tokens corresponding to the column identifier, determining a query return data set by accessing the sort vector index and the associated join bit index to identify token values in the sort vector index which are matched by data token values in the constant column token stream, and accessing the source data by the positional indexes to retrieve the set of rows in the tables of the relational view of the source data which correspond to the query return data set.
Claim 12
Dependent Claim 28 words
A computer program product tangibly embodying a program of instructions executable by a computer to perform the method steps of claim 7 , 8 , or 9 .
Claim 13
Dependent Claim 190 words
An indexing system for structured or semi-structured source data, the source data being capable of being represented by a relational data view, the source data comprising data subsets which in the relational view correspond to attributes in one or more tables, each table comprising columns and rows, the indexing system comprising a tokenizer for accepting the source data and generating data tokens in a token stream representing the source data, the tokenizer comprising means for generating identifier tokens identifying the table and column of the relational view for the data subsets of the source data, the identifier tokens being inserted in the token stream to be contiguous with the data tokens for the data subsets to which the identifier tokens correspond, and an index builder for building indexes based on the token stream, the index builder creating token stream indexes which comprise a set of positional indexes for indicating the position of data tokens in the source data, a set of lexicographical indexes for indicating the lexicographical ordering of all tokens in the token stream, and a set of data structures mapping between the lexicographical indexes and the positional indexes.
Claim 14
Dependent Claim 190 words
An indexing system for structured or semi-structured source data, the source data being capable of being represented by a relational data view, the source data comprising data subsets which in the relational view correspond to attributes in one or more tables, each table comprising columns and rows, the indexing system comprising a tokenizer for accepting the source data and generating data tokens in a token stream representing the source data, the tokenizer comprising means for generating identifier tokens identifying the table and column of the relational view for the data subsets of the source data, the identifier tokens being inserted in the token stream to be contiguous with the data tokens for the data subsets to which the identifier tokens correspond, and an index builder for building indexes based on the token stream, the index builder creating token stream indexes which comprise a set of positional indexes for indicating the position of data tokens in the source data, a set of lexicographical indexes for indicating the lexicographical ordering of all tokens in the token stream, and a set of data structures mapping between the lexicographical indexes and the positional indexes.
Claim 15
Dependent Claim 89 words
The indexing system of claim 11 in which the set of positional indexes comprises an inverted file for mapping unique tokens in the token stream to their position in the source data, a word list strings file comprising a sorted list of all unique tokens in the token stream, a word list file for mapping each token from the word list strings file to the inverted file, each entry in the word list file comprising a location in the inverted file and a run length, and a keys file.
Claim 16
Dependent Claim 23 words
The indexing system of claim 11 in which the set of lexicographical indexes comprises a sort vector index and a join bit index.
Claim 17
Dependent Claim 29 words
The indexing system of claim 11 in which the the set of data structures mapping between the lexicographical indexes and the positional indexes comprises a lexicographic permutation data structure.
Claim 18
Dependent Claim 177 words
A computer-implemented method for the indexing of structured or semi-structured source data, the source data being capable of being represented by a relational data view, the source data comprising data subsets which in the relational view correspond to attributes in one or more tables, each table comprising columns and rows, the method comprising accepting the source data and generating data tokens in a token stream representing the source data, generating identifier tokens identifying the table and column of the relational view for the data subsets of the source data, inserting the identifier tokens in the token stream to be contiguous with the data tokens for the data subsets to which the identifier tokens correspond, and building indexes based on the token stream by creating token stream indexes which comprise a set of positional indexes for indicating the position of data tokens in the source data, a set of lexicographical indexes for indicating the lexicographical ordering of all tokens in the token stream, and a set of data structures mapping between the lexicographical indexes and the positional indexes.
Claim 19
Dependent Claim 177 words
A computer-implemented method for the indexing of structured or semi-structured source data, the source data being capable of being represented by a relational data view, the source data comprising data subsets which in the relational view correspond to attributes in one or more tables, each table comprising columns and rows, the method comprising accepting the source data and generating data tokens in a token stream representing the source data, generating identifier tokens identifying the table and column of the relational view for the data subsets of the source data, inserting the identifier tokens in the token stream to be contiguous with the data tokens for the data subsets to which the identifier tokens correspond, and building indexes based on the token stream by creating token stream indexes which comprise a set of positional indexes for indicating the position of data tokens in the source data, a set of lexicographical indexes for indicating the lexicographical ordering of all tokens in the token stream, and a set of data structures mapping between the lexicographical indexes and the positional indexes.
Claim 20
Dependent Claim 88 words
The method of claim 15 in which the set of positional indexes comprises an inverted file for mapping unique tokens in the token stream to their position in the source data, a word list strings file comprising a sorted list of all unique tokens in the token stream, a word list file for mapping each token from the word list strings file to the inverted file, each entry in the word list file comprising a location in the inverted file and a run length, and a keys file.
Claim 21
Dependent Claim 23 words
The method of claim 15 in which the the set of lexicographical indexes comprises a sort vector file and a join bit file.
Claim 22
Dependent Claim 28 words
The method of claim 15 in which the the set of data structures mapping between the lexicographical indexes and the positional indexes comprises a lexicographic permutation data structure.
Claim 23
Dependent Claim 384 words
A computer-implemented method for the indexing of structured or semi-structured source data, the source data being capable of being represented by a relational data view, the source data comprising data subsets which in the relational view correspond to attributes in one or more tables, each table comprising columns and rows, the method comprising accepting the source data and generating data tokens in a token stream representing the source data, generating identifier tokens identifying the table and column of the relational view for the data subsets of the source data, inserting the identifier tokens in the token stream to be contiguous with the data tokens for the data subsets to which the identifier tokens correspond, and building indexes based on the token stream by creating token stream indexes which comprise a set of positional indexes for indicating the position of data tokens in the source data, the set of positional indexes comprising an inverted file for mapping unique tokens in the token stream to their position in the source data, a word list strings file comprising a sorted list of all unique tokens in the token stream, a word list file for mapping each token from the word list strings file to the inverted file, each entry in the word list file comprising a location in the inverted file and a run length, and a keys file a set of lexicographical indexes for indicating the lexicographical ordering of all tokens in the token stream, comprising a sort vector index and a join bit index, and a set of data structures mapping between the lexicographical indexes and the positional indexes comprising a lexicographic permutation data structure, the step of creating token stream indexes further comprising: making a pass over the token stream to produce a temporary sort vector index, sorting the temporary sort vector file on a run by run basis to produce an inverse lexicographic permutation index, making a pass over the temporary sort vector index to generate the sort vector index on a run by run basis by rearranging the entries within each run in the temporary sort vector index according to the permutation, and taking the sort vector index as input and following chains of pointers within the sort vector index to resolve equality of attribute entries to generate the join bit index.
Claim 24
Dependent Claim 384 words
A computer-implemented method for the indexing of structured or semi-structured source data, the source data being capable of being represented by a relational data view, the source data comprising data subsets which in the relational view correspond to attributes in one or more tables, each table comprising columns and rows, the method comprising accepting the source data and generating data tokens in a token stream representing the source data, generating identifier tokens identifying the table and column of the relational view for the data subsets of the source data, inserting the identifier tokens in the token stream to be contiguous with the data tokens for the data subsets to which the identifier tokens correspond, and building indexes based on the token stream by creating token stream indexes which comprise a set of positional indexes for indicating the position of data tokens in the source data, the set of positional indexes comprising an inverted file for mapping unique tokens in the token stream to their position in the source data, a word list strings file comprising a sorted list of all unique tokens in the token stream, a word list file for mapping each token from the word list strings file to the inverted file, each entry in the word list file comprising a location in the inverted file and a run length, and a keys file a set of lexicographical indexes for indicating the lexicographical ordering of all tokens in the token stream, comprising a sort vector index and a join bit index, and a set of data structures mapping between the lexicographical indexes and the positional indexes comprising a lexicographic permutation data structure, the step of creating token stream indexes further comprising: making a pass over the token stream to produce a temporary sort vector index, sorting the temporary sort vector file on a run by run basis to produce an inverse lexicographic permutation index, making a pass over the temporary sort vector index to generate the sort vector index on a run by run basis by rearranging the entries within each run in the temporary sort vector index according to the permutation, and taking the sort vector index as input and following chains of pointers within the sort vector index to resolve equality of attribute entries to generate the join bit index.
Claim 25
Dependent Claim 31 words
A computer program product tangibly embodying a program of instructions executable by a computer to perform the method steps of claim 15 , 16 , 17 , 18 or 19 .

References Cited (Backward Citations)

US4644471A Cited
US6272495B1 Cited
US5926807A Cited
US6154213A Cited
US6275822B1 Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2006-01-13 2006-07-15 2007-01-14 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2010-01-13 2010-07-15 2011-01-14 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2014-01-13 2014-07-15 2015-01-14 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag