Preparando-se para o Exame 70-461 - Parte 2
Início Preparando-se para o Exame 70-461 – Parte 2
Thiago Cruz 3 de março de 2015 1 comentário SQL Server
Voltando a preparação do exame 70-461, um dos exames obrigatórios para a certificação MCSA, vamos dar continuidade no tema criação de objetos, criar e alterar view.
Como mostrado abaixo a criação de objetos de banco de dados é responsável por 24% das questões da prova e um conselho para os que vão fazer é não estudar o básico de cada assunto, vá a fundo nos temas e prepare-se.
Criar exibições indexadas; criar exibições sem usar as ferramentas integradas; CRIAR, ALTERAR, REMOVER
View ou exibições são extrações de informações já existentes no banco de dados que tem grande valor em emissão de relatórios ou exibições de aplicações. Não pode-se confundir view com tabelas temporárias, pois as view não são objetos que dependem da seção, ao fechar uma seção no banco as views continuam presentes no banco de dados.
A sintaxe básica para a criação de uma view você pode verificar no Code 1.
Select Coluna1, Coluna2, Coluna3, Coluna4, Coluna5
Code 1. Sintaxe básica de criação de View.
Uma view sempre será criada através de uma consulta, contendo dados de uma ou mais tabelas contidas no select.
Para acessar uma view basta executar um select * from seguido pelo nome da view, no quesito segurança as view garante a integridade dos dados, não deixando que o usuário tenha um "contato" com a tabela responsável pelos dados ali retornados.
Há algumas clausulas que o SQL Server não permite em uma view, são eles:
No Code 2 temos o exemplo de como realizar alterações em views.
Alter View Vw_Teste
Where coluna1 > 100
Code 2. Sintaxe de alteração de uma View.
Para aumentar a performance de uma view pode-se criar índices assim como em uma tabela, no Code 3 pode se conferir a sintaxe de criação de um Index View.
CREATE UNIQUE CLUSTERED INDEX IDX_Teste
ON Teste (Coluna1, Coluna2)
Code 3. Criando Index View.
O Index Clustered irá determinar a ordem física de armazenamento das linhas na tabela, diferente do Index Non-Clustered, que é um objeto dentro do banco de dados que aponta para uma linha dentro de uma tabela, mas não especifica como estas linhas devem estar armazenadas.
A partir da criação de um index na view os dados são armazenados em uma tabela virtual, não tendo a necessidade de recalcular os dados todas as vezes em que há uma alteração na tabela fonte. Sendo que deve-se ter cuidado ao criar índices em view é aconselhável criar índices em views somente quando a tabela fonte não sofre muitas alterações, existem casos onde views sem index tem um desempenho melhor que uma view com index.
Para observar a performance da view podemos utilizar SET STATISTICS IO ON que nos trará informações de estatísticas de leitura logica e física da consulta.
Falando um pouco sobre segurança em view vamos passar por duas clausulas mas utilizadas nas criação das view que garante a integridade da tabela fonte.
WITH SCHEMABINDING – Restringe alterações na tabela fonte sem antes ser alterada na estrutura da view.
No Code 4 podemos identificar a sintaxe de criação de uma view com WITH SCHEMABINDING.
Select dbo.coluna1, dbo.coluna2, dbo.coluna3, dbo.coluna4
Code 4. Adicionando WITH SCHEMABINDING a view.
Caso um usuário tente alterar uma coluna na tabela dbo.Teste que faça referencia na view Vw_Teste a alteração retornará um erro.
Outra clausula bem utilizada que restringe ao usuário alterações na tabela fonte é WITH CHECK OPTION.
WITH CHECK OPTION – Restringe a inclusão ou a atualização de dados.
No Code 5 podemos ver a inclusão da clausula WITH CHECK OPTION a view Vw_Teste.
Where Coluna1 < 10
Code 5. Adicionando WITH CHECK OPTION a view.
Com isso caso o usuário tente inserir ou alterar a Coluna1 com um valor maior que 10 retornara erro.
Uma cautela que deve-se ter ao sair criando views é que cada é um objeto a mais em seu banco que deverá ser definido acesso aos usuários, portanto nem sempre é uma boa pratica.