Questão retirada do link: http://pgdocptbr.sourceforge.net/pg80/mvcc.html
Diferentemente dos sistemas gerenciadores de banco de dados tradicionais, que usam bloqueios para controlar a simultaneidade, o PostgreSQL mantém a consistência dos dados utilizando o modelo multiversão (Multiversion Concurrency Control, MVCC). Isto significa que, ao consultar o banco de dados cada transação enxerga um instantâneo (snapshot) dos dados (uma versão do banco de dados) como estes eram há um tempo atrás, sem levar em consideração o estado corrente dos dados subjacentes. Este modelo protege a transação contra enxergar dados inconsistentes, o que poderia ser causado por atualizações feitas por transações simultâneas nas mesmas linhas de dados, fornecendo um isolamento da transação para cada sessão do banco de dados.
A principal vantagem de utilizar o modelo de controle de simultaneidade MVCC em vez de bloqueios é que, no MVCC os bloqueios obtidos para consultar dados (leitura) não conflitam com os bloqueios obtidos para escrever dados e, portanto, a leitura nunca bloqueia a escrita, e a escrita nunca bloqueia a leitura.
a) Certa! No MVCC, uma leitura não bloqueia uma escrita e uma escrita não bloqueia uma leitura.
b) Também está correta, mesma justificativa da anterior.
c) No MVCC, como o próprio nome já diz, são armazenadas múltiplas versões dos dados. Essas versões são os diferentes estados do dado ao longo do tempo e são chamadas de snapshots.
d) O MVCC é um mecanismo de controle de concorrência. Assim como os demais mecanismos de concorrência, ele visa impedir que uma transação enxergue dados inconsistentes, para que não produza resultados incorretos. Assim, a letra D também está certa.
Uma ressalva é que o MVCC pode ser configurado para assumir outros níveis de isolamento que não o SSI (serializável), então, em tese, poderia haver alguma leitura de dados inconsistentes – mas isso é a exceção, não a regra!
e) Essa é a nossa resposta. O MVCC cria uma nova versão dos dados para cada transação que o está modificando. Assim, não se considera um “estado concorrente”, mas sim são armazenadas múltiplas versões (snapshots) para o dado.