Question

I am looking for an SQL database of some type that is entirely based around the concept of time, just like those that are geo-centric, relationship-centric, etc.

My main wish is that I can make changes to the database as I go along, and then at any point run a query that essentially says, show me how the database looked at this date and time. I would prefer the SQL database have this functionality built in, instead of having to re-implement it using a log table and recording each and every transaction.

Am I hoping for a pipe dream?

Thanks!

EDIT: After some further research, it seems that a "temporal database" might be what I'm looking for. So any information on using one of those, if there are any good open-source ones available, etc., would be very helpful!

Was it helpful?

Solution

Oracle has Flashback. Closest I can think of on SQL Server requires snapshots, without resorting to restoring from transaction logs (requires full recovery model).

OTHER TIPS

You may want to check out TimeDB.

Note, though, that you can do the exact same thing yourself by implementing a ValidTimeBegin and ValidTimeEnd columns in your tables and populating them accordingly. The tool simply takes its special SQL statements and converts them to SQL92-compliant statements.

What your looking for software historian. These are databases where all data is organised temporally, really their core function. Once of the uses of the software historian, is to enable a playback function, where time series data can be played back in the order it was entered, which is often critical in those industries that require it, like real time applications in finance, gas, oil and electric utilities.

Some of the companies that offer software historians, are

Wonderware FactoryTalk OSI PI

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top