The main argument of the paper is that database understanding (or reverse engineering) requires sophisticated program understanding techniques, and conversely. Database reverse engineering (DBRE) can be carried out following a generic methodology, one of
the phases of which consists in eliciting all the implicit and untranslated data structures and constraints. Evidences of
these hidden constructs can be found by analysing how the programs use and update the data. Hence the need for program analysis
techniques such as searching for clichés, dependency analysis, program slicing and synthetic views. The paper explains how these techniques contribute to DBRE, and
describes DB-MAIN, a programmable and extensible CASE environment that supports DBRE through program understanding techniques.