Checking enforcement of integrity constraints in database applications based on code patterns - Zhang, Hongyu; Kuan Tan, Hee Beng; Zhang, Lu; Lin, Xi; Wang, Xiaoyin; Zhang, Chun; Mei, Hong (The Journal of systems and software, 2011)
► It is important to perform integrity constraint enforcement (ICE) for database applications. ► We define four patterns that characterize the structures of code implementing ICE. ► We propose a pattern-based method for automatic detection of ICE violations at the application level. ► Evaluation results on open-source PHP applications show that our method is effective. Integrity constraints (including key, referential and domain constraints) are unique features of database applications. Integrity constraints are crucial for ensuring accuracy and consistency of data in a database. It is important to perform integrity constraint enforcement (ICE) at the application level to reduce the risk of database corruption. We have conducted an empirical analysis of open-source PHP database applications and found that ICE does not receive enough attention in real-world programming practice. We propose an approach for automatic detection of ICE violations at the application level based on identification of code patterns. We define four patterns that characterize the structures of code implementing integrity constraint enforcement. Violations of these patterns indicate the missing of integrity constraint enforcement. Our work contributes to quality improvement of database applications. Our work also demonstrates that it is feasible to effectively identify bugs or problematic code by mining code patterns in a specific domain/application area.