Informazioni sul controllo della concorrenza multiversione (MVCC) e sugli snapshot
La maggior parte dei sistemi di gestione dei database (DBMS) usa blocchi per applicare il controllo della concorrenza, ma PostgreSQL integra il blocco con un approccio alternativo. PostgreSQL usa un sistema denominato Controllo concorrenza multi-versione (MVCC) che consente a più versioni della stessa riga di esistere per migliorare la concorrenza. Con questo sistema, ogni query visualizza uno snapshot precedente dei dati che è coerente dal punto di vista transazionale. MVCC garantisce che una transazione che legge i dati non blocchi una transazione che sta scrivendo dati e viceversa.
Ad esempio, la connessione A esegue una query che analizza tutte le righe di una tabella. Allo stesso tempo, la connessione B esegue una query che aggiorna alcune righe. MVCC consente l'esecuzione di entrambe le query contemporaneamente creando un'altra versione delle righe interessate. In questo modo, la connessione B può eseguire gli aggiornamenti senza influire sulla connessione A. Questo processo è possibile perché ogni versione di riga ha un valore xmin per la transazione visible since e un valore xmax per la transazione visible until. Con MVCC, connection A ignorerà le modifiche apportate dopo l'avvio della query Connection A.

Transazioni
Le transazioni in un sistema di gestione di database sono un'unità atomica di lavoro, quindi la transazione esegue il commit nella sua interezza o non lo esegue affatto. Le transazioni vengono usate anche a scopo di concorrenza. Con i livelli di isolamento, è possibile definire l'effetto che una transazione può avere su altre transazioni simultanee.
Si avvia una transazione con BEGIN TRANSACTION o START TRANSACTION. Si completa una transazione con COMMIT per salvare tutte le modifiche apportate nella transazione o ROLLBACK per annullare eventuali modifiche apportate dalla transazione. Per esempio:
BEGIN TRANSACTION;
UPDATE production.workorder
SET stockedqty=7
WHERE workorderid=1;
COMMIT;