Buscar

SISTEMA GERENCIADOR DE BANCO DE DADOS

Prévia do material em texto

Aula 1
Sistema 
Gerenciador de 
Banco de Dados
Prof. Martin Morães
Conversa Inicial
Índices
Views
Contextualizando
Índices x 
Performance
Quando usar 
uma view?
Pesquisa
Os Índices
Índices
Sem índices: busca 
sequencial
Com índices: busca 
indexada
Tabela auxiliar 
ordenada
Quando os índices 
são utilizados?
Localizar os 
registros que 
atendem à 
cláusula where
Exemplo
SELECT * FROM professores pr
WHERE pr.pais = "AA"
Para recuperar registros de 
outras tabelas ao realizar joins
Exemplo
SELECT * FROM aula au
INNER JOIN 
alunos al on al.id = au.idaluno
INNER JOIN 
professores pr on pr.id = au.idprofessor
WHERE pr.pais = "AA"
Para encontrar o valor 
MIN () ou o valor MAX 
() quando a coluna 
indicada está 
indexada
Exemplo
SELECT max(idprofessor), 
min(idprofessor)
from aula
Para ordenar ou 
agrupar uma tabela 
se a ordenação ou 
o agrupamento 
for feita(o) com 
campos indexados
Exemplo
SELECT pr.nome, count(*) 
FROM aula au
INNER JOIN 
alunos al on al.id = au.idaluno
INNER JOIN 
professores pr on pr.id = 
au.idprofessor
WHERE pr.pais = "AA“
group by pr.nome
order by pr.nome
O Mecanismo do Índice Criando Índice
create table alunos(
id int not null primary key,
nome varchar(80), 
dtnasc datetime,
fone varchar(45),
email varchar(100),
INDEX(nome),
INDEX(email),
INDEX(fone));
CREATE INDEX nome_do_index
ON nome_tabela (nome_coluna);
Exemplo
CREATE INDEX idx_nome
ON alunos(nome);
Excluindo Índice
DROP INDEX nome_do_index ON 
nome_tabela;
Exemplo
DROP INDEX idx_nome
ON alunos;
Cuidados com Índice
Os índices dão um 
grande ganho na 
performance das 
consultas, mas 
degradam a 
performance
nas operações 
inserções
Isso se dá pela 
necessidade de 
indexar os novos 
valores
As Views
Views
As views são 
tabelas virtuais
Uma forma de 
disponibilizar 
dados que estejam 
na base de dados
Atendem a 
determinadas 
especificações
Sempre atualizadas
View em linha 
também é 
conhecida como 
sub-query no from
Nesse formato a 
view é anônima, e 
isso implica que a 
mesma não será 
reutilizada em 
outros processos
Aplicações
Simplificar as 
consultas
Integridade dos 
dados
Autorização de 
acesso
CREATE [OR REPLACE] 
VIEW view_name[(column_list)] 
AS select_statement
Exemplo
CREATE view lista_nomes(professor, 
aluno) 
as 
SELECT p.nome, a.nome
from aula
left join alunos a 
on aula.idaluno = a.id
left join professores p 
on aula.idprofessor= p.id;
Consultando uma View
SELECT * 
FROM lista_nomes
ORDER BY 1 
LIMIT 5;
DROP VIEW [IF EXISTS]
view_name [, view_name] ...
Exemplo
DROP VIEW lista_nomes;
Síntese
Conversa Inicial
Índices
Views
Contextualizando
Índices x 
Performance
Quando usar 
uma view?

Continue navegando