Database adapter for relational datasets
OwnerEric John Davies, Michael Stuart Dunham-Wilkieinventors
Life of this patent
Estimating the term…
Abstract
The invention is a database adapter providing improved methods for storing and retrieving relational data. Suitable source data is structured as a table with a fixed number of columns of predetermined types and a variable number of rows. The invention reduces the space and time used to store data and the time taken to retrieve stored data. The invention is best implemented inside Object Relational Database Systems, but can also be implemented in any database that can execute routines written in programming languages such as C#, C or Java. Functionally, the invention combines the concept of nested tables with fast compression techniques so that nested tables are practical for solving a wide class of problems.
Claims6
A method for compressing a database of data arranged in rows and columns, said data being partitioned into one or more blocks, each block containing one or more contiguous rows, said method comprising a compression step and a serialization step wherein the compression step compresses data for a column within a block, col-data, to produce compressed data, said compressed data being subsequently serialized by the serialization step to produce a chip for storage in the database, said compression step being applied to each column of each block in the database,
- characterized in that the compression step:
- (a) if said col-data can be represented as an arithmetic sequence, encodes said col-data as an arithmetic sequence;
- (b) if said col-data can be represented as an arithmetic cycle, encodes said col-data as an arithmetic cycle;
- (c) if said col-data can be represented as a run length encoding, encodes said col-data as a run length encoding;
- (d) if said col-data can be represented as a repeated sequence, encodes said col-data as a repeated sequence;
- (e) uses a differencing sub-step to select a first datum from col-data and to calculate difference-data as the difference between successive rows in col-data;
- (f) if said difference-data can be represented as a repeated sequence, encodes said col-data as said first datum and a repeated sequence of said difference-data;
- (g) uses a storage-calculation sub-step to calculate the storage space required for:
- (i) said col-data;
- (ii) a fixed point encoding of said col-data;
- and
- (iii) a fixed point encoding of said first datum and said difference-data;
- (h) if the storage space calculated in (g)(ii) is less than that calculated in (g)(i) and (g)(iii), encodes said col-data as a fixed point encoding of said col-data;
- (i) if the storage space calculated in (g)(iii) is less than that calculated in (g)(i) and (g)(ii), encodes said col-data as a fixed point encoding of said first datum and said difference-data;
- (j) if said col-data are 64-bit floating point values which can all be represented in 32-bits, encodes said col-data as 32-bit floating point values;
- or
- (k) leaves said col-data unchanged.
Dependencies are inferred from the claim text.