This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Exploring into Programs for the Recovery of Data Dependencies Designed
July/August 2002 (vol. 14 no. 4)
pp. 825-835

Data dependencies play an important role in the design of a database. Many legacy database applications have been developed on old generation database management systems and conventional file systems. As a result, most of the data dependencies in legacy databases are not enforced in the database management systems. As such, they are not explicitly defined in database schema and are enforced in the transactions, which update the databases. It is very difficult and time consuming to find out the designed data dependencies manually during the maintenance and reengineering of database applications. In software engineering, program analysis has long been developed and proven as a useful aid in many areas. With the use of program analysis, this paper proposes a novel approach for the recovery of common data dependencies, i.e., functional dependencies, key constraints, inclusion dependencies, referential constraints, and sum dependencies, designed in a database from the behavior of transactions, which update the database. The approach is based on detecting program path patterns for implementing most commonly used methods to enforce these data dependencies.

[1] R. Agrawal, T. Imielinski, and A. Swami, Database Mining: A Performance Perspective IEEE Trans. Knowledge and Data Eng., vol. 5, no. 6, Dec. 1993.
[2] M. Andersson, “Extracting an Entity Relationship Schema from a Relational Database through Reverse Engineering,” Proc. 13th Int'l Conf. ERA, pp. 403-419, 1994.
[3] T.M. Anwar, H.W. Beck, and S.B. Navathe, "Knowledge Mining by Imprecise Querying: A Classification-Based Approach," Proc. Eighth Int'l Conf. Data Eng., pp. 622-630, Feb. 1992.
[4] T.J. Biggerstaff, B.G. Mitbander, and D.E. Webster, "Program Understanding and the Concept Assignment Problem," Comm. ACM, May 1994, pp. 72-82.
[5] J.A. Blakeley, N. Coburn, and P.-A. Larson, “Updating Derived Relations: Detecting Irrelevant and Autonomously Computable Updates,” ACM Trans. Database Systems, vol. 14, no. 3, pp. 369-400, Sept. 1989.
[6] M.A. Casanova, R. Fagin, and C.H. Papadimitriou, “Inclusion Dependencies and Their Interaction with Functional Dependencies,” Proc. ACM Symp. Principles of Database Systems, pp. 171-176, 1982.
[7] J.-L. Hainaut, V. Englebert, J. Henrard, J.-M. Hick, and D. Roland, “Requirements for Information System Reverse Engineering Support,” Proc. IEEE Working Conf. Reverse Eng., pp. 136-145, 1995.
[8] M. Kantola, H. Mannila, K. Raiha, and H. Siirtola, “Discovery Functional and Inclusion Dependencies in Relational Databases,” Int'l J. Intelligent Systems, vol. 7, pp. 591-607, 1992.
[9] W. Kozaczynski, J. Ning, and A. Engberts, "Program Concept Recognition and Transformation," IEEE Trans. Software Eng., vol. 18, no. 12, pp. 1,065-1,075, Dec. 1992.
[10] D. Maier, The Theory of Relational Databases. Computer Science Press, 1982.
[11] Program Flow Analysis: Theory and Applications, S.S. Muchnick and N.D. Jones, eds. Prentice-Hall, 1981.
[12] L.V. Orman, “Differential Relational Calculus for Integrity Maintenance,” IEEE Trans. Knowledge and Data Eng., vol. 10, no. 2, pp. 328-341, Mar./Apr. 1998.
[13] J.-M. Petit, J. Kouloumdjian, J.-F. Boulicaut, and F. Toumani, “Using Queries to Improve Database Reverse Engineering,” Proc. 13th Int'l Conf. ERA, pp. 369-386, 1994.
[14] Knowledge Discovery in Databases, G. Piatetsky-Shapiro and W.J. Frawley, eds. Cambridge, Mass.: AAAI/MIT, 1991.
[15] T. Sheard and D. Stemple, “Automatic Verification of Database Transaction Safety,” ACM Trans. Database Systems, vol. 14, no. 3, pp. 322-368, Sept. 1989.
[16] O. Signore, M. Loffredo, M. Gregori, and M. Cima, “Reconstruction of ER Schema from Database Applications: A Cognitive Approach,” Proc. 13th Int'l Conf. ERA, pp. 387-402, 1994.
[17] S. Tsur,“Data dredging,” IEEE Data Eng. Bull., 1990.
[18] R. Wilhelm and D. Maurer, Compiler Design. Addison Wesley, 1995.
[19] M. Weiser, “Program Slicing,” IEEE Trans, Software Eng., vol. 10, no. 4, pp. 352-357, July 1984.

Index Terms:
Database reverse engineering, design of data dependencies, design recovery, legacy database, program analysis.
Citation:
Hee Beng Kuan Tan, Tok Wang Ling, Cheng Hian Goh, "Exploring into Programs for the Recovery of Data Dependencies Designed," IEEE Transactions on Knowledge and Data Engineering, vol. 14, no. 4, pp. 825-835, July-Aug. 2002, doi:10.1109/TKDE.2002.1019216
Usage of this product signifies your acceptance of the Terms of Use.