Patent ID: 8880549

Claim:
A method for managing a database utilized by a plurality of software applications, the method comprising: storing database records utilized by the plurality of software applications in the database, the database records being stored in a computer readable storage medium; performing, by a microprocessor, a database record change to least one of the database records by a development version of an application; and branching the database records, by the microprocessor, such that the database record change is visible to the development version of the application and is not visible to a production version of the application accessing the database, wherein the development version of the application is a different version of the production version of the application; wherein branching the database includes recording version identifiers in the database records, the version identifiers delineate database records modified by the development version of the application before and after branching the database records, and delineate database records modified by the development version of the application from database records modified by the production version of the application; storing a branch record set identifying a most current version identifier for each software application; storing a parent record set identifying a previous state of the database records, if any, for each version identifier; receiving a database query from the development version of the application; searching for one or more matching database records in the database satisfying the database query and visible to the development version of the application; returning the matching database records to the development version of the application; wherein searching for one or more matching database records in the database satisfying the database query further comprises: traversing the parent record set starting at the current version identifier for the development version of the application such that all the version identifiers corresponding to the development version of the application are found; and determining if the matching database records are visible to the development version of the application by comparing the version identifier of the matching database records with the version identifiers of the traversed parent record set.