Trabalhando com aplicações em 3 camadas - Parte I


No mundo real as situações costumam ser bem mais complexas do que no mundo teórico. Na verdade toda a teoria , seja ela em qualquer área , procura idealizar um modelo para explicar um comportamento/fenômeno do mundo real. Essa teoria terá tanto mais crédito/sucesso  quanto melhor poder explicar tal comportamento/fenômeno.

Quando trabalhamos com aplicações que gerenciam informações onde estão envolvidos vários ambientes e milhares de usuários simultâneos , a complexidade vai muito além daquele ambiente onde você acessa diretamente o banco de dados , i.e , um ambiente cliente/servidor onde o cliente esta diretamente ligado á fonte de informações.

Não seria possível implantar e manter , em termos de custos e mesmo de desempenho,  o modelo onde um aplicativo cliente faz uma conexão com uma fonte de dados e mantém esta conexão aberta por um longo período de tempo.  Multiplique isto por milhares de conexões e teremos um problema gigantesco.

Além disto , como o código para a  manipulação dos dados esta no aplicativo cliente , qualquer alteração ou atualização de código deverá ser feita no cliente com reinstalação  do aplicativo. Sem contar que devido aos diversos ambientes ( Windows , Unix , OS/2 ... ) a complexidade para atualizar cada front-end aumenta. Multiplique novamente este efeito para milhares de front-ends em diversos ambientes e imagine o tamanho do problema.

Para tentar enfrentar esses problemas temos um modelo teórico : O desenho de aplicativos em 3 camadas.

Por que três camadas ?  Ora , porque o problema é dividido em três partes.(didaticamente falando). As três camadas são:

  1. Apresentação
  2. Negócio
  3. Dados

Este modelo desloca a lógica de negócios e a conexão com o banco de dados da camada do cliente para a camada de negócios e a camada de dados.  Se você precisar fazer qualquer alteração na lógica de negócios ou no código de acesso aos dados não vai ter que alterar nada nos aplicativos clientes . Além disto você poderá reutilizar os componentes em muitos clientes mesmo com ambientes diferentes.

Na camada de negócios geralmente trabalhamos com componentes. Sabe o que é um componente ? Você já usou ADO ?  Se já , então usou um componente ActiveX. Na camada de apresentação , os aplicativos clientes fazem a interface do usuário final com a camada de negócios e de dados .  Quando vamos implantar lógica de negócios ou métodos de acesso a dados precisamos criar nossos próprios componentes. Vamos ver como fazer isto na camada de dados.

As principais tarefas que a camada de negócios e a camada de apresentação realizam são:

Estas tarefas estão relacionadas com a camada de dados. Então para criar nosso componente da camada de dados devemos realizar as seguintes etapas:

Criando o banco de dados e a tabela Clientes

Vamos usar como exemplo um banco de dados do SQL Server 2000 ( poderia ser um banco de dados Access) . O banco de dados Clientes e a tabela Clientes que vamos criar logo a seguir. Eu poderia utilizar um banco de dados já presente no SQL Server 2000 (Pubs ou Northwind) , mas vou mostrar como criar um banco de dados , uma tabela , como inserir dados na tabela e somente a partir deste ponto estarei retornando ao objetivo do artigo.(Esta parte é uma reprise do artigo: Acessando dados no SQL Server com o VB - Usando ADO DATA Control )  Nosso roteiro será o seguinte:

1-) Criaremos um banco de dados chamado Clientes

2-) Criaremos uma tabela com o nome de Clientes

3-) Incluiremos alguns dados na tabela Clientes

Antes de começar você deve verificar se o SQL Server esta mesmo instalado na sua máquina. Selecione Service Manager no menu Iniciar ou clique  no ícone na barra de tarefas do Windows. A janela - SQL Service Manager - deverá aparecer na sua tela. Selecione o Serviço SQL Server e clique no botão - Star/Continue.

Se tudo deu certo , você esta pronto para começar.

Criando um Banco de dados no SQl Server

O Banco de dados SQL Server 2000 e composto de vários componentes lógicos , são as tabelas , índices , visões , stored procedures , triggers , etc.

Um servidor SQL Server pode possuir vários banco de dados que por sua vez pertencem a diversos usuários. Cada instância de um SQL Server 2000 possui quatro bancos de dados de sistema : master , model , tempdb e msdb.

Um banco de dados no SQL Server pode ser entendido como uma coleção de:  tabelas, visões , índices , triggers e stored procedures. Ele é composto por três arquivos:

Vamos criar um banco de dados usando o Enterprise Manager . Para iniciar o Enterprise Manager selecione as opções: Programa|Microsoft SQL Server|Enterprise Manager.

A janela - SQL Server Enterprise Manager - ira surgir na sua tela:

Esta janela mostra no lado esquerdo uma árvore hierárquica começando nos grupos de servidores indo ate os objetos dos bancos de dados. Expanda as ramificações até obter a estrutura da figura acima e a seguir clique com o botão direito do mouse sobre o objeto Databases selecionando a opção - New Database - do menu suspenso.

Na janela - Database Properties - aba - General - informe o nome do banco de dados - Clientes - na caixa de texto Name. O Banco de dados primário - clientes_data.mdf - e o arquivo de Log - Clientes_Log.Idf são criados.

Clique na aba Data Files e veja o arquivo primário. Informe o seu tamanho Inicial como sendo de 10 Mb e deixe as opções - Automatically grow File e Unrestricted File growth selecionadas. Com isso permitimos que nosso banco de dados cresça automaticamente e sem limites.

Agora clique na aba Transaction Log e defina o tamanho do arquivo de Log com 10 Mb.

Você já pode clicar no botão OK . Com isso retornamos a janela do Enterprise Manager e já podemos ver nosso banco de dados Clientes criado no lado direito.

Criando uma Tabela no SQL Server 2000

Uma tabela é composta de linhas e colunas; onde as linhas representam um registro da tabela e as colunas os campos.(Não pode haver duas colunas com o mesmo nome na tabela) Nossa tabela deverá conter os seguintes informações:

Vamos agora criar a tabela Clientes no banco de dados Clientes recém criado. Expanda a ramificação pertinente ao banco de dados Clientes e clique com o botão direito do mouse sobre o objeto  Tables . A seguir selecione a opção New Table do menu suspenso.

A janela do Enterprise Manager - New Table - irá surgir na sua tela. Nesta Janela iremos definir os campos de nossa tabela. Para isto usaremos as colunas :

Obs: Os tipos de dados utilizados na nossa tabela são:

  1. Int ou Integer - Um valor numérico de 32 bits  ( -2.147.483.648 a 2.147.483.648 )

  2. VarChar - Valores alfanuméricos . Campo fixo com tamanho máximo de 8000 bytes.

  3. DateTime - data e horário com precisão de 3.33 milisegundos ( 01 de janeiro de 1753 até 31 de dezembro de 9999)

Vamos preencher cada coluna como indicado  na figura abaixo e a seguir clicar no ícone Save para informar o nome da tabela na janela Choose Name.

Após salvar a tabela , feche a janela New Table  e na janela do Enterprise Manager clique sobre o objeto Tables. Você deverá ver a direita uma relação de tabelas do banco de dados Clientes. Dentre elas nossa tabela clientes está lá. ( Quando uma tabela é criada ela é colocada no FileGroup Padrão)

Bem  , o banco de dados esta criado e a tabela pronta. Vamos agora inserir alguns dados na tabela. Vamos fazer isto diretamente no Enterprise Manager. 

Já esta tudo pronto para a segunda parte : Criar os procedimentos armazenados para adicionar, alterar, excluir e navegar pelos dados.

Vamos continuar com a segunda parte deste artigo : Usando o Create Store Procedure Wizard ...

Salmos 19:1 Os céus proclamam a glória de Deus e o firmamento anuncia a obra das suas mãos.

Salmos 19:2 Um dia faz declaração a outro dia, e uma noite revela conhecimento a outra noite.

Salmos 19:3 Não há fala, nem palavras; não se lhes ouve a voz.


Veja os Destaques e novidades do SUPER DVD VB (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Veja mais sistemas completos para a plataforma .NET no Super DVD .NET , confira...

Quer aprender C# ??

Chegou o Super DVD C# com exclusivo material de suporte e vídeo aulas com curso básico sobre C#
 

   Gostou ?   Compartilhe no Facebook    Compartilhe no Twitter

Referências:


José Carlos Macoratti