Subject: Proposed Glossary Entry. Re: Temporal Value Integrity.

From: (Fabio Grandi) <[email-masked]>
Date: Fri, 30 Apr 93 16:18:26 +0100

Rick Snodgrass invited us to explain the relationship between
Jim Clifford's "value history" and our "history variables".

We take this chance to proposing alternative definitions
which summarize our point of view on the "temporal value integrity"
and some related concepts.

Anyway, we do not pretend our definitions (so as they are)
to be considered as full entry proposals that we would like
to be added to the glossary and substitute the alternative terms.

Even if in the form of proposed glossary entries (for clarity),
our definitions want just to be a contribution to the discussion.
Their discussion part is not enough complete nor self-contained.

We only hope that the discussion on the tsql forum and
a final editing by Christian Jensen could profit of them
(or at least take into account our point of view).

Anyway, as we tried to evidence,
the magic word "history" could be a good way to put together
rather distants terms with conceptual affinity
(like time sequence, value history, grouping, temporal value)
in order to provide a consistent unifying terminology.

We used the concept of "history" in some works on
temporal relational databases [which are not widely known]
(
  "A history-oriented data view and operation semantics for
   temporal relational databases", CIOC-CNR Tech. Rep. N. 79, 
   University of Bologna, Italy, Jan. 91 (submitted for publication).

  "HoTQuel: A history-oriented temporal query language",
   Proc. 5th IEEE CompEuro, Italy, May 91.

  "History and tuple variables for temporal query languages",
   (formerly submitted to the Arlington workshop), 1993.
)
but it can be applied to a more general temporal data model,
as we tried to do in the proposed entries.

Sincerely,
   Fabio Grandi, Maria Rita Scalas, Paolo Tiberio.

LaTeX document follows.
---------------------------------------------------------------------

\documentstyle[11pt]{article}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% VARIOUS MACROS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\long\def\comment#1{}
\newcommand{\entry}[1]{\subsubsection*{#1}}

\addtolength{\textwidth}{1.485in}%{1.2in}
\setlength{\oddsidemargin}{.1in}%{.3in}
\setlength{\evensidemargin}{.1in}%{.3in}
\addtolength{\topmargin}{-.85in} %{-1.35in}
\addtolength{\textheight}{1.8in} %{2.8in}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% PAPER START
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\begin{document}

\subsection{History}

\entry{Definition}         

A {\em history} is the temporal representation of an "object"
of the real world.
Depending on the object, we can have {\em value histories,
attribute histories, entity histories, relationship histories\/}, etc.

\entry{Alternative Names}   

Time sequence, temporal value, (temporal evolution).

\entry{Discussion}
``History'' is a general and orthogonal (+E1) concept.
Alternative names apply when it specializes into attribute history
(temporal value) or entity/relationship history (time sequence).
``History'' is also preferred over alternative names because
it allows a better definition of related terms.
In particular, ``history'' well lends itself to be used
as modifier (+E1), even though ``time sequence''
is a more consolidated term (-E3,-E6).
``History'' is natural (+E2,+E8) and precise (+E9),
whereas ``temporal value'' may recall a temporal element
(e.g. timestamp value, as Richard said) and ``time sequence'' may recall
a sequence of temporal elements.

\subsection{History-oriented}

\entry{Definition}         

A temporal DBMS is said to be {\em history-oriented\/} if:
\begin{enumerate}
%
\item It supports history unique identification
(e.g. via time-invariant keys, surrogates or OIDs);
%
\item The integrity of histories as first-class objects is inherent
in the model, in the sense that history-related integrity constraints
might be enforced and the language provides a mechanism
(history variables and quantification) for direct reference to
{\em object histories\/};
%
\item The DML allows easy manipulation of object histories, in the sense
that the language provides for user-friendly history selection,
history retrieval and history modification primitives.
%
\end{enumerate}

\entry{Alternative Names}   
Temporal value integrity, grouped.

\entry{Discussion}
``History-oriented'' is preferred over ``temporal value integrity''
since its meaning seems to be more direct.
Further, in a more general perspective,
integrity constraints can be introduced as well
in a history-oriented model
(e.g. history uniqueness, entity history integrity,
referential history integrity).
``History-oriented'' is also preferred over ``grouped'' in order
to avoid confusion with other kinds of grouping 
(e.g. defined terms ``[dynamic/static] valid time grouping'').

\subsection{History equivalent}

\entry{Definition}         
Two objects are {\em history equivalent\/}
if they are equal for all $n$-dimensional
time boxes over which they are defined.

\entry{Alternative Names}   
Value equivalent, snapshot equivalent.

\entry{Discussion}
The ``value equivalence'' defined for tuples
could be extended to consider histories. However, such an
extensions would be rather inappropriate: value equivalence
concerns attribute values and completely disregards time,
whereas history equivalence implies a common evolution along
with time (implicitly assumes equality of timestamps prior
to compare attribute values).
The extension would violate the rationale of the introduction
of history-oriented models.
``History equivalent'' is a concept closer to ``snapshot equivalent''
rather than to ``value equivalent''.
Anyway, ``history equivalent'' seems to be more general.

\end{document}