Sunday, October 31, 2010
Back to temporal databases
In 1998 I have edited a book of articles about temporal databases (together with Sushil Jajodia, and Sury Sripada), this followed a Dagstuhl seminar we held in 1997 about temporal databases, an area that was hot at that time in the research community, and somewhat cooled off. Today a Master student I supervised took her final exam on "final work" (which is less than a thesis, a track that require to take more credit work), and did an implementation of a temporal database model from a paper in this book that was co-authored by Arie Segev, Avi Gal and myself. This is somewhat more expressive model than the TSQL based models, and had its own interesting featured like: ability to freeze and unfreeze data, ability to distinguish between modification and revision, ability to deal with simultaneous value. In fact some of these ideas found themselves into our work on event processing (e.g. policies when there are repeating events that may match the same pattern).
Temporal databases as an area started in the Israeli army. Kobi Ben-Zvi who went from the Israeli army to do PhD in UCLA has invented the area, by formalizing the terms, and there has been a lot of work later in the research communities in the 1990-ies. There was even big fight about how to extend the SQL standard to support temporal databases between two parties, I don't really remember the details, in the book you can find the position of the two sides of this battle, as the Dagstuhl seminar was one of the battle fields. The end result is that it never became part of the SQL standard, partly because of the fights, and more importantly since at that time the DBMS vendors have higher priorities on their mind -- e.g. Web related stuff, XML data etc.. There are some features, but it did not get fully into the mainstream of databases, although there are quite a few of specialized implementations. One of the future directions of event processing will involve getting back to temporal databases as an infrastructure, which is the area of retrospective event processing, I'll write more about it in the future.