Several processes have been advanced in the literature for reverse engineering of relational databases. The inputs to these processes are relational tables and available contextual information. The output is a model of the underlying logical intent, apart from the implementation artifacts. Most of the existing processes for database reverse engineering are inadequate; they assume too high a quality of input information. The authors of these processes are skilled database designers and they are overly optimistic about the state-of-the-art, as practiced. This paper catalogs odd aspects of relational database designs that we have encountered over the past several years. Many of these database designs are from commercial software products.
Michael R. Blaha, William J. Premerlani