1. A process control system utilizing a database system to monitor progress of a project and enforce a workflow of activities within the project, comprising: a server that has access to a database system and executes program code for the process control system; tables in the database system that define a hierarchical representation of a project being controlled by the system, including a status of the project and a workflow of activities to be performed during the project, the database tables including: a field representing a process record associated with the project, the process record comprising a task set and having a task set field; a representation of the task set having a task set state field and defining a plurality of tasks to be performed for the associated process record; a representation of each of the plurality tasks of the task set, each of the plurality of tasks having a current task state field, a transition state field defining a next state to which a transition from the current state will take place upon completion of the task, and a definition of a set of activities which must be performed in the current task state, the activities in the set being performed substantially in parallel or in any order, wherein (i) the task does not define an order of performance for the activities in the set; (ii) the representation of the task specifies that the activity belongs to the set when the activity became a pending activity during the current state; and (iii) the transition from the current state will take place only when all of the activities in the set have been performed in the current state; a representation of each of the activities having a state field; and a state history table maintaining a history of the states for the process and including a field indicating a time that the process entered the current state; and a portion of the program code which is executed in conjunction with performance of an activity belonging to the task, wherein the portion of program code (i) queries the database tables to determine the state of each of the activities belonging to a task; (ii) queries the state history table to confirm that the activities were performed after the process entered the current state; and (iii) causes the transition to the next state to occur when performance of the activity completes performance of all of the activities in the set during the current task state, whereby the program code uses the hierarchical representation of the tables in the database system to enforce the workflow of the project.