SQL-based database system with improved indexing methodology
First Claim
1. In a computer system having a database for storing and retrieving information from database tables, each database table presenting user information as rows of data records divided into columns of information, each column for storing data values of a particular data type, a method for indexing a database table of interest comprising:
- selecting a particular column of the database table of interest to index;
allocating a value lookup table for the particular column, said value lookup table storing an entry representing each unique value present in said particular column; and
creating an index for the particular column by creating a cell array of identifiers, said cell array including a a linear sequence of cells such that each cell corresponds to one of the data records in the database table of interest, and wherein each cell stores an identifier referencing an entry in the value lookup table storing a data value which is equal to the data value stored in the particular column by the corresponding data record.
1 Assignment
0 Petitions
Accused Products
Abstract
A Client/Server Database System with improved methods for performing database queries, particularly DSS-type queries, is described. The system includes one or more Clients (e.g., Terminals or PCs) connected via a Network to a Server. In general operation, Clients store data in and retrieve data from one or more database tables resident on the Server by submitting SQL commands, some of which specify "queries"--criteria for selecting particular records of a table. The system implements methods for storing data vertically (i.e., by column), instead of horizontally (i.e., by row) as is traditionally done. Each column comprises a plurality of "cells" (i.e., column value for a record), which are arranged on a data page in a contiguous fashion. The system builds the value lookup table for tracking unique values in the cells. As additional unique values are inserted into the column of the user'"'"'s table (i.e., maintained as the row-ordered cell array), the system assigns a small unique integer value to each unique user value. Instead of storing the original (wide) data value into the row-ordered array, the system instead stores the new (narrow) integer number into the row-ordered array. In response to a user request to retrieve a value for a given row number, the system fetches the appropriate chunk of the row-ordered array and retrieves the small integer value. This small integer value is then used to index into the value lookup table, for reconstituting the actual user data.
717 Citations
40 Claims
-
1. In a computer system having a database for storing and retrieving information from database tables, each database table presenting user information as rows of data records divided into columns of information, each column for storing data values of a particular data type, a method for indexing a database table of interest comprising:
-
selecting a particular column of the database table of interest to index; allocating a value lookup table for the particular column, said value lookup table storing an entry representing each unique value present in said particular column; and creating an index for the particular column by creating a cell array of identifiers, said cell array including a a linear sequence of cells such that each cell corresponds to one of the data records in the database table of interest, and wherein each cell stores an identifier referencing an entry in the value lookup table storing a data value which is equal to the data value stored in the particular column by the corresponding data record. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A database system comprising:
-
a computer having a database storing information in at least one database table, each database table comprising data records for presenting information in row and column format, said at least one database table being stored in a row-ordered, column-based fashion; and means for indexing a particular column from a database table of interest comprising by creating an index comprising a linear array of cells, said means including; a value lookup table storing one entry for each distinct value present in the column of interest, and means for representing each data value in the column of interest with a corresponding identifier stored in a corresponding cell of the linear array of cells which references an entry in the value lookup table corresponding to the data value being represented. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. In a computer system having a database storing a database table, said database table presenting user information as rows of data records divided into columns of information, each column representing a particular category of information, a method for indexing columns of the database table comprising:
-
creating for each column of the database table, at least one associated data page for storing data values for the column; for each data record of the database table, storing the data value for each column of the data record in one of the at least one data page associated with the column, so that data values for a particular column of a database table are all stored together in at least one data page associated with the particular column; for each column, linking together all of said at least one data page associated with the column to form a page chain for the column, so that each page chain stores together all of the data values for a particular column of the database table; and creating an index on at least one particular column comprising a linear cell array by; constructing a list of distinct data values stored by said at least one particular column, and substituting for each data value stored by said at least one particular column an identifier referencing an entry in said list having a data value equal to the data value being replaced. - View Dependent Claims (37, 38, 39, 40)
-
Specification