Como o dump está em uma transação, você obtém uma visão consistente de todas as tabelas no banco de dados. Isso provavelmente é melhor explicado por um contra-exemplo. Digamos que você despeje um banco de dados com duas tabelas,
Orders
e OrderLines
- Você inicia o dump sem uma única transação.
- Outro processo insere uma linha em
Orders
tabela. - Outro processo insere uma linha em
OrderLines
tabela. - O dump processa as
OrderLines
tabela. - Outro processo exclui os
Orders
eOrderLines
registros. - O dump processa os
Orders
tabela.
Neste exemplo, seu dump teria as linhas para
OrderLines
, mas não Orders
. Os dados estariam em um estado inconsistente e falhariam na restauração se houvesse uma chave estrangeira entre Orders
e OrderLines
. Se você tivesse feito isso em uma única transação, o dump não teria nem o pedido nem as linhas (mas seria consistente), pois ambos foram inseridos e excluídos após o início da transação.