A method of generating a datamart is described. The datamart includes tables having rows and columns. The method comprises accessing a description of a schema. The schema defines the relationships between the tables and columns. The description further defines how data is to be manipulated and used to populate the tables in the datamart. That is, the description defines the semantic meaning of the data. The description is further used to create a set of commands to create the tables. The commands are executed causing the creation of the tables. Importantly, when the semantic meaning is associated with the column and rows, programs for manipulating and propagating data into those columns and rows are automatically defined. Previously, consultants would have to hand code the creation, manipulation, and population programs for a datamart. Thus, the amount of work required to create and populate the datamart is significantly reduced.