1. A method of interrogating a database comprising a plurality of tables, said method comprising the steps of: defining a set of anticipated database queries directed to one or more of said tables; generating a base query directed only to tables common to all of said anticipated database queries; for each anticipated database query, generating a subquery module directed to tables not covered by said base query and required by a respective anticipated database query; receiving a request for information from said database; selecting a subquery module directed to tables not covered by said base query and required by a respective anticipated database query; adding said selected subquery module to said base module to form a refined query; and submitting said refined query to said database.