Patent ID: 8271452

Claim:
A database archiving method, comprising: storing a plurality of record fields, wherein each of the plurality of record fields is a field of a record of a database; storing in a first database archive an index that includes at least one record entry, wherein: each of the at least one record entry references at least one record field of the database; the plurality of record fields is stored independently of the first database archive; each field included in more than one record of any single table of the database is stored for the more than one record as a single record field referenced by a plurality of record entries, each of the plurality of record entries corresponding to a different one of the more than one record; and each of the plurality of record fields is referenceable by (a) at least one of a plurality of database archives and (b) a current database index; modifying a current database index that, for representation of a current state of the database, references one or more of the plurality of record fields by at least one of deleting from the current database index, inserting into the current database index, or updating in the current database index a representation of a record, wherein: deleting the representation of the record includes one of (a) removing from the current database index a record entry corresponding to the record or (b) annotating the record entry corresponding to the record to indicate deletion of the record; inserting the representation of the record includes inserting into the current database index the record entry corresponding to the record and annotating the record entry corresponding to the record to indicate its time of entry; and updating the representation of the record includes at least one of (a) removing from the current database index the record entry corresponding to the record and inserting a new record entry in place of the removed record entry or (b) annotating the record entry corresponding to the record to indicate the record's deletion and inserting the new record entry immediately following the record entry corresponding to the record; copying the current database index to obtain the index of the first database archive; subsequent to the copying of the current database index, removing from the current database index each record entry that is annotated to indicate the record's deletion and clearing all time of entry annotations; retrieving one of a second database archive and the current database index; and based on record entry annotations of the one of the second database archive and the current database index, generating the index of the first database archive.