Curso
Administradores e usuários de banco de dados enfrentam dois desafios: escrever consultas SQL complexas e garantir a segurança de acesso ao banco. Às vezes, as consultas SQL ficam mais complicadas por causa do uso de múltiplos joins, subconsultas e GROUP BY em uma única query.
Para simplificar esse tipo de consulta, você pode usar um proxy sobre a tabela original. Além disso, por motivos de segurança, o administrador pode querer restringir o acesso direto ao banco. Por exemplo, se uma tabela tem várias colunas, mas o usuário só precisa de três, o DBA pode criar uma tabela virtual com essas três colunas. Para ambos os casos, você pode usar uma view. As views funcionam como um proxy ou tabela virtual. Elas reduzem a complexidade de consultas SQL e oferecem acesso seguro às tabelas subjacentes.
O que é uma view?
Views são uma versão especial de tabelas em SQL. Elas oferecem um ambiente de tabela virtual para várias operações complexas. Você pode selecionar dados de múltiplas tabelas ou filtrar dados específicos com base em certos critérios nas views. A view não armazena os dados em si; ela guarda apenas a definição da view no dicionário de dados.

A view é uma consulta armazenada no dicionário de dados, sobre a qual o usuário pode consultar como faria em tabelas. Ela não usa memória física; apenas a query fica registrada no dicionário de dados. O resultado é calculado dinamicamente sempre que o usuário executa uma consulta sobre ela. Alterações feitas na view se refletem na tabela base real.
A view tem dois objetivos principais:
- Simplificar consultas SQL complexas.
- Restringir o acesso de usuários a dados sensíveis.

Tipos de views
- Simple View: Uma view baseada em apenas uma tabela, que não contém cláusula
GROUP BYnem funções. -
Complex View: Uma view baseada em múltiplas tabelas, que contém cláusula
GROUP BYe funções. -
Inline View: Uma view baseada em uma subconsulta na cláusula
FROM; essa subconsulta cria uma tabela temporária e simplifica a consulta complexa. -
Materialized View: Uma view que armazena a definição e também os dados. Ela cria réplicas dos dados armazenando-os fisicamente.

Simple View

Complex View


Inline View
Uma inline view é um comando SELECT na cláusula FROM de outro SELECT, criando uma tabela temporária que pode ser referenciada pela consulta. Inline views são usadas para escrever consultas SQL complexas sem operações de join e subqueries explícitas. É chamada de tabela temporária porque a cópia dos dados retornados pela subconsulta não é armazenada no banco. No Oracle e na comunidade Postgres, essa tabela temporária é chamada de inline view. Também é conhecida como subselect.

Materialized View
A materialized view replica fisicamente os dados recuperados. Esses dados replicados podem ser reutilizados sem executar a view novamente. Esse tipo de view também é conhecido como "SNAPSHOTS". A materialized view reduz o tempo de processamento para regenerar todo o conjunto de dados. Ela ajuda usuários remotos a replicar dados localmente e melhora a performance das consultas. O desafio aqui é sincronizar as mudanças nas tabelas subjacentes das materialized views.


Comparação entre view e materialized view

Criando e excluindo uma view em SQL
Uma view pode ser criada e substituída usando CREATE VIEW e REPLACE VIEW.

Uma view pode ser excluída usando o comando DROP VIEW.

Prós e contras das views
As views podem ser usadas como um subconjunto dos dados reais para executar determinadas operações. Elas ajudam a fornecer abstração para diferentes perfis de usuários ou a esconder a complexidade para quem acessa os dados da tabela. Por exemplo, um usuário pode ter permissão apenas para acessar colunas específicas em vez da tabela inteira. As views ajudam a simplificar consultas complexas. Também facilitam o acesso a dados de múltiplas tabelas unidas. Podem ser usadas como tabelas agregadas com operações de group by. As views podem ser usadas para fins de segurança e agregar valor nesse aspecto. Elas não ocupam espaço adicional, pois mantêm apenas a definição no dicionário de dados, e não uma cópia dos dados.
Apesar de muitas vantagens, as views também têm desvantagens, como dependência da estrutura da tabela base, tempo de computação e restrições. As views dependem da estrutura das tabelas; se você alterar essa estrutura, precisará atualizar a definição da view associada.
Conclusão
Parabéns, você chegou ao final deste tutorial!
Neste tutorial, você viu em detalhe o que são views, os tipos de views, Simple View, Complex View, Inline View, Materialized View, a sintaxe para criar e excluir views e os prós e contras do uso de views.
Agora, aplique o conceito de views para analisar seus próprios datasets. Obrigado por ler este tutorial!
Se quiser aprender mais sobre SQL, faça nosso curso Introduction to Relational Databases in SQL.


