Claims Analysis
Total Claims: 20
Claim 1
Independent Claim
260 words
A computer-readable memory for storing a database and indexes used to locate data within the database, comprising a non-volatile data storage device; a database comprising a plurality of records stored on said data storage device in a computer-readable format, each of said records having a number of data fields with at least some of said data fields having a data value stored therein; wherein said records are logically separated into groups of records with each group containing a preselected maximum number n of records, and wherein said groups of records are logically organized into one or more sets, with each set containing a preselected maximum number m of groups, whereby each set contains a maximum of n*m records; a plurality of indexes, each of which is associated with a different one of said data fields and each of which comprises a number of keys associated with said one data field, whereby at least some of said data fields are indexed; wherein each of said data values that are stored within an indexed data field has one or more fine keys and one or more coarse keys associated therewith, wherein said fine keys arc each associated with one of said groups and with a fine bit vector that identifies which of the records contained within that group include the data value associated with that key, and wherein said coarse keys are each associated with one of said sets and with a coarse bit vector that identifies which of said groups include at least one record having that data value stored therein.
Claim 2
Dependent Claim
260 words
A computer-readable memory for storing a database and indexes used to locate data within the database, comprising a non-volatile data storage device; a database comprising a plurality of records stored on said data storage device in a computer-readable format, each of said records having a number of data fields with at least some of said data fields having a data value stored therein; wherein said records are logically separated into groups of records with each group containing a preselected maximum number n of records, and wherein said groups of records are logically organized into one or more sets, with each set containing a preselected maximum number m of groups, whereby each set contains a maximum of n*m records; a plurality of indexes, each of which is associated with a different one of said data fields and each of which comprises a number of keys associated with said one data field, whereby at least some of said data fields are indexed; wherein each of said data values that are stored within an indexed data field has one or more fine keys and one or more coarse keys associated therewith, wherein said fine keys arc each associated with one of said groups and with a fine bit vector that identifies which of the records contained within that group include the data value associated with that key, and wherein said coarse keys are each associated with one of said sets and with a coarse bit vector that identifies which of said groups include at least one record having that data value stored therein.
Claim 3
Dependent Claim
53 words
A computer-readable memory as defined in claim 1, wherein said database includes a certain number k of records, wherein k>n and wherein all of said k records are physically maintained on said data storage device as a single file, whereby more than one group of records are stored together as a single file.
Claim 4
Dependent Claim
22 words
A computer-readable memory as defined in claim 2, wherein all of said records of said database are stored in a single file.
Claim 5
Dependent Claim
49 words
A computer-readable memory as defined in claim 1, wherein said indexes include a link for each key in the index, whereby each of said links is associated with a data value, and wherein at least some of said links each indicate the location of one of said bit vectors.
Claim 6
Dependent Claim
53 words
A computer-readable memory as defined in claim 4, wherein said keys include a first portion that identifies whether it is a group key or a set key, a second portion that identifies the group or set to which it corresponds, and a third portion that indicates the data value to which it corresponds.
Claim 7
Dependent Claim
26 words
A computer-readable memory as defined in claim 5, wherein said keys are stored in order based upon the contents of said first, second, and third portions.
Claim 8
Dependent Claim
41 words
A computer-readable memory as defined in claim 5, wherein said first portion comprises the left most portion of each key, said second portion comprises the middle portion of each key, and said third portion comprises the right-most portion of each key.
Claim 9
Dependent Claim
16 words
A computer-readable memory as defined in claim 7, wherein said first portion comprises a single bit.
Claim 10
Dependent Claim
42 words
A computer-readable memory as defined in claim 4, wherein each of said fine keys is associated with a fine link and wherein at least some of said fine links each provide a pointer to a corresponding one of said fine bit vectors.
Claim 11
Dependent Claim
31 words
A computer-readable memory as defined in claim 9, wherein at least one other of said fine links identifies a single record within the group of records associated with that fine link.
Claim 12
Dependent Claim
38 words
A computer-readable memory as defined in claim 10, wherein each of said fine links includes at least one bit that indicates whether the link includes a pointer to a bit vector or an identifier of said single record.
Claim 13
Dependent Claim
42 words
A computer-readable memory as defined in claim 4, wherein each of said coarse keys is associated with a coarse link and wherein at least some of said coarse links each provide a pointer to a corresponding one of said coarse bit vectors.
Claim 14
Dependent Claim
31 words
A computer-readable memory as defined in claim 12, wherein at least one other of said coarse links identifies a single group within the set of groups associated with that coarse link.
Claim 15
Dependent Claim
38 words
A computer-readable memory as defined in claim 13, wherein each of said coarse links includes at least one bit that indicates whether the link includes a pointer to a bit vector or an identifier of said single group.
Claim 16
Dependent Claim
49 words
A computer-readable memory as defined in claim 13, wherein each of the ones of said coarse links that identify a single group include at least one bit that identifies whether or not all of the records within that single group contain the data value associated with the coarse link.
Claim 17
Dependent Claim
18 words
A computer-readable memory as defined in claim 1, wherein each of said indexes arc stored as a B-tree.
Claim 18
Dependent Claim
49 words
A computer-readable memory as defined in claim 16, wherein said B-tree includes a root node, a plurality of intermediate nodes, and a plurality of leaves and wherein some of said keys are stored at said leaves and others of said keys are stored at said root and intermediate nodes.
Claim 19
Dependent Claim
42 words
A computer-readable memory as defined in claim 1, wherein said non-volatile data storage device comprises a plurality of fixed magnetic disk drives, wherein said database is stored as a single file that spans at least two of said fixed magnetic disk drives.
Claim 20
Dependent Claim
24 words
A computer-readable memory as defined in claim 1, wherein said indexes are each stored in a separate file on said non-volatile data storage device.