Re: Database design: Temporal databases - Mailing list pgsql-general

From Richard Broersma
Subject Re: Database design: Temporal databases
Date
Msg-id 396486430806180557u5e5e71c4q8a5cab3299e804da@mail.gmail.com
Whole thread Raw
In response to Database design: Temporal databases  (David <wizzardx@gmail.com>)
List pgsql-general
On Wed, Jun 18, 2008 at 5:05 AM, David <wizzardx@gmail.com> wrote:

> I haven't used them before, but I like the idea of never
> deleting/updating records so you have a complete history (a bit like
> source code version control).

Well depending on what kind of temporal behavior you are modeling,
there may be cases where you will update a temporal segment.  That is
why the bi-temporal tables were introduced.  They track the changes
that are many to another tables temporal segment.


> How well do temporal databases work?

They work really well.  But the are alot of work to create and because
of this changing their structure is also alot of work.

> Do RDBMS (ie Postgresql) need
> add-ons to make it effective, or can you just add extra temporal
> columns to all your tables and add them to your app queries?

Postgresql contains most of the features needed to make a temporal
database.  However, the hard part of temporal database is developing
your own referential integrity constraints that would need to exists
between related entity time line tables.

> Does this
> increase app complexity and increase server load a lot?

I would expect that it would add abit, since you need to remember that
you not really deleteing a record or updating.  you are only altering
and adding timeline segments.

> Are there Python libraries which simplify this? (eg: add-ons for
> Elixir or SQLAlchemy).

Not to sure.

> Or should apps all implement their own 'temporal data access' module,
> which transparently uses the current date & time until queried for
> historical data?

Currently there is a project to add temporal functionality to
postgresql.  Currently is doesn't add any referential integrity.  It
only adds special temporal data types and functions for evaluating
temporal comparisons.

http://pgfoundry.org/projects/temporal/

Although there is a desire to add RI to PG.  However, this
functionality would need to be directly added to the core of
postgresql.  It will probably be a long while before this happens.

--
Regards,
Richard Broersma Jr.

Visit the Los Angles PostgreSQL Users Group (LAPUG)
http://pugs.postgresql.org/lapug

pgsql-general by date:

Previous
From: David
Date:
Subject: Re: Database design: Storing app defaults
Next
From: Michael Fuhr
Date:
Subject: Re: UTF8 encoding problem