You are on page 1of 6

Introduo a Views

Veja neste artigo uma introduo ao uso de Views no SQL Server.


Share

Ol Pessoal, Escrevo esse artigo, primeiramente para reforar os conhecimentos daqueles que j os tem e para trazer queles que ainda no tem em mente os conceitos e aplicaes deste procedimento de banco de dados Microsoft. Este artigo foi escrito com seu foco voltado para o SQL Server 2000. CONCEITOS O que uma view? Onde se aplicam as views? Ela um procedimento armazenado? Uma view influencia na desempenho de um banco de dados? Como so criadas? Como executamos, aps a sua criao? Uma view uma maneira alternativa de observao de dados de uma ou mais entidades (tabelas), que compem uma base de dados. Pode ser considerada como uma tabela virtual ou uma consulta armazenada. Geralmente e recomendvel, uma view, implementada encapsulando uma instruo SELECT (busca de dados para exposio), guarda os dados em uma tabela virtual, armazenando tambm em cache, pois todas as consultas ao banco, encapsuladas ou no, ao serem executadas, so armazenadas em cache. Por este motivo, pode ser mais rpido ter uma consulta armazenada em forma de view, em vez de ter que retrabalhar uma instruo. As views nos possibilitam mais que simplesmente visualizar dados. Elas podem ser implementadas tambm com algumas aplicaes de restrio:

- Restrio usurio x dados; Ex.: Seu departamento de vendas no precisa saber ou ter acesso a uma coluna que contm valores (dados) referentes aos salrios dos desenvolvedores. - Restrio usurio x domnio; Ex.: Podemos restringir o acesso de um usurio especfico a colunas (domnios) especficas (os) de uma tabela. - Associar vrios domnios formando uma nica entidade; Ex.: Podemos ter vrias "JOIN" encapsuladas em uma view, formando somente uma tabela arbitrariamente. - Agregar informaes, em vez de fornecer detalhes; Ex.: Podemos apresentar um somatrio de despesas em ligaes de um determinado usurio, restringindo acesso aos detalhes da conta. As vantagens de se usar views so: - Economizar tempo com retrabalho; Ex.: Voc no precisar escrever aquela instruo enorme. Escreva uma vez e armazene! - Velocidade de acesso s informaes; Ex.: Uma vez compilada, o seu recordset (conjunto de dados) armazenado em uma tabela temporria (virtual). - Mascarar complexidade do banco de dados; Ex.: As views isolam do usurio a complexidade do banco de dados. Nomes de domnios podem ser referenciados com literais e outros recursos. Isso proporciona aos desenvolvedores a capacidade de alterar a estrutura sem afetar a interao do usurio com o banco de dados. - Simplifica o gerenciamento de permisso de usurios;

Ex.: Em vez de conceder permisso para que os usurios contem tabelas base, os proprietrios de bancos de dados podem conceder permisses para que os usurios consultem dados somente atravs de views. Isso tambm protege as alteraes na estrutura das tabelas base subjacentes. Os usurios no sero interrompidos durante uma visualizao de dados. - Organizar dados a serem exportados para outros aplicativos; Ex.: Voc pode criar uma view baseada em uma consulta complexa, que associe at 32 tabelas e depois exportar dados para outro aplicativo para anlise adicional. Pode ser gerado um arquivo de DUMP* automaticamente. Criando views Quando voc cria uma VIEW, o SQL Server verifica a existncia de objetos que contm referncias em uma definio de view. O nome de sua view deve seguir o padro de regra de identificadores. A especificao do nome do proprietrio de uma view opcional* (caso voc queira tornar uma view pblica, declare "dbo.nome_entidade"). No atribua a uma view, um nome j utilizado para outro objeto j existente no mesmo banco de dados. Os objetos contidos em um banco de dados podem ser visualizados pelo Query Analyse, digitando o seguinte comando T-SQL: USE NOME_DO_BANCO GO SELECT * FROM information_schema.tables GO Sero apresentados quatro domnios: - Table_Catalog; Informa o nome do banco, dono (owner) dos objetos; - Table_Schema; Informa o owner fsico do objeto; - Table_Name;

Informa o nome fsico de referncia do objeto; - Table_Type; Informa o tipo do objeto; Em meio a view, podemos usar alguns comandos interessantes. Como destaque, WITH ENCRYPTION. Esse comando, encripta os cdigos de sua view, no possibilitando a edio por outro usurio. Um detalhe que devemos nos alertar quanto encriptao nas views que, para desencript-la, devemos lembrar do comendo que foi escondido para retornar a view sem a criptao. Logo abaixo, uma view completa que pode ser implementada no seu banco de dados local, alterando os parmetros corretamente, de acordo com as entidades e domnios a serem referenciados. Vamos criar uma view para retornar, nesse exemplo, todos os aniversariantes desse ms.

USE NOME_DO_BANCO GO CREATE VIEW dbo.viewAniversariante (nome, sobrenome, data_nascimento) AS SELECT nome, sobrenome, CONVERT(char(8), data_nascimento, 2) FROM usuario AS u INNER JOIN jovens AS j ON u.usuario_no = j.usuario_no GO Dando tudo certo com as consistncias, execute a view da seguinte maneira: SELECT * FROM viewAniversariante GO At a prxima, onde falaremos de triggers (gatilhos)...

xxxxxxxxxxxxxxxxxxxxxxxxxxxx

VIEW
Por Luiz Paulo de Oliveira Santos Data de Publicao: 27 de Outubro de 2006 Bem, o que um VIEW? Basicamente VIEW uma tabela virtual gerada a partir do resultado de uma instruo SELECT. Uma VIEW contm linhas e colunas, como se fosse uma tabela real, os campos na VIEW so campos obtidos em uma tabela de um banco de dados. E na VIEW pode-se chamar funes e clusulas SQL como WHERE e JOIN. Obs: O projeto e a estrutura do banco de dados original no ser alterado pelas funes utilizadas em sua confeco, pelo WHERE, ou JOINs implementados na VIEW. Um dos objetivos ao se implementar VIEWs evitar a constante manuteno de cdigos SQL em aplicaes, ou seja, pode-se implementar um SELECT * padro na aplicao (que estar extraindo dados previamente filtrados da VIEW) e controlar o que e como ser mostrado diretamente do servidor, alterando as caractersticas da VIEW. A instruo para a criao de uma VIEW:
CREATE VIEW <nome da view> AS SELECT colunas(s) FROM <tabela> WHERE <condio>

Exemplo:
CREATE VIEW comedias AS SELECT * FROM filmes WHERE tipo = 'Comdia';

ou
CREATE VIEW v219 AS SELECT qtde, preco, qtde*preco AS valunit FROM t;

E uma VIEW pode ser alterada ou removida. A instruo para alter-la lembra em sua sintaxe a instruo de criao:
REPLACE VIEW <nome da view> AS SELECT colunas(s) FROM <tabela> WHERE <condio>

Exemplo:
REPLACE VIEW v219 AS SELECT qtde, preco, qtde*preco*1.10 AS vallucro FROM t;

A instruo para a remoo de uma VIEW:


DROP VIEW <nome da view>

O uso de VIEWs pode facilitar muito o trabalho do desenvolvedor, principalmente na manuteno das informaes que sero expostas, pois alterando apenas a VIEW no banco todos os clientes passaro a contemplar a alterao. Alguns bancos implementam uma instruo chamada SNAPSHOT, com algumas caractersticas similares VIEW, mas esse assunto deixamos para outra oportunidade. Um abrao e at a prxima.