Aula 10 - Cassio Diego

Propaganda
Implementação de
Banco de Dados
Cassio Diego
cassiodiego.com/bd
1
Aula 10
UNIDADE 3: INDEXAÇÃO
1. Tipos de índices
1.1. Índices Ordenados;
1.2. Índices Densos e Esparsos;
1.3. Índice Cluster e Não Cluster;
1.4. Índice Multinível
1.5. Definição de Índice em SQL.
2
Indexação
INTRODUÇÃO
•
Estrutura de dados que recebe como entrada uma
propriedade de registro, e encontra os registros com
essa propriedade rapidamente.
•
Um índice permite localizar um registro sem ter que
examinar mais que uma pequena fração dos registros.
•
Os campos cujos os valores o índice se baseia
formam a chave de pesquisa.
3
Indexação
FATORES DE EFICIÊNCIA DO USO DE ÍNDICES
•
O número de bloco de índices em geral é pequeno
quando comparado com o número de bloco de
dados.
•
Tendo em vista que as chaves são classificadas, a
pesquisa é mais rápida.
4
Indexação
FATORES DE EFICIÊNCIA DO USO DE ÍNDICES
•
O índice pode ser pequeno o suficiente para ser
mantido permanentemente em buffers da memória
principal.
•
Uma única estratégia de indexação nem sempre
realiza a tarefa esperada.
5
Indexação
CONCEITO
Estrutura de dados auxiliares cujo único
propósito é tornar mais rápido o acesso
a registros baseado em certos campos,
chamados campos de indexação.
6
Indexação
EXEMPLO
7
Indexação
AVALIAÇÃO DE TÉCNICAS
TIPOS DE ACESSO
ACESSOS EFICIENTES
TEMPO DE ACESSO
DEPENDE DA TÉCNICA
TEMPO DE INSERÇÃO
LOCALIZAR E ACESSAR
TEMPO DE EXCLUSÃO
LOCALIZAR E ATUALIZAR
ESPAÇO ADICIONAL
ESPAÇO x DESEMPENHO
8
Indexação
TIPOS DE ÍNDICES
•
Índices Ordenados;
•
Índices Densos e Esparsos;
•
Índice Cluster e Não Cluster;
•
Índice Multinível;
- Índice Árvore B (B-tree).
9
Indexação
ÍNDICES ORDENADOS
Os argumentos de pesquisa do índice são mantidos ordenados pela
chave de pesquisa. Os índices podem ser primários ou secundários.
•
Chaves de pesquisa;
•
Acesso aleatório;
•
Índice armazena chave de busca;
•
Chave de busca é associada aos registros;
•
Pode ser primário ou secundário.
10
Indexação
ÍNDICES PRIMÁRIO
É um índice ordenado pela mesmo atributo que o arquivo de
dados.
•
Modelo simples;
•
Arquivo classificado;
•
Chave de pesquisa (ponteiro);
•
Tuplas são classificadas pela chave primária;
•
Útil quando chave de pesquisa é a chave primária.
11
Indexação
ÍNDICES SECUNDÁRIO
É um índice não ordenado do arquivo de dados. Um
índice secundário é sempre denso, não agrupado.
Podem haver muitos índices secundários para um
mesmo arquivo. Dois casos:
•
O campo de indexação é um campo chave (as
vezes chamado de chave secundária);
•
O campo de indexação não é chave.
12
Indexação
ÍNDICES DENSOS E ESPARSOS
•
Índice Denso
Sequência de blocos contendo apenas as chaves dos registros e os
ponteiros para os próprios registros.
- Índice denso = (chave-ponteiro, registro)
•
Índice Esparso
Usa menos espaço de armazenamento que o índice denso ao custo
de um tempo um pouco maior para localizar um registro dada a sua
chave.
- Índice esparso = (chave-ponteiro, blocos de dados)
13
Indexação
ÍNDICES DENSOS E ESPARSOS
14
Indexação
ÍNDICES DENSOS
•
Há uma entrada no índice que aponta para cada
registro no arquivo de dados.
•
A localização do registro solicitado é mais rápida, no
entanto ocupa mais espaço.
•
O arquivo de dados só é consultado se o argumento
de pesquisa aparece no índice.
•
Um índice denso pode ser agrupado ou não agrupado.
15
Indexação
ÍNDICES DENSOS
Registro de índice para cada valor de chave
de busca no arquivo. Geralmente é mais rápido
para localizar arquivos.
16
Indexação
ÍNDICES ESPASOS
•
Nem todos os registros de dados tem uma entrada
correspondente no arquivo de índice.
•
Em geral, há uma entrada no índice por página do arquivo de
dados. Neste caso, durante uma consulta, o arquivo de dados
sempre deve ser consultado.
17
Indexação
ÍNDICES ESPASOS
•
Para que um índice seja esparso ele deve ser agrupado, sendo
assim, é possível construir apenas um índice esparso para cada
arquivo de dados.
•
Índices esparsos exigem menos espaço de armazenamento e
menor overhead durante a modificação do arquivo de dados.
18
Indexação
ÍNDICES ESPASOS
Localiza pela chave de busca com o valor menor ou igual,
ocupam menor espaço e tem menor sobrecarga de manutenção.
19
Indexação
ÍNDICE CLUSTER (AGRUPADO)
•
Um índice é dito agrupado quando o arquivo é
organizado de tal forma que a ordem dos
registros no arquivo de dados é a mesma.
•
Os índices agrupados são computacionalmente
mais caros para se manter quando atualizados.
•
Pode haver no máximo um índice agrupado por
arquivo de dados.
20
Indexação
ÍNDICE NÃO CLUSTER (NÃO AGRUPADO)
•
As entradas no índice não coincidem com a
ordem dos registros no arquivo de dados.
•
Podem haver vários índices não agrupados
sobre um arquivo de dados.
21
Indexação
ÍNDICE MULTINÍVEL
Se o arquivo de índices se torna muito grande para ser armazenado em
bloco de disco, é interessante indexá-lo em mais de um nível.
•
Índice com dois ou mais níveis;
•
Índice esparso sobre o índice agrupado;
•
Índices ordenados e encadeados;
•
Ampla ultilização comercial;
•
índices dinâmicos multiniveis
- Árvore B (B-tree).
22
Indexação
ÍNDICE MULTINÍVEL
•
Vantagem:
Índice pequeno pode ser mantido em memória e o
tempo de busca é mais baixo.
•
Desvantagem:
Muitos níveis de índices podem aumentar a
complexidade do sistema (talvez sejamelhor usar a
árvore-B).
23
Indexação
ÍNDICE ÁRVORE B (B-TREE)
•
Também conhecido como árvore balanceada. O
MySQL, SQL Server e Oracle usam a indexação
B-tree por padrão.
•
Como é de se esperar índices B-tree são
organizados como árvores, com um ou mais
níveis de nós-galhos levando a um único nível de
nós-folhas.
24
Indexação
ÍNDICE ÁRVORE B (B-TREE)
•
Nós-galhos são usados para navegar pela
árvore, enquanto os nós-folhas armazenam os
valores reais e as informações de localização.
25
Indexação
ÍNDICE ÁRVORE B (B-TREE)
26
Indexação
DEFINIÇÃO DE ÍNDICE EM SQL
•
Pesquise e crie exemplos de índice no MySQL, de
preferência índices ordenados e árvore B.
27
Próxima aula...
UNIDADE 4: TRANSAÇÕES
1. Conceito de Transação
2. Estados da Transação
28
Bibliografia Básica
•
SILBERSCHATZ, Abraham; KORTH, Henry F;
SUDARSHAN, S. A. Sistema de banco de dados.
5ª ed. Rio de Janeiro: Campus, 2006.
•
ELMASRI, R.; NAVATHE, S., Sistemas de Banco de
Dados. Pearson Education do Brasil, 4ª.Ed 2005.
•
RAMALHO, Jose Antonio Alves. SQL a linguagem
dos bancos de dados. São Paulo: BERKELEY
BRASIL, 1999.
29
Bibliografia Complementar
•
DATE, C.J. Introdução a sistemas de banco de dados. 8ª ed.
Rio de Janeiro: Campus, 2004.
•
DAMAS Luis SQL- Structured query language 6ª. Ed. Editora
LTC 2007
•
GILLENSON, M, MILLER, F. Introdução a Gerência de Banco de
Dados. Editora LTC 1a. Edição 2009
•
PRICE.Jason Oracle Database 11g SQL Editora Artmed 1a.
Edição 2008
•
KLINE,Daniel; KLINE , Kevin Sql - O Guia Essencial - Manual
de Referencia Profissional. Editora Alta Books 1 2010
30
Materiais
cassiodiego.com/bd
31
Contato Oficial
[email protected]
32
Download