Databases Reference
In-Depth Information
AND NOT ( PB ). Thus, if we delete t from V , we mean the proposition PA ( t ) AND NOT ( PB ( t ))
is false, which is logically equivalent to saying NOT( PA ( t )) OR PB ( t ) is true. By contrast,
deleting t from A and inserting it into B means NOT( PA ( t )) AND PB ( t ) is true. So if deleting t
from V causes t be deleted from A and inserted into B , we're effectively treating logical OR as
logical AND once again. 8
To repeat, the foregoing criticism applied to the first version of the “parts on sale” vs.
“parts in stock” example. However, the real problem with that example was that, given a
particular tuple to be deleted from the difference DLK, the DBMS was unable to tell whether
that tuple logically belonged in relvar PK or not. In effect, the pertinent restriction condition for
relvar PK in that example was simply TRUE. And my proposed solution to this problem was, in
effect, to redesign the database in such a way that the DBMS could tell which relvar(s) a given
tuple logically belonged in after all—a solution that I venture to suggest will often work in
practice, and indeed is likely to offer benefits in other areas as well, in addition to view updating
as such.
8 I remind you yet again that David McGoveran has a proposal for resolving such ambiguities, which I'll be discussing in Chapter
15.
Search WWH ::




Custom Search