DP-900: compreender e usar vistas em Azure SQL Database
Vou ensinar a competência de criar e usar vistas (views) em Azure SQL Database — um tema útil no DP-900 porque demonstra compreensão de abstracção e optimização de consultas em dados relacionais, e é prático no desenho de soluções seguras e geríveis na nuvem.
O que precisas de saber
Uma view é uma consulta armazenada que aparece ao utilizador como uma tabela virtual. Não guarda dados (excepto se for uma view indexada/materializada, que é menos comum em Azure SQL Database), mas simplifica o acesso a dados complexos, encapsula lógica e pode reforçar a segurança ao expor apenas colunas/linhas específicas.
Exemplo conceptual: suponha duas tabelas, Customers e Orders. Para obter o total de encomendas por cliente, podes criar uma view que faça o join e a agregação. Quem usa a view não precisa de conhecer os detalhes do join ou das funções agregadas.
CREATE VIEW Sales.CustomerOrderTotals AS
SELECT c.CustomerID,
c.Name,
SUM(o.TotalAmount) AS TotalOrders
FROM dbo.Customers c
JOIN dbo.Orders o ON c.CustomerID = o.CustomerID
GROUP BY c.CustomerID, c.Name;
Depois de criada, podes consultar: SELECT * FROM Sales.CustomerOrderTotals WHERE TotalOrders > 1000;
Como funciona / Na prática
Pontos práticos e passos para usar views no Azure SQL Database:
- Modela a necessidade: define se a view é para simplificar queries, impor regras de segurança (expor apenas certas colunas) ou para compatibilizar esquema entre aplicações.
- Escreve a query base: testa a query SELECT que vai ser a definição da view, optimizando joins e filtros antes de criar a view.
- Cria a view: usa
CREATE VIEW schema.Name AS <select>. Preferencialmente qualifica nomes com schema (dbo, Sales...). - Usa a view como se fosse uma tabela: podes fazer SELECT, JOIN e até aplicar filtros. Nota que o desempenho depende da query subjacente — a view não reduz automaticamente custos de execução.
- Actualizações via view: algumas views são actualizáveis (podem ser usadas em INSERT/UPDATE/DELETE) se cumprem regras (por exemplo, uma única tabela sem agregações). Se a view não for actualizável, usa stored procedures ou DML directo nas tabelas base.
- Segurança: aplica permissões na view (GRANT SELECT ON Sales.CustomerOrderTotals TO ReportRole) para limitar o acesso às colunas sensíveis nas tabelas base.
- Verificação de desempenho: usa o Query Store e as ferramentas de diagnóstico do Azure SQL para analisar planos de execução da query que a view encapsula e evitar surpresas de desempenho.
-- Exemplo: conceder acesso somente à view
CREATE ROLE reporting_role;
GRANT SELECT ON Sales.CustomerOrderTotals TO reporting_role;
-- Não é necessário dar acesso directo às tabelas subjacentes
Erros comuns
1) Confiar que uma view melhora o desempenho por si só: a view é apenas uma camada de abstracção; o motor ainda executa a consulta subjacente. É necessário rever planos de execução.
2) Criar views com SELECT *: isto pode mascarar alterações de esquema e trazer colunas desnecessárias, afectando consumo de rede e aplicações. Define explicitamente colunas.
3) Usar views complexas e aninhadas sem considerar actualizações de dados e manutenção: views com agregações e joins complexos podem dificultar a depuração e tornar a manutenção mais dispendiosa. Documenta e testa cada nível.
Como praticar
Passos práticos para exercício com recursos oficiais:
- Cria uma instância de Azure SQL Database (podes usar a camada gratuita/tempo limitado ou um ambiente de desenvolvimento local com SQL Server Express para aprender a sintaxe).
- Cria tabelas de exemplo (Customers, Orders, Products), popula com dados de teste e escreve queries SELECT que sintetizem informação.
- Transforma essas queries em views, aplica permissões e testa cenários de leitura e escrita (quando aplicável).
- Analisa planos de execução e usa o Query Store para comparar desempenho de consultas directas vs via view.
Para alinhamento com o exame DP-900, pratica também com os recursos oficiais: faz o Practice Assessment OFICIAL gratuito da Microsoft e consulta o study guide oficial (ambos gratuitos). Estes recursos ajudam a verificar o conhecimento das áreas medidas pelo exame.
Em resumo
- Uma view é uma tabela virtual que encapsula uma query — útil para simplificar acesso e aplicar segurança.
- Views não melhoram automaticamente o desempenho; optimiza a query subjacente e usa ferramentas de diagnóstico do Azure SQL.
- Evita SELECT * em views; especifica colunas e documenta a finalidade de cada view.
- Pratica em Azure SQL Database, usa Query Store e experimenta a concessão de permissões sobre views em vez de tabelas base.