Dynamic integrity constraints arise in many traditional and non- traditional database applications; however, such constraints are not supported by current database management systems. This project focuses on efficient methods for checking dynamic integrity constraints in databases. Past Temporal Logic and Past Metric Temporal Logic are proposed as constraint languages, making it possible to formulate both qualitative and quantitative temporal conditions. The project includes the development and the implementation of a method to reduce dynamic integrity checking to static integrity checking. If this method is used, past database states do not have to be stored for the purpose of dynamic integrity checking. Instead, compressed historical information is stored in every database state as auxiliary relations. The definitions of the needed auxiliary relations are automatically derived from the constraints. Techniques that optimize constraint checking and issues that arise from the integration of this new method with existing database management systems will also be addressed. The proposed research will significantly enlarge the application scope of database management systems and will make it easier to integrate these systems with real-time processes.