VISÕES EM SQL (VIEW)

 

Em banco de dados relacionais, uma visão (ou "view"), é uma consulta (instrução SQL) armazenada no banco de dados geralmente chamada de "tabela virtual". Essa tabela virtual é derivada de uma ou mais tabelas já existentes no banco de dados e podem ser consultadas como se fossem uma tabela real. Ao criar uma view, o resultado da consulta não é armazenado fisicamente no banco de dados, a cada execução os dados são acessados diretamente das tabelas de origem. As views geralmente são usadas para simplificar consultas complexas, fornecer uma exibição personalizada dos dados ou limitar acesso a dados das tabelas reais.

 

  Exemplo de visão com base nas tabelas "aluno", "cursa" e "disciplina":



Visões Materializadas

Uma visão materializada (ou "materialized view") é semelhante a uma visão lógica. No entanto, visões materializadas têm a capacidade de persistir uma cópia dos resultados de sua consulta diretamente no banco de dados de uma forma semelhante a uma tabela real. Esses resultados podem ser dados resumidos ou calculados a partir de outras tabelas.

 

A materialização de uma visão é uma estratégia que aprimora o desempenho do banco de dados ao lidar com consultas complexas que envolvem muitas tabelas e cálculos. Quando uma consulta é feita em uma visão materializada, ela é realizada diretamente no resultado calculado anteriormente, sem executar nenhum cálculo adicional. Isso torna o processo mais rápido e reduz a carga no banco de dados com um tempo de resposta mais rápido.

 

 Exemplo de visão materializada com base nas tabelas "aluno", "cursa" e "disciplina":


 

É importante considerar que será necessário um espaço extra em disco para armazenar os resultados da consulta e as informações armazenadas na visão materializada precisam ser atualizadas sempre que houver mudanças nas tabelas originais. Essa manutenção é necessária para garantir que os dados estejam sempre consistentes.

 

As visões materializadas são especialmente úteis em consultas que são feitas com frequência e que envolvem operações complexas, mas cujos dados originais não mudam com muita frequência. Dessa forma, o benefício da rapidez na consulta compensa o esforço de manter os dados atualizados. Além disso, é importante notar que nem todos os SGBD suportam Views Materializadas nativamente. Por exemplo, o MySQL não oferece suporte direto a este recurso, embora seja possível implementar uma funcionalidade semelhante através de outros mecanismos, como gatilhos e eventos.



Principais bancos de dados que utilizam visões materializadas:

  • PostgreSQL é um sistema de gerenciamento de banco de dados relacional de código aberto que suporta Views Lógicas (Views) e Views Materializadas (Materialized Views)
  •  
  • Oracle é um sistema de gerenciamento de banco de dados relacional líder no mercado. Ele suporta Views Lógicas (Views) e Views Materializadas (Materialized Views) como recursos avançados para melhorar a eficiência de consultas.
  •  
  • MySQL é um popular sistema de gerenciamento de banco de dados relacional de código aberto amplamente utilizado em aplicações web. Ele oferece suporte somente a Views Lógicas para simplificar consultas complexas.


Exemplo de Utilização/Aplicação:

Em um cenário fictício, você é um aluno matriculado na disciplina SGD2 (Sistemas de Gerenciamento de Dados 2) e foi selecionado para um projeto especial. Seu objetivo é aprimorar o sistema de geração de relatórios de acompanhamento acadêmico na Faculdade do Gama (FGA). A administração da universidade busca um relatório abrangente que avalie minuciosamente o desempenho dos alunos em todas as disciplinas oferecidas pela FGA.

 

O desafio proposto é criar um relatório para:

  • 1. Determinar o número de alunos matriculados em cada disciplina;
  • 2. Média geral das notas desses alunos em cada disciplina.
  • 3. Média de faltas dos alunos em cada disciplina.
 

Para obter essas informações, o administrador do banco de dados da universidade concedeu acesso a três tabelas principais: "aluno", "disciplina" e "cursa". A tabela "aluno" contém informações detalhadas sobre cada aluno, a tabela "disciplina" contém detalhes sobre as disciplinas oferecidas e a tabela "cursa" tem relação entre alunos e disciplinas, registrando as notas e a frequência de cada aluno em cada disciplina. Além disso, foram disponibilizados os seguintes diagramas:

 

  Nivel conceitual - DER:





  Tabelas disponibilizadas "Nível Lógico":




Passo 1: Implementando a view materializada "relatorio_disciplina":

Para atender às demandas da administração da FGA, você decide desenvolver uma view materializada que agregue essas informações de forma eficaz.

 


 

O código SQL cria uma visão materializada chamada "relatorio_disciplina" que contém informações sobre o número de alunos matriculados, a média das notas e a média de faltas para cada disciplina oferecida pela FGA. Essa visão materializada pode ser consultada para obter o relatório detalhado das disciplinas.

 

Passo 2: Atualizando a view materializada:

Uma das vantagens das views materializadas é que podemos atualizá-las conforme necessário para manter os dados atualizados. Reconhecendo que os dados do relatório não mudam com frequência, você decide agendar a atualização da view materializada em intervalos regulares, por exemplo, no início de cada semestre. Para atualizar a visão materializada, é empregado um comando específico para cada SGBD, como exemplo PostgreSQL:

 

 

Passo 3: Consultando a view materializada:

Com a view materializada pronta e atualizada, você está pronto para fornecer à administração da FGA um relatório completo e detalhado. Alguns exemplos de consultas que podem ser execultadas na visão materializada "relatorio_disciplina":

 

Consulta disciplinas com as maiores média de notas:


 

Consulta disciplinas com o maior número de alunos:


 

Consulta de uma disciplina específica e suas estatísticas:


 

 

Nesse exemplo, foi demonstrado como a utilizar Views Materializadas. Essa abordagem contribui para a disponibilização ágil e eficaz de informações relevantes, otimizando consultas no banco de dados. A estratégia de atualização da view materializada a cada semestre assegura a constante atualização dos dados, sem causar excesso de carga ao sistema.



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 visão materializada!