Buscar

IMP BD VenturyAula 08

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

IMPLEMENTAÇÃO DE BANCO DE DADOS
Aula 8- Sql Parte 6
Conteúdo Programático desta aula
Aprender a criar Visões, Indices e Sequences
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Modelo de Dados
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES
Materializam o Esquema Externo de um banco de dados.
 
é uma consulta previamente definida e que fica armazenada no dicionário de dados, podendo ser acessada de forma similar a uma tabela.
 
Quando a visão é referenciada em um comando de SELECT suas linhas e colunas são determinadas dinamicamente, ou seja a consulta é executada e o resultado apresentado para o usuário, atuando como um verdadeira tabela virtual.
 
Uma visão pode permitir, com restrições que os dados da tabela sejam manipulados em comando de INSERT, UPDATE e DELETE, porém, não armazena estes dados.
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES - CRIAÇÃO
CRIAR UMA VISÃO COM O ID, PRIMEIRO NOME,
 ULTIMO NOME E CARGO DO EMPREGADO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES - CRIAÇÃO
CREATE VIEW EMP_RESUMO AS
SELECT ID, PRIM_NOME, ULT_NOME, CARGO 
FROM EMPREGADO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES - CONSULTA
SELECT * FROM EMP_RESUMO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES - TIPOS
Existem basicamente dois tipos de Views:
 
Simples : composto por apenas um SELECT, utiliza apenas uma tabela, suas colunas são formadas por colunas da tabela original, sem cálculos ou funções
Complexas: aquelas onde há um join entre tabelas
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES – MANIPULANDO DADOS
INSERT INTO EMP_RESUMO 
VALUES ( 10, ‘ALBERTO’,’RODRIGUES’, ‘ALMOXARIFE’)
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES – MANIPULANDO DADOS
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES - TIPOS
Vamos agora criar uma visão complexas, desejamos criar um visão com o id, nome completo e cargo do empregado e nome do departamento onde ele trabalha
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES - TIPOS
CREATE VIEW EMP_DEP 
AS
SELECT E.ID , E.PRIM_NOME|| ' ' ||E.ULT_NOME AS "NOME EMPREGADO" , 
 E.CARGO , D.NOME AS "NOME DEPARTAMENTO"
FROM EMPREGADO E INNER JOIN DEPARTAMENTO D ON E.ID_DEPTO = D.ID
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES - TIPOS
SELECT * FROM EMP_DEP
USUARIO PENSA QUE É UMA TABELA
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES - TIPOS
INSERT INTO EMP_DEP 
VALUES ( 15, ‘SIDNEY’,’VENTURI’, ‘DIRETOR’)
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES - WITH READ ONLY
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES - CONSULTA
INSERT INTO EMP_RESUMO 
VALUES ( 15, ‘SIDNEY’,’VENTURI’, ‘DIRETOR’)
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES - ELIMINANDO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
VISÕES - ELIMINANDO
DROP VIEW EMP_DEP
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
SEQUENCES
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
SEQUENCES
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
SEQUENCES
CREATE SEQUENCE ID_CLI_SEQ
	INCREMENT BY 3
	START WITH 10
	MAXVALUE 1000
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
SEQUENCES - NEXTVAL
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
SEQUENCES - CURRVAL
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
SEQUENCES
INSERT INTO CLIENTE 
VALUES (ID_CLI_SEQ.NEXTVAL , 'Casa Tombo', 6)
VAI INSERIR 16 NO ID
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
SEQUENCES
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
SEQUENCES - PARTICULARIDADES
A sequence é incrementada independente da transação ter sido efetivada (Commit) ou não (Rollback) o que pode gerar perda de valores. Não utilizar em aplicações que manipulam dados fiscais como emissão de Notas Fiscais. 
 
Da mesma forma que usuários acessam a mesma sequence, estes podem receber valores intercalados, visto que num dado momento a sequence poderá estar atendendo um número para cada um. Dois usuários jamais conseguirão gerar o mesmo número sobre uma mesma sequence.
Os valores que estão no CACHE (memória) são perdidos caso o banco de dados sofra uma interrupção anormal.
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
SEQUENCES - PARTICULARIDADES
Regras para Utilização de NEXTVAL e CURRVAL
 
NEXTVAL e CURRVAL podem ser usados:
 
Numa cláusula SELECT em tabelas (exceto em Views)
Na cláusula VALUES de um comando INSERT
Na cláusula SET de um comando UPDATE
No SELECT da query principal de uma construção com subqueries
.
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
SEQUENCES - PARTICULARIDADES
Restrições para Utilização de NEXTVAL e CURRVAL
 
NEXTVAL e CURRVAL não podem ser usados:
 
Dentro de uma lista de colunas de um comando SELECT de uma View
Com as cláusulas ORDER BY, GROUP BY ou HAVING de um comando SELECT
Com operadores de conjuntos UNION, INTERSECT e MINUS
Dentro de uma subconsulta
.
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
SEQUENCES - ALTERANDO
ALTER SEQUENCE <sequence_name>
	[INCREMENT BY n ]
	[MAXVALUE n I NOMAXVALUE]
	[MINVALUE n I NOMINVALUE]
	...........
Controles sobre Sequences Alteradas
 Serão afetados apenas os números a serem gerados.
Algumas validações serão feitas como um novo valor MAXVALUE, não poderá ser definido se menor que o último número gerado.
A cláusula START WITH, não poderá ser alterada, neste caso, a sequence deverá ser eliminada e recriada.
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
SEQUENCES - ALTERANDO
Alter Sequence ID_CLI_SEQ
 INCREMENT BY 5
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
SEQUENCES - ALTERANDO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
SEQUENCES - ELIMANDO
DROP SEQUENCE ID_CLI_SEQ
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
INDICES - FUNDAMENTAÇÃO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
INDICES - PRIMARIO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
INDICES – CLUSTERING
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
INDICES - SECUNDÁRIO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
INDICES - SECUNDÁRIO
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices Cluster X Não Cluster
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices Cluster X Não Cluster
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices Denso e Não Denso
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices Denso e Não Denso
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices Denso e Não Denso
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices Multinível
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices Multinível
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices Bitmap
Um índice bitmap atribui um “mapa de bits” (bitmap) para cada possível valor de um campo chave
 Uma matriz é criada com:
 uma linha para cada linha da tabela e
 uma coluna para cada valor distinto do atributo escolhido
 Cada bit no bitmap corresponde ao cruzamento entre um rowid e um valor do campo chave.
Se o bit está setado (=1), significa que o registro com o rowid correspondente contém o valor do campo chave
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices Bitmap
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices Bitmap
Durante o processamento de consultas, o mapa de bits é transferido para a memória
Consultas são transformadas para serem processadas por operações booleanas
Maior eficiência
 Eficiência é ainda maior se a tabela consultada possuir múltiplos índices bitmap
1 para cada coluna acessada
Cada lista de RowIDs é construída indepedentemente, utilizando os índices bitmap de cada coluna
Rotina de merge compara as listas de RowIDs buscando interseções
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices Bitmap
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices - Oracle
Tipos de Índices
 
Único - Garante a unicidade do valor. O Índice criado na Primary Key ou Unique Key, é único, porém podemos criar restrições de unicidade em outras colunas da tabela. Criado automaticamente em PK e UK
 
Não_único - Índices criados apenas com o propósito de acelerar a pesquisa, como em Chaves Estrangeiras (Foreing Key), onde a unicidade não é requerida.
 
Uma Coluna - Apenas uma coluna será indexada.
 
Colunas Compostas ou Concatenadas - Até 255 colunas podem ser concatenadas para formar apenas um índice e não necessitam ser adjacentes.
 
Função – É criado em função de um cálculo feito em uma ou mais colunas.
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices - Oracle
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices - Oracle
CREATE INDEX IND_VEND ON CLIENTE(VENDEDOR)
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices - Oracle
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices - Oracle
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Índices - Oracle
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS
Próxima Aula
Aprender a controlar transações
Acessar o dicionário de dados 
 do Oracle.
 LINGUAGEM SQL
IMPLEMENTAÇÃO DE BANCO DE DADOS

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais