Aula 24 - Views - Visões
Aula 24 - Views - Visões
Aula 24 - Views - Visões
13.1 - Definição
A view pode ser definida como uma tabela virtual composta por linhas e colunas de dados vindos
de tabelas relacionadas em uma query (um agrupamento de SELECT’s, por exemplo). Uma View
é uma tabela virtual baseada num conjunto de dados retornados por uma consulta SQL
(SELECT): View = Visão = Exibição
As linhas e colunas da view são geradas dinamicamente no momento em que é feita uma
referência a ela. Como já dito, a query que determina uma view pode vir de uma ou mais tabelas,
ou até mesmo de outras views. Observação: podemos realizar qualquer query por meio de views,
assim como alterar dados por meio delas, o que é feito com algumas restrições.
Ao criarmos uma view, podemos filtrar o conteúdo de uma tabela a ser exibida, já que a função
da view é exatamente essa: filtrar tabelas, servindo para agrupá-las, protegendo certas colunas e
simplificando o código de programação. É importante salientar que, mesmo após o servidor do
SQL Server ser desligado, a view continua “viva” no sistema, assim como as tabelas que criamos
normalmente. As views não ocupam espaço no banco de dados.
Uma View contém linhas e colunas como uma tabela real e, portanto, pode ser utilizada em
consultas SQL como uma tabela real, podendo receber comandos JOINs, WHERE, etc.
13.2 - Vantagens
Temos muitos motivos e vantagens para usarmos views em nossos projetos. A seguir são
citados três que podem fazer a diferença:
Reuso: as views são objetos de caráter permanente. Pensando pelo lado produtivo
isso é excelente, já que elas podem ser lidas por vários usuários simultaneamente.
Segurança: as views permitem que ocultemos determinadas colunas de uma
tabela. Para isso, basta criarmos uma view com as colunas que acharmos
necessário que sejam exibidas e as disponibilizarmos para o usuário.
Simplificação do código: as views nos permitem criar um código de programação
muito mais limpo, na medida em que podem conter um SELECT complexo. Assim,
criar views para os programadores a fim de poupá-los do trabalho de
criar SELECT’s é uma forma de aumentar a produtividade da equipe de
desenvolvimento.
13.3 – Sintaxe:
Observações importantes:
Note que a view tem algumas diferenças em relação à tabela de Produtos, já que na Listagem
1 podemos ver que foram adicionadas alguns alias para as colunas IdProduto, Nome e VlUnitario.
Assim podemos formatar a view para que fique melhor até que uma (ou mais) tabela(s).
Com a view podemos incluir dados em uma tabela. Para isso é necessário que haja uma das
seguintes situações: as colunas da tabela de origem que não são exibidas na view devem aceitar
valores nulos, ser auto incrementais ou ter um valor padrão (que use a constraint default) definido
para elas.
Quando realizamos um INSERT, UPDATE ou DELETE dos dados de uma tabela de origem da view,
essa ação se reflete automaticamente na view.
13.5 Alterando uma view
Para excluirmos uma view é bem simples, ou seja, é só usar o comando DROP VIEW, como
podemos ver a seguir:
A exclusão de uma view implica na exclusão de todas as permissões que tenham sido
dadas sobre ela. Dito isso, devemos usar o comando DROP VIEW apenas quando
desejamos de fato retirar a view do sistema. Em caso contrário, podemos usar o
comando ALTER VIEW para alterarmos o código da view da forma que acharmos mais
conveniente.
Criando a view
Alterando a view:
Excluindo a view:
13.7 Considerações
Consultas SQL complexas (envolvendo vários JOINs, WHERE etc) podem ser criadas
como uma view e, dessa forma, facilitar o trabalho do desenvolvedor quando este precisar
acessar estes dados. View é uma espécie de “atalho” para consultas SQL. A view sempre
irá exibir as informações atualizadas, pois o SGBD irá processar os seus dados toda vez
que ela for executada.
Referências
MACHADO, Felipe Nery Rodrigues. Projeto de banco de dados: uma visão prática. -- 16 ed.
rev.e atual. -- São Paulo: Érica, 2009.
ROCHA, Ricardo. Bases de Dados 2005/2006. Parte VIII: Normalização. DCC - Faculdade de
Ciências da Universidade do Porto. Acessado em <18/02/2015>. Disponível em
<http://www.dcc.fc.up.pt/~ricroc/aulas/0506/bd/apontamentos/parteVIII.pdf>.
RODRIGUES, Joel. Triggers no SQL Server: teoria e prática aplicada em uma situação real
Acessado em <23/11/2015>. Disponível em <http://www.devmedia.com.br/triggers-no-sql-server-
teoria-e-pratica-aplicada-em-uma-situacao-real/28194>.