Abstract. Software applications are inevitably concerned with data integrity, whether the data is stored in a database, files, or program memory. An integrity guard is code executed before a data update is performed. The guard returns “true” just if the update will preserve data integrity. The problem considered here is how integrity guards can be produced automatically from data integrity constraints. We seek a solution that can be applied in general programming contexts, and that leads to efficient integrity guards. In this paper we present a new integrity constraint language and guard generation algorithms that are based on a rich object data model.