Database Reverse Engineering

Credits This text is based on results of three R&D projects, namely TRAMIS, addressing the base-lines of transformational support to database engineering [Hainaut 1992], PHENIX, dedicated to AI techniques for Database Reverse The current shape and contents of this text is strongly influenced by the work of the DB-MAIN team: Vincent Englebert (Meta tools, Voyager 2), Jean Henrard (reverse engineering, program understanding), Jean-Marc Hick (repository, GUI, DB evolution control), Didier Roland (tool assistants, design process modeling). Besides their theoretical contribution, the rich DB-MAIN CASE environment, of which they are the architects and craftmen, transforms the material of this book into practical methods and techniques that can be most helpful for practitioners. Quite naturally, they must be considered as co-authors of this text. Summary This chapter is an introduction to the problem of database reverse engineering (DBRE), considered as a specific, but general purpose, activity of information system engineering, and particularly system reengineering. To give it as large a scope as possible, we have developed general principles that can easily be specialized for any actual data management system, ranging from simple file managers (COBOL or RPG) to modern DB managers such as relational systems and OO DBMS. These principles are organized as a general DBRE methodology that is built in a systematic way. This methodology can be specialized according to specific DBMS models. It can be used to compare methodologies proposed in the literature and through reverse engineering CASE tools. First, the baselines of the realm are developed: what are the problems (1), how to describe and transform technical and semantic data structures (2), and where are the problem coming from (3). Then, the principles of a generic methodology are developed (4). It comprises two main processes, namely Data Structure Extraction (5), through which the complete technical structures are elicited, and Data Structure Conceptualization (6), that tries to interpret these data structures into conceptual terms. The methodology is specialized according to some popular data models (7) and the way in which current CASE technology can support the processes is discussed (8). A short, but realistic, case study of database reeingineering is presented (9). A state of the art and bibliographic notes (10) close the presentation.

[1]  Jacky Akoka,et al.  Reverse Engineering of Relational Database Physical Schema , 1996, ER.

[2]  Jean-Luc Hainaut,et al.  A Generic Entity-Relationship Model , 1989, ISCO.

[3]  J. Henrard,et al.  Evolution of Database Applications: the Db-main Approach Database Evolution: the Db-main Approach 1 , 2007 .

[4]  José Galindo,et al.  Handbook of Research on Fuzzy Information Processing in Databases , 2008, Handbook of Research on Fuzzy Information Processing in Databases.

[5]  Shamkant B. Navathe,et al.  Abstracting Relational and Hierarchical Data with a Semantic Data Model , 1987, International Conference on Conceptual Modeling.

[6]  Henderik Alex Proper,et al.  Database Schema Transformation and Optimization , 1995, OOER.

[7]  Otto Rauh,et al.  Standard Transformations for the Normalization of ER Schemata , 1995, CAiSE.

[8]  Harry M. Sneed Encapsulating legacy software for use in client/server systems , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[9]  Jean-Luc Hainaut,et al.  Database CASE Tool Architecture: Principles for Flexible Design Strategies , 1992, CAiSE.

[10]  Oreste Signore,et al.  Reconstruction of ER Schema from Database Applications: a Cognitive Approach , 1994, ER.

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

[12]  W. Alex Gray,et al.  An Approach to Eliciting the Semantics of Relational Databases , 1992, CAiSE.

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

[14]  Kathi Hogshead Davis,et al.  Converting A Relational Database Model into an Entity-Relationship Model , 1987, ER.

[15]  F. Springsteel,et al.  Reverse data engineering of E-R-designed relational schemas , 1990, Proceedings. PARBASE-90: International Conference on Databases, Parallel Architectures, and Their Applications.

[16]  F. S. Germano,et al.  An overall process based on fusion to reverse engineer legacy code , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[17]  Harry M. Sneed Object-oriented COBOL recycling , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

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

[19]  Shamkant B. Navathe,et al.  Schema analysis for database restructuring , 1977, TODS.

[20]  R. E. Kurt Stirewalt,et al.  The interleaving problem in program understanding , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[21]  William J. Premerlani,et al.  Observed idiosyncracies of relational database designs , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[22]  Miguel Felder,et al.  A Framework for Analyzing Mobile Transaction Models , 2001, J. Database Manag..

[23]  Gordon Kotik,et al.  Reengineering procedural into object-oriented systems , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[24]  Marco A. Casanova,et al.  Designing Entity-Relationship Schemes for Conventional Information Systems , 1983, ER.

[25]  Kathi Hogshead Davis,et al.  Software Reverse Engineering from a Currently Existing IMS Database to an Entity-Relationship Model , 1990, ER.

[26]  Kathi Hogshead Davis,et al.  A Methodology for Translating a Conventional File System into an Entity-Relationship Model , 1985, ER.

[27]  Vincent Englebert,et al.  Understanding Implementations of IS-A Relations , 1996, ER.

[28]  Y. Edmund Lien,et al.  On the Equivalence of Database Models , 1982, JACM.

[29]  Vincent Englebert,et al.  Structure elicitation in database reverse engineering , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[30]  Veda C. Storey,et al.  A Framework for the Design and Evaluation of Reverse Engineering Methods for Relational Databases , 1996, Data Knowl. Eng..

[31]  Katalin Kalman,et al.  Implementation and Critique of an Algorithm which Maps a Relational Database to a Conceptual Model , 1991, CAiSE.

[32]  Marco A. Casanova,et al.  Mapping Uninterpreted Schemes into Entity-Relationship Diagrams: Two Applications to Conceptual Schema Design , 1984, IBM J. Res. Dev..

[33]  Helen M. Edwards,et al.  Deriving a logical data model for a system using the RECAST method , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[34]  Oreste Signore,et al.  Using procedural patterns in abstracting relational schemata , 1994, Proceedings 1994 IEEE 3rd Workshop on Program Comprehension- WPC '94.

[35]  Gottfried Vossen,et al.  A Survey of Database Design Transformations Based on the Entity-Relationship Model , 1995, Data Knowl. Eng..

[36]  Helen M. Edwards,et al.  ROMEO: reverse engineering from OO source code to OMT design , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[37]  John S. Erickson Database Technologies: Concepts, Methodologies, Tools, and Applications (4 Volumes) , 2009, Database Technologies: Concepts, Methodologies, Tools, and Applications.

[38]  Vincent Englebert,et al.  Knowledge transfer in database reverse engineering: a supporting case study , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[39]  Vincent Englebert,et al.  Contribution to the Reverse Engineering of OO Applications Methodology and Case Study , 1997, DS-7.

[40]  Isamu Kobayashi,et al.  Losslessness and semantic correctness of database schema transformation: another look of schema equivalence , 1986, Inf. Syst..

[41]  Sushil Jajodia,et al.  The Problem of Equivalence for Entity-Relationship Diagrams , 1983, IEEE Transactions on Software Engineering.

[42]  Veda C. Storey,et al.  Reverse Engineering of Relational Databases: Extraction of an EER Model from a Relational Database , 1994, Data Knowl. Eng..

[43]  Brenda S. Baker,et al.  On finding duplication and near-duplication in large software systems , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[44]  D. R. Harris,et al.  Recovering abstract data types and object instances from a conventional procedural language , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[45]  Fernando Zacarías Flores,et al.  A Roadmap on Updates , 2009, Encyclopedia of Artificial Intelligence.

[46]  D. Bitton,et al.  A feasibility and performance study of dependency inference (database design) , 1989, [1989] Proceedings. Fifth International Conference on Data Engineering.

[47]  Ina Fourie Database Integrity: Challenges and Solutions , 2002 .

[48]  N. Mfourga,et al.  Extracting entity-relationship schemas from relational databases: a form-driven approach , 1997, Proceedings of the Fourth Working Conference on Reverse Engineering.

[49]  Domenico Saccà,et al.  Equivalence and Mapping of Database Schemes , 1984, VLDB.

[50]  Philippe Thiran,et al.  Interoperation of independent, heterogeneous and distributed databases. Methodology and CASE support: the InterDB approach , 1998, Proceedings. 3rd IFCIS International Conference on Cooperative Information Systems (Cat. No.98EX122).

[51]  Peter M. G. Apers,et al.  Reverse Engineering of Relational Database Applications , 1995, OOER.

[52]  Michael R. Blaha On reverse engineering of vendor databases , 1998, Proceedings Fifth Working Conference on Reverse Engineering (Cat. No.98TB100261).

[53]  Harald C. Gall,et al.  Finding objects in procedural programs: an alternative approach , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[54]  Toby J. Teorey,et al.  Database Modeling and Design - The Fundamental Principles, Second Edition , 1994 .

[55]  Paul Johannesson,et al.  A method for transforming relational schemas into conceptual schemas , 1989, Proceedings of 1994 IEEE 10th International Conference on Data Engineering.

[56]  Jean-Marc Petit,et al.  Using Queries to Improve Database Reverse Engineering , 1994, ER.

[57]  Joe Celko SQL for Smarties: Advanced SQL Programming , 1995 .

[58]  Johann A. Makowsky,et al.  Identifying Extended Entity-Relationship Object Structures in Relational Schemas , 1990, IEEE Trans. Software Eng..

[59]  James H. Cross,et al.  Reverse engineering and design recovery: a taxonomy , 1990, IEEE Software.

[60]  Olga De Troyer On data schema transformations , 1993 .

[61]  Martin Andersson,et al.  Extracting an Entity Relationship Schema From a Relational Database Through Reverse Engineering , 1994, Int. J. Cooperative Inf. Syst..

[62]  Ramez Elmasri,et al.  Fundamentals of Database Systems , 1989 .

[63]  Vincent Englebert,et al.  Database reverse engineering: From requirements to CARE tools , 2004, Automated Software Engineering.

[64]  William J. Premerlani,et al.  An approach for reverse engineering of relational databases , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[65]  Arnon Rosenthal,et al.  Tools and transformations—rigorous and otherwise—for practical database design , 1994, TODS.

[66]  Richard C. Waters,et al.  Challenges to the field of reverse engineering , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[67]  Mehmet M. Dalkilic,et al.  A Measurement Ontology Generalizable for Emerging Domain Applications on the Semantic Web , 2007, J. Database Manag..

[68]  Arnon Rosenthal,et al.  Theoretically Sound Transformations for Practical Database Design , 1987, ER.

[69]  William J. Premerlani,et al.  A catalog of object model transformations , 1996, Proceedings of WCRE '96: 4rd Working Conference on Reverse Engineering.

[70]  Michael R. Blaha,et al.  Object-Oriented Modeling and Design for Database Applications , 1997 .

[71]  Giuseppe Santucci,et al.  Structuring Primitives for a Dictionary of Entity Relationship Data Schemas , 1993, IEEE Trans. Software Eng..

[72]  Alfonso F. Cardenas,et al.  Data Base Management Systems , 1985 .

[73]  Jean-Luc Hainaut,et al.  Theoretical and Practical Tools for Data Base Design , 1981, VLDB.

[74]  Vincent Englebert,et al.  Requirements for information system reverse engineering support , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[75]  Jay F. Nunamaker,et al.  An Expert Database Design System Based on Analysis of Forms , 1988, IEEE Trans. Software Eng..

[76]  Veda C. Storey,et al.  Performance Evaluation of Reverse Engineering Relational Databases into Extended Entity-Relationship Models , 1993, ER.

[77]  Joseph Fong,et al.  Knowledge-Based Approach for Abstracting Hierarchical and Network Schema Semantics , 1993, ER.

[78]  Peretz Shoval,et al.  Database Reverse Engineering: From the Relational to the Binary Relationship model , 1993, Data Knowl. Eng..

[79]  A. Metaxides "Information Bearing" and "Non-Information Bearing" Sets , 1975, IFIP TC-2 Special Working Conference on Data Base Description.

[80]  Harry M. Sneed,et al.  Extracting object-oriented specification from procedurally oriented programs , 1995, Proceedings of 2nd Working Conference on Reverse Engineering.

[81]  Nihan Kesim,et al.  Implementing an object-oriented deductive database using temporal reasoning , 1996 .

[82]  Jean-Luc Hainaut,et al.  Contribution to a theory of database reverse engineering , 1993, [1993] Proceedings Working Conference on Reverse Engineering.

[83]  S.-M. Huang,et al.  Intelligent Cache Management for Mobile Data Warehouse Systems , 2005, J. Database Manag..