This project would involve building a database system which would provide improved support for the storage and querying of temporal data than is found in current relational databases. The database temporal query language would be based on US Logic, which provides a simple extension of the relational calculus to support temporal data.
Since computer based information systems have been in use for several decades, many organisations have now built up computerised archives of their activities in the past. These archives are often valuable, in that the past patterns of behaviour can be used to predict future behaviour of either individuals or organisations. Temporal databases (also known as historical databases) provide support for the efficient storage and querying of such information.
Standard relational databases are week in their support for querying temporal information. For example, given the table:
| staff | |||
| name | dept | start | end |
| peter | computing | 1999 | 2003 |
| igor | computing | 1980 | 1989 |
| igor | eee | 1990 | 2003 |
project (staff.name,staff.start,staff.end) would
result in
staff
name start end
peter 1999 2003
igor 1980 1989
igor 1990 2003
yet semantically the answer should merge the two rows containing
igor to give a single interval from 1980 to 2003.
This advanced project involves the design and implementation of a
Temporal Database system to support the storage of temporal data, and
querying of temporal data using an extension of the relational algebra
US logic (as studied in the Advanced Databases Course), using
known techniques ([McBrien
(1993)]) for the implementation of the basic US
operations. Project work would include designing the implementation of
extended temporal operators, and the design and implementation of new
temporal operators.
Possible extensions of the project include:
- Provide an SQL like interface to US logic and temporal data ([Gabbay
and McBrien (1991)])
- Provide a graphical interface to US logic and temporal data using
the ERT modelling language ([McBrien,
Seltveit, Wangler (1992)])
- Handle two-dimensional temporal databases, i.e. those which
handle both transaction time and valid time.
- Design/improve an alternative query language to temporal-SQL,
such as the ERL ([McBrien
et al (1991)])
Suggested methods for implementation of the project would be either
-
Use Java and the JDBC API to produce a wrapper around existing relational
databases, where the Java programme parses temporal DDL and DML statements,
and converts them (as far as is possible) to SQL statements to run
on the relational database, and implement in Java functions that cannot be translated
into SQL.
- Implement core temporal operators in the RDBMS (using triggers where transitive closure is required of intervals), and write a wrapper that translates temporal SQL into SQL that uses the core temporal operators.
-
Modify and extend the Postgres source code to support temporal DDL and DML statements. In this case, it is expected that a temporal SQL language will be
developed within the project, and no temporal RA be implemented.
References
- J. Patel
Temporal Database System
MEng Final Year Project Report, Dept of Computing, Imperial College, 2003
The reports includes several example queries over a temporal database
containing English Premiership Football League results. Other downloads:
For other projects, see Peter McBrien's teaching page