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; determining one or more functional dependencies of the abstraction layer to be enforced based on the modified query; editing the modified dynamic representation of the logical database schema based on the determined one or more functional dependencies; and generating a database query based on the modified query and the edited dynamic representation.