Descripción del control de simultaneidad de varias versiones (MVCC) y de las instantáneas
La mayoría de los sistemas de administración de bases de datos (DBMS) usan bloqueos para aplicar el control de simultaneidad, pero PostgreSQL complementa el bloqueo con un enfoque alternativo. PostgreSQL usa un sistema denominado Control de simultaneidad de varias versiones (MVCC) que permite que existan varias versiones de la misma fila para mejorar la simultaneidad. Con este sistema, cada consulta ve una instantánea anterior de los datos que son coherentes transaccionalmente. MVCC garantiza que una transacción que lee datos no bloquea una transacción que escribe datos y viceversa.
Por ejemplo, Connection A está realizando una consulta que examina todas las filas de una tabla. Al mismo tiempo, Connection B está realizando una consulta que actualiza algunas de las filas. MVCC permite que ambas consultas se ejecuten al mismo tiempo mediante la creación de otra versión de las filas afectadas. De este modo, la Conexión B puede realizar las actualizaciones sin afectar a la Conexión A. Este proceso se logra porque cada versión de fila tiene un valor xmin para la transacción visible desde y un valor xmax para la transacción visible hasta. Con MVCC, la conexión A omitirá las modificaciones que se produjeron después de iniciar la consulta Connection A.

Transacciones
Las transacciones de un DBMS son una unidad atómica de trabajo, por lo que la transacción o se confirma en su totalidad o no se confirma. Las transacciones también se usan con fines de simultaneidad. Con los niveles de aislamiento, se puede definir el efecto que una transacción puede tener en otras transacciones simultáneas.
Inicias una transacción con los comandos BEGIN TRANSACTION o START TRANSACTION. Complete una transacción con COMMIT, para guardar todos los cambios realizados en la transacción, o ROLLBACK, para deshacer los cambios realizados por la transacción. Por ejemplo:
BEGIN TRANSACTION;
UPDATE production.workorder
SET stockedqty=7
WHERE workorderid=1;
COMMIT;