• Randy AV (10/18/2014)


    I am one of the authors of "Managing Time in Relational Databases" published by Morgan Kaufmann and reviewed by Joe Celko. While writing the book, we also created a Temporal framework for SQL Server which maintains Temporality (Bi-Temporal) in SQL Server Databases. It supports Temporal Entity Integrity(TEI), Temporal Uniqueness(TU) and Temporal Referential Integrity(TRI). It is closely aligned with the Temporal SQL Standards for Temporal Updates, Deletes and Queries, hiding most of the complexity from the typical programmer.

    See http://www.assertedversioning.com for an explanation of Temporal Databases, examples and a SQL Server demo of this framework.

    We have just completed a utility that helps convert a typical, existing SQL Server Database into a Temporalized Database, including all of the Framework Code that transparently maintains Temporality (TEI, TU, TRI). After the conversion, most of the existing application code works as-is, but now data can be queried as it appeared at any point-in-time and at any effective time with a few simple parameters. It is really, really cool in my humble opinion..

    We also have two patents in this area covering 42 patent claims, including techniques to improve performance of temporal systems and future assertions. SQL Server seems to be way behind Teradata, Oracle and DB2 in this area, and this framework and utility could quickly bring this functionality to SQL Server installations. Temporal DB Extensions make it a lot easier to model data because they can model data and relationships at one point in time rather then trying to model across multiple dimensions of time (e.g. DataVault, Anchor, etc.).

    I am trying to determine if this would be a product that DBAs, Modelers and maybe Business Users might be interested in, and if we should consider packaging it as a tool, or combine it as a consulting engagement.

    I'd appreciate any feedback, opinions and ideas on this topic.

    It would be interesting to have a look at the patents to see if they contain any prior art.

    --Jeff Moden


    RBAR is pronounced "ree-bar" and is a "Modenism" for Row-By-Agonizing-Row.
    First step towards the paradigm shift of writing Set Based code:
    ________Stop thinking about what you want to do to a ROW... think, instead, of what you want to do to a COLUMN.

    Change is inevitable... Change for the better is not.


    Helpful Links:
    How to post code problems
    How to Post Performance Problems
    Create a Tally Function (fnTally)