Patent ID: 8010492

Claim:
A system to query for a database snapshot with more than one version without requiring a query having aggregates, joins, and sub-queries, comprising: a server; a database comprising a data table and a history table having redundant version information; means for maintaining the history table, wherein the means for maintaining, determines that a change in a row in the data table has occurred; provides a first version value for each data in the history table having redundant version information, wherein the first version value indicates a beginning of a period in which the data is valid, and provides at least a second version value for the data in the history table, wherein the second version value indicates an end of the period in which the data is valid; sets a delete Boolean value based on the change, wherein the delete Boolean value is set to ‘false’ if the change is a row add or a row update, and to ‘true’ if the change is a row delete; modifies an old row in the history table for a key of the changed row by changing its second version value to a previous version; receives a request for a version of the database; retrieves the data, the retrieves the data comprising, performing a series of indexed scans including a first scan of rows in the history table for rows with the first version value less than or equal to the requested version and a second scan of rows in the history table for rows with the second version value greater than or equal to the requested version and determining an intersection of the first and second scans, wherein the retrieved data each has a Boolean value; and provides a response to the request.