Database Reference
In-Depth Information
v
t
y
t
x
Figure 3.3 Sliced representations for
moving
(
real
)and
moving
(
point
).
completely the issue of how such functions can be represented. A function
f
:
A
instant
→
A
α
is simply an infinite set of pairs from
A
instant
×
A
α
.
We call a model where it is allowed to define the semantics of types just
in terms of infinite sets an
abstract model
. An abstract model is conceptually
simple and elegant, but to implement it, we have to provide a
discrete model
.In
a discrete model, all the infinite sets of the abstract model have to be described
in terms of finite representations.
The discrete model for the design above introduces for the time-dependent
types the so-called
sliced representation
. That means that to represent a function
of time, the time domain is cut into disjoint time intervals (
slices
) such that
within each slice the development can be represented by some simple function
of time. “Simple” actually means finitely representable. In other words, the
function for a slice can be described by a few parameters rather than an infinite
set of pairs. Figure
3.3
illustrates the sliced representation for a
moving
(
real
)
and a
moving
(
point
).
The representation of a single slice, consisting of the time interval and the
function description, is called a
unit
. In the discrete model it makes sense to
introduce explicit data types for units, for example,
upoint
,
ureal
,
ubool
.Such
types are available in the SECONDO system described below.
The representations of functions within a slice (called
unit functions
) are
chosen to support as many operations of the abstract model as possible in
a consistent way. For a
moving
(
point
) a linear function of time is used. For
moving
(
real
), unit functions are quadratic polynomials of time or square roots
thereof. This allows one to represent the time-dependent distances between
moving objects, or the development of the perimeters or sizes of moving regions,
correctly.
3.3 S
ECONDO
In this section we describe the SECONDO DBMS prototype. In the context of this
chapter, SECONDO is of interest for the following reasons: (1) It implements the
model of Section
3.2
. (2) It allows one to visualize and animate moving objects
and the results of queries. (3) It is extensible at all levels (kernel, optimizer, and