Borland InterBase 7.1 x Microsoft SQL Server 2000 - Parte 2


Trigger - Flexibilidade:

Vejamos agora o seguinte exemplo:
Quando um novo Cliente é inserido no banco de dados, o sistema automaticamente associa o território e o Representante de Vendas para o mesmo. Para determinar o território de vendas a aplicação deverá procurar na tabela de Estado o usuário responsável por aquele Estado. Com base no responsável pelo Estado ela irá localizar o Representante de Vendas, com base no território em que o Cliente foi cadastrado e no Código da Categoria.

A solução ideal é criar um trigger no Before Insert da tabela de Clientes e esta determinará o território e o Representante de Vendas.

O SQL Server não fornece triggers que sejam disparadas antes dos eventos. O que o SQL Server fornece, são triggers que disparam após o INSERT, UPDATE ou DELETE quando estas forem criadas. Para solucionar este problema, você pode usar o instead-of-trigger. Esta trigger é disparada quando o evento ocorre e a trigger já está criada. Por exemplo, ao executar um INSERT, a trigger é disparada.

Neste exemplo, a trigger será disparada antes do Cliente ser inserido no banco de dados, mas a trigger não irá conseguir determinar o território e o Representante de Vendas porque quando o instead-of-trigger é executado o banco ainda não inseriu o registro, mas o cliente será inserido no banco de dados. Escrever esta trigger será mais complicado e irá consumir um tempo maior.

Infelizmente, instead-of-trigger tem muitas limitações. Você só pode determinar um instead-of-trigger para cada evento. Não é possível determinar múltiplas triggers para modularizar seu código e facilitar a sua manutenção. Instead-of-trigger não pode ser utilizado em tabelas que contenham Foreign Keys que usem Cascade.

Por exemplo, se uma tabela tem uma Foreign Key com Cascade Delete habilitado, você não pode usar instead-of-trigger quando o evento Delete ocorrer. O InterBase fornece triggers antes e depois dos eventos INSERT, UPDATE ou DELETE. Não há limites para número de triggers e você pode criá-las em tabelas com Foreign Key e opções de Cascade habilitadas que não haverá conflito.

Associar várias triggers que ocorram no mesmo evento ajuda a modularizar e facilita os testes e manutenção. Assim sendo, o SQL Server é limitado no controle de ordem de execução de triggers. É possível determinar qual trigger irá executar primeiro e qual será executada por último, mas isso é para todas as triggers, ou seja, a ordem de execução não ocorre por evento. Isso torna mais difícil escrever as triggers e mais complexo sua manutenção.

Com o InterBase você determina a ordem exata de execução das triggers, facilmente adiciona novas triggers e determina em que ordem elas serão executadas.

Create Trigger BI_CLIENTE_ID For CLIENTE BEFORE INSERT POSITION 1
/* Ordem de execução da trigger */
AS
Begin
/ * …. /*
End;

Exceções:

Gerar exceções de erros com triggers no SQL Server é complexo. Após a execução das triggers, só é possível desfazer um INSERT, UPDATE ou DELETE se o roolback for executado. Dessa forma, aborta-se toda a seqüência de comandos SQL e não somente os SQL’s executados pela trigger.

No InterBase, a chamada de uma exceção desfaz apenas os INSERT, UPDATE ou DELETE implícitos naquela trigger. Você pode também criar Savepoints e efetuar o rollback até um Savepoint específico.

Por exemplo, podemos criar um Savepoint em uma trigger Before Update e executar o rollback de todas operações que ocorrem naquele Savepoint específico em uma trigger After Insert. O Savepoint está disponível em qualquer parte de uma transação e não somente em triggers e stored procedures.

Custo:

O custo de licenciamento é uma parte significante em um projeto. Ainda mais quando será necessário distribuir o banco de dados como parte da aplicação e em diversos locais, sendo necessário suportar vários usuários.

Requisitos de sistema:

Faz todo o sentido minimizar os custos para distribuir sua aplicação e distribuí-la eletronicamente. Além disso, é interessante minimizar os custos de upgrade de hardware onde a aplicação vai ser instalada.

Como comparar o SQL Server e InterBase 7.1 neste ponto?
SQL Server requer de 95 a 270 MB de espaço em disco para o servidor e 250 MB para instalação típica. Requer também 64 MB de memória no Windows 2000 e 128 MB no Windows XP.

A instalação completa do InterBase requer menos de 40 MB. Se não instalar a documentação e exemplos o InterBase requer menos de 15 MB de espaço em disco. Além disso, InterBase requer 32 MB de memória em todas as plataformas.

Distribuição:

Suponha que você precisar integrar a instalação do servidor do banco de dados e do cliente no instalador de suas aplicações para tornar a instalação mais fácil.

Você deverá usar o instalador fornecido pela Microsoft para instalar o Microsoft SQL Server. A instalação do SQL Server efetua várias alterações no Registro do Windows, alterações em paths e no sistema operacional, cria grupos de programas e contas de usuários. O programa de instalação está longe de ser apenas uma cópia dos arquivos nele contido.

Não seria realístico para os fornecedores de solução criarem seus próprios programas para instalar o SQL Server como a parte de seus serviços ou produtos. InterBase, pelo contrário, lhe fornece total flexibilidade. Você pode usar o instalador da Borland, usar os diversos instaladores que estão no mercado ou escrever seu próprio instalador.

MSDE® SQL Server 2000 Desktop Engine:

Você deve estar considerando o MSDE® como uma alternativa ao SQL Server para desenvolver e distribuir suas aplicações. MSDE contém quase todos os recursos do SQL Server 2000, mas com algumas limitações.

MSDE tem 3 limitações a mais:

• Contém um gerenciador de conexões simultâneas limitadas a cinco    conexões, reduzindo a carga de trabalho;
• Limitado a 5 conexões, mais do que isso não é possível;
• MSDE requer 44 MB de espaço em disco, 64 MB de memória no    Windows 2000 e 128 MB no Windows XP.

O MSDE 2000 suporta até 2 GB por banco de dados. Note que este limite é por banco de dados e não por tabela. Isso significa que todos os seus dados, metadata, índices, tabelas temporárias, stored procedures e triggers tem que estar dentro dos limites de 2 GB.

O MSDE 2000 inclui vários utilitários de linha de comando que podem ser usados para administrar as instâncias do MSDE. Nenhuma das ferramentas gráficas que compõem o SQL Server para definição e criação do banco de dados, administração do servidor, teste de querys, ajustes de performance do servidor estão presentes no MSDE.

Diversas licenças de produtos Microsoft dão o direito de usar e distribuir o SQL Server 2000 Desktop Engine (MSDE 2000). Os direitos de uso são complexos e dependem do produto Microsoft que você adquiriu para obter o direito de uso do MSDE. Alguns produtos não dão direitos a distribuir, outros incluem o direito de distribuir, mas com várias condições. Uma delas é que a aplicação deverá ser desenvolvida com os seguintes produtos:

• Microsoft Visual Studio® .NET;
• ASP.NET Web Matrix Tool;
• Microsoft Office XP Developer Edition.

Maiores informações sobre estas limitações podem ser obtidas pelo link: www.microsoft.com/sql/msde/productinfo/features.asp

Multi-Plataforma:

O SQL Server suporta apenas a plataforma Windows. InterBase suporta Windows, Linux e Sun Solaris. Para efetuar a migração de plataforma é necessário apenas um Backup/Restore.

InterBase oferece uma série de opções para efetuar conexões com o banco de dados, facilitando para o desenvolvedor a escolha da sua ferramenta de desenvolvimento. As formas de acesso são: ODBC, JDBC, drivers ADO.NET e componentes nativos para C++ Builder e Delphi.

Recursos:

A Tabela 1 compara os recursos do InterBase e SQL Server. Esta lista não contém todas as características dos bancos de dados e sim foca os recursos mais importantes para embutir um banco de dados nas aplicações e distribuí-las e também aplicações que contenham muitas atualizações e transações.

12-05pic01.JPG
Tabela 1. Comparativo de recursos

Conclusões:

Vimos nesse artigo um comparativo sobre dois bancos de dados relacionais muito utilizados pelos desenvolvedores, agora a escolha é sua. O InterBase fornece todas características que você necessita para criar uma aplicação robusta a um custo mínimo e em menor tempo. Caso você tenha alguma dúvida ou deseja conhecer melhor o InterBase, a Presence Tecnologia responsável pela gestão do Borland InterBase no Brasil apresenta diversos workshops gratuitos sobre o Borland InterBase e fornece todo o suporte/consultoria ao Borland InterBase em conjunto com a Borland Latin América.

Um grande abraço e até o próximo artigo.

Leia a primeira parte deste artigo em:
http://www.devmedia.com.br/visualizacomponente.aspx?comp=1685&site=2