Thémis: a database programming language with integrity constraints

This paper is concerned with the problem of efficiently checking of integrity constraints in data base programming languages supporting subtyping and class hierarchies. More specifically, we consider two different problems: (1) statically reduce the number of constraints to be checked, and (2) generate an efficient run time checker. Using simple strategies, one can significantly improve the efficiency of the verification. We show how to reduce the number of constraints to be checked by characterising the portions of the database that are concerned by the constraints and involved in a transaction. We also show how to generate efficient algorithms for checking a large class of constraints. We show how all the techniques presented took great advantage of the underlying type system which provide a significant help both in solving (1) and (2). Last the current status of the Themis prototype is presented.