Olá pessoal!
Primeiramente, parabéns Bel [Lucas] por mais essa conquista, você merece… Sucesso!
Agora, voltando ao assunto… Este artigo abordará alguns dos principais conceitos do SQL Server 2005 e apresentará ao usuário iniciante os ambientes de Banco de Dados (BD), Sistema de Gerenciamento de Banco de Dados (SGBD) e linguagem de definição/manipulação/consulta a dados (SQL).
Para baixar a apresentação em PowerPoint 2007 da última reunião da Célula CIN.NET (29/04) sobre o tema deste artigo clique aqui!
O que é persistência de dados? E, por que queremos persistir?
Quando o domínio é a computação, persistência de dados refere-se ao armazenamento destes em algum meio físico visando a sua disponibilização para acesso futuro. Por exemplo, quando inicializamos um array de inteiros com uma sequência de números, “alguém” [compilador + sistema operacional] se encarrega de armazenar estes dados numa partição da memória RAM. Esta é considerada um meio físico rápido, caro e volátil (quando o programa for encerrado os dados serão perdidos). Ou seja, memória RAM não resolve nosso problema [de persistência], quando pensamos em dados que precisem estar disponíveis mesmo após o reinício das aplicações. Uma alternativa seria o uso de arquivos, no entanto esta solução é um pouco tediosa, uma vez que manipular arquivos pode requerer muito esforço de programação. Para aplicações que utilizam grande quantidade de dados o uso de arquivos torna-se inviável por uma série de motivos: replicação, isolamento e falta de estruturação de dados, dificuldade em controlar acesso concorrente, uso de algoritmos complexos para se conseguir bom desempenho, etc.
Então o que precisamos é de um Banco de Dados!
Figura 1 Banco de Dados!
Um banco de dados é uma coleção de dados inter-relacionados, estruturados, confiáveis, coerentes e compartilhados por diversos usuários. Vamos entender cada um dos conceitos empregados: inter-relacionados, porque não é útil se ter ilha de dados, é o conjunto de vários dados correlacionados que, quando manipulados, traduzem informação relevante; dados estruturados indicam que o mecanismo de acesso as dados é bem definido e o resultado obtido a partir de uma consulta possui uma estrutura previsível; é fundamental que os dados armazenados permaneçam coerentes e confiáveis enquanto durar a persistência, ou seja, os dados inseridos estarão disponíveis e não serão alterados, desde que explicitamente solicitado pelo usuário; além disso, outra grande característica dos bancos de dados é o compartilhamento de informações que ocorre, muitas vezes, entre pessoas que estão a milhares de quilômetros de distância, e ainda, acessando simultaneamente.
Para prover estes e outros serviços aos bancos de dados foram desenvolvidos poderosos Sistemas de Gerenciamento de Banco de Dados (SGBD’s). São softwares que se utilizam de complexos algoritmos para garantir máxima eficiência nos processos de armazenagem, recuperação e garantia da qualidade das operações sobre os dados. Os principais objetivos dos SGBD’s são eliminar ou reduzir:
• Redundância e inconsistência de dados;
• Dificuldade no acesso aos dados;
• Isolamento dos dados;
• Anomalias de acesso concorrente;
• Problemas de segurança;
• O entrelaçamento entre dados e a aplicação.
Vale mencionar alguns modelos de SGBD’s desenvolvidos e aprimorados ao longo dos [o leitor pode encontrar mais detalhes nas referências]: hierárquico, em rede, relacional, orientado a objetos, etc. Em geral, um SGBD possui 4 linguagens, que acabam por se “fundirem” numa só:
Data Definition Language (DDL), Data Manipulation Language (DML), Query Language (QL) e uma Linguagem de 4ª geração, que é a linguagem nativa ao SGBD. Alguns dos SGBD’s mais conhecidos: Microsoft SQL Server, Oracle, IBM DB2, MySQL e PostgreSQL.
É impossível num artigo introdutório no assunto de banco de dados não se falar na linguagem SQL, contudo não vou escrever muitas linhas sobre tal tópico, devido ao abundante material disponível na Web a esse respeito, além do artigo do meu amigo Lucas introduzindo a linguagem SQL.
A linguagem SQL (Structured Query Language) foi desenvolvida para o propósito do modelo relacional que trata a disposição lógica dos dados como tabelas. A SQL define métodos de definição e manipulação dos dados, além de mecanismos para administração de bancos de dados. Sua primeira versão foi desenvolvida na IBM na década de 70 e chamava-se SEQUEL, nos anos seguintes passou a se chamar SQL por questões legais. Foi padronizada pelas instituições ANSI e ISO como padrão oficial de linguagem em ambiente relacional. Alguns dos principais comandos da SQL são: Create, Drop, Alter, Select, Insert, Delete e Update.
Para maiores informações sobre banco de dados, SGBD’s e SQL, visite:
• Site da disciplina GDI: http://www.cin.ufpe.br/~if685/
• Site oficial da linguagem SQL: http://www.sql.org/
• Portal Macoratti: http://www.macoratti.net/indsql.htm
• Linguagem SQL: http://pt.wikipedia.org/wiki/Sql
• Noções da linguagem SQL para consultas: http://www.linhadecodigo.com.br/Artigo.aspx?id=165
• Principais comandos SQL: http://www.sqlmagazine.com.br/Artigos/sqlserver/02_Comandos_SQL.asp
O SQL Server 2005
O Microsoft SQL Server é uma família de produtos que atende aos requisitos de armazenamento de dados dos ambientes OLTP (Online Transaction Processing) e OLAP (Online Analytical Processing), é um sistema de gerenciamento de bancos de dados relacional (RDBMS – Relational Database Management System). O SQL Server possui flexibilidade para suportar às várias necessidades de dados das aplicações e com níveis de banco de dados de tamanhos variando entre megabytes e terabytes, além de disponibilizar versões tanto para servidores móveis como de grande porte, trabalhando em conjunto com os serviços de Windows Clustering.
O Microsoft SQL Server 2005 redefine completamente a plataforma de bancos de dados SQL Server fornecendo a melhor tecnologia adequada ao porte da organização, seja ela pequena, média ou grande. Ele é o sucessor do SQL Server 2000, sua linguagem nativa é Transact-SQL, inclui suporte nativo para gerenciamento de dados XML, suporta acesso a databases através de web services por requisições SOAP, além da integração com o. NET Framework.

Figura 2 Principais componentes do SQL Server 2005
Vejamos a seguir alguns dos novos recursos e estrutura do conjunto de serviços existentes no SQL Server 2005. Para ter acesso à lista completa de serviços, visite: http://www.microsoft.com/brasil/servidores/sql/prodinfo/top30features.mspx
• Relacional Database – Inclui os componentes: o banco de dados básico e a pesquisa de texto integral. O banco de dados básico, e o Database Engine, são considerados o coração do SQL Server. A pesquisa de texto integral permite consultas em linguagem simples de dados armazenados em tabelas do SQL Server.
• Replication Services – A replicação aumenta a disponibilidade de dados distribuindo dados entre múltiplos bancos de dados, o que permite um aumento de carga de trabalho de leitura entre os servidores de banco de dados designados.
• Notification Services – Inclui um mecanismo de notificação e componentes de cliente para gerar e enviar mensagens sincronizadas e personalizadas para usuários quando um evento desencadeante ocorre. As notificações podem ser enviadas para dispositivos sem fio, como telefones celulares e PDAs, contas do Windows Messenger e contas de correio eletrônico.
• Integration Services – Fornece uma solução para transformação e integração de dados corporativos a fim de extrair e transformar dados de múltipas origens de dados e movê-los para uma ou mais fontes de destino. Isso permite mesclar dados de origens de dados heterogêneas, carregas dados em data warehouse e data marts etc.
• Analysis Services – Oferece o Online Analytical Processing (OLAP) e a funcionalidade de exploração de dados para aplicações de inteligência de negócio (Business Intelligence + Data Mining ). O Analysis Services permite que sua organização agregue dados das múltiplas origens de dados, como bancos de dados relacionais, e trabalhe com esses dados em uma ampla variedade de maneiras.
• Reporting Services – Inclui o Report Manager e o Report Server a fim de fornecer plataforma baseada em servidor completo para criar, gerenciar e distribuir relatórios. O Report Server é construído com base na tecnologia padrão do IIS e do .Net Framework, permitindo combinar os benefícios do SQL Server e do IIS para hospedar e processar relatórios.
• Espelhamento de Bases de Dados – Aumentar a disponibilidade de seus sistemas SQL Server configurando o failover automático para um servidor standby.
• Restauração Online – Apenas os dados sendo restaurados estarão indisponíveis, o resto da base de dados permanecerá online e disponível.
• Novo SQL Server Management Studio – Novo conjunto de ferramentas de gerenciamento.
• Hospedagem do .NET Framework – Criar objetos do banco de dados usando linguagens familiares como o Microsoft Visual C# .NET e Microsoft Visual Basic .NET.
• Tecnologias XML – O SQL Server 2005 suporta nativamente o armazenamento e a consulta de documentos XML.
• Web Services – Criar Web Services na camada de banco de dados, tornando o SQL Server um “escutador” HTTP e fornecendo um novo tipo de aceso a dados via Web Services.
• Service Broker – Fornece sistemas confiáveis de enfileiramento de tarefas e troca de mensagens como parte básica do banco de dados. As filas podem ser utilizadas para empilhar tarefas, como consultas e outras solicitações e processar conforme os recursos permitem. O sistema de troca de mensagens permite que aplicações de bancos de dados realizem comunicação entre si.
• Data Mining – Quatro novos algoritmos de data mining foram introduzidos, assim como ferramentas melhoradas e assistentes que facilitarão a mineração de dados para empresas de qualquer porte.
• Integração com o Microsoft Office System – Os relatórios que são fornecidos pelo Report Server do Reporting Services pode ser executado no contexto do Microsoft SharePoint Portal Server e aplicações Microsoft Office System como o Microsoft Word e Microsoft Excel.
Edições do SQL Server 2005
As edições do SQL Server 2005, são: Express, Workgroup, Standard e Enterprise, Compact Edition, Developer Edition e Evaluation Edition. As duas últimas têm o mesmo conjunto de recursos que a Enterprise Edition a única diferença entre elas está nas políticas de licenciamento.
É possível obter o SQL Server 2005 Express gratuitamente, em:
http://www.microsoft.com/downloads/details.aspx?FamilyID=220549b5-0b07-4448-8848-dcc397514b41&displaylang=en
Para ter acesso ao detalhamento comparativo entre as edições do SQL Server 2005, visite: http://www.microsoft.com/brasil/servidores/sql/prodinfo/features/compare-features.mspx
Manipulando o SQL Server no VS 2008 – Vamos praticar?!
Aqui segue um roteiro para manipulação do SQL Server no Visual Studio 2008, não estou entrando em detalhes de como fazer o quê, vimos isso durante a aula, mas no caso de possíveis dúvidas pode entrar em contato!
O objetivo é criar tabelas, consultas, stored procedures e relacionamento entre tabelas, apenas usando a interface do Visual Studio 2008 (também vale para o Visual Studio 2005).
• Abrir o Visual Studio 2008;
• Localizar o ‘Server Explorer’;
• Adicionar uma nova conexão;
• Criar as tabelas abaixo:

• Exemplo de Stored Procedure***:
CREATE PROCEDURE ClientesDaAgencia
@codAgencia int
AS
Select Cliente.pk_cpf_cliente, Cliente.fk_codigo_agencia, Cliente.fk_numero_conta, Cliente.nome_cliente
From Agencia, Cliente, Conta
Where Agencia.pk_codigo_agencia = @codAgencia
and Cliente.fk_codigo_agencia = Agencia.pk_codigo_agencia
and Cliente.fk_numero_conta = Conta.pk_numero_conta
*** Esta SP seleciona todos os clientes de uma determinada agência, exibindo o cpf, a agência, a conta e o nome do cliente.
E, agora, é só “brincar” com essas coisinhas e numa próxima reunião entrarmos em mais detalhes sobre algum dos assuntos abordados como a linguagem T-SQL, por exemplo!
É isso, obrigado!!!
Para maiores informações sobre SQL Server 2005, visite:
• Site Oficial do SQL Server (em português): http://www.microsoft.com/brasil/servidores/sql/default.mspx
• SQL Server no MSDN: http://www.microsoft.com/brasil/msdn/sql/default.mspx
• SQL Server no TechNet: http://www.microsoft.com/brasil/technet/prodtechnol/sql/default.mspx
• Criando objetos SQL com .NET (CLR – Managed Code): http://www.linhadecodigo.com.br/Artigo.aspx?id=594
• Portal Macoratti: http://www.macoratti.net/indsql.htm