[firebase-br] Views

Alysson Azevedo agalysson em gmail.com
Sex Fev 19 12:21:05 -03 2010


hmmm, legal, apesar de não precisar disso agora, me intereçei pelo
assunto...
lendo o site de referencias q normalmente uso,
IBPhoenix Development - SQL Statement and Function
Reference<http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_60_sqlref#RSf20247>
eu achei exemplos de como inserir valores com views...
mas não achei (ou não soube procurar), por exemplo, como fazer "calculos
complexos" na hora de um insert ou update...
exemplo, um antigo sistema que trabalhei, usava querys enormes e varias
vezes, e entre cada vez, só mudava as condições... ou seja, era
perfeitamente aplicavel o uso de view... e junto com isso, na hora de
modificar a tabela, mais inumeros calculos e operações... como por exemplo,
atualizar um determinado campo da tabela x quando a tabela y for
modificada...

o sandro disse sobre criar triggers, minha duvida é: a declaração de uma
trigger para uma view é igual a trigger para uma tabela comum???

--

Alysson Gonçalves de Azevedo
(11) 8491-7730
<.>_( ò.ó )_<.>

    \\   ^__^
      \\ (oo)\_______
        \(__)\             )\/
              ||`~~~~~´||
            _||'          _||


Em 19 de fevereiro de 2010 12:02, Sandro Souza
<escovadordebits em gmail.com>escreveu:

> Bom dia/tarde Thiago.
>
> Grande Thiago, as visões servem apenas gerar consultas pré-montadas,
> escondendo toda a complexidade da mesma para quem a utiliza.
>
> Em termos de performance, eu acredito que não haja qualquer benefício, pois
> trata-se apenas de um SELECT pré-compilado, mas durante a execução terá a
> mesma performance de se executar o mesmo código SELECT que forma a visão.
>
> A única vantagem é realmente a de facilitar a vida de quem efetua
> constantemente consultas complexas, pois precisará apenas executar um
> simples comando SELECT sobre a visão, sem ter que conhecer toda a
> complexidade do SELECT verdadeiro que está "nos bastidores" e que gera os
> registros retornados pela visão.
>
> No caso das visões alteráveis (quando criamos gatilhos (triggers) para as
> situações INSERT, UPDATE e DELETE), elas adquirem uma vantagem a mais, que é
> a de esconder também a complexidade dessas operações nas diferentes tabelas
> que estão envolvidas nessa visão.
>
> Por exemplo, para quem trabalha com Delphi (como eu), e nos deparamos com
> SELECTs que envolvem mais de uma tabela, e precisamos também efetuar
> operações de inclusão, alteração e exclusão nos registros desse mesmo SELECT
> complexo, encontramos uma certa dificuldade, pois o próprio componente de
> query (TQuery, TIBQuery, TSQLQuery, TADOQuery, etc...) não saberá como
> efetuar essas operações, já que não se trata apenas de uma única tabela, mas
> sim de uma combinação específica de mais de uma tabela, e nessa situação,
> precisamos da ajuda de outros componentes (TUpdateSQL, TIBUpdateSQL, etc...)
> onde possamos informar os comandos a serem executados, no mínimo, nessas 3
> operações distintas (INSERT, UPDATE e DELETE).
>
> Nessa situação, se o banco de dados der suporte à visões alteráveis, como é
> o caso do Firebird, seria melhor efetuar esse trabalho mais complexo no
> próprio banco de dados.
>
> Dessa forma, criaríamos uma visão, formada pelo mesmo SELECT que se
> encontra no nosso componente de query, e também criaríamos um gatilho
> (trigger) para cada uma das possíveis operações (INSERT, UPDATE e DELETE).
>
> Do ponto de vista da aplicação cliente, aquela visão alterável funciona
> exatamente como uma tabela comum, com todas as operações possíveis.
>
> Temos aí o ganho de algumas vantagens, como as seguintes:
>
> 1 - Reduz bastante o trabalho de desenvolvimento no lado da aplicação
> cliente, pois agora um simples componente de query já consegue tratar
> normalmente essas operações, já que a visão alterável será tratada como uma
> tabela comum, simplificando bastante todas as operações nesse lado.
>
> 2 - Dentro de cada um dos gatilhos podemos executar várias operações, e não
> estamos presos a um simples comando de INSERT, UPDATE ou DELETE como ficamos
> quando utilizamos um TUpdateSQL, por exemplo. Nesse caso do uso de gatilhos,
> cada um pode executar inúmeras operações, tornando as operações mais
> inteligentes e flexíveis.
>
> Do meu ponto de vista, essas são as vantagens.
>
> Espero ter ajudado mais que atrapalhado. :D
>
> Thiago Balbino escreveu:
>
>  Boa tarde Pessoal, seguinte estou desenvolvendo uma aplicação desktop em
>> Delphi 7 + FireBird 2.1, estou implementando o uso de Views no sistema,
>> queria saber de vocês quais as utilidades das *views *por exemplo, ganho
>> de
>> performance etc...?
>>
>> desde ja agradeço.
>>
>>
>
> ______________________________________________
> 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