A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Daniel Paulo dptsalvador@hotmail.com SQL Server 2016 Módulo II Daniel Paulo dptsalvador@hotmail.com.

Apresentações semelhantes


Apresentação em tema: "Daniel Paulo dptsalvador@hotmail.com SQL Server 2016 Módulo II Daniel Paulo dptsalvador@hotmail.com."— Transcrição da apresentação:

1 Daniel Paulo dptsalvador@hotmail.com
SQL Server Módulo II Daniel Paulo

2 Capítulo 6 – VIEWS Uma VIEW é uma tabela virtual proveniente de tabelas referenciadas numa consulta. Tipos de Views Standarts: Dados de uma tabela, virtual, dados provenientes de uma ou mais views ou tabela base Indexadas: Obtido por meio da criação de um índice clusterizado sobre a view Particionadas: Permite que dados de grandes tabelas sejam particionadas em visualizações menores.

3 Vantagens Reutilização: São utilizadas por vários usuários de forma simultânea Redução de Custo de execução: Os resultados já computados que ficam armazenados em uma VIEW indexada são empregados pelo otimizador de query Segurança: Ocultam colunas de uma tabela Compatibilidade: VIEWS são capazes de criar uma interface com versões anteriores, simulando uma tabela que teve seu esquema modificado Cópia de dados: Pode ser útil no particionamento dos dados de cópia para o SQL ou a partir dele. Simplificação do Código: Criação de um código de programação mais limpo na medida em que podem conter um SELECT mais complexo.

4 Restrições Gerar duas colunas com mesmo nome
Utilizar ORDER BY, a não ser que seja incluída a cláusula TOP Utilizar a palavra INTO Fazer referência a uma tabela temporária Utilizar variáveis SELECT * se a SCHEMABINDING não for especificada Máximo 1024 colunas As VIEWS podem ter aninhamento em até 32 níveis A instrução CREATE VIEW deve ser a única instrução em um batch

5 A tabela SYSCOMMENTS Esta tabela é composta por entradas para cada um dos seguintes itens de um banco de dados: Constraint Default, constraint CHECK, stored procedures, views, regras, padrões e trigger SELECT TEXT FROM SYSCOMMENTS

6 VIEWS de Catálogo Representam a interface mais geral para os metadados de catálogo Exemplo: SELECT * FROM sys.objects SELECT * FROM sys.TABLES

7 CREATE VIEW With ENCRYTION - Protege o código fonte, impedindo que ele seja aberto a partir do Object Explorer WITH SCHEMABINDING - Cria uma view ligada às estruturas das tabelas às quais faz referência. Não permite alterar a tabela sem que a VIEW seja alterada WITH CHECK OPTION - Impede a inclusão e a alteração de dados através da view que sejam incompatíveis com a cláusula WHERE da instrução SELECT

8 Exemplo -- Exemplo USE PEDIDOS Criando a VIEW CREATE VIEW VIE_EMP1 AS SELECT CODFUN, NOME, DATA_ADMISSAO, COD_DEPTO, COD_CARGO, SALARIO FROM EMPREGADOS -- Testando a VIEW SELECT * FROM VIE_EMP1

9 Utilizando ENCRYPTION
CREATE VIEW VIE_EMP2_A WITH ENCRYPTION AS SELECT TOP 100 CODFUN, NOME, DATA_ADMISSAO, COD_DEPTO, COD_CARGO, SALARIO FROM EMPREGADOS ORDER BY NOME OBS: Procure esta view no Object Explorer e dê um click direito sobre ela

10 Utilizando WITH SCHEMABILINDING
CREATE VIEW VIE_EMP3 WITH ENCRYPTION , SCHEMABINDING AS SELECT CODFUN, NOME, DATA_ADMISSAO, COD_DEPTO, COD_CARGO, SALARIO, NUM_DEPEND FROM DBO.EMPREGADOS

11 Testando -- Testando a VIEW SELECT * FROM VIE_EMP3 -- Não é possível apagar a coluna da tabela ALTER TABLE EMPREGADOS DROP COLUMN NUM_DEPEND -- Criando índices para a VIEW CREATE UNIQUE CLUSTERED INDEX IX_VIE_EMP3_CODFUN ON VIE_EMP3(CODFUN) -- CREATE INDEX IX_VIE_EMP3_NOME ON VIE_EMP3(NOME)

12 VIEW com condição de filtro
CREATE VIEW VIE_EMP4 WITH ENCRYPTION AS SELECT CODFUN, NOME, DATA_ADMISSAO, COD_DEPTO, COD_CARGO, SALARIO FROM EMPREGADOS WHERE COD_DEPTO = 2 -- Testando SELECT * FROM VIE_EMP4

13 Exemplo -- Insere um funcionário INSERT INTO VIE_EMP4 ( NOME, DATA_ADMISSAO, COD_DEPTO, COD_CARGO, SALARIO) VALUES ('TESTE INCLUSÃO', GETDATE(), 1, 1, 1000) Obs: Ao inserir um funcionário com departamento igual a1 a VIEW VIE_EMP4 não mostrará este registro

14 Exemplo O ideal é que a VIEW não permita a inclusão de registros que não satisfaçam a condição ALTER VIEW VIE_EMP4 WITH ENCRYPTION AS SELECT CODFUN, NOME, DATA_ADMISSAO, COD_DEPTO, COD_CARGO, SALARIO FROM EMPREGADOS WHERE COD_DEPTO = 2 WITH CHECK OPTION

15 ALTER VIEW ALTER VIEW – altera um view existente DROP VIEW – Apaga uma view existente. Obs: Quando apagamos uma VIEW implica na exclusão de todas as permissões que tinham sido dadas sobre ela

16 Visualizando informações sobre VIEWS
Object Explorer do SQL Management Studio sys.view - Exibe a lista de VIEWS do banco de dados sp_helptext - Mostra as definições de VIEWS não Criptografadas sys.sp_sql_dependencies - Exibe todos os objetos que possuem alguma dependência de outro objeto

17 Lembre-se Ao alterarmos qualquer objeto no SQL Server é necessário saber quais são os objetos que o referenciam VIEWS não criptografas fornecem mais informações sobre sua definição A forma como as consultas em VIEWS são feitas é igual à das tabelas ordinárias Os HINTS são ignorados nas consultas

18 VIEWS atualizáveis As colunas a serem alteradas devem pertencer a uma mesma tabela base As colunas alteradas em uma VIEW devem referenciar diretamente os dados originais nas colunas da tabela Para poderem ser modificadas, as colunas não podem ser computadas ou derivadas pelo uso de funções, como: AVG, COUNT, SUM, etc. Para poderem ser modificadas, as colunas que tiverem sido computadas por uma expressão ou pelo operadores UNION, UNION ALL, CROSSJOIN, EXCEPT e INTERSECT devem ser especificadas com um trigger INSTEAD OF

19 VIEWS atualizáveis As colunas a serem alteradas não serão afetadas pelo uso das cláusulas GROUP BY, HAVING ou DISTINCT É necessário informar todos os valores, caso contrário a coluna deverá aceitar nulo ou possuir valor padrão Ao incluirmos WITH CHECK OPTION na definição da VIEW, torna-se obrigatória a adesão aos critérios do SELECT por parte de todas as instruções de modificação de dados executados na VIEW TOP não pode ser utilizado com WITH CHECK OPTION no SELECT a ser gravado na VIEW

20 VIEWS, PROCEDURES e funções para retornar dados tabulares
Podemos utilizar o termo dado tabular para definir qualquer recurso que retorne linhas e colunas. Opções para retorno de dados: VIEWS PROCEDURES FUNÇÕES

21 Devolvendo dado tabular com VIEW
CREATE VIEW VIE_MAIOR_PEDIDO AS SELECT TOP 12 MONTH( DATA_EMISSAO ) AS MES, YEAR( DATA_EMISSAO ) AS ANO, MAX( VLR_TOTAL ) AS MAIOR_PEDIDO FROM PEDIDOS Exemplo: SELECT * FROM VIE_MAIOR_PEDIDO *Não aceita parâmetros

22 Devolvendo dados tabulares com STORED PROCEDURE
CREATE PROCEDURE INT AS BEGIN SELECT MONTH( DATA_EMISSAO ) AS MES, YEAR( DATA_EMISSAO ) AS ANO, MAX( VLR_TOTAL ) AS MAIOR_PEDIDO FROM PEDIDOS WHERE YEAR(DATA_EMISSAO) GROUP BY MONTH(DATA_EMISSAO), YEAR(DATA_EMISSAO) ORDER BY MES END Exemplo: EXEC STP_MAIOR_PEDIDO 2007

23 Devolvendo dado tabular com FUNÇÃO TABULAR
CREATE FUNCTION DATETIME, @DT2 DATETIME ) RETURNS TABLE AS RETURN ( SELECT MONTH( DATA_EMISSAO ) AS MES, YEAR( DATA_EMISSAO ) AS ANO, MAX( VLR_TOTAL ) AS MAIOR_VALOR FROM PEDIDOS -- Aceita parâmetros. Trabalha com variáveis WHERE DATA_EMISSAO GROUP BY MONTH( DATA_EMISSAO ), YEAR( DATA_EMISSAO ) ) -- SELECT * FROM DBO.FN_MAIOR_PEDIDO( ' ',' ')

24 Capítulo 6 – VIEWS Laboratório página 216 à 219


Carregar ppt "Daniel Paulo dptsalvador@hotmail.com SQL Server 2016 Módulo II Daniel Paulo dptsalvador@hotmail.com."

Apresentações semelhantes


Anúncios Google