Database Design Recovery

The design of a software component, such as a database, is the trace of all the processes, products and reasonings that have led to the production of this artifact. Such a document is the very basis of system maintenance and evolution processes. Unfortunately, it does not exist in most situations. The paper describes how the design of a database or of a collection of files can be recovered through reverse engineering techniques. Recording the reverse engineering activities provides a history of this process. By normalizing and reversing this history, then by conforming it according to a reference design methodology, one can obtain a tentative design of the source database. The paper describes the baselines of the approach, such as a wide spectrum specification model, semantics-preserving transformational techniques, and a design process model. It describes a general procedure to build a possible DB design, then states the requirements for CASE support, and describes DB-MAIN, a prototype CASE tool which includes a history processor. Finally it illustrates the proposals through an example.

[1]  Robert Balzer,et al.  Transformational Implementation: An Example , 1981, IEEE Transactions on Software Engineering.

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

[3]  Jean-Luc Hainaut,et al.  Specification Preservation in Schema Transformations - Application to Semantics and Statistics , 1996, Data Knowl. Eng..

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

[5]  Toby J. Teorey Database modeling & design : the fundamental principles , 1994 .

[6]  Stefano Spaccapietra,et al.  View Integration: A Step Forward in Solving Structural Conflicts , 1994, IEEE Trans. Knowl. Data Eng..

[7]  Stephen Fickas,et al.  Automating the Transformational Development of Software , 1985, IEEE Transactions on Software Engineering.

[8]  John Mylopoulos,et al.  Representing and Using Nonfunctional Requirements: A Process-Oriented Approach , 1992, IEEE Trans. Software Eng..

[9]  Ted J. Biggerstaff,et al.  Design recovery for maintenance and reuse , 1989, Computer.

[10]  Wojtek Kozaczynski,et al.  An Extended Entity-Relationship (E²R) Database Specification and its Automatic Verification and Transformation into the Logical Relational Design , 1987, ER.

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

[12]  Colin Potts,et al.  Recording the reasons for design decisions , 1988, Proceedings. [1989] 11th International Conference on Software Engineering.

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

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

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

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

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

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

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

[20]  Colette Rolland,et al.  Modeling the Requirements Engineering Process , 1993 .

[21]  Jean-Luc Hainaut,et al.  Database Reverse Engineering: Models, Techniques, and Strategies , 1991, ER.