1. A method for reducing the persistent size and optimizing the performance of a relational database system, comprising the computer implemented steps of: storing in an index a copy of each non-integer unique data element that would occur in a database table; sequentially assigning to each entry in the index an integer identifier; populating the database table with the integer identifiers corresponding to each data element; and keeping a reference count for each data element to control its lifetime.