In a functional approach we copy each input parameter entirely and create the output parameters, which we can then assign into the target table by adding a row, deleting a row or changing a row. The annotation format. If each variable represents a place with table we get something like A+=T (add all the rows of T to A) A-=T (delete all the rows in T from A) F(A,B,C,D) -> calculate the outcome of function F by copying A,B,C,D to new variables. The outcome of F is a tuple which reflects the output places; E.g F(A,B,C,D) => (+A,-B,=C) This summarizes the full strategy quite well. The only thing we need are commands that load in the specific tables. So we need the possibility to copy a full table and its content. This means that we need to copy the files refered to in the table, which again means that we need a meta-information table that describes the types of the different columns.