Discovery of constraints from data for information system reverse engineering

The extraction of functional dependencies is a fundamental activity in the database design recovery process which is part of an overall information systems reverse engineering effort. Existing algorithms for this task are computationally expensive and appear to be infeasible if applied to large legacy database instances, e.g., their performance deteriorated when number of attributes or/and instances is large and they cannot tolerate erroneous data that may occur in deployed commercial systems. The contributions of this paper are as follows. We propose two algorithms for discovering functional dependencies from data. The collective-FD algorithm, which is based on a top-down approach, eliminates redundant specialised functional dependencies to be proposed. The attribute-list algorithm, which is based on the bottom-up approach, enables more accurate functional dependency hypotheses to be discovered. In anticipating noisy data, we propose an effective method to discover possible data errors and compute partial functional dependencies. The result is an error-tolerant functional dependency discovery approach that is more applicable to real world databases for design recovery.

[1]  John V. Harrison,et al.  Legacy 4GL application migration via knowledge-based software engineering technology: a case study , 1997, Proceedings of Australian Software Engineering Conference ASWEC 97.

[2]  Heikki Mannila,et al.  Dependency Inference , 1987, VLDB.

[3]  Jeffrey C. Schlimmer Using learned dependencies to automatically construct sufficient and sensible editing views , 1993 .

[4]  Peter A. Flach,et al.  Bottom-up induction of functional dependencies from relations , 1993 .

[5]  Martin Andersson Extracting an Entity Relationship Schema from a Relational Database through Reverse Engineering , 1994, ER.

[6]  Peter A. Flach Inductive characterisation of database relations , 1991 .

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

[8]  David Maier,et al.  The Theory of Relational Databases , 1983 .

[9]  Siegfried Bell,et al.  Discovery of data dependencies in relational databases , 1999 .

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

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

[12]  Bernhard Thalheim,et al.  Dependencies in relational databases , 1991, Teubner-Texte zur Mathematik.

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

[14]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[15]  Jürgen M. Janas On Functional Independencies , 1988, FSTTCS.

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

[17]  Heikki Mannila,et al.  Discovering functional and inclusion dependencies in relational databases , 1992, Int. J. Intell. Syst..

[18]  MannilaHeikki,et al.  Algorithms for inferring functional dependencies from relations , 1994 .

[19]  Valeria De Antonellis,et al.  Relational Database Theory , 1993 .

[20]  Heikki Mannila,et al.  On the Complexity of Inferring Functional Dependencies , 1992, Discret. Appl. Math..

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

[22]  Z. Pawlak Rough Sets: Theoretical Aspects of Reasoning about Data , 1991 .

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

[24]  William Frawley,et al.  Knowledge Discovery in Databases , 1991 .

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