4326: introdução a banco de dados com microsoft® sql · de consulta t-sql, ... o sql server é...
TRANSCRIPT
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Nome ___________________________________________ Número: _____ Série ___________________
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
1
4326: Introdução a Banco de Dados com Microsoft® SQL ServerTM 2005
Competências: Compreender a orientação a objetos e arquitetura cliente-servidor, aplicando-as em bancos de dados; Habilidades: Implementar as estruturas modeladas usando banco de dados; Bases Tecnológicas: Ambientes/ferramentas de gerenciamento de bancos de dados (Linguagem de apoio: SQL Server 2005).
Descrição: Analizar como a arquitetura cliente/servidor funciona, e examinar vários bancos de dados e regras de negócio que podem ser usadas com os componentes Microsoft SQL Server 2005. Também serão executadas consultas com bancos de dados SQL Server 2005 usando as ferramentas de consulta T-SQL, abordando o básico da linguagem T-SQL, sua sintaxe e como administrar scripts T-SQL. Este curso também prepara o aluno para obter a certificação no exame 70-431.
Introdução ao SQL Server 2005
SQL Server 2005 é um Sistema Gerenciador de Banco de Dados Relacional
(SGBDR). Ele possibilita o gerenciamento das classes de dados com ferramentas de
Business Inteligence (BI) e suporte a arquitetura cliente/servidor, que pode ser usada
para promover acesso multi-usuário. Mesmo com um número grande de usuários ou
recursos como um servidor web. É possível usar componentes como o SQL Server
2005 Report Services (SSRS), o Integration Services (SSIS) o Replication Service, e o
Notification Services para promover BI e soluções de dados empresariais.
Descrevendo a arquitetura cliente/servidor
A arquitetura cliente/servidor consiste em cliente, servidor e elementos de rede.
O cliente é quem requisita o serviço, enquanto o servidor prove o serviço de
banco de dados. Pode haver uma aplicação criada para arquitetura cliente/servidor que
os usuários usam a partir de estações de trabalho (clientes).
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
2
Para auxiliar os usuários no acesso a aplicação, é necessário instalar
aplicações cliente nas estações de trabalho. Também é necessário instalar a parte
servidor da aplicação no servidor que está preparado com software servidor como
o Microsoft SQL Server 2000 ou 2005.
O usuário pode acessar o SQL Server 2005 usando Pipes ou bibliotecas
multi-protocolo e uma rede Windows. O SQL Server permite acesso ao servidor
baseado no login ou em grupos de identificação de segurança (SID).
O Microsoft Access tem apenas arquivos compartilhados enquanto a
arquitetura cliente/servidor permite compartilhar até mesmo processos. Quando
uma estação cliente faz uma requisição de um serviço de dados ao servidor, o servidor
responde a requisição.
É possível categorizar aplicações cliente/servidor como baseadas em
arquitetura multi-camada onde a regra de negócio é distribuida e onde o
processamento acontece no cliente ou no servidor.
Pode-se obter muitos benefícios usando a arquitetura cliente/servidor.
Primeiramente, melhorando a integridade de dados, pois os dados são
armazenados de maneira centralizada.
Além disso, é possível definir regras de negócio e de segurança no
servidor e garantir que essas regras funcionem igualmente entre os usuários.
Ainda é possível também otimizar o trafego da rede por que o SGBDR atua
efetivamente consultando e retornando apenas os dados que a aplicação
requisita.
Além do mais a aplicação pode dividir a carga de processamento entre o
cliente e o servidor, promovendo portanto uma performance melhorada.
Além de que a arquitetura cliente/servidor permite melhor escalabilidade de
processos.
Ao escalar o consumo de recursos é possivel estabelecer uma escala vertical ou
horizontal, assim é possível melhorar a configuração do servidor para um
processamento melhor ou aumentar o número de processos distribuídos na rede
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
3
para balancear melhor o acesso aos dados. Pode-se até aumentar o número de
CPUs ou de Servidores.
SQL Server 2005
O SQL Server é um SGBDR que pode ser usado para armazenar dados e manter
relacionamentos entre várias entidades de dados. Em um SGBDR, os dados são
organizados e acessados de acordo com os relecionamentos entre os valores dos
dados. Portanto, é possível colecionar informações sobre várias entidade de dados
usando os relacionamentos entre elas. Isso ajuda a reduzir a redundancia de dados e
melhora a performance do SGBDR.
O SQL Server é desenhado para proporcionar alta performance, escalabilidade,
fidelidade e administração de dados segura. Assim, é possível manter os
relacionamentos entre os dados usando regras de integridade de dados. O SQL Server
usa padrões industriais e os padrões do Instituto Nacional de Padronizações
Norte-americano (ANSI) em conformidade com a linguagem SQL para contemplar
aplicações Cliente/Servidor. É possível usar o SQL Server para gerenciar bancos de
dados com o Processamento de Transações On-line (OLTP), e usar o SSAS para
gerenciar banco de dados de Processamento Analítico On-line (OLAP).
Como um SGBDR o SQL Server pode ser usado para executar as funções a
seguir:
� Manter os relacionamentos ente as entidades de dados em um banco de dados.
� Garantir que os dados estão armazenados corretamente e que as regras que estabelecem os relacionamentos entre os dados não serão violadas.
� Recuperar todos os dados armazenados caso haja alguma falha no sistema.
� Focar em atividades associadas com banco de dados OLTP e T-SQL.
� Permitir a partir do ambiente um alto volume de transações multi-usuário.
Obs: Aplicações não SGBDR como o Microsoft Access não permitem amplo
cenário multi-usuário. Diferentemente do SQL Server que usa arquitetura
cliente/servidor, o MS Access usa arquitetura arquivo-servidor.
Identificando os componentes do SQL Server 2005
O SQL Server 2005 tem muitos componentes e serviços que o torna mais
seguro, escalável e fiel e mais fácil para interagir com aplicações desenvolvidas.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
4
Relational Database Engine (Motor do Banco de Dados Relacional):
O Relational Database Engine é o mais seguro ambiente de armazenamento,
retirada e modificação de dados em formato relacional ou XML. A partir dele é possível
armazenar objetos BLOB como imagens, documentos e planilhas no SQL Server. É
possível também usar o motor de banco de dados para controlar o acesso veloz e as
transações que são processadas para atender a demanda das aplicações.
SQL Server 2005 Analysis Services (SSAS)
É um tipo de serviço que pode ser usado para servir aplicações OLAP e data
mining para business inteligence. Também podem ser desenhadas, criadas e
administradas estruturas multidimensionais agregadas a partir de bancos de dados
relacionais.
SQL Server 2005 Integration Services (SSIS)
Serviço que pode ser usado para desenvolver soluções de integração de dados
com alta performance. Também pode ser usado para importação e exportação de
dados.
Notification Services
É um framework que permite desenvolver e depurar aplicações que geram e
enviam mensagens personalizadas instantâneas para uma lista de contatos. Essas
mensagens podem ser entregues para varios dispositivos externos como telefones
móveis, handhelds, etc.
SQL Server 2005 Reporting Services
É um serviço que pode ser usado para extrair dados a partir de um servidor de
banco de dados e gerar relatórios. Usando o SSRS também é possível criar relatórios
que extraem conteúde de várias fontes de dados, publicar relatórios em vários
formatos, e centralizar o gerenciamento da segurança e das assinaturas.
Service Broker
É um mecanismo de fila que pode ser usado para validar, transacionar e trocar
menssagens entre serviços de software. Estes serviços podem ser partes de uma
aplicação baseada em um banco de dados ou aplicações distribuidas.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
5
Suporte nativo http
Quando instalado sobre o Microsoft Windows Server 2003 o SQL Server 2005
pode responder às requisições feitas por pontos http. Usando suporte nativo ao
protocolo é possível construir interfaces para SQL Server sem usar o Microsoft Internet
Information Services (IIS).
SQL Server Agent
É um centro de agendamento de tarefas que automatiza o gerenciamento do
banco de dados e a administração de tarefas, eventos e alertas.
.NET CLR (Common Language Runtime)
É um componente da Área de Trabalho .NET para Microsoft Windows. Usando
esta plataforma é possível implementar soluções de banco de dados usando código
escrito em linguagem .NET como o Visual C#, ou Visual Basic.
Replication
É um tipo de serviço que pode ser usado para copiar e distribuir dados e objetos
de banco de dados de um banco para outro. É possível syncronizar estes banco de
dados para mantê-los consistentes.
Full Text Search
Permite indexação rápida e flexível para pesquisas baseadas em palavras-chave
de dados de texto armazenado em um banco de dados SQL Server.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
6
Introdução a Bancos de Dados SQL Server
Um banco de dados é uma coleção de dados relacionados, e o dado em um
banco de dados é persistente, isto é, não se perde. Bancos de dados podem ser
categorizados em bancos de dados hierárquicos, relacionais e dimensionais. Estes
bancos de dados são diferentes entre si na maneira como armazenam os dados. Os
bancos de dados SQL Server são bancos de dados relacionais que armazenam dados e
mantem relacionamentos ente as várias entidades do banco de dados.
Bancos de Dados Relacionais
Em bancos de dados relacionais, os dados são armazenados em tabelas. Cada
tabela possui linhas horizontais também chamadas tuplas ou simplesmente linhas, e
colunas na vertical, que são os atributos das entidades. É possível identificar cada
tabela atribuindo nomes únicos a cada uma delas, o banco de dados usa esses nomes
para acessar as tabelas.
Os objetos vitais em um banco de dados relacional são as entidades, as
chaves e os relacionamentos. Entidades representam objetos do mundo real que
podem ser identificados de maneira única e distinta, como lugares, objetos,
eventos e pessoas. Atributos identificam ou descrevem as entidades.
Os atributos que descrevem as entidades são chamados também de “atributos
não chave” e, atributos que ajudam a identificar registros em uma entidade são
chamados atributos chave. As chaves também podem se referir a outras
entidades e são portanto usadas para construir relacionamentos entre as
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
7
entidades. Relacionamentos definem a associação entre entidades e as mantém
juntas.
As duas entidades em um relacionamento são sempre chamadas de
entidades pai ou filho (forte ou fraca). Os tipos de relacionamentos implementados
entre duas entidades são um para um, muitos para muitos e um para muitos. O
relacionamento um para um ocorre quando uma instância de uma entidade pai
relaciona-se com uma e apenas uma instancia da entidade filho (e vice-versa). Um
relacinamento um para muitos acontece sempre que uma instancia de uma entidade
pai está relacionada com muitas instancias da entidade filho (e uma instancia da
entidade filho está relacionada com uma e apenas uma instancia da entidade pai). Um
relacionamento muitos para muitos acontece quando uma instancia de uma entidade
pai está relacionada com muitas instancias da entidade filho e uma instancia da
entidade filho está relacionada com muitas instancias da entidade pai.
Do ponto de vista lógico, é possível que existam várias entidades em um
relacionamento enquanto fisicamente apenas duas tabelas podem estar relacionadas.
Normalização
Quando modelamos o banco de dados de uma aplicação, é preciso estruturar
eficientemente as tabelas do banco para eliminar redundâncias e facilitar o acesso aos
dados. A normalização é o processo de eliminação de duplicação de dados através da
definição de chaves, novos relacionamentos e entidades. Durante a normalização, é
preciso dividir tabelas em tabelas menores possibilitando que cada uma descreva
apenas um tipo de entidade como uma pessoa, um lugar, um pedido, um item de
produto.
Existem seis níveis de normalização, mas a maioria dos bancos de dados são
normalizados até a terceira forma normal.
Primeira forma normal (1FN):
Uma tabela estará na primeira forma normal se:
� Tiver uma chave primária
� Cada coluna tiver apenas um dado que não pode ser dividido em mais partes.
� Não existe um grupo de colunas repetidas (Telefone 1, Telefone 2, Telefone3...), (Produto 1, Produto 2, Produto 3, ...)
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
8
Segunda forma normal (2FN):
Uma tabela estará na segunda forma normal se:
� Estiver na primeira forma normal;
� Cada coluna não chave for dependente funcional total da chave primária (completa).
Terceira forma normal (3FN):
Uma tabela estará na terceira forma normal se:
� Estiver na segunda forma normal;
� Toda coluna não chave for dependente funcional total da chave primária sem que haja colunas não chave que dependam de qualquer outra coluna não chave.
A normalização de um banco de dados pode ser realizada de duas formas. É
possível normalizar as tabelas do banco de dados da 1FN até a 3FN ou normalizar
diretamente as tabelas pela 3FN. É possível escolher uma aproximação mais fácil com
base no tamanho da aplicação e na transparência dos requisitos.
Obs: Se as tabelas não forem normalizadas antes de armazenar dados nelas, o
usuário final pode encontrar dificuldade ao extrair os dados, por que existem muitas
dependências e multiplas relações. Apesar dos usuários finais trabalharem com a
informção eles não serão envolvidos no processo de normalização, o conhecimento
sobre o processo facilitará definitivamente a criação de consultas melhores para eles.
Processo de normalização
Vamos supor a normalização de um banco de dados para uma livraria chamada
AdventureWorks. Observe a estrutura de uma das tabelas criadas para o banco de
dados da livraria. Você acha que a tabela tem redundâncias e que ela deve ser
normalizada?
Título Autor1 Autor2 ISBN Área NPaginas Editora
Delphi 7
Avançado
MANZANO,
José
MENDES,
Sandro
8571948542 Progrmação 262 Érica
Administração
de Sistema de
Informação
O’BRIEN,
James
MARAKAS,
George
8586804770 Administração 537 McGrawHill
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
9
Se sim, então devemos começar o processo de normalização identificando três
problemas com a tabela modelada.
Primeiro: O armazenamento de dados na tabela não é eficiente: Exemplo:
Caso os autores MANZANO e MENDES forem autores muito dedicados e escreverem
muitos livros, logo o nome deles será repetido várias vezes. Teremos então o
desperdício de espaço.
Segundo: O modelo não protege a integridade dos dados: Se o mesmo nome
tiver que ser escrito muitas vezes é provável que o usuário escreva o nome do autor
errado em algumas linhas. Isso faz com que os dados se tornem inconcistentes e
alguém que pesquisar os livros a partir do nome do autor terá o resultado da consulta
incorreto.
Terceiro: A tabela não é escalável: Isto é, não é possível registrar mais de dois
autores para cada livro. Além disso a tabela se tornará um arquivo de dados muito
grande, prejudicando a recuperação posterior dos dados armazenados.
Baseado nos problemas citados acima fizemos a seguinte modificação na
tabela:
Título Autor ISBN Área NPaginas Editora
Delphi 7
Avançado
MANZANO,
José
8571948542 Informática 262 Érica
Administração de
Sistema de
Informação
O’BRIEN,
James
8586804770 Administração 537 McGrawHill
Delphi 7
Avançado
MENDES,
Sandro
8571948542 Informática 262 Érica
Administração de
Sistema de
Informação
MARAKAS,
George
8586804770 Administração 537 McGrawHill
Você acha que a tabela está suficiente ou pode ser melhorada?
A tabela deveria ser dividida em mais tabelas? Que tabelas seriam essas?
Autor, Livro ou Área?
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
10
Tabela autor CodAutor Sobrenome Nome NomeCompleto Biografia
1 MANZANO José MANZANO José Professor universitário e
consultor.
Tabela livro ISBN Título NPaginas Editora
8571948542 Delphi 7 Avançado 262 Érica
Tabela área
CodArea Area
1 Informática
Finalmente é preciso redefinir as chaves primárias das tabelas criadas:
Tabela autor com chave primária *CodAutor Sobrenome Nome NomeCompleto Biografia
1 MANZANO José MANZANO José Professor universitário e
consultor.
Tabela livro com chave primária *ISBN Título NPaginas Editora
8571948542 Delphi 7 Avançado 262 Érica
Tabela área com chave primária
*CodArea Area
1 Informática
Defina a relação entre as tabelas:
Autor e Livro: “Um autor pode escrever um ou mais livros e um livro pode ser escrito por um
ou mais autores, logo a relação é muitos para muitos”.
Neste caso, (sabendo que não existe relação muitos para muitos em um banco
de dados físico), é necessário criar uma terceira tabela capaz de relacionar as tabelas
livro e autor.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
11
Tabela Autor_Livro *ISBN *CodAutor
8571948542 1
8586804770 3
8571948542 2
8586804770 4
Área e Livro: “Uma área pode ter mais de um livro enquanto um livro pode pertencer a uma
ou mais áreas.”
Tabela Area_Livro *ISBN *CodArea
8571948542 1
8586804770 1
8586804770 2
O SQL Server fará valer a regra de integridade referencial? Isto é, será
permitido excluir uma área da tabela área, que esteja relacionada com algum livro?
Seria possível adicionar um livro a uma área que não existe?
Podemos observar que o banco de dados já está na primeira forma normal,
porém, será que podemos melhorar a tabela livro separando a coluna Editora em outra
tabela?
Tabela Editora *CodEditora Editora
1 Érica
Assim, a tabela Editora está separada do livro, para tanto, qual é a relação
entre as duas tabelas?
“Uma editora pode publicar um ou mais livros, enquanto um livro pode ser
publicado por uma e somente uma editora”.
Assim devemos alterar a tabela do lado “muitos” do relacionamento e adicionar
uma chave estrangeira que possa ser relacionada a chave primária da tabela do lado
“um” no caso, editora.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
12
Tabela Livro *ISBN CodEditora Título NPaginas
8571948542 1 Delphi 7 Avançado 262
Mas, percebemos que, um livro pode ser editado por outra editora caso o autor
desfaça o contrato com a editora antiga, o que faz com que o livro, isto é, os seus
atributos, dependam totalmente do ISBN e do Código da editora que o editou,
(independendo somente do ISBN como estava no modelo anterior) assim teremos uma
chave primária composta para garantir que podemos cadastrar o mesmo livro mais de
uma vez para mais de uma editora.
Tabela Livro *ISBN *CodEditora Título NPaginas
8571948542 1 Delphi 7 Avançado 262
8571948542 2 Delphi 7 Avançado 262
A chave primária composta garante que todos os demais campos da tabela
dependam totalmente dos dois campos definidos como chaves primárias.
Por outro lado ela permite que existam dois livros diferentes, um editado por
uma editora e outro, (diferente do primeiro), editado por outra editora, assim a tabela
livro estará na segunda forma normal.
Finalmente observamos que a tabela Autor está fora da terceira forma normal
pois o campo NomeCompleto depende funcionalmente dos campos Nome e
Sobrenome, portanto é necessário excluí-lo tornando a tabela dentro dos critérios da
terceira forma normal.
Tabela Autor
*CodAutor Sobrenome Nome Biografia
1 MANZANO José Professor universitário e
consultor.
Objetos de um banco de dados SQL Server
Antes de converter um banco de dados lógico em um banco de dados físico é
necessário identificar os recursos do SGBDR que o banco de dados irá suportar. O
modelo físico do banco de dados varia de acordo com o que suporta o banco de dados
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
13
físico e de acordo com os seus objetos. O SQL Server 2005 suporta vários objetos de
banco de dados. Observe a tabela a seguir:
Objetos Descrição
Tabelas
Uma tabela é composta por linhas e colunas. Ela é usada para armazenar dados em
um banco de dados relacional. Cada tabela armazena informações sobre tipos de
objetos modelados no banco de dados.
Views Uma view ajuda a encapsular uma consulta em uma entidade relacional e facilita a
visão de dados de uma ou mais tabelas de um banco de dados.
Constraints Uma constraint define regras que regulam os valores permitidos e é um mecanismo
que força a integridade dos dados.
Indices
Em um banco de dados relacional, um indice é um campo de acesso rápido aos dados
de uma tabela, baseado em valores chave. Os indices também podem retornar
multiplas linhas de uma tabela. O SQL Server suporta indices agrupados e não
agrupados. A chave primária é automáticamente indexada. Em pesquisas Full-Text
um índice Full-Text armazena informações sobre palavras significativas e a sua
localização em uma dada coluna.
Funções
Uma função é um pedaço de código que funciona como uma unidade lógica
independente. Uma função pode retornar um valor escalar ou uma tabela. Qualquer
código capaz de executar a lógica incorporada em uma função pode chamar uma
função ao invés de repetir a mesma lógica.
Procedimentos
Uma procedure é um conjunto de código T-SQL pré-compilado a ser executado e que retorna parâmetros para os usuários. É possível usar uma procedure temporariamente ou permanentemente. Além disso, é possível executar procedures automaticamente, sem o SQL Server ser inicializado.
Triggers
(Gatilhos)
Uma trigger (gatilho) é uma Stored Procedure que é executada quando dados em uma tabela específica são modificados. Pode-se criar gatilhos para forçar integridade referencial entre dados logicamente relacionados em tabelas diferentes.
Tabela 1 - Objetos de um banco de dados SQL Server 2005.
Para organizar os objetos de um banco de dados dentro de espaços nomeados,
o SQL Server 2005 introduz um novo recurso chamado schemas. Schemas ajudam a
administrar a propriedade e a segurança dos objetos. A segurança em SQL Server é
organizada hierarquicamente. Usa-se schemas para administrar a permissão dos
objetos efetivamente. Pode-se agrupar regras de segurança que requerem permissões
comuns e autorizar permissões para um schema ao invés de fazê-lo para objetos
individuais.
Como criar schemas
Sintaxe: CREATE SCHEMA Nome_Schema
[<elemento_1>, ..., <elemento_n>]
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
14
O nome e o dono do schema podem ser especificados através da palavra
reservada AUTHORIZATION
Os elementos do esquema citados na sintaxe acima podem ser substituidos por
uma declaração CREATE TABLE, CREATE VIEW ou GRANT válida. Portanto, é possível
criar um schema, definir seus objetos e definir suas permissões em uma única sintaxe,
conforme o exemplo a seguir:
--Criando um esquema e uma tabela que pertence ao esquema MarketingDep
CREATE SCHEMA MarketingDep
CREATE TABLE Produto(Codigo INT, Descricao VARCHAR(50));
GO
--Listando os dados contidos nos campos da tabela criada
SELECT * FROM MarketingDep.Produto;
GO
--Excluindo a tabela e o esquema criados, respectivamente
DROP TABLE MarketingDep.Produto;
GO
DROP SCHEMA MarketingDep;
GO
Vantagens de usar schemas
As permissões dos objetos de banco de dados são facilmente administradas
através do uso de schemas. Pode-se atribuir um schema a muitos usuários se eles
pertencem ao mesmo grupo de usuários do sistema operacional ou têm uma regra de
banco de dados na aplicação. Pode-se também autorizar multiplos usuários ao mesmo
esquema padrão através de um mesmo nome comum. Pois o schema é separado do
usuário, pode-se remover o nome ou a regra de um usuário sem mudar o nome
qualificador dos objetos do banco de dados criados pelo usuário.
Além do que, você não precisa armazenar objetos compartilhados em um
schema dbo. Ao invés disso, você pode armazenar objetos compartilhados em um
esquema padrão comum.
Schemas necessitam de um nome qualificador completo
No SQL Server 2005, todo objeto tem um nome qualificador completo, que tem
a seguinte forma: <Servidor>.<BancoDados>.<Schema>.<Objeto>. Se não
forem mencionados os nomes do servidor e do banco de dados no nome qualificador
completo, o servidor atual e o nome do banco de dados são assumidos. A menos que
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
15
seja explicitado especificamente um nome padrão para o usuário, nomes de objetos
não qualificados que existem por padrão em cada banco de dados são atribuídos ao
schema dbo.
Objetos podem ser referenciados em um banco de dados usando vários
métodos como Servidor.Banco.Schema.Objeto, Schema.Objeto e Objeto.
Como usar Identificadores Delimitadores
Quando são usadas palavras reservadas para nomes de objetos ou partes de
nomes de objetos, ou caracteres que não são delimitadores. Quando não é qualquer
identificador que regula as regras de identificadores, é necessário usar identificadores
delimitadores. Os dois tipos de identificadores delimitadores usados em T-SQL são:
Aspas duplas: SELECT * FROM “Lacunas no Nome da Tabela”
Colchetes SELECT * FROM [Lacunas no Nome da Tabela]
Esse recurso é válido apenas quando a opção QUOTED_IDENTIFIER está
ativada. Por padrão o Microsoft Objetct Linking Embedded Database (OLE DB) do SQL
Server e do driver SQL Server Object Data Base Connectivity (ODBC) ativa a opção
QUOTED_IDENTIFIER quando a aplicação é conectada ao banco de dados. Para se
certificar de que a opção está sendo executada, é fortemente recomendado usar
colchetes [].
Componentes de uma tabela de um banco de dados SQL Server
Quando armazenamos dados em uma tabela de um banco de dados, é preciso
identificar os componente da tabela e verificar que os dados que estão sendo
armazenados são os dados relevantes para estes componentes.
Tabelas ou Entidades
Entidades são representações do mundo real como lugares, objetos ou pessoas.
Em um modelo de banco de dados relacional, as tabelas representam uma única
entidade. Os dados de uma entidade, quando organizados em forma de linha e coluna,
formam as tabelas.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
16
Campos, Atributos ou Colunas
Atributos são as características de uma entidade. Em um modelo de banco de
dados relacional, atributos correspondem às colunas ou campos de uma tabela de um
banco de dados.
Tipos de Dados
Para definir o valor dos dados que podem ser armazenados em uma coluna ou
variável, é preciso usar os tipos de dados. O SQL Server tem alguns tipos de dados
pré-definidos, porém, você também pode criar tipos de dados definidos pelo usuário.
Chaves primárias e chaves estrangeiras
Chaves primárias são atributos ou um conjunto de atributos que identificam de
forma única cada instância de uma entidade. Chaves estrangeiras são atributos que
identificam a entidade fraca em um relacionamento (ou o lado filho de um
relacionamento).
Restrições
Para limitar a possibilidade de valores que podem ser inseridos em colunas, é
possível usar restrições de checagem (check constraints). Os valores das expressões
das constraints avaliarão a condição a partir de uma expressão booleana.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
17
Introdução a linguagem SQL
SQL é uma linguagem padronizada que é usada para acessar e manipular
dados. O conceito de banco de dados relacional e SQL foi introduzido pelo Dr. E. F.
Codd na IBM em 1970. Após isso, a Linguagem de Consulta em Ingês Estruturado
(SeQuel) foi desenvolvida pelo laboratório de Pesquisas da IBM como uma linguagem
padrão para ser usada com bancos de dados relacionais. Mais tarde, para padronizar o
uso do SQL, a ANSI lançou o ANSI SQL.
Diferenças entre ANSI SQL e T-SQL
SQL é uma linguagem de programação não procedural usada para consultar
modelos de dados relacionais. Linguagens não procedurais são diferentes das
procedurais pois elas permitem que seja definida uma lista de dados a serem
manipulados, e uma única operação a ser aplicada a acada elemento da lista. O
processamento do banco de dados determina a melhor forma de listar e aplicar as
operações aos dados. De qualquer forma, em uma linguagem procedural, após definir
a lista de dados, é necessário planejar passo a passo, a forma como serão
armazenados e atualizados os dados.
Vantagens de linguagens não procedurais sobre as linguagens procedurais
Uma linguagem não procedural é melhor que a liguagem procedural por dois
motivos principais:
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
18
É possível executar consultas em uma linguagem não procedural em menos
linhas, se comparado com as linguagens procedurais;
É mais facil encontrar erros em linguagens não procedurais pois elas são mais
rápidas em termos de operações de entrada e saída de dados e processamento.
A SQL tem sido a linguagem dominante de banco de dados por mais de três
décadas. Esta linguagem tem sido padronizada por causa da introdução de muitos
SGBDR no mercado, esses SGBDR contem sintaxy SQL proprietária e dialetos SQL.
Assim, os comandos SQL que executam diferentemente em um SGBDR, devem falhar
quando forem portados para outro SGBDR.
ANSI e T-SQL
ANSI define o padrão para SQL. Consequentemente, distribuidores que
enfrentam o problema de incompatibilidade entre os produtos de SGBDR podem
implementar o padrão ANSI SQL para interoperabilidade. É necessário escrever scripts
baseados no padrão ANSI SQL para certificar a compatibilidade e a portabilidade do
banco de dados. O último padrão ANSI é o SQL 2003. Nem um distribuidor implementa
o padrão ANSI completo. Antes disso, SQL 92 foi o padrão. O SQL Server 2000 e 2005
estão básicamente coerentes com o padrão ANSI SQL 92. SQL Server 2005 também
implementa muitos recursos do SQL 99.
Transact-SQL (T-SQL) é a implementação da linguagem SQL pela Microsoft e
está fortemente ligado aos padrões ANSI-SQL.
Categorias do código SQL
Existem três tipos básicos de categorias de SQL ANSI 92 que ainda são
comunmente usadas em todos os bancos de dados.
Data Defination Language (DDL):
Sintaxes SQL DDL podem ser usadas para a estrutura do banco de dados ou
schemas. A seguir algumas das mais relevantes sintaxes SQL DDL:
CREATE: Usada para criar objetos em um bancos de dados;
ALTER: Usada para alterar objetos de um banco de dados:
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
19
Exemplo: USE AdventureWorks;
GO
--Exemplo de declaração DDL ALTER
ALTER TABLE Production.TransactionHistoryArchive
DROP CONSTRAINT
PK_TransactionHistoryArchive_TransactionID;
GO
DROP: Usada para excluir objetos de um banco de dados;
Data Control Language (DCL)
Declarações DCL podem ser usadas para controlar o acesso aos dados e para
certificar a segurança. A seguir algumas declarações DCL mais relevantes:
GRANT: Declaração usada para atribuir privilégios de acesso dos objetos do
banco de dados aos usuários.
USE AdventureWorks
GO
GRANT SELECT
ON Production.Product
TO PUBLIC
GO
REVOKE: Declaração usada para retirar os privilégios dados aos usuários a
partir do comando GRANT.
DENY: É uma declaração usada para impedir que determinados usuários
possam executar determinadas tarefas.
Data Manipulation Language (DML):
Declarações DML são usadas para manipular dados. A seguir, algumas
declarações DML relevantes:
INSERT: Usada para inserir dados em tabelas;
Exemplo: USE AdventureWorks;
GO
--Exemplo de declaração DML INSERT
INSERT INTO Production.UnitMeasure
VALUES ('F2', 'Square Feet', GETDATE());
GO
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
20
UPDATE: Modifica dados existentes nas tabelas;
DELETE: Deleta registros das tabelas;
SELECT: Seleciona registros das tabelas.
Exemplo: USE AdventureWorks;
GO
--Declaração DML SELECT
SELECT *
FROM Production.Product
ORDER BY Name ASC;
GO
Obs: O SQL 2003 contem sete novas classes que substituem o DDL, DML e
DCL. Essas classes são SQL connection statements, SQL control statements, SQL data
statements, SQL dianostic statements, SQL schema statements, SQL session
statements e SQL transaction statements.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
21
Ferramentas de pesquisa T-SQL
Em SQL Server 2005, é possível pesquisar bancos de dados usando várias
ferramentas como o SQL Server Management Studio, o Business Intelligence
Development Studio, o SQLCMD, e o Visual Studio .NET Designers. Ao usar o
SQL Server Management Studio, é possível criar uma solução de banco de dados e
executar uma query. Também é possível executa uma query SQL Server em outras
aplicações clientes como o Microsoft Office Access e o Microsoft Office Excel. Além
disso, ao conectar o SQL Server é possível executar queries a partir de outras
aplicações clientes que usam o Open Database Connectivity (ODBC), o Object Linking
and Embedding Database (OLEDB) e o SQL Native Access Client (SNCLI).
Ferramentas de pesquisa em bancos de dados SQL Server 2005
Observe a seguir as ferramentas de desenvolvimento em SQL Server 2005 com
o foco no SQL Server Management Studio. Existem várias ferramentas para
desenvolvimento no Ambiente de Desenvolvimento SQL Server.
SQL Server Management Studio
É o ambiente de desenvolvimento principal para o SQL Server 2005. Ele pode
ser usado para criar, executar, e salvar scripts associados a um banco de dados
específico. Pode ser usado também para criar soluções de banco de dados contendo
todos os scripts e aplicações de bancos de dados graficamente. Além disso, o SQL
Server Managemnet Studio oferece o Query Builder, que pode ser usado para criar e
rodar queries.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
22
Business Intelligence Development Studio
É um ambiente de desenvolvimento para SQL Server 2005. Pode ser usado para
criar e manter soluções de BI ponto-a-ponto. O Business Intelligence Development
Studio também é usado para desenvolver aplicações SSAS.
SQLCMD
É uma nova ferramenta de pesquisa em linha de comando do SQL Server 2005
que substitui os utilitários isql e o osql. O SQLCMD funciona como uma alternativa para
a interface gráfica do SQL Server Management Studio. Podem ser executadas
pesquisas interativas em SQLCMD, assim como poderiam ser executadas com o isql e
o osql. Além disso, o SQLCMD pode ser usado para automatizar scripts T-SQL que são
evocados pelos arquivos de lote ou outras aplicações que não precisam ser
programadas na API do SQL Server.
Visual Studio .NET Designers
SQL Server 2005 proporciona muitas extensões para o Microsoft Visual Studio
.NET environment. Isso torna fácil a construção de recursos SQL Server 2005 como
relatórios e objetos de banco de dados.
Obs: Também podem ser usados os produtos do pacote Office como Microsoft
Office Access e Microsoft Office Excel para acessar bancos de dados SQL Server e
apresentar os resultados em seus respectivos ambientes. Usuários também executam
pesquisas usando consultas T-SQL em ambiente SQL Server Management Studio. Após
exeutar suas consultas eles copiam e colam o código em suas respectivas aplicações.
Identificando os elementos do SQL Server Management Studio
O SQL Server Management Studio pode ser usado para criar e administrar
projetos de banco de dados, que contém todas as conexões, consultas e outros
objetos associados com a aplicação. Com o SQL Server Management Studio pode
se combinar multiplos projetos de bancos de dados na mesma aplicação, e assim
adiministrar aplicações complexas.
Em aplicações de exemplo que são usadas para demonstração, o projeto de
banco de dados é armazenado no servidor Gen-Dev. Para ver todos os projetos do
servidor é preciso conectar-se a ele informando o nome do servidor, o login e senha na
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
23
caixa de diálogo de conexão. Após este procedimento, os conteúdos do Object
Explorer e do Summary aparecerão. A janela do Object Explorer mostra o projeto e
seus subdiretórios.
O Object Explorer é uma ferramenta gráfica que é usada para localizar e
administrar bancos de dados, e objetos de bancos de dados. Agora, feche a janela
Object Explorer. Assim será mais fácil ver as informações relacionadas ao projeto na
janela Summary. Após ver as informações, feche a janela Summary. E veja que a
janela do Object Explorer pode ser aberta a partir do menu View.
Para adicionar um novo projeto no Solution Explorer, clique no menu File,
New, a caixa de diálogo Novo Projeto irá surgir. Agora, especifique o nome para o
novo projeto e clique em OK. Perceba que o novo projeto está disponível no Solution
Explorer, que é uma ferramenta gráfica que mostra os detalhes do novo projeto na
janela Project Solutions em uma estrutura de árvore. Deverá haver três sub-
diretórios: Conecction, Queries, e Miscellaneous.
Após criar um novo projeto, será necessário administrar o projeto e o servidor.
Para ver uma lista de servidores que são registrados para o seu banco de dados, clique
no menu View, clique em Registered Servers. A janela Registered Servers
aparecerá com uma lista de servidores registrados. Essa janela facilita a administração
eficiente dos servidores, proporcionando operações como parar, pausar e inicializar
servidores.
Para extrair informações de um banco de dados para o projeto, é preciso criar
uma pesquisa na janela Query. Essa janela é usada para escrever e executar um query
SQL. Para criar uma nova consulta, clique com o botão direito na pasta gen-dev
(Registered Servers), aponte para Connect e clique em New Query. Um arquivo New
Query aparecerá na janela Query.
Também é possível abrir uma janela Nova Query no SQL Server Management
Studio usando outros métodos. No menu File, aponte para New e clique em Query in
Current Connection, ou clique no botão New Query na barra de ferramentas.
Neste caso, será necessário entrar com login e senha para se conectar ao banco de
dados.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
24
Para executar uma query no banco de dados AdventureWorks, em um
arquivo Nova Query escreva USE AdventureWorks. Para executar as declarações,
clique no botão Execute, na barra de ferramentas ou pressione F5. A guia Messages
mosta uma mensagem que indica que o comando foi executado com sucesso. Isso
significa que houve sucesso ao se conectar ao banco de dados AdventureWorks. Para
obter os 10 primeiros endereços da tabela Address do banco de dados AdventureWoks,
digite os comandos de consulta pertinentes. E então, para executar as declarações
feitas, use o botão Execute na barra de ferramentas.
Para criar e editar uma consulta, use o Query Editor. Ferramenta de interface
amigável que ajuda a desenvolver consultas facilmente. Para evocar o Query Editor,
clique com o botão direito em uma query, em Design Query clique em Editor. Na
tabela Address do Query Editor, desmarque as caixas de checagem de RowGuid,
ModifiedDate e AddressID. Note que o comando SELECT mudou para suportar apenas
os item selecionados através das caixa de checagem da tabela Address. Clique em OK.
Após, clique no botão Execute da barra de ferramentas. Observe que os dez primeiros
endereços da tabela Address foram exibidos, sem as colunas que foram desmarcadas.
Agora, oculte a caixa de diálogo Registered Servers usando o Auto-Ocultar.
Com este recurso é possível auto-ocultar janelas que não estão em uso,
automaticamente. Para habilitar o Auto-Ocultar na janela Registered Servers, clique no
botão Auto-Ocultar. Para abrir a janela novamente, clique na guia Registered
Servers. Também é possível fechar a janela Registered Servers usando o Ocultar.
Com este recurso é possível simplismente ocultar a janela. Para acionar o recurso na
janela Registered Servers, clique no botão Posição da Janela, e clique em Ocultar.
Para mostrar uma janela oculta, clique no menu View e clique no nome da janela.
Sem usar o Auto-Ocultar e o Ocultar, é possível fechar diretamente qualquer janela
usando o botão Fechar.
Demonstração:
1. Identificando os Elementos do SQL Server Management Studio
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
25
Figura 1 - Caminho para o SQL Server Management Studio
2. Menu iniciar, apontar para Todos os Programas, Microsoft SQL Server 2005 e clique em SQL Server Management Studio. A caixa de diálogo Connect to Server irá surgir.
Figura 2 - Caixa de diálogo Connect
3. Na caixa de diálogo Connect to Server clique em Connect para aceitar os valores padrão. O conteúdo das janelas Object Explorer e Summary aparecerão.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
26
Figura 3 - Microsoft SQL Server Management Studio
4. Feche o Object Explorer.
5. Feche a janela Summary.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
27
Figura 4 - Registered Servers
6. No menu View, clique em Object Explorer. O Object Explorer irá surgir.
Figura 5 - Object Explorer a partir do menu View
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
28
7. No menu Arquivo, aponte para New e clique em Project. Uma caixa de diálogo Novo Projeto irá surgir;
Figura 6 - Menu New, Project
8. Na caixa de texto Name, selecione SQL Server Scripts1 e escreva Exemplo e clique em OK.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
29
Figura 7 - Caixa de diálogo New Project
9. Caso a janela Registered Servers não esteja ativa clique no menu View e clique em Registered Servers. A janela que contem os Servidores Registrados aparecerá.
10. Clique com o botão direito no diretório gen-dev (ou outro servidor que esteja sendo usado GILBERTE-325703 por exemplo), aponte em Connect e clique em New Query ou clique no menu File, New, Query with Current Connection. Uma caixa de diálogo para conexão poderá surgir, clique em Connect. O arquivo GILBERTE-325703.master-SQLQuery1.sql aparecerá na janela Query.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
30
Figura 8 - Menu File, New, Query with Current Connection
11. No arquivo GILBERTE-325703.master-SQLQuery1.sql, escreva USE AdventureWorks
Figura 9 - GILBERTE-325703.Master-SQLQuery1.sql
12. Na barra de ferramentas clique em Execute. O nome da janela muda de GILBERTE-325703.master-SQLQuery1.sql para GILBERTE-325703.AdventureWorks-SQLQuery1.sql. Na guia da caixa de diálogo uma menssagem surge indicando que o comando foi executado com sucesso.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
31
Figura 10 - GILBERTE-325703.AdventureWorks-SQLQuery1.sql
13. No arquivo GILBERTE-325703.AdventureWorks-SQLQuery1.sql, escreva a linha de código a seguir: SELECT TOP 10 * FROM Person.Address;
14. Na barra de ferramentas clique em Execute. O resultado da consulta é mostrado na guia Results.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
32
Figura 11 - Exemplo de dados com Query
15. No arquivo GILBERTE-325703.AdventureWorks-SQLQuery1.sql, selecione o comando SELECT TOP 10 * FROM Person.Address, clique com o botão direito e clique na opção Design Query in Editor. A janela do Query Editor surge.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
33
Figura 12 - Usando o Design Query in Editor
16. Na tabela Address(Person), clique para limpar as caixas de checagem das colunas RowGuid, ModifiedDate e AddressID.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
34
Figura 13 - Query Designer
17. Clique em OK
18. Na barra de ferramentas clique em Execute. O resultado da query é mostrado na guia Results.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
35
Figura 14 - Executando consulta modelada no Query Design
19. Na janela Registered Servers, clique na ferramenta Window Position e clique em Auto Hide.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
36
Figura 15 - Auto Hide
20. Clique na janela Registered Servers que está oculta a esquerda
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
37
Figura 16 - Caixa de diálogo Registered Server Auto Oculta
21. Na caixa de diálogo Registered Servers, clique com no botão Window Position e clique em Hide.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
38
Figura 17 - Window Position, Hide
22. Feche o SQL Server Managements Studio.
SQL Server Solutions
Figura 18 - SQL Server 2005: Solution Explorer
O SQL Server Solution é uma coleção de um ou mais projetos que contém
conexões de bancos de dados, e scripts T-SQL. Para criar um SQL Serve Solution, é
preciso criar um projeto especificando o tipo de projeto. Isso pode ser feito a partir da
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
39
seleção do tipo do projeto de uma lista de modelos (templates) do SQL Server. Esses
modelos incluem SQL Server Script, Analysis Server Script, e SQL Mobile
Scripts. Após selecionar o tipo do projeto, a nova solução é criada e exibida no
Solution Explorer.
Funções dos Diretórios SQL Solution
Os vários diretórios do SQL Server Solution: Connection, Queries, e
Miscellaneous, com os componentes apropriados, são disponibilizados no Solution
Explorer. A seguir estão as funções dos componente presentes nos diretórios do
projeto.
O Diretório Connections define os arquivos que podem ser usados para
informar as credenciais de conexão para a nova solução.
O Diretório Queries define os diferentes tipos de queries criadas para o
projeto especifico. Por exemplo, se o projeto é um SQL Server Script, todos os scripts
SQL são armazenados no diretório Queries. A partir do diretório é possível adicionar,
modificar e deletar esses scripts.
O diretório Miscellaneous serve para todos os demais arquivos suportados que
são requisitados pela solução.
Uma Solução SQL Server é salva como um arquivo de extensão .ssmssln.
Quando o arquivo .ssmssln é aberto, é possível ver todos os scripts e conexões que
são salvar para a solução.
Criando um SQL Server Solution
Para criar um SQL Server Solution no Microsoft SQL Server Managemnt
Studio. Abra o SQL Server Management Studio. Conect ao servidor. Conforme
mostrado no primeiro passo, crie um novo projeto no SQL Server Management
Studio. Para isso, no menu File, aponte para New, e clique em Projeto. A caixa de
diálogo New Project surge.
Na caixa de diálogo, a opção SQL Server Scripts está selecionada como
modelo padrão. Na caixa de texto Name, escreva Exemplo2 que será o nome do
projeto, clique em OK. Perceba que este nome também é mostrado na caixa de texto
Solution Name. Ao clicar em OK, o projeto é criado e é exibido o Solution Explorer.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
40
A seguir conecte ao computador que está rodando o SQL Server para executar
consultas. Clique com o botão direito no diretório Connect, e clique em New
Connection. A caixa de diálogo Connect to Server será exibida. Nessa caixa de
diálogo, verifique se o servidor a ser usado está selecionado na caixa de combinação
Server name, e clique em OK.
Depois de estabelecer a conexão ao servidor, você precisa criar uma consulta
para obter os dados desejados. Clique com o botão direito no diretório Queries, e
clique em New Query. Ao adicionar uma query, a caixa de diálogo Connect to
Database Engine surge. Nessa caixa de diálogo, é preciso especificar as informações
para conexão como o nome do servidor e a autenticação. Clique em Connect para
aceitar o padrão.
Agora, renomeie a query para ObterEndereco.sql. O arquivo
ObterEndereco.sql será aberto em uma janela de query. Para acessar os endereços
das dez primeiras pessoas no banco de dados AdventureWorks, digite o comando SQL
a seguir: USE AdventureWorks SELECT TOP 10 * FROM Person.Address. Após
escrever a query, salve-a e salve o projeto.
Além de consultas, pode-se adicionar arquivos mistos como arquivos de ajuda
(Help), documentos do Word e outros projetos ao projeto. Por exemplo, para adicionar
um arquivo de ajuda ao projeto, na caixa de diálogo Add Existing Item, navegue até
o local onde o arquivo está, selecione todos os arquivos a partir dos arquivos listados,
e adicione o arquivo de ajuda, Help.txt. O arquivo aparecerá na janela query. Agora,
o arquivo Help é adicionado ao diretório Miscellaneous e finalmente, salve o projeto.
Demonstração
1. No menu Iniciar, aponte para Todos os programas, Microsoft SQL Server 2005, SQL Server Management Studio.
2. Na caixa de diálogo Connect to Server, verifique o tipo de servidor, o nome e as caixa de autenticação, para saber se estão ok, e clique em Connect para aceitar os valores padrão.
3. No menu File, do SQL Server Management Studio, aponte para New, e clique em Project. A caixa de diálogo New Project surge.
4. Na caixa de texto name, selecione SQL Server Scripts1, escreva Exemplo2 e clique em OK.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
41
5. Na região Solution Explorer clique com o botão direito no diretório Connections do projeto Exemplo2 e clique em New Connection. A caixa de diálogo Connect to Server aparecerá.
Figura 19 - Solution Explorer: Connection, New Connection
6. Na caixa de diálogo Connect to Server, clique em OK.
Figura 20 - Caixa de Diálogo Connect to Server
7. Na região Solution Explorer, clique com o botão direito no diretório Queries e clique em New Query. A caixa de diálogo Connect to Database Engine surge.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
42
Figura 21 - Solution Explorer: New Query
8. Na caixa de diálogo Connect to Database Engine clique em Connect
Figura 22 – Caixa de Diálogo: Connect to Database Engine
9. Na região Solution Explorer, clique com o botão direito no arquivo SQLQuery1.sql, clique em Rename, e escreva ObterEndereco.sql. O arquivo ObterEndereco.sql abre a janela de query.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
43
Figura 23 - Rename: SQLQuery1
10. No arquivo ObterEndereco.sql, escreva a seguinte declaração SQL: USE AdventureWorks SELECT TOP 10 * FROM Person.Address.
Figura 24 - Código SQL em ObterEndereco.sql
11. No menu Aquivo clique em Salvar ObterEndereco.sql.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
44
12. (Para executar esta parte é necessário ter um arquivo “help.txt por exemplo” previamente salvo na área de trabalho!) Na região Solution Explorer, clique com o botão direito no projeto Exemplo2, aponte para Add e clique em Existing Item. A caixa de diálogo Add Existing Item surge.
Figura 25 - Add Existing Item....
13. Na caixa de listagem Look in, clique em Desktop
14. Na lista Files of Type, clique em All files (*.*)
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
45
Figura 26 - Caixa de diálogo Add Existing Item
15. Na guia Desktop, clique em help.txt, clique em Add. O arquivo help.txt irá surgir na janela query.
Figura 27 - Arquivo help.txt adicionado ao projeto Exemplo2
16. Na região Solution Explorer, clique com o botão direito no projeto Exemplo2 e clique em Salvar Exemplo2.ssmssqlproj
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
46
Figura 28 - Salvando o projeto Exemplo2
Executando uma Query em SQL Server Management Studio
SQL Server Management Studio é uma ferramenta integrada com SQL Server
2005 e pode ser usada para criar queries (consultas). Para criar queries, abra o SQL
Server Management Studio. Note que a janela com a caixa de diálogo Connect to
Server irá aparecer. Na aplicação de exemplo usada para demonstração, os projetos
de bancos de dados são armazenados em um servidor de nome GILBERTE-325703
(dado automaticamente em razão da maneira como o SQL Server 2005 foi instalado).
Para ver todos os projetos no servidor é preciso conectar-se a ele a partir do nome do
servidor e das credenciais de autenticação do windows na caixa de diálogo Connect to
Server. Após validar as credenciais, o SQL Server Management Studio aparecerá.
Para abrir uma nova janela de query no SQL Server Management Studio,
clique no botão New Query na barra de ferramentas. O arquivo de query será aberto
na Query Window. A Query Window é usada para escrever queries SQL, executar
stored procedures, e transactions. Para se conectar ao banco de dados
AdventureWorks no qual executaremos as queries, digite o comando USE no arquivo
de query. Perceba que a guia message indica que o comando foi executado
corretamente e a conexão ao banco de dados AdventureWorks está estabelecida.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
47
Figura 29 - Criando uma Query em SQL: Ferramentas NewQuery, Execute e Parse
Agora, para obter os dez primeiros endereços de pessoas a partir da tabela
Address do banco de dados AdventureWorks, escreva a declaração SQL pertinente. E,
na barra de ferramentas, clique no botão Parse (analizar) [Ctrl + F5], para analizar a
query antes de executá-la. Analizar a query ajuda a identificar erros. E pode-se
executar a query otimizando a transação. Para executar a query, clique no botão
Execute (executar) [F5] da barra de ferramentas.
Após executar uma query, será possível observar os resultados na guia
Results. Na guia Messages que está no painel Results, pode ser visto o número de
registros afetados pela query, e o tempo gasto na execução.
Agora, feche o arquivo query. Uma caixa de diálogo para verificar se você
deseja salvar as alterações será exibida. Na caixa de menssagem, clique em Não, se
você não quiser salvar as alterações feitas nos itens exibidos.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
48
Figura 30 - Código SQL preenchido no arquivo query e testado com a ferramenta Parse [CTRL + F5].
A seguir, abra o arquivo ExemploSQL.sql criado anteriormente, a partir do
menu File, Open e File. A caixa de diálogo Open File irá surgir. Abra o arquivo
ExemploSQL.sql. Na caixa de diálogo Connect to Database Engine, clique em
Connectar. Após ajustar as configurações de conexão para o arquivo de exemplo, na
janela Query, selecione o comando e clique no botão Execute (executar) [F5]. Será
possível observar as convenções coloridas na query selecionada. As palavra em azul
são palavras resenvadas, as que estão em rosa são funções, e as que estão em verde
são comentários. Assim, para executar uma query selecionada, na barra de
ferramentas, clique no botão Execute [F5].
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
49
Figura 31 - Query executada: Resultados exibidos no painel Results, guia Results.
Demonstração
1. Menu Iniciar, Todos os programas, Microsoft SQL Server 2005, SQL Server Management Studio. A janela do Microsoft SQL Server Management Studio e a janela Connect to Server irão aparecer.
2. Na caixa de diálogo Connect to Server, clique em Connect. O Object Explorer e o Summary aparecerão.
3. Na barra de ferramentas do SQL Server Managements Studio, clique no botão New Query. O arquivo GILBERTE-325703-SQLQuery1.sql é aberto na janela query.
4. No arquivo GILBERTE-325703-SQLQuery1.sql, digite a sentença USE AdventureWorks e clique no botão Execute [F5].
5. No arquivo GILBERTE-325703-SQLQuery1.sql, digite SELECT TOP (10) * FROM Person.Address e clique no botão Execute [F5].
6. Na barra de ferramentas, clique em Parse [CTRL + F5] e Execute [F5]. O arquivo muda de GILBERTE-325703.master-SQLQuery1.sql para GILBERTE-325703.Adventureworks-SQLQuery1.sql.
7. No painel Results, clique na guia Messages, e na guia Results.
8. Feche o arquivo GILBERTE-325703.Adventureworks-SQLQuery1.sql. A caixa de diálogo verifica se você deseja salvar as alterações nos itens ativos da tela.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
50
9. Clique em Não.
10. (Crie, antes de executar este passo, um arquivo ExemploSQL.sql na área de trabalho) No menu File, aponte para Open, e clique em File. A caixa de diálogo Open File surge. No diretório Desktop, clique no arquivo ExemploSQL.sql e clique em Abrir. O arquivo ExemploSQL.sql abre em uma janela de query.
Figura 32 – menu File, Open File para abrir um arquivo.
11. Na caixa de diálogo Connect to Database Engine, clique em Connect.
12. No arquivo GILBERTE-325703.master-ExemploSQL.sql, selecione as declarações USE AdventureWorks SELECT AddressID, City, Getdate() FROM Person.Address e na barra de ferramentas, clique em Executar.
Tecnologias e Linguagens para Banco de Dados I Profor: Gilberto Braga de Oliveira
Rodovia Pref. Luiz Salomão Chamma, S/N Km 41 – Pouso Alegre – CEP 07895-340
Franco da Rocha – SP – Brasil - Telefones (11) 4443-6110/4449-3115
E-mail: [email protected] Site: http://www.etecfran.com.br/
51
Figura 33 - Resultado da execução de um arquivo (.sql) aberto.