[sapl-dev] Integridade referencial do Banco de Dados do SAPL

Fabiano Weimar dos Santos xirumacanudo em gmail.com
Quinta Outubro 25 16:55:17 BRST 2012


Hoje saiu a versão 5.6 do MySQL como Release Candidate

http://www.oracle.com/us/corporate/press/1855300?msgid=3-7300511784

-- Fabiano Weimar


Em 25 de setembro de 2012 19:12, Fabiano Weimar dos Santos
<xirumacanudo em gmail.com> escreveu:
> Eu pensava que as pesquisas textuais eram todas feitas usando o portal_catalog.
>
> De qualquer forma, o InnoDB na versao 5.6 do MySQL ja suporta isso.
>
> http://blogs.innodb.com/wp/2011/12/innodb-full-text-search-in-mysql-5-6-4/
>
> Quanto a diferenca de performance, nao acho significativa.
>
> -- Fabiano Weimar
>
>
> Em 25 de setembro de 2012 17:24, sergiodamiati
> <sergiodamiati em camaracampinas.sp.gov.br> escreveu:
>> Cabe lembrar que o acesso a tabelas InnoDB é mais lento e perderemos
>> performance, e elas também não suportam Pesquisas FullText usadas no Sapl.
>>
>> []s
>>
>> Sérgio Damiati
>>
>> Em 25-09-2012 17:03, Luciano De Fazio escreveu:
>>
>> Concordo tb, mas lembro novamente que tabelas MyISAM nao tem suporte a
>> integridade.
>> Alguem vai ter de refazer as tabelas  como InnoDB e criar um script de
>> conversao.
>> Como nao se mexe no banco dentro da versao estavel, isso tera que ficar pra
>> proxima.
>> Por enquanto, validar por aplicacao eh a unica alternativa viavel.
>> Luciano De Fazio
>>
>> Em 25/09/2012 16:34, "Gustavo Lepri" <gustavolepri em gmail.com> escreveu:
>>>
>>> Fabiano,
>>>
>>> Eu também concordo com você sobre a integradidade ser toda feita no banco
>>> e não na aplicação.
>>>
>>> +1 para essa alteração!
>>>
>>> Gustavo Lepri
>>>
>>> Em 25 de setembro de 2012 14:27, Angelo Marcondes de Oliveira Neto
>>> <angelomarcondes em gmail.com> escreveu:
>>>>
>>>> Fabiano,
>>>>
>>>> Bem, vou estudar alternativa ao relacionamento no BD e ver se consigo
>>>> apresentar algo também.
>>>>
>>>> Abraços
>>>>
>>>> UaiGeek - Angelo Marcondes de Oliveira Neto.
>>>> #votoemmongaba
>>>> Blog do UaiGeek
>>>> Carneirinho - MG
>>>> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>>>> - - - - - - -
>>>> P: Por que esta mensagem é tão curta?
>>>> R: http://3frases.efetividade.net
>>>> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>>>> - - - - - - -
>>>>
>>>>
>>>>
>>>> Em 25 de setembro de 2012 14:09, Fabiano Weimar dos Santos
>>>> <xirumacanudo em gmail.com> escreveu:
>>>>
>>>>> Oi Pessoal,
>>>>>
>>>>> nada contra seu código Angelo, mas eu acredito que tentar garantir a
>>>>> integridade relacional usando código na camada de aplicacao é errado.
>>>>> Integridade relacional é uma tarefa da camada de banco de dados.
>>>>>
>>>>> A resposta a sua questão é: todos concordam comigo?
>>>>>
>>>>> Eu acho essa estratégia de "flag" para registro excluido errada
>>>>> também. Se isso é importante, ou seja, o ato de excluir manter uma
>>>>> copia dos dados apagados para posterior inspeção manual, pq então não
>>>>> fazemos isso utilizando a estratégia de banco de dados versionado que
>>>>> adotei no spdo. Infelizmente o codigo que utilizei la nao serviria
>>>>> para o sapl, mas a ideia me parece fazer mais sentido.
>>>>>
>>>>> Se houver interesse em atacar essa questao, primeiro define-se a
>>>>> abordagem (se vamos fazer isso usando código no zope ou usando
>>>>> constraints no banco de dados) e depois debates os detalhes técnicos.
>>>>>
>>>>> Minha opniao tecnica pessoal já conhece ;)
>>>>>
>>>>> -- Fabiano Weimar
>>>>>
>>>>> Em 25 de setembro de 2012 12:11, Angelo Marcondes de Oliveira Neto
>>>>> <angelomarcondes em gmail.com> escreveu:
>>>>> > Amigos,
>>>>> >
>>>>> > Estou preocupado com a integridade referencial dos banco de dados do
>>>>> > SAPL e
>>>>> > por isso estou lhes escrevendo, com objetivo de discutirmos qual a
>>>>> > melhor
>>>>> > maneira de evitar que existam quebras de referências, seguindo a linha
>>>>> > de
>>>>> > uma discussão iniciada pelo Xiru e pelo Damiatti, anteriormente.
>>>>> > Abaixo, segue uma proposta de código para verificar a integridade,
>>>>> > antes da
>>>>> > exclusão do parlamentar, ou seja do formulário
>>>>> > parlamentar_excluir_proc.dtml.
>>>>> > Gostaria da analise de todos, e saber se esta é a melhor opção no
>>>>> > momento e
>>>>> > se posso trabalhar neste sentido.
>>>>> >
>>>>> >
>>>>> > <dtml-comment>
>>>>> > *****************************************************************
>>>>> > *   Função: Esse método apenas chama o Método SQL de exclusão do*
>>>>> > *       parlamentar, isto é, o método que atribui a verdadeiro o*
>>>>> > *       campo ind_excluido do parlamentar cujo o cod_parlamentar*
>>>>> > *       é recebido.                                             *
>>>>> > *   Argumentos: cod_parlamentar : int - o código do parlamentar *
>>>>> > *       a ser escluído.                                         *
>>>>> > *   Retorno: Atribuição do flag ind_excluido do parlamentar e   *
>>>>> > *       redirecionamento para a página de parlamentares.        *
>>>>> > *   Michael S. Onishi / Daniel C. Azevedo em 01-03-2001.        *
>>>>> > *****************************************************************
>>>>> > * UPDATE                                                        *
>>>>> > *    Ao se excluir um parlamentar, alteramos o índice da tabela *
>>>>> > *  com o autor correspondente (ind_excluido=1) representado a   *
>>>>> > *  exclusão desse relacionamento, além da exclusão, se houver,  *
>>>>> > *  do username cadastrado no acl_user como login.               *
>>>>> > *  Rogério Ueda em 18-12-2003                                   *
>>>>> > *****************************************************************
>>>>> > </dtml-comment>
>>>>> >
>>>>> > <dtml-if
>>>>> >
>>>>> > expr="zsql.composicao_comissao_obter_zsql(cod_parlamentar=cod_parlamentar)">
>>>>> >   <dtml-let mensagem="'Parlamentar está cadastro como membro de
>>>>> > comissão(ões) e não pode ser excluído!'">
>>>>> >      <dtml-var mensagem_emitir>
>>>>> >   </dtml-let>
>>>>> > <dtml-elif
>>>>> >
>>>>> > expr="zsql.composicao_mesa_obter_zsql(cod_parlamentar=cod_parlamentar)">
>>>>> >   <dtml-let mensagem="'Parlmentar está cadastrado como membro de mesa
>>>>> > diretora e não pode ser excluído'">i
>>>>> >      <dtml-var mensagem_emitir>
>>>>> > </dtml-let>
>>>>> > <dtml-elif
>>>>> >
>>>>> > expr="zsql.composicao_mesa_sessao_obter_zsql(cod_parlamentar=cod_parlamentar)">
>>>>> >   <dtml-let mensagem="'Parlmentar está cadastrado como membro de mesa
>>>>> > diretora de sessão plenária e não pode ser excluído'">i
>>>>> >      <dtml-var mensagem_emitir>
>>>>> >         </dtml-let>
>>>>> >
>>>>> >
>>>>> > <dtml-else>
>>>>> > <dtml-try>
>>>>> >    <dtml-call
>>>>> > expr="zsql.parlamentar_excluir_zsql(cod_parlamentar=cod_parlamentar)">
>>>>> > <dtml-except>
>>>>> >   <dtml-let mensagem="'Houve um erro! Parlamentar não excluído!'">
>>>>> >      <dtml-var mensagem_emitir>
>>>>> >   </dtml-let>
>>>>> >   <dtml-call expr="REQUEST.set('erro', 1)">
>>>>> > </dtml-try>
>>>>> >
>>>>> > <dtml-unless erro>
>>>>> >   <dtml-try>
>>>>> >      <dtml-in
>>>>> > expr="zsql.autor_obter_zsql(cod_parlamentar=cod_parlamentar)">
>>>>> >         <dtml-call expr="zsql.autor_excluir_zsql(cod_autor)">
>>>>> >         <dtml-call
>>>>> > expr="pysc.username_excluir_pysc(username=col_username)">
>>>>> >      </dtml-in>
>>>>> >   <dtml-except>
>>>>> >      <dtml-let mensagem="'Parlamentar Excluído com Sucesso!<BR>Houve
>>>>> > um
>>>>> > erro! Autor Não Excluído!'">
>>>>> >         <dtml-var mensagem_emitir>
>>>>> >      </dtml-let>
>>>>> >   <dtml-else>
>>>>> >      <dtml-let mensagem="'Parlamentar Excluído com Sucesso!'"
>>>>> > sucesso="1">
>>>>> >         <dtml-var mensagem_emitir>
>>>>> >      </dtml-let>
>>>>> >   </dtml-try>
>>>>> >
>>>>> > </dtml-unless>
>>>>> >
>>>>> > </dtml-if>
>>>>> >
>>>>> >
>>>>> >
>>>>> >
>>>>> > UaiGeek - Angelo Marcondes de Oliveira Neto.
>>>>> > #votoemmongaba
>>>>> > Blog do UaiGeek
>>>>> > Carneirinho - MG
>>>>> > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>>>>> > - - -
>>>>> > - - - - - -
>>>>> > P: Por que esta mensagem é tão curta?
>>>>> > R: http://3frases.efetividade.net
>>>>> > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>>>>> > - - -
>>>>> > - - - - - -
>>>>> >
>>>>> >
>>>>> > --
>>>>> > Wiki do SAPL:
>>>>> > http://colab.interlegis.gov.br/wiki/ProjetoSapl
>>>>> >
>>>>> > Regras de participação:
>>>>> > http://colab.interlegis.gov.br/wiki/ComoParticiparComunidade
>>>>> >
>>>>> > Para administrar sua conta visite:
>>>>> > http://listas.interlegis.gov.br/mailman/listinfo/sapl-dev
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Interessado em meus Cursos e Palestras? Inscreva-se em:
>>>>> https://groups.google.com/d/forum/cursos-do-xiru?hl=pt-BR
>>>>>
>>>>> Fabiano Weimar dos Santos @xiru
>>>>> http://blog.xiru.org
>>>>> http://www.pytown.com
>>>>> --
>>>>> Wiki do SAPL:
>>>>> http://colab.interlegis.gov.br/wiki/ProjetoSapl
>>>>>
>>>>> Regras de participação:
>>>>> http://colab.interlegis.gov.br/wiki/ComoParticiparComunidade
>>>>>
>>>>> Para administrar sua conta visite:
>>>>> http://listas.interlegis.gov.br/mailman/listinfo/sapl-dev
>>>>
>>>>
>>>>
>>>> --
>>>> Wiki do SAPL:
>>>> http://colab.interlegis.gov.br/wiki/ProjetoSapl
>>>>
>>>> Regras de participação:
>>>> http://colab.interlegis.gov.br/wiki/ComoParticiparComunidade
>>>>
>>>> Para administrar sua conta visite:
>>>> http://listas.interlegis.gov.br/mailman/listinfo/sapl-dev
>>>
>>>
>>>
>>>
>>> --
>>> Gustavo Lepri
>>>
>>> --
>>> Wiki do SAPL:
>>> http://colab.interlegis.gov.br/wiki/ProjetoSapl
>>>
>>> Regras de participação:
>>> http://colab.interlegis.gov.br/wiki/ComoParticiparComunidade
>>>
>>> Para administrar sua conta visite:
>>> http://listas.interlegis.gov.br/mailman/listinfo/sapl-dev
>>
>>
>>
>>
>>
>> --
>> Wiki do SAPL:
>> http://colab.interlegis.gov.br/wiki/ProjetoSapl
>>
>> Regras de participação:
>> http://colab.interlegis.gov.br/wiki/ComoParticiparComunidade
>>
>> Para administrar sua conta visite:
>> http://listas.interlegis.gov.br/mailman/listinfo/sapl-dev
>
>
>
> --
> Interessado em meus Cursos e Palestras? Inscreva-se em:
> https://groups.google.com/d/forum/cursos-do-xiru?hl=pt-BR
>
> Fabiano Weimar dos Santos @xiru
> http://blog.xiru.org
> http://www.pytown.com



-- 
Interessado em meus Cursos e Palestras? Inscreva-se em:
https://groups.google.com/d/forum/cursos-do-xiru?hl=pt-BR

Fabiano Weimar dos Santos @xiru
http://blog.xiru.org
http://www.pytown.com


Mais detalhes sobre a lista de discussão SAPL-dev