Data dependency elicitation in database reverse engineering

Database reverse engineering (DBRE) attempts to recover the technical and semantic specifications of the persistent data of information systems. Dependencies between records (data dependency) form a major class that need to be recovered. Since most of these dependencies are not supported by the DBMS, (foreign keys are the main exception, at least in modern relational DBMS), they have not been explicitly declared in the database schema. Careless reverse engineering will inevitably ignore them, leading to poor quality conceptual schema. Several information sources can contribute to the elicitation of these hidden dependencies. The program source code has long been considered to be the richest, but also the most complex, of them. The authors analyze and compare, through their respective quality and cost, different program understanding techniques that can be used to elicit data dependencies.

[1]  Mark Weiser,et al.  Program Slicing , 1981, IEEE Transactions on Software Engineering.

[2]  Scott Tilley,et al.  A Reverse-Engineering Environment Framework , 1998 .

[3]  Vincent Englebert,et al.  Program Understanding in Databases Reverse Engineering , 1998, DEXA.

[4]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

[5]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[6]  Thomas Ball,et al.  Slicing Programs with Arbitrary Control-flow , 1993, AADEBUG.

[7]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[8]  Shamkant B. Navathe,et al.  Conceptual Database Design: An Entity-Relationship Approach , 1991 .