Given a single IDB rule

$$R(x) \ \mathop{:\!\!-} \ A(x), \lnot B(x)$$

Where $A$ and $B$ are EDB predicates, how would I go about calculating changes to $R$ as tuples are added to $B$? As I understand, when tuples are added to $B$, tuples may need to be removed from $R$.

This paper says

We present the DRed algorithm to incrementally maintain recursive views that use negation


A semi-naive computation is sufficient to compute new inserted tuples for a recursively defined view when insertions are made to base relations.

The DRed algorithm seems to take an input of the deleted EDB tuples, so adding a new tuple (and starting with a null set for deleted tuples) would have no effect. Have I missed something here?

Perhaps I misunderstand the definition of stratified negation, is $R$ an invalid rule?



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.