1. A computer implemented method for synthetic data generation, comprising: estimating a joint probability distribution of the data, wherein intermediate results are generated with a desired cardinality specified in an annotated query plan, wherein a selectivity of each predicate in the annotated query plan satisfies the selectivity as determined from the desired cardinalities in the annotated query plan, and wherein the joint probability distribution has a maximum entropy joint probability distribution satisfying i) the desired cardinalities of the intermediate results and ii) the selectivity of each predicate, by: receiving annotated query subplans for a multiple table query workload comprising a desired cardinality for a plurality of nodes (v) in the annotated query subplans; determining by a computing processor the maximum entropy joint probability distribution for each attribute (x) for each node (v), wherein the desired cardinality, and selectivities for each node v determined from the desired cardinality, are satisfied; and generating by the computing processor the data for a plurality of tables given the joint probability distribution by sampling the maximum entropy joint probability distribution for a domain of attributes (x) of the plurality of tables, wherein each of the plurality of tables satisfies the desired cardinality specified in the annotated query plan.