Download Temporal Data and The Relational Model

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts

Oracle Database wikipedia , lookup

Extensible Storage Engine wikipedia , lookup

Concurrency control wikipedia , lookup

Entity–attribute–value model wikipedia , lookup

Microsoft Jet Database Engine wikipedia , lookup

Database wikipedia , lookup

Functional Database Model wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Open Database Connectivity wikipedia , lookup

Clusterpoint wikipedia , lookup

Relational algebra wikipedia , lookup

SQL wikipedia , lookup

PL/SQL wikipedia , lookup

Database model wikipedia , lookup

Relational model wikipedia , lookup

Transcript
Temporal Data and The Relational Model
26 November, 2013
The PORTION Clause in SQL:2011
S_DURING
“Deleting a Portion” in SQL:2011
S#
FROM
TO
S#
FROM
TO
S1
d03
d11
S1
d03
d11
S2
d02
d06
S2
d02
d06
S_DURING
UPDATE S_DURING
FOR PORTION OF DURING FROM d06 TO d08
SET S# := S# ( 'S2' )
WHERE S# = S# ( 'S1' ) ;
yielding
S#
FROM
TO
S1
d03
d06
S2
d02
d06
S2
d06
d08
DELETE S_DURING
FOR PORTION OF DURING FROM d06 TO d08
WHERE S# = S# ( 'S1' ) ;
yielding
note circumlocution
S#
FROM
TO
S1
d03
d06
S2
d02
d06
S1
d08
d11
91
92
93
94
Updating the Combination View
Finally, we need to be able to apply update operators to the virtual
relvar that combines current state with history.
So we propose to add a COMBINED_IN specification to relvar
declaration syntax, for that express purpose. E.g.:
VAR S_SINCE RELATION
{ S#
S#,
S#_SINCE
DATE SINCE_FOR { S# }
HISTORY_IN ( S_DURING )
COMBINED_IN ( S_DURING_NOW_AND_THEN ),
STATUS
INTEGER,
STATUS_SINCE DATE SINCE_FOR { STATUS }
HISTORY_IN
( S_STATUS_DURING )
COMBINED_IN
( S_STATUS_ DURING_NOW_AND_THEN )
KEY { S# } ;
Proposed Terminology
Special Treatment for Logged Times
Stated times = "valid times"
Logged times = "transaction times"
We propose a LOGGED_TIMES_IN specification to be
available in relvar declarations. E.g.:
Justification for proposed terms:
The stated times of proposition p are times when,
according to our current belief, p was, is or will be true.
The logged times of proposition q are times (in the past
and present only) when the database recorded q as being
true.
VAR S_DURING RELATION
{ S#
S#,
DURING
INTERVAL_DATE }
USING ( DURING )  KEY { S#, DURING } 
LOGGED_TIMES_IN ( S_DURING_LOG ) ;
Attributes of S_DURING_LOG are S#, DURING and a
third one, for logged times.
[If q includes a stated time, then some might call "q
during logged time [t1:t2]" a "bitemporal" proposition
and hence talk about "bitemporal relations". We don't.]
95
CS319: Theory of Databases
96
16