[firebase-br] Controle Transacional

Marco Antonio Abreu mabreu.ti em gmail.com
Sex Ago 21 18:21:46 -03 2009


Com relação as alterações no BD eu não tenho nada a discutir, a transação
deve sempre ser utilizada.
Você deve estar falando de transações dirty-read? certo? Porque em
Read-commited não é necessário, visto que só vai ser lido o que já foi
commitado. É isso?
[]'s,
Marco


2009/8/21 Douglas Tosi <douglasht em gmail.com>

> 2009/8/21 Douglas Tosi <douglasht em gmail.com>:
> > 2009/8/21 Marco Antonio Abreu <mabreu.ti em gmail.com>:
> >> mas pelo que sei uma transação só é necessária para agrupar um conjunto
> de
> >> alterações no BD. Assim, se uma delas falhar podemos desfazer todas sem
> >> comprometer a integridade do BD. Existe algum motivo por que devemos
> >> utilizar uma transação para fazer selects?
> >
> > http://pt.wikipedia.org/wiki/ACID
>
> Ops, enviei antes de escrever:
>
> Imagine que você vai criar um relatório. Este relatório faz vários
> selects em várias tabelas diferentes. Mas ao mesmo tempo em o banco
> está processando este relatório, existem outros usuários modificando a
> base de dados. Se não houvesse transação na leitura (a chamada leitura
> suja), cada select veria um conjunto de dados diferente e o resultado
> seria um relatório inconsistente.
> Logo, você inicia uma transação no início do relatório e faz todos os
> selects dentro do contexto desta transação.
>
> Exemplo simples. Você tem estoque tanto no depósito nos fundos da loja
> e também nas prateleiras.
> Em um determinado momento, você quer saber quantas caixas do produto A
> estão em cada local.
> Vamos supor que existem 7 caixas no depósito e 2 na prateleira. É um total
> de 9.
> Agora imagine o seu relatório rodando sem transação e junto com outro
> usuário fazendo alterações:
>
> Relatório: Quantas caixas do produto A estão no depósito: 7
> Outro usuário- Outro usuário move 4 caixas do depósito para a prateleira
> Relatório continua: Quantas caixas do produto B estão na prateleira: 6
> Relatório termina: Total de caixas 13
>
> É um cenário simples (e talvez bobo), mas o princípio é o mesmo para
> os casos reais e mais complexos.
>
> O fato de vários bancos de dados e componentes client esconder a
> complexidade de lidar com transações não quer dizer que ela não existe
> ou que não é necessária.
>
> hth,
> --
> Douglas Tosi
> www.sinatica.com
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Marco Antonio Abreu
mabreu.ti em gmail.com
System Analist/Developer



Mais detalhes sobre a lista de discussão lista