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:
|
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:
primário (Primary file) - Permite inicializar e carregar o banco de dados
secundário (secundary file) - Existe somente se o arquivo primário não foi suficiente para manter os arquivos do sistema
log - utilizado para fazer a recuperação do banco de dados.
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:
ID - Representa o código de cada cliente - Será um campo chave primária do tipo Inteiro.
Nome - O nome do cliente
Endereço - O endereço do cliente
Nascimento - A data de nascimento do cliente
Observacao - Alguma observação sobre o cliente
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 :
Column Name - O nome que vai identificar a coluna da tabela
Data Type - O tipo de dado da coluna
Lenght - Representa o tamanho da coluna. ( Muitas vezes é fixo)
Allow Nulls - Determina se a coluna aceitará valores nulos indicando se o preenchimento será obrigatório ou não.
Obs: Os tipos de dados utilizados na nossa tabela são:
Int ou Integer - Um valor numérico de 32 bits ( -2.147.483.648 a 2.147.483.648 )
VarChar - Valores alfanuméricos . Campo fixo com tamanho máximo de 8000 bytes.
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.
Clique com o botão direito do mouse sobre a tabela Clientes e a seguir selecione as opções Open Table | Return all rows
Agora digite os dados , conforme a figura abaixo. Lembre-se que você não precisa informar o valor para o campo ID pois o SQL atribui um valor automaticamente a este campo.
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: