[AccessD] Temporal database

Gustav Brock Gustav at cactus.dk
Thu May 24 04:37:46 CDT 2007


Hi all

I just noticed that perhaps _the_ prime acteur in this field, Richard
T. Snodgrass, offers one of his books free to download:

"Developing Time-Oriented Database Applications in SQL"
including the cd-rom with code for IBM DB2 Universal Database, Ingres,
Informix-Universal Server, Microsoft Access, Microsoft SQL Server,
Sybase
SQLServer, Oracle8 Server, and UniSQL. 

http://www.cs.arizona.edu/~rts/publications.html

Happy reading!

/gustav

>>> Gustav at cactus.dk 22-11-2006 16:45 >>>
Hi Arthur and Shamil

"We need to be able to roll back the database to any given PIT without
actually having to do a restore. We just want to specify a date (Jan 1
2004) and without changing a single line of code, run the reports."
>>> 
> You mean "virtual rollback" of course? IOW a "point in time aware"
view/SP/UDF?

Note that to implement a temporal database in full (I guess we will
loose JC here), not two but _four_ time fields must exist:

<quote>

In the literature, two time lines of interest have been mentioned,
transaction time and valid time. The valid time line represents when a
fact is valid in modelled world (i.e. when it was believed) and the
transaction time line represents when a transaction was performed. A
bitemporal database is a combination of valid time and transaction
time
databases where these two time lines are considered to be orthogonal.
(Snodgrass & Ahn 1986)

</quote>

Again, accounting can display the beauty of this: Consider writing an
invoice; you do this, of course, "today", while the invoice date may
be
either past, present, or future. Later, selecting on transaction dates
will reveal wether this invoice was created or not; selecting on valid
date will show wether this invoice was issued or not.

You may put it in another perspective: Transaction dates record by
themselves an audit trail which allows you to, at any time, to perform
a
dynamic virtual rollback to any previous time, while the valid date
will
show you the (approved) state of the data at that time. Specifically,
this allows you to correct previous recordings (say, a wrongly typed
invoice number of a supplier's invoice), or record a future change of
a
customer's address and - until he moves - to issue invoices correctly
addressed to his present address.

/gustav

>>> artful at rogers.com 22-11-2006 15:10:35 >>>
My personal fave in this category is the Kimball Group. Specifically,
for MS SQL, I recommend "The Microsoft Data Warehouse Toolkit" by Joy
Mundy and Warren Thornthwaite. There is extensive discussion therein
about SCDs (slowly changing dimensions).

I will check out your sources, too.

A.

----- Original Message ----
From: Gustav Brock <Gustav at cactus.dk>
To: accessd at databaseadvisors.com 
Sent: Wednesday, November 22, 2006 8:41:01 AM
Subject: [AccessD] Temporal database (was: Stored Procedure not
producing results)

Hi Arthur

I don't recall you have written about PITA here, but what you describe
is generally known as a temporal database.
This is well-known and has been dealt with by some great capacities in
the database world, Michael Boehlen, Christian Jensen, Richard
Snodgrass
and Andreas Steiner.

http://www.cs.arizona.edu/people/rts/timecenter/timecenter.html 

A brief explanation and introduction can be found here:

http://www.timeconsult.com/TemporalData/TemporalData.html 

Note the link to TimeDB, a Java implementing of "A Bitemporal
Relational DBMS" for Oracle 10g

Also, look up my previous post(ings) on these:

http://databaseadvisors.com/pipermail/accessd/2005-May/034503.html 
http://databaseadvisors.com/pipermail/accessd/2005-May/034455.html 

This is a very exciting area. For some applications it won't even
require that much more data storage (accounting). 
A simplified approach is a write-only database (which means write and
read but neither delete nor update) which both Caché and MySQL offers.

Now, wouldn't it be nice if only TSQL2 could be implemented in Access:

http://www.cs.arizona.edu/people/rts/tsql2.html 

/gustav




More information about the AccessD mailing list