In this paper, we propose an efficient technique to statically manage integrity constraints in object-oriented database programming
languages. We place ourselves in the context of an extended version of the O
2 database programming language, and we assume that updates are undertaken by means of methods. An important issue when dealing
with constraints is that of efficiency. A naive management of such constraints can cause a severe floundering of the overall
system. Our basic assumption is that the run-time checking of constraints is too costly to be undertaken systematically. Therefore,
methods that are always safe with respect to integrity constraints should be proven so
at compile time. The run-time checks should only concern the remaining methods. To that purpose, we propose a new approach, based on
abstract interpretation, to prove the
invariance of
integrity constraints under complex
methods. We then describe the current implementation of our prototype, reporting many experiments that have been performed with it
on non trivial examples.
Though our method is developed in the context of object-oriented database programming languages, it can easily be applied
to the problem of static verification of object-oriented languages providing pre and post-conditions such as Eiffel.