Activity: Talk or presentation › Lecture and oral contribution
Integrity constraints (ICs) for a database are logical conditions that must be satisfied by the tuples in the database for it to represent a sensible meaning. Typically, ICs represent important properties of the application domain (e.g. "business logic") and may include complex joins so that checking them from scratch for a database is practically impossible (even a check which is linear in size of the database is impractical). Current database technology provides only support for the most simple sorts of ICs such as referential integrity, and for more complex ones, developers need to produce manually, complicated triggers or encode checks in the application programs. This is a difficult process subject to programming errors and maintenance is problematic when, say, the database schema is modified. For these reason, integrity checking is often done only partially.
In demand are automatic methods for generating incremental checks to be performed for each particular update so that only a minimal set up tuples needs to be consulted, relying on the invariant that the database state is consistent before the update. We present a so-called simplification method, which produces optimal checks to be performed before an update request is executed to see if it will introduce inconsistency if it were executed (this way roll-back operations are completely avoided). The simplification principle has been recognized for more that two decades, but the present work seems to be among the first ones to provide general and practically relevant methods. The methods can be adapted to instances of data-integration and to generate optimal locking strategies for multi-user databases. The talk reports joint work with PhD student Davide Martinenghi.