Databases Reference
In-Depth Information
A transaction can induce multiple changes. Due to the presence of sev-
eral views and integrity constraints, even the simplest transactions
consisting on a single base fact update may induce several updates on
the intensional information. That was illustrated in Example 4.7,
where the insertion of Emp( Jack, Sales) induced the insertions of
Edm( Jack, Sales, Mary) and Works( Jack).
·
Change computation is nonmonotonic. In the presence of negative lit-
erals, the process of change computation is nonmonotonic, that is,
the insertion of base facts may induce deletions of derived informa-
tion, while the deletion of base facts may induce the insertion of
derived information. Nonmonotonicity is important because it
makes it more difficult to incrementally determine the changes
induced by a given transaction. For instance, applying the trans-
action T
·
{delete(Emp( John, Sales))} to Example 4.6 would
induce the set of changes S
=
{delete(Edm( John, Sales, Mary)),
delete(Works( John)), and insert(Unemployed( John))}. Note that the
insertion of Unemployed( John) is induced because the deletion of
Works( John) is also induced.
=
Treatment of multiple transactions. A transaction consists of a set of
base fact updates to be applied to the DB. Therefore, we could think
of computing the changes induced by each single base update inde-
pendently and to provide as a result the union of all computed
changes. However, that is not always a sound approach because the
computed result may not correspond to the changes really induced.
As
·
{delete(Emp( John, Sales)),
delete(Work_age ( John))} is applied to Example 4.6. The first
update
an
example,
assume
that
T
=
{delete (Edm( John, Sales, Mary)),
delete(Works( John)), insert(Unemployed( John))}, as we have just
seen, while the second update does not induce any change. There-
fore, we could think that S 1 defines exactly the changes induced
by T. However, that is not the case because the deletion of
Work_age( John) prevents the insertion of Unemployed( John) to be
induced, being S T
in
T
induces
S 1
=
{delete(Edm( John, Sales, Mary)), delete(Works
( John))} the exact changes induced by T.
=
4.4.1.3 Applications of Change Computation
We have explained up to this point the process of change computation
as that of computing changes on intentional information without giving a
Search WWH ::




Custom Search