Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What's difference between a temporal database and a historical archive database?

Tags:

database

It is said here:

http://www.ibm.com/developerworks/web/library/wa-dbdsgn2.html

Each table in the DB should have a history table, mirroring the entire history of the primary table. If entries in the primary table are to be updated, the old contents of the record are first copied to the history table before the update is made. In the same way, deleted records in the primary table are copied to the history table before being deleted from the primary one. The history tables always have the name of the corresponding primary one, but with _Hist appended.

In temporal db see here temporal database modeling and normalisation there isn't a separate table as far as I understand.

So when should I create another table or not ?

like image 417
programmernovice Avatar asked Oct 04 '09 21:10

programmernovice


People also ask

What is meant by temporal databases?

A temporal database is a database that has certain features that support time-sensitive status for entries. Where some databases are considered current databases and only support factual data considered valid at the time of use, a temporal database can establish at what times certain entries are accurate.

How are temporal data different from traditional data?

Data stored in a DBMS that supports temporal features differs from traditional data in that a time period is attached to the data to indicate when it was valid or changed in the database.

What are the different forms of temporal database?

Temporal databases could be uni-temporal, bi-temporal or tri-temporal. More specifically the temporal aspects usually include valid time, transaction time or decision time. Valid time is the time period during which a fact is true in the real world.

When would you use a temporal database?

That is where temporal databases are useful. It stores information about the past, present and future. Any data that is time dependent is called the temporal data and these are stored in temporal databases. Temporal Databases store information about states of the real world across time.


2 Answers

What Robert said theoretically - nothing to add.

Practically, temporal table vs. main+hist table, has other impications.

For heavily maintained data (e.g. updates/deletes greatly outnumber the inserts), having a historical (sometimes also referred to as "audit" - as it is the main mechanism to enforce audit trail of DB data) table allows keeping the main table reasonably small sized compared to keeping the audit info inside the main table itself. This can have significant performance implications for both selects and inserts on the main table, especially in light of index optimization discussed below.

To top that off, the indices on hist/audit table do not need to be 100% identical to main table, meaning you can omit indices not needed for querying audit data from hist database (thus speeding up inserts into audit table) and, vice versa, optimize what indices there are to specific audit queries you have (including ordering the table by timestamp via clustered index) without saddling the main table with those indices which slow the data changes (and in case of clustering on time of update, clash with main table's clustered index so you usually can't have it clustered in temporal order).

like image 160
DVK Avatar answered Nov 16 '22 04:11

DVK


History tables provide a history of (generally non-temporal) changes made to the primary database records by users. This history is archival in nature (i.e. accessed occasionally for historical purposes). The temporal information (when the change was made) is secondary in nature.

A temporal database is designed specifically to execute time queries against. The temporal information is primary in nature, and kept online for immediate retrieval. A second table is not created, unless archiving also needs to take place.

http://en.wikipedia.org/wiki/Temporal_database

like image 24
Robert Harvey Avatar answered Nov 16 '22 04:11

Robert Harvey