[firebase-br] RES: Controle Transacional

Felix felix2005 em oi.com.br
Sex Ago 21 18:23:42 -03 2009


Vivendo e aprendendo... :-)


Fco. Felix
Desenvolvimento de Sistemas
www.soltecnologia.com.br


-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Douglas Tosi
Enviada em: sexta-feira, 21 de agosto de 2009 17:17
Para: FireBase
Assunto: Re: [firebase-br] Controle Transacional

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





Mais detalhes sobre a lista de discussão lista