Patent ID: 7707219

Claim:
An automated method of managing a database, comprising: providing by a calling program one or more data values for inclusion in an identified target record; invoking a single call by the calling program to a database management system (DBMS) to transform the database from a first unknown state to a second state that includes the target record which is storing at least one of the one or more data values, wherein the invoking the single call is performed without the calling program first determining whether the target record exists in the database; wherein the single call by the calling program specifies to the DBMS a respective indicator value for one or more of the data values, each respective indicator value indicating whether or not an associated data value in the single call is used to update the target record by the database management system; determining by the DBMS, in response to the invoking the single call, whether the target record exists within the database; in response to the target record existing in the database, updating the target record by the DBMS to store the at least one of the one or more data values, and in response to the target record un-existing in the database creating the target record in the database to store the at least one of the one or more data values, updating the target record with the associated data value for each indicator value indicating update, and un-updating the target record with the associated data value for each indicator value indicating no update; wherein the database includes multiple pages, and wherein the invoking step includes: activating a write lock on one of the pages containing an insertion point for the target record; determining whether the page stores the target record; transforming the database to the second state; committing changes made to the database; and deactivating the write lock.