Databases and their applications are becoming increasingly complex. Databases and database technology is being employed in ever wider and varied contexts. New facilities include triggers, materialized views, object-relational features as definable domains, user defined types and functions, and richer classes of integrity constraints. The addition of these features, though, has lead to more complex database systems, and greater difficulty for databases designers and programmers. So in some respects, the situation is now worse.
New facilities offer a fragmented approach to the expression and handling of semantic properties.
In expression, there is redundancy, lack of orthogonality, and non-declarativeness. In handling, there are problems of incompleteness where the system cannot always recognize when a semantic property is already declared, and problems of unsoundness where it is sometimes possible to circumvent the database's integrity. I shall illustrate these problems with examples, present a database designer's waterfall model for integrity, and recommend ways perhaps to make the process of defining semantic properties simpler and more efficient. One goal of this work is to make recommendations to database system implementors to resolve problems with expressing and handling semantic integrity to provide better semantic facilities. A second goal is make recommendations to database researchers on where work is most critical to have an impact on commercial design.