New Book Review: "Managing Time in Relational Databases"
New book review for Managing Time in Relational Databases: How to Design, Update and Query Temporal Data, by Tom Johnston and Randall Weis, Morgan Kaufmann, 2010, reposted here:
When this book was published last year, I must admit that the data architect in me was excited that an advanced database text had finally come along that addressed some issues that every data modeler must face (or should face) once they have mastered the rudimentary. The bulk of published database related books discuss SQL, or usage of specific database products. And while more books are beginning to appear on shelves that address topics such as data modeling, this genre is certainly in need of more texts that address the full spectrum of database usage.
Despite the weightiness of this 400-page effort, which required quite the journey (be forewarned), this book is one of the most painstakingly detailed technology efforts that I have read in quite some time that goes to great lengths in making sure the reader understands the material that is presented. No stones are left unturned along the way in the explanations of the authors on how to design, update, and query temporal data. In addition, the introductions that Johnston and Weis provide on temporal data management and asserted versioning in the first 150 pages are unrivaled in textbook publishing.
The authors state in their preface that there are four objectives of this book: (1) to describe how to manage uni-temporal and bi-temporal data in relational databases in such a way that they can be seamlessly accessed together with current data, (2) to describe how to encapsulate the complexities of uni-temporal and bi-temporal data management, (3) to explain how to implement temporal data management as an enterprise solution, and (4) to describe how to bring pending transactions into the production tables that are their targets, and how to retain posted transactions in those same tables.
The authors also note that as this book when to press, they started the process of converting their initial provisional patent application for Asserted Versioning into a patent application, although any non-software-vendor company is granted the right to develop its own temporal data management software based on the concepts presented in this book, as long as such software is for use only by the company and not sold, leased, licensed, or given away to any other company or individual. An implementation of the concepts presented by the authors, the Asserted Versioning Framework (AVF), is also being created by the authors.
Superb illustrations accompany explanations of concepts in all the right places. And the concluding chapter that the authors provide offers more substance than many lengthy white papers, offering an "ongoing research and development" section that presents a partial list of topics on which the authors are working, with topics such as use of AVF via Java and Hibernate of special interest to me. The asserted versioning glossary that spans over 50 pages of fine print and concludes the text is also highly appreciated. Well recommended to all data professionals.