VISÃO EM SQL

 

Conceitos

 

Uma visão é a representação de uma tabela derivada de uma ou mais tabelas da base de dados. Ela é uma forma de criar uma perspectiva personalizada dos dados armazenados, permitindo aos usuários acessar e manipular os dados de maneira mais conveniente. As visões podem conter colunas selecionadas das tabelas originais, bem como junções e cálculos que simplificam consultas complexas.

 

As visões podem ser usadas para melhorar a segurança, limitando o acesso aos dados sensíveis. Além disso, ajudam a abstrair a complexidade das consultas, tornando mais fácil para os desenvolvedores realizar operações frequentes sem a necessidade de escrever consultas complexas repetidamente.

 
 

Criação de Visões

 

Para criar uma visão em SQL, utilizamos a instrução CREATE VIEW. Aqui está um exemplo de criação de uma visão que mostra informações sobre funcionários e departamentos:

 

Imagine uma grande empresa que em uma equipe substancial de funcionários, cada um deles alocado em um departamento específico, como Desenvolvimento de Software, Marketing, Recursos Humanos, Finanças, etc. Essa empresa deseja ter uma visão consolidada das informações dos funcionários e seus respectivos departamentos para fins de análise e relatórios.

 
CREATE VIEW vw_FuncionarioDepartamento AS
SELECT Funcionario.Email, Funcionario.Cargo, Departamento.Nome AS Departamento
FROM Funcionario
JOIN Departamento ON Funcionario.DepartamentoID = Departamento.ID;
 

Uma vez criada, a visão pode ser consultada como se fosse uma tabela real:

 
SELECT * FROM vw_FuncionarioDepartamento;
 

A figura abaixo ilustra a visão criada para os funcionários e departamentos, simplificando a consulta de informações relevantes através da combinação de tabelas.

 
Email do Funcionário Cargo do Funcionário Departamento
joao@example.com Desenvolvedor Tecnologia
maria@example.com Gerente de Marketing Marketing
carlos@example.com Analista de RH Recursos Humanos


Vantagens das Visões

 

As visões em SQL oferecem várias vantagens:

 
  • Simplificam consultas complexas ao agrupar junções e projeções;
  •  
  • Oferecem uma camada de segurança ao restringir o acesso a dados sensíveis;
  •  
  • Promovem a reutilização de consultas ao encapsular a lógica de acesso aos dados;
  •  
  • Permitem uma abstração das estruturas de tabelas subjacentes;
  •  
  • Melhoram o desempenho ao permitir a criação de índices nas visões.
  •  

Considerações

 

As visões em bancos de dados desempenham um papel importante na aplicação dos conceitos da álgebra relacional. Elas permitem uma abstração conveniente dos dados armazenados, permitindo aos desenvolvedores criar perspectivas personalizadas dos dados, simplificando consultas complexas e promovendo a reutilização de lógica de acesso.

 

Ao aplicar os princípios da álgebra relacional, as visões podem ser entendidas como resultados de operações fundamentais sobre tabelas. Essas operações incluem projeção, seleção, junção, união e diferença, que podem ser combinadas para criar visões que atendam às necessidades específicas dos usuários.

 

Por exemplo, uma visão que mostra os nomes e as notas dos alunos que obtiveram uma pontuação superior a 8.0 em uma disciplina pode ser obtida aplicando a operação de seleção e projeção sobre as tabelas de Aluno e Nota. Isso ilustra como as visões são aplicações práticas da álgebra relacional para extrair informações relevantes a partir dos dados subjacentes.

 

Você pode pensar nas visões como uma ferramenta poderosa que permite aos desenvolvedores expressar consultas complexas e relacionamentos de maneira intuitiva e eficiente, segurança e facilidade de uso de um banco de dados. Elas permitem aos desenvolvedores criar perspectivas personalizadas dos dados, simplificando consultas complexas e promovendo a reutilização de lógica de acesso. É importante projetar visões cuidadosamente para atender às necessidades dos usuários e garantir a coerência dos dados exibidos.

 

Lembre-se de que, ao projetar visões, é fundamental considerar os princípios da álgebra relacional para garantir que as operações realizadas preservem a coerência dos dados e produzam resultados precisos e significativos.

 

Lembre-se de que a criação de visões deve ser considerada como parte do projeto geral do banco de dados, levando em conta os requisitos de segurança, desempenho e facilidade de manutenção.

 

Utilização de Visões

 

As visões podem ser utilizadas de diversas maneiras:

 
  • Simplificação de consultas recorrentes: Ao criar uma visão que encapsula uma consulta complexa, os desenvolvedores podem economizar tempo e evitar a repetição de código.
  •  
  • Segurança e restrição de acesso: As visões podem ser usadas para limitar o acesso a partes específicas dos dados, permitindo que usuários vejam apenas as informações relevantes para eles.
  •  
  • Agregação de dados: É possível criar visões que consolidam dados de várias tabelas ou registros, fornecendo uma visão agregada útil para análises e relatórios.
  •  
  • Ocultamento de detalhes: As visões permitem ocultar a estrutura interna das tabelas subjacentes, proporcionando uma camada de abstração e evitando que os usuários finais vejam informações sensíveis.
  •  
  • Personalização de resultados: Desenvolvedores podem criar visões que mostram apenas as colunas e registros necessários para atender a um caso de uso específico.
  •  

Limitações das Visões

 

Embora as visões sejam poderosas, é importante estar ciente de algumas limitações:

 
  • Desempenho: Consultas em visões podem ter um desempenho inferior em comparação com a consulta direta às tabelas, especialmente quando envolvem várias camadas de visões.
  •  
  • Atualizações: Nem todas as visões podem ser atualizadas diretamente. As visões que envolvem junções complexas, agregações ou funções podem ter restrições de atualização.
  •  
  • Uso de índices: Em alguns bancos de dados, as visões podem não ser otimizadas para uso de índices, o que pode afetar o desempenho das consultas.
  •  
  • Complexidade: O uso excessivo de visões pode aumentar a complexidade do modelo de dados, tornando-o mais difícil de manter e entender.
  •  

Suponha que você tenha um banco de dados contendo tabelas de produtos e pedidos. Você pode criar uma visão para mostrar informações sobre produtos populares e seus pedidos correspondentes:

 
CREATE VIEW vw_ProdutosPopulares AS
            SELECT Produto.Nome, Produto.Preco, COUNT(Pedido.ID) AS TotalPedidos
            FROM Produto
            JOIN PedidoItem ON Produto.ID = PedidoItem.ProdutoID
            JOIN Pedido ON PedidoItem.PedidoID = Pedido.ID
            GROUP BY Produto.ID;
 

Esta visão conta a contagem total de pedidos para cada produto, juntamente com o nome do produto e o preço. Ela une as tabelas Produto, PedidoItem e Pedido para obter essas informações.


Nome do Produto Preço Total de Pedidos
Smartphone Modelo X $599.99 25
Notebook Ultra Y $1299.99 15
Fone de Ouvido Premium $99.99 50


Com intuito de apoiar o aprendizado em Banco de Dados, sugere-se assistir a videoaula para o aperfeiçoamento no conhecimento deste conteúdo.

Atividade de Fixação

 

No intuito de fixar a aprendizagem iniciada por meio deste módulo e verificar como está sua compreensão sobre o mesmo, são sugeridos alguns exercícios de fixação para serem resolvidos. Clique no link de exercícios ao lado, pois será por meio dele iniciada a lista de exercícios sobre os conteúdos estudados até este momento. Boa revisão sobre os mesmos!!