Database Reference
In-Depth Information
P
1
. In other words, the process graph of
a.t
1
is obtained by joining the edge
a
with the tree
P
2
. It is an associative but not a commutative operator, with right
distributivity
a.(t
1
a.t
2
.
In what follows, we can alternatively consider only one binary two sorts
se-
quential composition
operator '
.
', with the first argument in
Act
and the second
argument being a term and the infix notation '
.(a,t
1
)
'.
t
2
)
=
a.t
1
•
Finally, we assume the nullary operator 'nil', that ends the process at a given
state.
Consequently, in what follows, the program language for a data mapping system of
a graph
G
is given by a general GSOS
DB
grammar (with terms
t
), with the set
Act
of actions that can be
infinite
as well
(
GSOS
DB
)t
:=
p
|
a
|
nil
|
a.t
1
|
t
1
t
2
,
where 'nil' is a basic inert program nullary symbol (stop of execution constant),
'
a.
' is a unary action-prefixing operator symbol of programs, '
' is a binary paral-
lel composition symbol of programs,
a
∈
Act
is an atomic action, and
p
∈
X
is a
program variable.
Notice that, differently from CCS, we do not use the 'alternative composition'
but only the parallel composition '
'. In the database mapping processes, the term
t
t
is not equal to
t
(in DB-denotational semantics, we will have that ground terms
(without free variables) are instance-databases and '
' denotes the coproduct in the
DB
category while '
.
' denotes the matching operator
⊗
: two identical instance-
databases with two mutually independent DBMS (i.e.,
A
A
) are not equal (iso-
morphic in the
DB
denotational semantics) to the single database
A
with its DBMS),
but the associative and commutative axioms are valid, and
t
+
nil
=
t
is an axiom as
well.
Notice that
is a commutative and associative operator, so that
t
1
t
2
=
t
2
t
1
and
t
1
(t
2
=
(t
1
t
3
=
t
1
t
2
t
3
)
t
2
)
t
3
. Consequently, we can introduce the finite
n
-ary,
n
' for it (with '
2
' equal to '
1
' being the identity
n
≥
1, generalization '
' and '
1
(t)
n
(t
1
,...,t
n
)
operator), in the prefix forms
t
n
.
In what follows, we will define a specific interpretation of this simple grammar
for our case of database-mapping programs.
=
t
and for
n
≥
2,
=
t
1
···
7.2
Updates Through Views
Given an update on a view of a relational database, how should it be translated
to updates on the underlying database? The problem of updates through relational
views has been studied for more than 20 years by the database community [
5
,
13
,
20
,
38
].
Ideally, view updates must be translated to updates on the base tables (relations)
in a way that the views state after the update is the same we would have gotten if
the update has been applied to a materialized view instance.