1. A computer-implemented method for creating a data warehousing scheme having optimally selected components, the computer-implemented method comprising: inputting into an optimization engine a mathematical model of a goal for the data warehousing scheme; inputting into the optimization engine at least one constraint on the data warehousing scheme; performing a mathematical optimization algorithm using the optimization engine, wherein an output of the optimization engine is an optimized data warehousing scheme having optimally selected components; and storing the optimized data warehousing scheme.