Bitemporal data has always been important. But it was not until 2011 that the ISO released a SQL standard that supported it. Currently, among major DBMS vendors, Oracle, IBM and Teradata now provide at least some bitemporal functionality in their flagship products. But to use these products effectively, someone in your IT organization needs to know more than how to code bitemporal SQL statements. Perhaps, in your organization, that person is you. To correctly interpret business requests for temporal data, to correctly specify requirements to your IT development staff, and to correctly design bitemporal databases and applications, someone in your enterprise needs a deep understanding of both the theory and the practice of managing bitemporal data. Someone also needs to understand what the future may bring in the way of additional temporal functionality, so their enterprise can plan for it. Perhaps, in your organization, that person is you.This is the book that will show the do-it-yourself IT professional how to design and build bitemporal databases and how to write bitemporal transactions and queries, and will show those who will direct the use of vendor-provided bitemporal DBMSs exactly what is going on "under the covers" of that software. * Explains the business value of bitemporal data in terms of the information that can be provided by bitemporal tables and not by any other form of temporal data, including history tables, version tables, snapshot tables, or slowly-changing dimensions.* Provides an integrated account of the mathematics, logic, ontology and semantics of relational theory and relational databases, in terms of which current relational theory and practice can be seen as unnecessarily constrained to the management of nontemporal and incompletely temporal data.* Explains how bitemporal tables can provide the time-variance and nonvolatility hitherto lacking in Inmon historical data warehouses.* Explains how bitemporal dimensions can replace slowly-changing dimensions in Kimball star schemas, and why they should do so.*Describes several extensions to the current theory and practice of bitemporal data, including the use of episodes, "whenever" temporal transactions and queries, and future transaction time.* Points out a basic error in the ISO's bitemporal SQL standard, and warns practitioners against the use of that faulty functionality. Recommends six extensions to the ISO standard which will increase the business value of bitemporal data.* Points towards a tritemporal future for bitemporal data, in which an Aristotelian ontology and a speech-act semantics support the direct management of the statements inscribed in the rows of relational tables, and add the ability to track the provenance of database content to existing bitemporal databases. This book also provides the background needed to become a business ontologist, and explains why an IT data management person, deeply familiar with corporate databases, is best suited to play that role. Perhaps, in your organization, that person is you.
Foreword xv
Preface xix
Acknowledgments xxxi
Chapter 1 Bitemporal Data: Preliminaries 1 (18)
Nontemporal, Unitemporal and Bitemporal 3 (8)
Data
Nontemporal Tables 4 (2)
Unitemporal Tables 6 (4)
Bitemporal Tables 10 (1)
Semantics and its Implementations 11 (2)
Glossary List 13 (6)
PART 1 THEORY
Chapter 2 Time and Temporal Terminology 19 (16)
Time 19 (7)
Instants and Moments 19 (1)
Clock Ticks 20 (4)
Time Periods 24 (2)
Temporal Terminology 26 (7)
Temporal Dimensions 27 (3)
Types of Tables 30 (2)
A Choice of Terminologies 32 (1)
Glossary List 33 (2)
Chapter 3 The Relational Paradigm: 35 (8)
Mathematics
Tables and Columns 35 (1)
Columns and Domains 36 (1)
Cartesian Products 37 (1)
Functions and Primary Keys 38 (3)
Relations 41 (1)
Glossary List 41 (2)
Chapter 4 The Relational Paradigm: Logic 43 (16)
Propositional Logic 43 (10)
Connectives 43 (4)
Well-Formed Formulas 47 (1)
Transformation Rules 48 (3)
Rules of Inference 51 (2)
Predicate Logic 53 (4)
Statements and Statement Schemas 55 (2)
Logic and the Relational Paradigm 57 (1)
Glossary List 58 (1)
Chapter 5 The Relational Paradigm: Ontology 59 (20)
Types and Instances 61 (3)
A Data Modeling Perspective 61 (1)
A Philosophical Perspective 61 (1)
A Set Theoretic Perspective 62 (1)
A Logic and Language Perspective 63 (1)
An Analogy 63 (1)
Summary 63 (1)
Instances and Identity 64 (1)
The Relational Paradigm Ontology: 64 (4)
Aristotelian Roots
Aristotle on Substance 64 (1)
Aristotle on Accidents 65 (2)
Beyond the Aristotelian Roots 67 (1)
The Relational Paradigm Ontology 68 (5)
A Middle Level Extension to the 70 (1)
Relational Paradigm Ontology
States and Change 70 (2)
Primary Keys Natural Keys, Foreign Keys 72 (1)
Objects, Events and Change 72 (1)
On Using Ontologies 73 (2)
Integrating the Mathematics and Ontology 75 (3)
of the Relational Paradigm
Glossary List 78 (1)
Chapter 6 The Relational Paradigm: Semantics 79 (20)
Rows, Statements, Assertions and Kindred 80 (1)
Notions
Rows, Inscriptions and Sentences 81 (1)
Statements 82 (6)
Disambiguating Statements 84 (4)
Statements and Statement Schemas 88 (1)
Speech Acts 88 (9)
Statements and Assertions 89 (2)
Propositions 91 (1)
Expressing Assertions Explicitly 92 (5)
Glossary List 97 (2)
Chapter 7 The Allen Relationships 99 (18)
Why the Allen Relationships are Important 99 (1)
A Taxonomy of the Allen Relationships 100 (7)
The Basic Allen Relationships 100 (7)
Combinations of the Allen Relationships 107 (1)
A Binary Partitioning of the Allen 107 (7)
Relationships Taxonomy
Common Timeline Time Periods: 108 (1)
[Includes] or [Excludes]
[Includes]: [Contains] or [Overlaps] 108 (1)
[Contains]: [Equals] or [Encloses] 109 (1)
[Encloses]: [Aligns With] or [During] 110 (1)
[Aligns With]: [Starts] or [Finishes] 111 (1)
[Excludes]: [Before] or [Meets] 112 (2)
An Allen Relationship Thought Experiment 114 (1)
Glossary List 115 (2)
Chapter 8 Temporal Integrity Concepts and 117 (10)
Notations
Cubes, Slices and Cells: Data in 117 (5)
Three-Dimensional Temporal Space
Semantically Anomalous Relational Tables 122 (2)
Implicit Bitemporal Time 124 (2)
Glossary List 126 (1)
Chapter 9 Temporal Entity Integrity 127 (14)
Entity Integrity 127 (1)
Bitemporal Entity Integrity 128 (7)
Some Bitemporal Transactions 128 (7)
State-Time Entity Integrity 135 (2)
Conventional Entity Integrity 137 (2)
Glossary List 139 (2)
Chapter 10 Temporal Referential Integrity 141 (24)
Temporal Foreign Keys 141 (2)
Episodes 143 (3)
State-Time Referential Integrity 146 (4)
A State-Time Delete: Block Mode 147 (1)
A State-Time Delete: Cascade Mode 148 (2)
A State-Time Delete: Set Null Mode 150 (1)
Bitemporal Referential Integrity 150 (4)
Conventional Referential Integrity 154 (4)
Glossary List 158 (7)
PART 2 PRACTICE
Chapter 11 Temporal Transactions 165 (22)
An Overview of Temporal Transactions 165 (2)
Basic Temporal Transactions on State-Time 167 (4)
Tables
A State-Time Insert With Default Time 168 (1)
A State-Time Update With Default Time 168 (2)
A State-Time Update With Specified 170 (1)
State Time
A State-Time Delete With Default Time 171 (1)
Basic Temporal Transactions on Bitemporal 171 (6)
Tables
A Bitemporal Insert With Default Time 172 (1)
A Bitemporal Update With Default Time 172 (3)
A Bitemporal Update With Specified 175 (1)
State Time
A Bitemporal Delete With Default Time 176 (1)
Whenever Temporal Transactions 177 (5)
A Whenever Insert Transaction 179 (1)
A Whenever Update Transaction 180 (1)
A Whenever Delete Transaction 181 (1)
Temporal Merge Transactions 182 (3)
Glossary List 185 (2)
Chapter 12 Basic Temporal Queries 187 (18)
Temporal Query Syntax 187 (3)
Bitemporal Tables and Views 190 (7)
The Conventional Table View 190 (2)
The Logfile View 192 (3)
The Version View 195 (2)
Point-In-Time Range Queries 197 (2)
Range Queries 199 (4)
Glossary List 203 (2)
Chapter 13 Advanced Temporal Queries 205 (20)
A Basic Temporal Range Multi-Table Query 205 (9)
Step 1 Decoalesce and Restrict on 207 (1)
Assertion Time
Step 2 Decoalesce and Restrict on State 208 (1)
Time
Step 3 Drop Assertion-Time Period 208 (2)
Columns
Step 4 Align on State-Time Boundaries 210 (2)
Step 5 Join on RefId and State Time 212 (2)
A Complex Temporal Range Multi-Table Query 214 (8)
Step 1 Decoalesce and Restrict on 215 (1)
Assertion Time
Step 2 Decoalesce and Restrict on State 216 (1)
Time
Step 3 Drop Assertion-Time Period 217 (2)
Columns
Step 4 Align on State-Time Boundaries 219 (2)
Step 5 Join on RefId and State-Time 221 (1)
Why Temporal Range Multi-Table Queries 222 (1)
are Complex
Glossary List 223 (2)
Chapter 14 Future Assertion Time 225 (16)
Future Assertion Time: Semantics 225 (8)
The Six-Fold Way 226 (1)
Challenging the Six-Fold Way 227 (3)
The Nine-Fold Way 230 (3)
Future Assertion Time: Implementation 233 (7)
The Time Travel Paradox 234 (2)
Future Assertion Time Locking 236 (1)
Future Transactions With Assertion-Time 237 (3)
Locking
Glossary List 240 (1)
Chapter 15 Temporal Requirements 241 (20)
Updates and Corrections to Conventional 241 (4)
Tables
Timestamped Tables 245 (4)
Double-Timestamped Tables 249 (3)
Double-Timestamps and Corrections 252 (1)
The Double-Timestamped Dilemma 253 (1)
The Bitemporal Data Solution 254 (6)
Glossary List 260 (1)
Chapter 16 Bitemporal Data and the Inmon 261 (16)
Data Warehouse
A Brief History of the Data Warehouse 261 (4)
What is an Inmon Data Warehouse? 265 (5)
Subject Orientation 265 (1)
Integration 266 (2)
Time-variance 268 (1)
Nonvolatility 269 (1)
Support for Management Decision-Making 269 (1)
Why Unitemporal Tables Cannot Be Both 270 (2)
Time-Variant and Nonvolatile
Two Senses of "As-Was" 271 (1)
The Enterprise Data Warehouse Redefined 272 (1)
The Semantics of the EDW and the Question 273 (3)
of its Physical Instantiation
Inmon's Arguments for a Physical EDW 274 (2)
Glossary List 276 (1)
Inmon Terms 276 (1)
Chapter 17 Semantic Integration via 277 (14)
Messaging
The Objectives of an Enterprise Database 277 (2)
Two Paths to Semantic Integration 279 (1)
The Enterprise Data Model as a Canonical 280 (9)
Message Model
The Failed Mission of the Enterprise 281 (1)
Data Model
A New Mission for the Enterprise Data 282 (7)
Model
Glossary List 289 (2)
Chapter 18 Bitemporal Data and the Kimball 291 (24)
Data Warehouse
Star Schemas and Relational Databases 293 (1)
The Star Schema Data Warehouse 294 (1)
Architecture
The Star Schema Design Pattern 294 (1)
Reconceptualizing Star Schemas: Fact 295 (4)
Tables and Dimension Tables
Events and Objects 295 (2)
Surrogate Keys and Natural Keys 297 (2)
A Bitemporal Star Schema 299 (12)
A Bitemporal Dimension Case Study 300 (7)
Fact Table Analysis 307 (2)
Summary of the Case Study 309 (2)
Bitemporal Dimensions Versus 311 (2)
Slowly-Changing Dimensions
Glossary List 313 (1)
Kimball and Ross Terms 313 (2)
Chapter 19 Time, Types and the Future of 315 (22)
Relational Databases
Tritemporal Data and Statement Provenance 316 (2)
Inscription Time, State Time, Speech 318 (1)
Act Time
Ontologizing Relational Databases 318 (16)
The Extended Relational Paradigm 321 (2)
Ontology
The Extended Relational Paradigm 323 (11)
Metamodel
Atomic Statements and Binary Tables 334 (1)
Looking Ahead 335 (1)
Glossary List 336 (1)
Chapter 20 Recommendations 337 (6)
Recommendations for IT Professionals in 337 (1)
End-User IT Organizations
Recommendations for Standards Committees 338 (4)
and Vendors
Remove the Ability to Correct Data in 339 (1)
State-Time Tables
Specify Referent Identifiers in SQL 339 (1)
Table Definitions
Specify Temporal Unique Identifiers in 340 (1)
SQL Table Definitions
Package the Bitemporalization of 340 (1)
Conventional Tables
Modify SQL Query Syntax to Clarify 341 (1)
Semantics
Add Whenever Temporal Transactions to 342 (1)
the Standard
Add Future Transaction Time to the 342 (1)
Standard
Glossary List 342 (1)
Afterword: Reflections on Mindfulness and 343 (4)
Bitemporality
Bibliography 347 (12)
Index 359