Não tem momento exato para começar, mas quando se inicia um estudo, é importante partir do principio de que tem que buscar o básico e então ir avançando até a evolução no conhecimento. Existem hoje muitas revistas, websites, e autores de altíssima qualidade aqui no Brasil. Mas sempre percebo que falta material para quem está começando. É uma tendência natural sempre surgirem novos artigos tratando de assuntos cada vez mais avançados ficando o novo público perdido, pois não encontra artigos básicos. Recebi diversos e-mails me cobrando um artigo como esse. Então resolvi tomar como meta direcionar vários artigos a esse propósito.
O requisito para este artigo é que você conheça o básico de banco de dados começando no MS ACCESS e partindo para o MS SQL Server 2000.x ou MSDE. Utilizaremos a partir deste ponto a sigla SGDB para nos referimos ao servidor de banco de dados.
Introdução a Banco de Dados
O banco de dados sempre foi um ponto forte na aplicação. Sendo que uma falha na modelagem (preparação) pode prejudicar o desempenho da própria aplicação. Portanto é fundamental seu conhecimento para que possa preparar da melhor forma possível, tal como dimensionar a solução a ser adotada. Dentre as opções disponíveis no mercado vamos rever as seguintes:
- MS ACCESS - Este é um ótimo banco de dados principalmente para quem está começando pela facilidade de utilização, você rapidamente aprende como utilizá-lo. Seu uso é recomendado apenas como doméstico e é uma ótimo caminho para, depois que se aprender, passar a utilizar o MS SQL Server
- MS SQL Server - Este é um servidor de banco de dados profissional, e é atualmente um dos melhores do mercado. Um grande destaque nesse produto é sua facilidade de operação, resultando em um ótimo produto e um custo mais baixo de manutenção, tal como custo de aquisição se comparado a produtos similares no mercado. Pode ser implementado de forma individual ou em paralelo (Cluster) com suporte a tolerância de falhas, desde é claro que possua hardware e software para isso.
- MS MSDE - Este é uma versão gratuita e similar ao SQL Server e tem com objetivo você desenvolver sua aplicação e testar sem a necessidade de ter o SQL Server. Para evitar o uso indevido essa versão conta com recurso que resulta em perda de desempenho no caso de mais de 5 transações simultâneas tal como limitação do tamanho do arquivo de dados. Eu recomendo seu.
Em todo artigo utilizaremos o MS SQL Server , por ser um servidor de banco de dados, ele armazena dentro do mesmo vários bancos de dados conforme a Figura 1, ficando cada aplicação utilizando um ou vários desses bancos, bastando é claro que tenha direito de acesso para isso. Todos nossos exemplos será no Database Northwind. Sendo este um banco de dados padrão que vem junto com o SQL Server já pra ser utilizado para testes pois já possui dados.
Figura 01 - Estrutura do MS SQL Server
Dentro de cada banco de dados temos as Tabelas (Tables) conforme Figura 2 e dentro das tabelas temos as colunas (Column) aonde definimos que tipo de dados vamos armazenar conforme Figura 3.
Figura 02 - Demonstrando as Tabelas (Tables).
Figura 03 - Estrutura da tabela e colunas (Colunm).
Conforme observado na Figura 03, a Coluna ProductID vai armazenar dados do tipo Inteiro e não vai aceitar nulo ou seja, essa coluna é de preenchimento obrigatório.
A maioria dos servidores de banco de dados possui suporte a Transact-SQL que é um protocolo padrão entre os SGDB para manipulação dos dados. O MS SQL Server oferece o utilitário chamado SQL Query Analyzer que é um console para utilização dos comandos SQL conforme Figura 4, está realizando uma consulta por meio do comando Select.
Figura 04 - Consultando dados usando Query Analyzer.
Principais comandos SQL:
- Select (Selecionar registros)
- Delete (Excluir registros)
- Update (Atualizar registros)
- Insert (Inserir registros)
-> Where (Utilizando em conjunto com select, update, delete para impôr uma condição para processar o comando)
Exemplos:
Select * from Products where ProductID = 1 (Seleciona todos registros da tabela produtos cuja coluna ProductID tenha valor igual a 1)
Delete Products where ProductID = 1 (Exclui todos registros da tabela produtos cuja coluna ProductID tenha valor igual a 1)
Update Products set ProductName = 'Chair' where ProductID = 1 (Atualiza todos registros na tabela produtos, coluna ProductName para 'Chair' cuja coluna ProductID=1)
insert into Products
(ProductName, SupplierID, CategoryID, QuantityPerUnit)
values
('Telefone',1,1,1) (Inclui uma linha na tabela Products)
Concluída essa introdução pesquise mais detalhadamente sobre o funcionamento do banco de dados e outras facilidades oferecidas como relacionamento entre tabelas, integridade, constraints, procedures, views, triggers, backup e como gerar o diagrama do mesmo.
Histórico do acesso aos Dados.
Logo no início, para se ter acesso às informações do banco de dados era necessário ter vasto conhecimento das API de comunicação, e o programador acabava implementando seu código exclusivamente para cada versão de driver como a DBLIB (SQL Server), dedicando com isso muito tempo a este tipo de implementação. Com o crescimento do mercado e a persistência desse problema foi criado em 1990 com apoio da Microsoft e um consórcio de empresas, o padrão ODBC (Open DataBase Connectivy). Que é uma camada intermediária encarregada de cuidar da comunicação com a API deixando para o programador uma interface única e padrão para todo acesso ao SGDB confira na Figura 4a.
Figura 4a - Demonstrando ODBC
A partir do sucesso do ODCB e da experiência já estabelecida e necessidade de evolução foram surgindo outras propostas como o DAO (Data Access Objects) focado no MS ACCESS, sendo substituído logo depois pelo RDO (Remote Data Objects), uma vez que o DAO era realmente lento em conjunto com o ODBC.
O grande avanço da época deu-se em torno do OLEDB que se assemelhou muito com a arquitetura do ODCB porém trouxe a implementação de interfaces COM e a estratégia da Microsoft UDA (Universal Data Access) com objetivo de armazenamento distribuído, como desde planilha até e-mails. Semelhante ao ODBC, o OLEDB também foi sucesso sendo aderido até por banco de dados de padrão aberto. Para facilitar sua utilização foi criado o ADO (Activex Data Objects) com objetivo de consumir os recursos oferecidos pelos OLEDB.
O que podemos concluir desse breve histórico é que foram criadas várias camadas de acesso ao banco de dados, com objetivo de simplificar e padronizar sua utilização. Isso realmente foi fundamental para o desenvolvimento e evolução das aplicações deixando o padrão OLEDB em conjunto com o ADO na liderança no acesso a dados devido a um melhor desempenho no acesso a dados. Sendo utilizando por diversas soluções ficando o padrão ODBC para as soluções não compatíveis com ODBC. Sendo assim vale ressaltar que mesmo usando OLEDB ou ODBC a aplicação vai ter uma perda de desempenho pois vai ter um camada intermediária entre sua aplicação e as APIs de acesso a dados.