Você está na página 1de 15

Instituto Federal da Bahia – IFBA

Campus Vitória da Conquista

Visão

Prof. Me. Pablo Freire Matos


pablofmatos@gmail.com

Slides baseados no material elaborado pelo professor:


Luciano Calderoni
Problema de Consultas
 As tabelas são o modo mais conveniente de
armazenar dados
 Mas muitas vezes não de visualizar os dados
Funcionário É possível incluir nas consultas
codFunc nome salario codDepto o nome do departamento em
vez de seu código?
1000 Flávio 2500,25 101
1548 Valéria 3500,55 300 É preciso fazer um JOIN com a
3001
tabela Departamento para
Luciano 1420,63 101
todas as aplicações que
desejarem essa informação
Como omitir o salário dos funcionários (por
questões de segurança) para alguns usuários?
Impossível → não há como “esconder” colunas,
todas são visíveis
Visão
2
Solução
 Ocultar o salário
 Incluir o nome do departamento na própria consulta

Funcionário
codFunc nome nomeDepto
1000 Flávio RH
1548 Valéria Vendas
3001 Luciano RH

Visão
3
Problemas de Consultas
 Funciona
 Não mostra o salário dos funcionários e mostra o nome do
departamento em vez do código

 Mas...
 A busca do nome do departamento e a omissão do salário foram
feitas no SELECT (aplicação)
 As informações continuam separadas e acessíveis
 Todas as aplicações devem implementar essa consulta
 Solução pouco conveniente

 Outra Solução
 Utilizar visões

Visão
4
Visões
 Uma visão (view) é uma forma alternativa de
visualizar os dados armazenados nas tabelas
 Permite acesso mais conveniente aos dados

codFunc

Visão
5
Visões
 Uma visão mostra dados de tabelas, mas não é
uma tabela
 Contém linhas e colunas, como as tabelas
 Mas os dados que mostra não pertencem a ela, e sim
as tabelas relacionadas
 É portanto uma tabela virtual, assim como o resultado
de um SELECT
Visão_Funcionário
codFunc nome nomeDepto
1000 Flávio RH
1548 Valéria Vendas
3001 Luciano RH
Visão
6
Vantagens

 As aplicações acessam a visão


 As aplicações não precisam replicar a lógica do
SELECT

 As consultas ficam mais simples, pois parte da


complexidade foi resolvida pela visão

 Se houver alguma alteração nas tabelas


 Nomes de colunas, relacionamentos ...
 Somente a visão precisa ser alterada

Visão
7
Visão: Sintaxe

Visão
8
Uso de uma Visão

Visão
9
Considerações

 As visões são tratadas como tabelas, mas não são!


 Os dados de uma visão ficam sempre armazenados
em uma ou mais tabelas
 Não causam problema de performance
 As visões ficam armazenadas nos metadados do SGBD

Visão
10
Exemplo 1: Definir a visão v_Gerente para
representar todos os funcionários cujo cargo é
Gerente.

Visão
11
Exemplo 1: Recuperar os dados dos
funcionários Gerentes: a. Sem usar a visão.
b. Usando a visão criada
Sem visão

Com visão

Visão
12
Exemplo 1: Recuperar o nome dos funcionários
subordinados ao Gerente João: a. Sem usar a visão. b.
Usando a visão criada.
Sem visão

Com visão

Visão
13
Visões
 É possível modificar os dados das tabelas por
meio das visões
 INSERT, DELETE e UPDATE funcionam
 O conteúdo da tabela referenciada pela visão é
modificado de acordo com a operação executada

 Mas existem restrições


 Todas as colunas não-nulas da tabela devem existir
na visão
 A visão não pode conter JOINS

Visão
14
Conclusão

 Visões
 Tornam mais conveniente a visualização dos
dados armazenados nas tabelas

 Não armazenam dados

 Tornam as consultas menos complexas

 Não afetam a performance

Visão
15

Você também pode gostar