Elsevier Managing Time in Relational Databases

This book presents a comprehensive view of how to manage a temporal database. Temporal data management refers to an integrated method of managing data about the past, present, and future of the objects and events of interest to the user. That is, managing non-current data in relational databases in such a way that past data can be seamlessly accessed together with current data with result sets containing both current and non-current data that can be retrieved with queries simple enough for a business user to write and with result set response times very close to those for result sets containing current data only. For example, let's say that from July through August of last year we had on our database a row stating that the unit cost of a product was $25.50 during the first quarter of that year. But in September, we realized that we had made a mistake and that the unit cost was actually $23.50. End users need the ability to issue a query which can tell them both what the unit cost really was in the first quarter of last year and also a query which can tell them what they said the first-quarter unit cost was last July. The practical and comprehensive nature of this material is demonstrated in each chapter by a mixture of diagrams and text typical for a book about data architecture and data models. The chapters dealing specifically with managing temporal and bi-temporal data will rely heavily on an example-driven approach, each example presenting specific real-world scenarios. Each scenario is structured around: a before-image of a sample table or tables; a bi-temporal timeline graphic; a specific bi-temporal transaction; and, one or more snapshots of the sample table or tables, showing the results of applying each transaction (bi-temporal relational data is temporarily delimited into two dimensions, i.e., valid time and transaction time). For example, a hedge fund company needs to bi-temporally manage a lot of their econometric data because GDP, CPI and the many other data sources they use have scheduled releases, then followed up by one or more revisions later on. Such data describes: what the economy was like during a specific time period (valid time) and a series of corrections to prior releases of that data (transaction time). Value proposition: this book presents a simplified approach to managing temporal and bi-temporal data that reduces the complexity of data queries and transactions making inserts, updates and deletes simple enough that anyone who could write them against non-temporal tables could also write them against temporal tables. This is accomplished by developing declarative specifications that replace time-intensive design work for data modelers who must incorporate temporal semantics into their work. In this way, query complexity is minimized. It allows the database designer to situate this special kind of temporal data management in the context of an enterprise data architecture, together with other ways of managing non-current data. This title integrates an enterprise-wide viewpoint with a strong conceptual model of temporal data management allowing for realistic implementation of database application development. It provides a true practical guide to the different possible methods of time-oriented databases with techniques of using existing functionality to solve real world problems within an enterprise data architecture environment. Written by IT professionals for IT professionals, this book employs a heavily example-driven approach which reinforces learning by showing the results of putting the techniques discussed into practice.