A system for collaborative processing, comprising a controlling module with access
to at least one relational database capable of performing a first set of functions
on the data in the database and at least one external analytical engine, the external
analytical engine being external to the relational database and being capable of
a second set of functions on the data in the database. The controlling module is
capable of iteratively processing a multi-step calculation including generating
SQL statements to the relational database, passing preliminary results to an external
analytical engine and saving data back into the relational database for further
processing until the multi-step calculation is performed.