12. The computer program product of claim 10 wherein the computer readable program code is configured to: track changes to the data in the database in a modification list, wherein the changes have not been made to the cached data in the particular materialized view; rewrite the new query; and execute the rewritten query such that the relevant changes to the data in the database are included in the result of the new query.
10. A computer program product for providing the result of a task list query to a human task database, the computer program product comprising: a computer readable storage medium having computer readable program code embodied therewith, the computer readable program code configured to: cache data from the database in a plurality of materialized views, each materialized view including data resulting from a query based on a request for a list of tasks from the database; receive a new request for a list of tasks from the database, and create a new query after determining that the new request applies to the data in a particular one of the materialized views, wherein the particular materialized view includes a foreground table and a background table, each storing data from the query, the data stored in the foreground table being updated more recently than the data stored in the background table; after receiving the new request and before executing the new query, determine whether the particular materialized view includes data that requires updating from more recent data in the database; in response to determining that updating is required, update the particular materialized view with more recent data from the database; and execute the new query against the data in the foreground table of the particular materialized view instead of executing the new query against the data stored in tables of the database wherein the computer readable program code configured to determine whether the particular materialized view includes data that requires updating, includes computer readable program code configured to: determine whether data in the foreground table requires updating and whether data in the background table requires updating; and check a characteristic of the data in the particular materialized view and comparing the characteristic to a predetermined parameter, wherein in response to only the background table requiring updating, the executing of the new query against the data in the foreground table is begun immediately after determining that only the background table requires updating, wherein the update of the particular materialized view is a non-blocking update to the data in the background table, such that the non-blocking update does not delay the execution of the new query, and after the non-blocking update is complete, the computer readable program code is further configured to switch the tables such that the background table becomes the foreground table and the foreground table becomes the background table, wherein in response to both the foreground table and the background table requiring updating, the updating of the particular materialized view is a block update to the data in the background table, such that the executing of the query is delayed, wherein after the blocking update is complete, the computer readable program code is further configured to switch the tables such that the background table becomes the foreground table and the foreground table becomes the background table, wherein the executing of the new query on the data in the particular materialized view is begun after the update and switch are complete.