Banco de Dados - SQL Server
Programação de Banco de Dados - parte 1
O que me levou a escrever esse artigo foi a enorme carência técnica vista de amigos programadores, pretendo dessa forma somar conhecimento técnico e não somente o prático. Espero que possa ajudar e muitos programadores e dar “o pontapé” inicial para outros.
por Renato MattosEste é o primeiro de uma série de artigos relacionado com programação de Banco de Dados. Nos artigos iniciais o enfoque é explicar as tecnologias relacionadas ao acesso a dados voltado para os programadores que não estão acostumados com várias siglas como: OLE DB, ODBC, ADO , com termos como: duas camadas, três camadas.
Conceitos Iniciais
» Introdução
Um banco de dados é usado para armazenar informações estruturadas e organizadas de forma a permitir sua recuperação rápida e eficiente.Existem diversos Modelos de banco de dados como: Em Rede, hierárquico, Relacional e Orientado a Objeto.
Os Modelos em Rede e Hierárquico no momento não são mais utilizados, somente em projetos antigos você ainda encontra esses modelos, nesse artigo vamos focar o Modelo Relacional que é o modelo usado no momento. O modelo Orientado a Objeto ainda em estudo e com certeza o modelo do futuro (no último artigo falarei um pouco desse modelo).
No Modelo Relacional a informação é dividida em tabelas, e cada tabela representa entidades, desta forma dividimos as informações em porções onde as entidades se relacionam.As tabelas possuem atributos (campos) que são as colunas, as linhas são os registros (dados).Os relacionamentos permitem que os usuários combinem informações de várias tabelas através de chaves primárias e chaves estrangeiras ou secundárias.
O SGBD (Sistema Gerenciador de Banco de Dados) é responsável em manter a integridades dos dados onde o programador pode definir algumas regras outras possui definição default.Os SGBD tem sete características operacionais elementares sempre observadas, que passaremos a listar:
Característica 1: Controle de Redundâncias- A redundância consiste no armazenamento de uma mesma informação em locais diferentes, provocando inconsistências. Em um Banco de Dados as informações só se encontram armazenadas em um único local, não existindo duplicação descontrolada dos dados. Quando existem replicações dos dados, estas são decorrentes do processo de armazenagem típica do ambiente Cliente-Servidor, totalmente sob controle do Banco de Dados.
Característica 2: Compartilhamento dos Dados- O SGBD deve incluir software de controle de concorrência ao acesso dos dados, garantindo em qualquer tipo de situação a escrita/leitura de dados sem erros.
Característica 3: Controle de Acesso- O SGDB deve dispor de recursos que possibilitem selecionar a autoridade de cada usuário. Assim um usuário poderá realizar qualquer tipo de acesso, outros poderão ler alguns dados e atualizar outros e outros ainda poderão somente acessar um conjunto restrito de dados para escrita e leitura.
Característica 4: Interfaceamento- Um Banco de Dados deverá disponibilizar formas de acesso gráfico, em linguagem natural, em SQL ou ainda via menus de acesso, não sendo uma "caixa-preta" somente sendo passível de ser acessada por aplicações.
Característica 5: Esquematização- Um Banco de Dados deverá fornecer mecanismos que possibilitem a compreensão do relacionamento existentes entre as tabelas e de sua eventual manutenção.
Característica 6: Controle de Integridade-Um Banco de Dados deverá impedir que aplicações ou acessos pelas interfaces possam comprometer a integridade dos dados.
Característica 7: Backups- O SGBD deverá apresentar facilidade para recuperar falhas de hardware e software, através da existência de arquivos de "pré-imagem" ou de outros recursos automáticos, exigindo minimamente a intervenção de pessoal técnico.
OBS: O SQL é uma linguagem universal de definição de base de dados e manipulação de dados.SQL Server , MySql são SGBD.
» OLE DB / ODBC / ADO
O OLE DB é uma camada que está situada no topo do banco de dados. O ADO, por sua vez, está no topo do OLE DB e oferece uma visão simplificada do banco de dados. Como cada BD expõe sua funcionalidade com uma série de funções próprias API (Application Programming Interface) para acessar cada BD pela interface nativa você tem de aprender características do BD (baixo nível).Para desenvolver aplicativos que conversem com dois bancos de dados diferentes (SQL Server e Oracle, por exemplo) você teria que conhecer duas API"s diferentes e suas peculiaridades, a não ser que você use o OLE DB e o ADO.
O OLE DB oferece uma visão unificada de diferentes fornecedores de dados.Cada BD possui sua própria série de fornecedores de serviços OLE DB, que fornecem uma visão uniforme do BD. O ADO esconde as peculiaridades de cada BD e fornece aos desenvolvedores uma visão conceitual simples do BD em uso.
A diferença entre ADO e OLE DB é que o OLE DB permite que você tenha maior controle sobre o processo de acesso de dados, onde usa uma interface de baixo nível. O OLE DB utiliza ponteiros e outros mecanismos do C++, tornando substancialmente mais difícil que o ADO.O ADO oferece uma visão simplificada e de alto nível para o acesso a BD.
Você também pode acessar o BD por meio de ODBC, que é similar ao OLE DB, porém é uma tecnologia antiga , e não há razão para usar drivers ODBC. Muitos conhecem DAO e RDO, essas são tecnologias antigas de acesso a BD por meio de ODBC e são equivalentes ao ADO.
» ADO
Veremos uma visão geral do objeto ADO.Um aplicativo cliente realiza o seguinte:
- Conexão com banco de dados.
- Executa comandos por meio do banco de dados.
- Recupera informações do banco de dados.
Os objetos básicos do ADO que correspondem a essas operações são chamados de Connection, Command e Recordset. O objeto Connection representa uma conexão com o banco de dados.Você especifica o banco de dados que deseja conectar e chame o método Open.
Uma vez que você estabeleceu uma conexão com o BD, os comandos podem ser executados. Um comando pode ser uma instrução SQL ou o nome de um procedimento armazenado.Para executar uma instrução SQL ou um procedimento armazenado , você deve configurar um objeto Connection e depois chamar seu método Execute para executar o comando.O objeto Command contém a instrução SQL ou o nome do procedimento armazenado, bem côo os argumentos necessários.Se o comando recupera informações os resultados serão mantidos em um objeto Recordset onde poderá acessa-los dentro do seu aplicativo por meio dos métodos e das propriedades do Recordset.
Nos próximos artigos falaremos detalhadamente sobre o objeto ADO. Mas antes veremos a Arquitetura Cliente / Servidor onde abordaremos o Modelo de Duas e Três camadas.
- Representando dados em XML no SQL ServerSQL Server
- Diferenças entre SEQUENCES x IDENTITY no Microsoft SQL Server 2012SQL
- Utilizando FILETABLE no SQL Server 2012SQL Server
- NHibernate com o Delphi Prism: Acessando um Banco de Dados SQL ServerVisual Studio
- Novidades no SQL Server Codinome DenaliSQL Server