Considere que, em um banco de dados preparado para persistir dados de apoio à realização de estudos na área agropecuária, existem duas tabelas:
IMÓVEL (cod-sncr, denominacao, cod-mun, area-total)
MUNICÍPIO (cod-mun, uf, qtd-imoveis)
A chave primária de um imóvel é o seu código no Sistema Nacional de Cadastro Rural (SNCR), e a de um município é o seu código, segundo o IBGE. A coluna IMÓVEL.cod-mun é chave estrangeira e referencia MUNICÍPIO.cod-mun.
Uma aplicação, ou sistema, realiza regularmente a seguinte transação nesse banco de dados:
Início da transação
Inserção dos dados de um novo imóvel na tabela IMÓVEL
Atualização de qtd-imoveis na tabela MUNICÍPIO
Commit
Nesse exemplo, a propriedade de atomicidade de uma transação garantirá que
-
A a integridade referencial entre as duas tabelas sempre será mantida.
-
B apenas usuários autorizados poderão consultar os novos dados inseridos.
-
C nenhuma das duas tabelas será modificada em caso de problema durante a sua execução.
-
D não existirão dois municípios com o mesmo código.
-
E não haverá deadlock entre duas transações concorrentes.