Database Reference
In-Depth Information
many different kinds of temporal and spatio-temporal operations as introduced
in Section
3.2
to the temporal attribute.
3.4.3 Unit Representation
A second way to represent moving object data is to employ the respective unit
types. Several operations allow one to transform a value of a type
moving
(
α
)to
a stream of values of the corresponding unit type and vice versa, so it is easy
to translate between, say, an
mpoint
and a set of
upoint
s and to use both kinds
of data types together. A
upoint
represents a single time interval and a linear
movement of a single object during this time. Let us create the unit representation
for relation
Trains
:
let UnitTrains = Trains feed
projectextendstream[Id, Line, Up; UTrip: units(.Trip)]
addcounter[No, 0] consume;
The result is a relation
UnitTrains(Id: int, Line: int, Up: bool, UTrip: upoint, No: int)
For each vehicle identifier,
UnitTrains
contains a set of tuples, each of which
contains one of the temporally disjoint units whose union forms the train's
complete trajectory.
The units operator converts each
mpoint
to a stream of
upoint
s, and pro-
jectextendstream creates one copy of the input tuple, projected on the attributes
listed, for each
upoint
value. The addcounter operator extends the tuples with
a counter attribute called
No
, starting from 0. Because this
unit representation
,
as we call it, replicates attributes
Id
,
Line
,and
Up
, it is less space efficient.
However, it has a higher degree of organization than
TrainsRaw
, and is quite
useful when creating indexes supporting certain query types.
3.5 Indexing
Indexing, of course, has been a major research topic in the field of spatio-
temporal databases (also termed moving objects databases) and it is beyond
the scope of this chapter to treat the issue at any depth. Surveys describing
and classifying an impressive number of proposed structures are mentioned in
Section
3.8
.
Amajor distinction concerns indexing current and expected near future move-
ment versus indexing histories of movement, or trajectories. In the context of
trajectory databases only the latter case is of interest. Further, one can distin-
guish whether movement is described relative to the Euclidean plane (that is, by