TIME IN DATABASES AND APPLICATIONS OF DATABASES
First Claim
1. A method of producing the results of a query of a bitemporal database, the database providing data entities of a database with a time dependent value for an attribute of the entity, the method comprising:
- i) having values of attributes of said entities in said database;
ii) for said entities providing a valid time start time associated with each said value of said attribute;
iii) for said entities providing a valid time end time associated with each said value of said attributes;
iv) for said entities providing a transaction time associated with said valid time start time and said valid time end time for each said value;
and wherein changes to said values are achieved by inserting new entries for linked transaction time, valid time start time, valid time end time, and associated attribute value over a thereby specified valid time period, there being no actual update or delete operator used to change said values when updating or deleting a valid time start time or valid time end time, instead the logical operation of update or delete on the valid time start and end times being achieved by inserting a new entry in the database in which the valid time start time and optionally valid time end time are different, the insertion of said new entry leaving the existing valid time start and end times for the exiting entry unchanged, andv) querying said database by specifying a chosen said transaction time so as to ensure that a value associated with that transaction time for said attribute is used and that valid time start and end times associated in the database with the chosen transaction time are used; and
vi) displaying the result of the query or storing the results of the query in computer-readable memory.
0 Assignments
0 Petitions
Accused Products
Abstract
A database having data entries with attributes having values that can vary over system time (the time according to a computer clock) and also over valid time (the start time and end time of an interval during which the values of the attributes are true). All logical operations of updates and deletes of values are performed by insert operations that insert new entries into the database, so that all old entries that were present at previous systems still exist and still include their previously-assigned start times and end times for the value of the attribute.
23 Citations
24 Claims
-
1. A method of producing the results of a query of a bitemporal database, the database providing data entities of a database with a time dependent value for an attribute of the entity, the method comprising:
-
i) having values of attributes of said entities in said database; ii) for said entities providing a valid time start time associated with each said value of said attribute; iii) for said entities providing a valid time end time associated with each said value of said attributes; iv) for said entities providing a transaction time associated with said valid time start time and said valid time end time for each said value; and wherein changes to said values are achieved by inserting new entries for linked transaction time, valid time start time, valid time end time, and associated attribute value over a thereby specified valid time period, there being no actual update or delete operator used to change said values when updating or deleting a valid time start time or valid time end time, instead the logical operation of update or delete on the valid time start and end times being achieved by inserting a new entry in the database in which the valid time start time and optionally valid time end time are different, the insertion of said new entry leaving the existing valid time start and end times for the exiting entry unchanged, and v) querying said database by specifying a chosen said transaction time so as to ensure that a value associated with that transaction time for said attribute is used and that valid time start and end times associated in the database with the chosen transaction time are used; and vi) displaying the result of the query or storing the results of the query in computer-readable memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method of producing a query report of values of attributes in time in a database, the database comprising for each attribute of an entity in the database summary positions associated with corresponding transaction times, each summary position, specific to a transaction time, having for each attribute a value, a start time in valid time at which said value applies, and optionally an end time in valid time at which said value applies;
- and wherein said transaction time represents a time at which associated values, and start times, and optionally end times for those values, are taken to be true;
the method comprising creating an additional summary position in the database whenever an insert, logical update, or logical delete operation is performed on the database, by inserting a new summary position with appropriate transaction time and start and optionally end valid times for an associated value for an attribute, without altering existing start time invalid time or end time invalid time entries; and
wherein the method comprises selecting a particular valid time and transaction time and querying the database for those selected valid and transaction times, selecting the correct summary position in the database that corresponds to the selected transaction time and returning, in response to the query, values for the attributes that apply according to the valid start and end times of the selected summary positions; and
displaying the results of the query to a user, or storing the results of the query on computer-readable memory.
- and wherein said transaction time represents a time at which associated values, and start times, and optionally end times for those values, are taken to be true;
-
11. A method of modifying a database to change a query-returned value of an entry in a database, the entry having one or more attributes, each attribute having one or more values over valid time, the method comprising storing for each value a start of valid time from which the value applies, and a transaction time at which the start of valid time applies.
-
12. A method of making a database that holds data concurrently and consistently represented over time, the method comprising including time as a characteristic associated with values of attributes of entities on said database, the values of attributes having a valid start time and optionally a valid end time associated with them in the database, and the method further comprising achieving update and delete of values of attributes of entities by using inserts, adding to the database, to achieve logical update and logical delete, without any requirement for actual code-level update and actual code-level delete operations, and wherein logical delete, update and insert of valid time start and optionally end times of values are achieved by physical insert.
-
13. A method of modifying the value of an entity in a database comprising for each entity having one or more attributes, each attribute having one or more value over valid time, and storing for each value a start time of valid time from which the value applies, an end time of valid time to which the value applies, and a transaction time at which said start and end times in valid time apply, wherein modifying the value of a start or end time invalid time for a value of an entity comprises writing a new entry for the value with a new start and end time in valid time, the existing entry being left unmodified with the existing start and end times in valid time unmodified.
-
14. A method of obtaining information from a database comprising providing entities in said database with time dependent values for attributes in accordance with the preceding aspect of the invention and querying said database for a value for selected data entity(s), said method further comprising having a Temporal Data Dictionary having a set of objects associating specific entities in said database with specific functionality-related parameters which are used in controlling how a processor handles a query relating to said entities, said Temporal Data Dictionary maintaining data integrity.
-
15. A database having data entity entries for attributes of an entity, each time that data relating to a data entity is changed there being a transaction time created on the database indicative of from when to when each value of each attribute applies, and there being for each value of each attribute a start point in valid time and an end point in valid time between which specified values for said attribute apply:
- the database being such that a query to identify a value for an attribute specifies what transaction time will be selected, thereby specifying what start and end points in valid time for an associated value will apply;
ora database having data entity entries for attributes of an entity, each time that data relating to a data entity is changed there being a transaction time created on the database indicative of from when each value of each attribute applies, and there being for each value of each attribute a start point in valid time and optionally an end point in valid time;
the database being such that a query to identify a value for an attribute specifies what transaction time will be selected, thereby specifying for what portion of valid time an associated value will apply.
- the database being such that a query to identify a value for an attribute specifies what transaction time will be selected, thereby specifying what start and end points in valid time for an associated value will apply;
-
16. A method of modelling changes in values of attributes in time in a database comprising for each attribute of an entity in the database having summary positions associated with corresponding transaction times, each summary position, specific to a transaction time, having for each attribute a value, a start time in valid time at which said value applies, and an end time in valid time at which said value applies;
- and wherein said transaction time represents a time at which associated values, and start times and end times for those values, are taken to be true; and
wherein an additional summary position is generated wherever an insert, logical update, or logical operation is performed on the database.
- and wherein said transaction time represents a time at which associated values, and start times and end times for those values, are taken to be true; and
-
17. One or more computer memory collectively containing a database data structure for resolving temporal queries, comprising a plurality of time planes associated respectively with a plurality of items;
- each time plane comprising one or more rows in Y time, each Y time row representing a summary position for a specific attribute of said item at a particular transaction time, and each Y time row having one or more different values for its said specific attributes in X-Time, X-Time being valid time at which values of said attribute are, when Y-Time is associated with that particular Y-Time row, valid.
-
18. A method in a computer system for resolving a temporal query in a database comprising:
-
i) receiving a temporal query specifying a condition of a time variable attribute and an effective transaction time; ii) accessing the database, the database comprising a plurality of time planes associated respectively with a plurality of database items, each time plane comprising one or more rows in transactional time each representing a summary position for the value of a specific attribute of an associated item when assessed at a particular transaction time, and each summary position row having one or more values for its specific attributes and an associated valid time for which said values are applicable to said attributes; iii) using said temporal query to identify a particular attribute and thereby a particular time plane, and using said temporal query to identify a particular transactional time summary position row of said selected time plane, thereby to generate a response to said query which response uses a selected value or condition of said attribute, selected in transaction time and valid time.
-
-
19. A computer readable medium whose contents cause a computer system to resolve a temporal query in a database by causing the system to:
-
i) receive a temporal query specifying an effective transaction time and specifying a time variable condition or value to be obtained from said database; ii) access said database, the database comprising a plurality of time planes associated respectively with a plurality of database items, each time plane comprising one or more rows in transactional time each representing a summary position for the value of a specific attribute of an associated item when assessed at a particular transaction time, and each summary position row having one or more values for its specific attributes and an associated valid time for which said values are applicable to said attributes; iii) use said temporal query to identify a particular attribute and thereby a particular time plane, and using said temporal query to identify a particular transactional time summary position row of said selected time plane, thereby to generate a response to said query which response uses a selected value or condition of said attribute, selected in transaction time and valid time.
-
-
20. A data processing system for satisfying a temporal query comprising:
-
i) one or more storage devices collectively containing a database for resolving temporal queries, comprising;
a plurality of time planes associated respectively with a plurality of data entities;
each time plane comprising one or more rows in Y-Time, each Y-Time row representing a summary position for a specific attribute of said item at a particular transaction time, and each Y-Time row having one or more different values for its said specific attributes in X-Time, X-Time being valid time at which values of said attribute are, when Y-Time is associated with that particular Y-Time row, valid;ii) a query receiver that receives temporal queries each specifying an effective, transaction, time; and iii) a query processing subsystem that satisfies temporal queries received by the query receiver by using the database to identify a selected transaction time summary position and a selected valid time value for said attribute, said query receiver may be adapted to receive queries which also specify one of; i) a time variable attribute; ii) a condition of a time variable attribute;
ora data processing system for satisfying a temporal query comprising; i) one or more storage devices collectively containing a database for resolving temporal queries, comprising;
a plurality of time planes associated respectively with a plurality of data entities;
each time plane comprising one or more rows in Y time, each Y time row representing a summary position for a specific attribute of said item at a particular transaction time, and each Y time row having one or more different values for its said specific attributes in X time, X time being valid time at which values of said attribute are, when Y time is associated with that particular Y time row, valid;ii) a query receiver that receives temporal queries each specifying an effective, transaction, time; and iii) a query processing subsystem that satisfies temporal queries received by the query receiver by using the database to identify a selected transaction time summary position and a selected valid time value for said attribute, and wherein a temporal data dictionary is provided accessible by said query processing subsystem, said temporal data dictionary having a set of temporal rules which are used by said processing subsystem to ensure data integrity when processing said database in response to a query.
-
-
21. A computer record keeping system comprising;
-
i) a computer processor adapted to run software; ii) a computer-accessible memory accessible to said processor; iii) software runable on said processor; iv) data entities stored in said memory, said data entities comprising data records; wherein said data entities each comprise at least one attribute, or a plurality of attributes, the or each attribute having an associated value which is potentially time dependent, a transaction element representative of a transaction time effective to specify a time at which said values of said attributes are to be assessed by said processor, and wherein said data entities also each comprise a valid time element representative of a time period, at any selected transaction time, for which respective associated values for attributes are associated with respective said attributes; and
said software runable on said processor including a set of Temporal Data Dictionary rules which control attribute, entity and referential data integrity, and said software runable on said processor also including a Temporal Referential Tree adapted to manage computer-readable addresses of said data entities over time;
ora computer system comprising a computer processor, a temporal database held in memory, temporal database creation software runable on the processor, and temporal database query software runable on the processor;
the temporal database creation software in use allowing insert-only operations in order to achieve delete and/or alter functionality, with each insert of data being associated with a system-generated transaction time, and wherein the query software comprises an unextended structured query language, without extensions to accommodate data integrity difficulties associated with alter and delete functionality of the database.
-
-
22. A computer processor having access to a database held in memory, and database creation software runable on the processor, the software allowing insert only operations on the database;
- or
a computer processor having access to a database held in memory, and database query software runable on the processor, the software comprising unextended structured query language software, insert and delete data handling functionality being handled by selecting an appropriate position in time in the database at which to query the database.
- or
-
23. A method for improving concurrency in a multi-user temporal database system by permitting different access agents to act on the same row at the same time, but on different attributes in that row;
- or
a method of attribute level locking a value of an attribute of a database, the method comprising having a data entry having a plurality of entry attributes tuples and having a plurality of users capable of accessing attributes in the same tuple and allowing different users to modify different attributes of the same tuple without locking each other out of said different attributes;
or a method of providing data entities of a database with a time dependent value for an attribute of the entity, the method comprising;i) having values of attributes of said entities in said database; ii) for said entities providing a valid time start time associated with each said value of said attribute; iii) for said entities providing a transaction time associated with said valid time start time for each said value;
wherebyiv. when querying said database an appropriate said transaction time is used so as to ensure that an appropriate value for said attribute is used;
ora method of handling time varying attribute values in a database comprising using an insert-only model and tracking the times at which entries of values for attributes are made in the database and tracking the time period for which those entries are valid;
ora method of storing data in a database comprising denormalising the data so as to store time with each attribute value.
- or
-
24. In a temporal database system having a temporal database storing a database table comprising a plurality of data rows, said rows relating to attributes of a database entity and storing values for said attributes organised into particular respective database fields, an improved method for granting access during the modification of the information in a database fields comprising locking the field being accessed for modification and not locking other fields in the row that contains the field being accessed for modification, this being achieved by associating a transaction time with the information in each field, said transaction time being related to the system time at which the information was inserted into the database, permitting insert only operations on the database, with alter and/or delete functionality performed by insert-only addition of another value of an attribute held in a certain field in an additional field differentiated from other fields for the same attribute by its associated transaction time, and selecting an appropriate field for access by selecting an appropriate transaction time, as well as selecting said attribute to be queried or modified;
- or
a computer based temporal database management system including a plurality of Time Cubes associated with a respective one of a plurality of items or groups of items;
each Time Cube having an effective transaction time dimension, a valid time dimension specifying a start for at least one value of a specific attribute, and an attribute dimension representative of one or more attributes.
- or
Specification