IP Library Granted Patent US 9,218,378
Granted Patent B2
US 9,218,378 · App. 13/744,060 · Granted Dec 22, 2015

Method of indexing a database

Inventor: Thomas Benjamin Longshaw (Worcester, GB)
Assignee: Zizo Software Limited
G06F17/30312G06F17/30324G06F17/30595G06F7/24
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,218,378
App. No.
13/744,060
Granted
Dec 22, 2015
Kind
B2
Abstract

A method of sorting a database of records and data items, in which each record has an identifier, data variables and paths pointing to data items being the value of the data variables is disclosed. The database has a first and second frequency for each path of the first and second data variables, respectively. The method includes creating an intermediate array having a section for each value of the second data variable. Storing the identifier of each record. Creating a final array having sections for each value of the first data variable. Storing the identifier of the records into the section of the final array corresponding to the value of its first data variable. Identifying break points in the final array. Repeating the previous two steps for each section of the intermediate array. Creating a break point index.

Claims (17)

1. A method of sorting a database comprising a plurality of records and a plurality of data items, in which each record comprises an identifier, a first data variable as a first path pointing to a data item being a value of said first data variable, and a second data variable as a second path pointing to a data item being a value of said second data variable, in which the database further comprises a first frequency for each first data variable path type, and a second frequency for each second data variable path type, comprising:

creating an intermediate array comprising a section for each second data variable path type, said sections of said intermediate array comprising identifier storage locations equal in number to the corresponding second frequency;

storing the identifier of each record into the section of the intermediate array corresponding to its second data variable path type;

creating a final array comprising sections for each first data variable path type, said sections of said final array comprising identifier storage locations equal in number to the corresponding first frequency;

creating an offset array consisting of storage locations for each first data variable path type, said storage locations are populated with offset values, said offset values pointing to the first available identifier storage location in each section of the final array;

storing the identifier of the records appearing in a first section of the intermediate array into the section of the final array corresponding to the value of its first data variable path type;

incrementing the offset value each time the identifier for a record is stored into one of said sections of the final array;

identifying offset points in the final array corresponding to the resulting offset value of each of said sections of the final array;

repeating the previous three steps of storing, incrementing, and identifying for each further section of the intermediate array; and

creating an offset point index consisting of offset points identified in each repetition.

2. A method according to claim 1 , in which in the step of storing the identifier of the records appearing in a section of the intermediate array into the section of the final array corresponding to the data variable path type in question, a count is made of the number of said offset values which change, in which after each of those steps an offset point set is created comprising storage locations equal in number to said count, and in which, after the step of identifying offset points in the final array, these are stored in said storage locations of said offset point set.

3. A method according to claim 1 , in which the first and second data variables path types comprised in each record are also stored in the intermediate and final arrays, and in which said sections of the intermediate array are arranged in a pre-determined second data variable path type order and said sections of the final array are arranged in a pre-determined first data variable path type order.

4. A method according to claim 1 in which each record also comprises one or more further data variables as paths, in which the database comprises one or more further frequencies for each further data variable path type, and in which the method comprises creating a sequence of final arrays, each one according to the method of claim 1 , but in which the intermediate array comprises the preceding final array.

5. A method according to claim 4 in which the method comprises creating a sequence of final arrays.

6. A method according to claim 5 in which the first, second, and one or more further data variables comprised in each record are also stored in each final array in the sequence, and the sections of each final array in the sequence are arranged in pre-determined first data variable orders.

7. A computer system comprising a processor and memory and storing a database comprising a plurality of records and a plurality of data items, in which each record comprises an identifier, a first data variable as a path pointing to a data item being the value of said first data variable, and a second data variable as a path pointing to a data item being the value of said second data variable, characterized in that the database further comprises a first frequency for each first data variable path type, and a second frequency for each second data variable path type; and in which the computer system is configured to perform the method of claim 1 .

8. A computer program product storing a program for carrying out the method of claim 1 , including a non-transitory computer-readable medium.

Assignments (2)
CHANGE OF NAME Recorded May 21, 2015
From: DATA RE LTD
To: ZIZO SOFTWARE LIMITED
Reel/Frame 035689/0156 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 15, 2013
From: LONGSHAW, THOMAS BENJAMIN
To: DATA-RE LIMITED
Reel/Frame 030220/0066 →
Priority Claims (1)
GB 1200946.0 · Jan 20, 2012 · national
Continuity (1)
Related Publication 20130198199A1 · Aug 1, 2013