A computer-implemented method for updating a database using a multi-dimensional data model in which data corresponding to the database are organized in multi-dimensional data blocks, each data block having summary information associated therewith corresponding to a current state of evolution of the associated data block, the method comprising: maintaining dependency information in the data model which identifies data dependencies within and among the data blocks; maintaining a list of change entries which identifies changes made to particular ones of the data blocks and times at which the changes were made; receiving a request to apply a change entry to a data block, wherein receiving a request includes receiving a user input value into a cell of a data block that is designated to contain a derived value and monitoring any constraint violations resulting from the user input value until the constraint violations have been resolved, wherein a derived value is a value calculated from a plurality of dependent values; applying the change entry to the data block, including generating a dependency list of data blocks whose data depends from the updated data block; and processing the data blocks in the dependency list in accordance with a dependency update algorithm to update the data blocks in the dependency list; wherein processing includes: determining whether the cell with the user input value has any dependent values in one or more other blocks, and when the cell with the user input value has a dependent value in another block, creating a compensating derived change list entry that adjusts the dependent values in the one or more other blocks to resolve a constraint violation; and determining whether all values depending from the cell with the user input value are in the same block, and when all values depending from the cell with the user input value are determined to be in the same block, reserving additional disk space for cells that are derived but can be overriden by user input values utilizing a bitmap indicating said values that have been user-specified to ensure that the user input value is not overridden by a derived value. maintaining dependency information in the data model which identifies data dependencies within and among the data blocks; maintaining a list of change entries which identifies changes made to particular ones of the data blocks and times at which the changes were made; receiving a request to apply a change entry to a data block, wherein receiving a request includes receiving a user input value into a cell of a data block that is designated to contain a derived value and monitoring any constraint violations resulting from the user input value until the constraint violations have been resolved, wherein a derived value is a value calculated from a plurality of dependent values; applying the change entry to the data block, including generating a dependency list of data blocks whose data depends from the updated data block; and processing the data blocks in the dependency list in accordance with a dependency update algorithm to update the data blocks in the dependency list; wherein processing includes: determining whether the cell with the user input value has any dependent values in one or more other blocks, and when the cell with the user input value has a dependent value in another block, creating a compensating derived change list entry that adjusts the dependent values in the one or more other blocks to resolve a constraint violation; and determining whether all values depending from the cell with the user input value are in the same block, and when all values depending from the cell with the user input value are determined to be in the same block, reserving additional disk space for cells that are derived but can be overriden by user input values utilizing a bitmap indicating said values that have been user-specified to ensure that the user input value is not overridden by a derived value. determining whether the cell with the user input value has any dependent values in one or more other blocks, and when the cell with the user input value has a dependent value in another block, creating a compensating derived change list entry that adjusts the dependent values in the one or more other blocks to resolve a constraint violation; and determining whether all values depending from the cell with the user input value are in the same block, and when all values depending from the cell with the user input value are determined to be in the same block, reserving additional disk space for cells that are derived but can be overriden by user input values utilizing a bitmap indicating said values that have been user-specified to ensure that the user input value is not overridden by a derived value.