Qual a diferença entre View e Materialized View em Bancos de Dados?

Diferença entre View e Materialized View

Em bancos de dados relacionais é comum o emprego de objetos variados para simplificar o acesso aos dados, assim como melhorar a performance de operações como consultas, inserções e atualizações, entre outras. Alguns desses objetos incluem procedimentos armazenados, triggers e eventos. 

Visualizações são uma outra categoria de objetos com esses propósitos, e dois tipos principais existem: as visualizações comuns (“views“) e as visualizações materializadas (“materialized views“).

Mas qual a diferença entre ambas?  E quando usar uma e quando usar outra?

É o que explico a seguir.

Visualização SQL

Em bancos de dados, uma view (visualização ou exibição) e uma materialized view são dois tipos diferentes de objetos de banco de dados que atendem a propósitos diferentes.

Uma view é uma tabela virtual derivada de uma ou mais tabelas em um banco de dados. Trata-se de uma consulta SQL armazenada que define um conjunto de linhas e colunas que podem ser consultadas como se fossem uma tabela normal. Uma visualização não armazena dados próprios, mas é uma consulta pré-definida salva que pode ser usada para recuperar dados das tabelas subjacentes quando necessário.

Assim, atua como se fosse uma tabela comum aos olhos do usuário.

Uma visualização não ocupa espaço de armazenamento no banco de dados, por não armazenar nenhum dado em si, apenas referenciando os dados das tabelas que a constituem.

As views geralmente são usadas para simplificar consultas complexas, restringir o acesso a dados confidenciais ou fornecer uma exibição personalizada dos dados para diferentes usuários. São usadas da mesma forma que uma tabela qualquer é usada no banco de dados, ou seja, os dados podem ser consultados da mesma maneira que em uma tabela física real.

Tabelas de banco de dados - visualização e materialized view

View é uma tabela armazenada SQL

Visualização Materializada SQL

Por outro lado, uma materialized view (“visualização materializada“) é uma cópia física de uma view que fica armazenada no banco de dados.

É uma tabela pré-computada que contém os resultados de uma consulta realizada em uma ou mais tabelas no banco de dados.

Ao contrário de uma view, uma materialized view realmente armazena dados e pode ser usada para melhorar o desempenho da consulta, reduzindo a quantidade de computação necessária para recuperar os dados. As materialized views costumam ser usadas em aplicativos de armazenamento de dados e inteligência de negócios para armazenar dados de resumo cujo cálculo é custoso ou que são usados com frequência em relatórios.

Por conta disso, as visualizações materializadas consomem espaço de armazenamento no banco de dados, e devemos pensar com cuidado se realmente precisamos usar esse tipo de objeto para realizar consultas ou outras operações quaisquer nos dados.

Conclusão

Em resumo, a principal diferença entre uma view e uma materialized view é que uma view é uma tabela virtual derivada de uma ou mais tabelas em um banco de dados, enquanto uma materialized view é uma cópia física de uma visualização armazenada no banco de dados.

As views são normalmente usadas para simplificar consultas ou restringir o acesso aos dados, enquanto as materialized view são usadas para melhorar o desempenho da consulta e armazenar dados resumidos.

Uma visualização comum não ocupa espaço de armazenamento no banco de dados, ao passo que uma visualização materializada ocupa, e isso deve ser levado em consideração ao determinar que tipo de objeto será mais adequado para as nossas necessidades.

Referências

Plew, R.R.; Stephens, R.K. Aprenda em 24 horas SQL. 2ª edição. Editora Campus, ano 2000

Sobre Fábio dos Reis (1197 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 30 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Ciência e Tecnologia em geral, adora Viagens e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.

Escreva um comentário

Seu e-mail não será divulgado


*