1. A method of establishing a materialization schedule using a dynamic programming technique configured to be executed on a processor of a computing device in a relational data base management system (RDBMS), the method comprising: receiving, by the processor, a query text; transforming, by the processor, the query text into a relational operator (Rel) directed acyclic graph (DAG); performing, by the processor, a bottom-up traversal of the Rel DAG to create a parallel Rel DAG; computing, by the processor, a column specific materialization schedule of the parallel Rel DAG; transforming, by the processor, the parallel Rel DAG into a DAG of function calls and data re-shuffling actions to create a parallel statement forest, wherein: each function call takes data of columns exported from child Rel nodes of the function call as an input, each function call has, as an output, expressions exported by a top Rel of the function call, and the output of each function call is an input of the data re-shuffling action of a parent exchange node of the function call, wherein Row IDs are exported by a Rel; generating, by the processor, a coordinator statement forest that invokes the function calls and the data re-shuffling actions according to the parallel statement forest; transforming, by the processor, the parallel statement forest and the coordinator statement forest into a forest of binary association table (BAT) operator lists to compute an optimal materialization schedule for each column of a table; and materializing the columns according to the optimal materialization schedule.