A version control system is described for use in connection with a database
management system to facilitate versioning of a database table, the system
including a database table and a version control module. The database
table comprises a plurality of records, each record including at least one
data field for storing user data and at least some of the records
including a version control field including version control information.
The version control module is configured to, in response to a user query
related to the database table and related to a version, generate an
augmented query for processing by the database management system, the
augmented query relating to the user query and the version control
information. The version control module facilitates association of
versions of the database with respective ones of a hierarchy of states and
allows conflicts therebetween to be resolved, data to be posted from child
states to respective parent states in the hierarchy, and referential
constraints between tables to be preserved.