Aula 24 - Views - Visões

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 5

CAMPUS

INSTITUTO FEDERAL DE EDUCAÇÃO,


CIÊNCIA E TECNOLOGIA DE SÃO
PAULO São Paulo

Banco de Dados Aula 24

Professor: Francisco Veríssimo Luciano e Glauber da Rocha Balthazar


E-mail: [email protected]

13 - Aula 13 – 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:

CREATE VIEW <nome> AS


SELECT
<campos>
<corpo da view>
FROM <tabela>

13.4 Criando uma view

Inicialmente é necessário criar a tabela Produtos abaixo:

CREATE VIEW vwProdutos AS


SELECT IdProduto AS Código,
Nome AS Produto,
Fabricante,
Quantidade,
VlUnitario AS ValorUnitario,
Tipo
FROM Produtos

Agora basta consultar a view e observar o retorno:

SELECT * FROM vwProdutos

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

ALTER VIEW vwProdutos AS


SELECT IdProduto AS Código,
Nome AS Produto,
Fabricante,
Quantidade,
VlUnitario AS [ValorUnitario],
Tipo
FROM Produtos
WHERE VlUnitario > 499.00

Agora basta consultar a view e observar o retorno. Qual o retorno obtido?

13.6 Excluindo uma view

Para excluirmos uma view é bem simples, ou seja, é só usar o comando DROP VIEW, como
podemos ver a seguir:

DROP VIEW vwProdutos

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.

Veja outro exemplo:

Crie a tabela e popule-a com os dados a seguir

Criando a view

CREATE VIEW viewEmpregados AS


SELECT
FirstName as Nome,
LastName as Sobrenome,
FirstName + ' ' + LastName as NomeCompleto,
Country as Pais
FROM Employees
Usando a view:

SELECT * FROM viewEmpregados


ORDER BY NomeCompleto

Alterando a view:

ALTER VIEW viewEmpregados AS


SELECT
FirstName as Nome
,LastName as Sobrenome
,FirstName + ' ' + LastName as NomeCompleto
,Country as Pais
,City as Cidade
FROM Employees

Excluindo a view:

DROP VIEW viewEmpregados

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

MECENAS, Ivan. OLIVEIRA, Vivianne. Banco de Dados: Do modelo conceitual à


implementação física. Rio de Janeiro: Alta Books, 2005. 180 p.

ELMASRI, Ramez E. & NAVATHE, Shamkant B, Sistema de Bancos de Dados – Fundamentos


e Aplicações, São Paulo: ADDISON WESLEY BRASIL, 2005.

MACEDO, Diego. Modelagem Conceitual, Lógica e Física de Dados. 2011. Acessado em


<14/02/2015>. Disponível em <http://www.diegomacedo.com.br/modelagem-conceitual-logica-e-
fisica-de-dados/>.

NASCIMENTO, Manuela Cicco do. Br2Oracle :Geração automática de esquema relacional a


partir da ferramenta BrModelo para o SGBD Oracle. Monografia para conclusão de graduação
em Ciência da Computação. Orientador: Prof. Fernando da Fonseca de Souza. Recife, 30 de
Janeiro de 2008. Universidade Federal de Pernambuco - Centro de Informática.

RABELO, Ricardo J. Banco de Dados. MaterialDAS5316. 2009. Acessado em <14/02/2015>.


Disponível em
<http://www.das.ufsc.br/~rabelo/Ensino/DAS5316/MaterialDAS5316/Banco_de_Dados/bd_intro.pd
f>.

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>.

PIVETTA, Elisa Maria. BANCO DE DADOS: Modelagem de Dados – Normalização. UFSM/CAFW,


2011. Acessado em <18/02/2015>. Disponível em
<http://www.cafw.ufsm.br/~elisa/bd/normalizacao1.pdf>.

FROZZA, Angelo Augusto. BANCO DE DADOS - NORMALIZAÇÃO. Instituto Federal Catarinense.


2011. Acessado em <18/02/2015>. Disponível em <http://www.ifc-
camboriu.edu.br/~frozza/2011.1/IE10/IE10-BDD-Aula003-Normalizacao-Revisao.pdf>.

IFSudesteMG. Exercícios sobre normalização. Acessado em <19/02/2015>. Disponível em


<http://sistemas.riopomba.ifsudestemg.edu.br/dcc/materiais/1997751601_Exemplos_sobre_norma
lizacao%20resolvido.pdf>.

SANTOS, Ricardo. Módulo 2: correção exercícios - normalização. Acessado em <19/02/2015>.


Disponível em <http://ricardosantos.net/arquivos/Normalizacao_resolvidos.pdf>.

LOPES, ABRAHÃO. AULA 11-12 Modelo Conceitual, Lógico e Físico, Entidade-


Relacionamento. Instituto Federal do Rio Grande do Norte, campus Mossoró, 2014. Acessado em
<19/02/2015>. Disponível em <http://docente.ifrn.edu.br/abrahaolopes/2014.1-integrado/3.2401.1v-
prog-b-dados/modelo-conceitual-logico-fisico-relacionamento-cardinalidade>.

BIANCHI, Wagner. Entendendo e usando índices - Parte 1. 2008. Acessado em <19/02/2015>.


Disponível em <http://www.devmedia.com.br/entendendo-e-usando-indices-parte-1/6567>.

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>.

Você também pode gostar