A method for updating an immediate materialized outerjoin view V which references a base relation T in a database, in response to an update to the base relation T, and wherein the relation T being updated is null-supplied by at least one outerjoin in the view definition of the view V; the method comprising: building a normalized join operator tree, wherein the tree is a compact representation of a query operator tree and is based upon a definition of the view V; performing a Preserved Side/Null Supplied Side, PSNS, annotation of the tree to create an annotated tree which provides a representation of the null-supplied properties of the base relation T, wherein performing the PSNS annotation comprises: computing one or more pairs of subsets ( ps i, ns i), each describing a null-supplied tuple for the base relation T, wherein a null-supplied tuple for a given relation is a tuple for which all attributes of the given relation are padded with null values by an outerjoin of the view, and wherein ps i indicates the subset of all relations of the view V which are preserved in the null-supplied tuple and ns i indicates the subset of all relations of the view V which have to be null-supplied; generating an update statement for the view V after an update of the base relation T from the annotated tree using the pairs of ( ps i, ns i) subsets, based on a transformation V ( nn) of the original view definition V, wherein all outerjoins which null-supply T are transformed into inner or left outerjoins such that T is no longer null-supplied, such that V ( nn) gives the set of all tuples in view V which are not null-supplying T, the update statement configured to determine: tuples V ( nn (Δ T)) of the view V that are not null-supplying T and which are to be inserted or deleted from V, and which are obtained by using Δ T in the definition of V ( nn) instead of T, wherein ΔT, the delta indicating changes to base table T, is computed by comparing before and after images of updated rows in base table T that were updated; and null-supplied tuples which are to be inserted into view V in response to a delete operation on T or which are to be deleted from view V in response to an insert operation on T; and executing the update statement to update the view V, wherein execution of the update statement updates the view V based on the determined not-null-supplied tuples V ( nn (Δ T)) and performs compensation for null-supplied tuples of the view by inserting or deleting the determined null-supplied tuples in V. building a normalized join operator tree, wherein the tree is a compact representation of a query operator tree and is based upon a definition of the view V; performing a Preserved Side/Null Supplied Side, PSNS, annotation of the tree to create an annotated tree which provides a representation of the null-supplied properties of the base relation T, wherein performing the PSNS annotation comprises: computing one or more pairs of subsets ( ps i, ns i), each describing a null-supplied tuple for the base relation T, wherein a null-supplied tuple for a given relation is a tuple for which all attributes of the given relation are padded with null values by an outerjoin of the view, and wherein ps i indicates the subset of all relations of the view V which are preserved in the null-supplied tuple and ns i indicates the subset of all relations of the view V which have to be null-supplied; generating an update statement for the view V after an update of the base relation T from the annotated tree using the pairs of ( ps i, ns i) subsets, based on a transformation V ( nn) of the original view definition V, wherein all outerjoins which null-supply T are transformed into inner or left outerjoins such that T is no longer null-supplied, such that V ( nn) gives the set of all tuples in view V which are not null-supplying T, the update statement configured to determine: tuples V ( nn (Δ T)) of the view V that are not null-supplying T and which are to be inserted or deleted from V, and which are obtained by using Δ T in the definition of V ( nn) instead of T, wherein ΔT, the delta indicating changes to base table T, is computed by comparing before and after images of updated rows in base table T that were updated; and null-supplied tuples which are to be inserted into view V in response to a delete operation on T or which are to be deleted from view V in response to an insert operation on T; and tuples V ( nn (Δ T)) of the view V that are not null-supplying T and which are to be inserted or deleted from V, and which are obtained by using Δ T in the definition of V ( nn) instead of T, wherein ΔT, the delta indicating changes to base table T, is computed by comparing before and after images of updated rows in base table T that were updated; and null-supplied tuples which are to be inserted into view V in response to a delete operation on T or which are to be deleted from view V in response to an insert operation on T; and executing the update statement to update the view V, wherein execution of the update statement updates the view V based on the determined not-null-supplied tuples V ( nn (Δ T)) and performs compensation for null-supplied tuples of the view by inserting or deleting the determined null-supplied tuples in V.