1. A method to query a database of physical tables based on a logical database schema including logical tables mapped to the physical tables and on an abstraction layer comprising a plurality of objects mapped to the logical tables and one or more properties associating one or more of the plurality of objects to one or more others of the plurality of objects, the method comprising: receiving a query comprising a first plurality of objects of the abstraction layer, and a first one or more properties associating one of the first plurality of objects with another one of the plurality of objects, the query comprising two or more instances of a first one of the first plurality of objects; modifying a dynamic representation of the logical database schema to include an alias of the first one of the plurality of objects; modifying the query to include the alias; identifying one or more functional dependencies of the abstraction layer within a reverse chain or a direct chain of the modified query, or relating to initial objects of the modified query; editing the modified dynamic representation by removing joins of the modified dynamic representation of logical database schema associated with non-identified functional dependencies of the modified query; and generating a database query based on the modified query and the edited dynamic representation.