Requirements for update languages?
Date: 08 Nov 2002 15:26:14 +0100
Message-ID: <m2k7jo87eh.fsf_at_pcwi1068.uni-muenster.de>
Dear reader,
while there are some criteria to assess relational query languages
(adequate, relationally complete, optimizable) I wonder what makes a
good update language for a data model.
In particular, I wonder about the following points in SQL.
at once.)
First, it is not clear whether this is true for base relation updates. E.g., consider relation R(A,B) with an assertion "check 2 < select count(*) from R where A=1" in bag instance { (1,0), (1,0), (1,0) } and insertion of (1,0) into this instance. As duplicates are not treated well by SQL, an undo of that insertion is difficult. I guess that the only way is to issue a transaction that first deletes everything and then re-inserts the desired tuples. Clearly, this works in theory, but is not a desirable way to go in practice. Second, in the presence of view updates, problems arise much more naturally (without duplicates). E.g., users cannot undo deletions from projections, as information about the missing attributes is not available.
3. As a db admin, I expect that users know what they are doing when
they manipulate data.
Again, for view updates this is often not the case. E.g., in case of projections users delete tuples they do not know completely; in case of deletions from unions they do not even know from which relation something gets deleted.
It turns out that (2) and (3) above are equivalent. I wrote a paper
about this issue, where I warn against using view updates. If you
are interested, take a look at:
http://dbms.uni-muenster.de/publications/downloads/view-updates.pdf
A small warning: An almost identical version of that paper got
rejected at ICDT'03. Basically, the anonymous referees did not buy
(2) and (3).
I'm curious to see your opinions.
Jens Received on Fri Nov 08 2002 - 15:26:14 CET