Thus, there is a
Primary relation that remains
unchanged, while each user will
Specify inserts and deletes on a
user_copy
(for simplicity forget updates)
Read a modified table from a
user_view.
This can be accomplished by letting:
user_copy be an empty relation, and by
redirecting every insert or delete to this table
to two delta tables called
user_PosDelta
and
user_NegDelta
(Oracle's instead rules might become handy here)
Thus
user_view
is defined as:
Primary + user_PosDelta - user_NegDelta.
Observe the similiarity with Example 3.6 in ADS, but
remember that
a user could here insert a tuple and then delete it, or viceversa.
Derive and write active rules for the efficient
(i.e., differential) support of a transitive closure
of a graph stored as a binary relation.