1. In a computing environment, a method comprising: providing a language to specify a complex constraint that is defined by a grammar expressed as: constraint:=[SOFT] ASSERT [agg] function (≦I=I≧) constant I FOR var IN generator [WHERE predicate] constraint where lowercase tokens of the grammar are non-terminals, uppercase tokens of the grammar are literals, tokens of the grammar that are between brackets are optional, ‘I’ represents choice, the complex constrain is indicated by lowercase token “constraint:=”, the optional uppercase token “SOFT” literal indicates a soft assertion of the lowercase token “function” with respect to the lowercase token “constant”, the uppercase token “ASSERT” literal represents a start of the complex constraint, the optional lowercase token “agg” non-terminal represents an aggregation, the lowercase token “function” non-terminal represents at least one of a set of functions over various data types, the lowercase token “constant” non-terminal represents a constant term, the uppercase token “FOR” literal indicates applying the lowercase token “constraint” non-terminal over each element of a collection indicated by the lowercase token “generator” non-terminal, the lowercase token “var” non-terminal represents a variable, the uppercase token “IN” literal precedes an identifier that indicates the collection, the optional uppercase token “WHERE” literal indicates a filter that chooses a subset of the lowercase token “generator” non-terminal, the optional lowercase token “predicate” non-terminal that represents a predicate, and the lowercase token “constraint” non-terminal represents a nested complex constraint; and processing the complex constraint, by a computing device, to determine at least one configuration that meets the constraint for use in physical design tuning of a database.