[firebase-br] RES: DELETE CASCADE

W O sistemas2000profesional em gmail.com
Qui Nov 15 22:54:57 -03 2012


Los triggers son una importantísima herramienta para validar los datos, me
permiten evitar que entre basura en la Base de Datos, sin importar las
burradas que puedan llegar a cometer mis programadores, ni el lenguaje de
programación que utilicen. Puedo revisar todos los triggers de una tabla de
una sola vez y así detectar rapidamente si algo no está bien.

Justamente una de las grandes ventajas que tiene usar SQL en lugar de otros
tipos de tablas como las DBF es que las validaciones son mucho más seguras.

Saludos.

Walter.


2012/11/9 Jonas Rodrigo Pacheco <jonas.pacheco em tecnicon.com.br>

> Usar TRIGGER para tudo que o banco de dados não sabe fazer direito não é o
> caminho, fica muito engessado.
>
> Mas em fm, o que estou defendendo(e tentando entender) é que o DELETE
> CASCADE, da forma como se comporta, atende apenas necessidades mais
> simples, pois na prática ele é difere da teoria do processo.  Além disso me
> preocupo com a questão da ordem de disparo e a visibilidade do registro
> mestre, que fica visivel para as outras transações,  antes de apaga-lo
> (commit do delete).
>
> Deletar o registro da tabela PAI e depois os registros da tabela FILHO, é
> o mesmo que  simplesmente ignorar a integridade referencial da tabela, pois
> se ela valesse, ele não conseguiria deletar primeiro o registro principal.
>
> Infelizmene esse processo erroneo não vai mudar e os desenvolvedores e
> DBAs  terão que conviver com esse 'desafio'
>
> Jonas Rodrigo Pacheco
> Administrador de Banco de Dados
>
>
> -----Mensagem original-----
> De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Gladiston
> Santana
> Enviada em: sexta-feira, 9 de novembro de 2012 15:52
> Para: FireBase
> Assunto: Re: [firebase-br] DELETE CASCADE
>
> Caro colega, o problema de trabalhar de triggers é que elas são mais
> chatas do que você. :)
>
> Abandonei o uso delas lá no Sybase 6.0 que deveria ser por volta do ano
> 97/98.
> Não quero dizer que não use triggers, eu apenas não as uso como design de
> banco por causa do efeito macarrônico a medida que a base aumenta sua
> estrutura, é a versão 'DLL Hell' dos DBAs.
>
> Em 9 de novembro de 2012 14:52, Jonas Rodrigo Pacheco <
> jonas.pacheco em tecnicon.com.br> escreveu:
>
> > Considere-se perdoado colega! Eu sou exigente, ou seja, MUITO CHATO!
> >
> >
> Perfeito,
>
> Então a solução é usar Trigger, consequentemente os itens (o filho) será
> deletado primeiro.
>
> Trocar o simples comando ON DELETE CASCADE no final de uma FK por diversas
> linhas de código.
>
> Thanks! This very productive.
>
> Jonas Rodrigo Pacheco
> Administrador de Banco de Dados
>
>
> -----Mensagem original-----
> De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Alysson
> Gonçalves de Azevedo Enviada em: sexta-feira, 9 de novembro de 2012 11:44
> Para: Carlos H. Cantu; FireBase
> Assunto: Re: [firebase-br] RES: DELETE CASCADE
>
> Naquele link do Cantu, 3º resposta, se eu não me engano, Vlad Khorsun<
> http://tracker.firebirdsql.org/secure/ViewProfile.jspa?name=hvlad> um dos desenvolvedores principais (não tenho certeza, mas chutaria que ele
> deve ser um dos criadores iniciais).
>
> Ele disse: "It's as designed and not a bug", que eu acredito que dispensa
> até uma tradução da minha parte.
>
>
>
>
> Alysson Gonçalves de Azevedo - (11) 984 917 730
>
> "É curioso como as pessoas ficam confusas quando a frase não terminam do
> jeito que elas periquito."
>
>
>
> Em 9 de novembro de 2012 11:21, Carlos H. Cantu
> <listas em warmboot.com.br>escreveu:
>
> > JRP> Criar mais uma trigger porque o delete cascade não funciona
> > JRP> conforme
> > o esperado?
> >
> > "Conforme esperado" é questão de ponto de vista, como vc deve ter lido
> > nos comentários do link que eu postei ;)
> >
> > JRP> Discordo do que está escrito no
> > JRP> http://tracker.firebirdsql.org/browse/CORE-1541, na minha opinião
> > JRP> é um bug sim, pois se há um processo de controle transacional
> > JRP> descente ele deve fazer um lock/bloqueio no registro que vai ser
> > JRP> deletado (não permitindo que novos filhos sejam inseridos por
> > JRP> outra transação usando o registro pai que vai ser deletado),
> > JRP> deleta os 'filhos' e então, para finalizar deleta o registro pai.
> >
> > Se você acha que é um bug, o Firebird tem código aberto, e vc é mais
> > do que bem vindo para corrigi-lo e enviar as atualizações para o
> > projeto. Não espere que eles façam isso, pois como vc deve ter lido,
> > os atuais core developers não consideram isso um bug.
> >
> > []s
> > Carlos H. Cantu
> > www.FireBase.com.br - www.firebirdnews.org www.warmboot.com.br -
> > blog.firebase.com.br
> >
> >
> > ______________________________________________
> > 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
> >
> ______________________________________________
>
>
> ______________________________________________
> 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