Patent ID: 8312050

Claim:
A method of storing data comprising: identifying a relational database comprising a plurality of tables bound to each other using referential integrity, each of the plurality of tables comprising a plurality of columns and rows, each of the plurality of columns corresponding to a data type of a plurality of different data types, each of the rows of each of the tables having a unique Row ID value, each unique row and column cell of each table being able to store a value for that cell; creating a binary tree for each of the one or more data types, each binary tree comprising a plurality of nodes, each of the plurality of nodes representing a value of an associated data type; associating a plurality of arrays with the plurality of nodes of each binary tree, wherein the array associated with each node of each binary tree corresponds to one of the plurality of columns that comprises the value of the data type represented by the node of the binary tree, each array indicating at least one table row and column from the plurality of tables in which the value of the data type represented by the node of the binary tree occurs; and loading data from the relational database into the set of created binary trees, where each different value occurrence of the relational database results in a new tree node of the set of binary trees, wherein each node of the binary trees stores information for where the value originally existed in the relational database by RowID value.