11. A medium according to claim 8 , the program code further executable to: receive a second query comprising a second plurality of objects of the abstraction layer, and a second one or more properties associating one of the first plurality of objects with another one of the plurality of objects; determine that the second query does not include two or more instances of any of the second plurality of objects; determine a second one or more functional dependencies of the abstraction layer to be enforced based on the second query; edit a second dynamic representation of the logical database schema based on the second one or more functional dependencies; and generate a second database query based on the second query and the edited second dynamic representation.
12. A medium according to claim 11 , wherein the code executable to determine the second one or more functional dependencies comprises code executable to: identify zero or more functional dependencies within a reverse chain or a direct chain of the second query; and identify zero or more functional dependencies relating to initial objects of the second query, and wherein the code executable to edit the second dynamic representation comprises code executable to remove joins of the second dynamic representation associated with non-identified functional dependencies of the second query.