Developing Time-Oriented Database Applications in SQL

The case studies in the preceding chapters have covered a lot of ground. The major concepts including valid time; transaction time; current, sequenced, and nonsequenced queries; integrity constraints; modifications; user-defined time; and the expression of these concepts in SQL-92 have been discussed in detail.
We now reprise the initial case study Brad De Groot's feed yard application. We have two aims in doing so. First, we use this case to show how best to design a temporal application. And second, this case study serves to review all of these concepts within the context of a single application.
The first case study we studied was that of Brad De Groot's feed yard application, discussed informally in Chapter 2. We now return to that case study, this time with the benefit of a deep understanding of temporal semantics conveyed in the intervening chapters.
Brad started his investigation into the temporal relationships between putative risk factor exposure and subsequent health events by understanding the structure of the data files maintained by the feed yards as they track the movement of cattle between pens. He carefully merged these data definitions into a global schema. After months of work, Brad had constructed an entity-relationship (ER) schema with some 40 entity types and relationships and over 150 roles. Even when printed in a small font, this ER diagram required a large poster to see it in its entirety. The relational schema generated from this conceptual model contains 55 tables and about 850 columns. In sum, the schema is...