Buscar

Indices - Parte 1 (indices1.pdf)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Banco de Dados
Ìndices
anderson fonseca
Agenda
- Índices
Índices
Uma estrutura de dados que melhora o desempenho nas operações de 
recuperação de dados em uma tabela, com aumento de espaço em disco e o 
custo na escrita em disco.
Podem ser criados utilizando uma ou mais colunas, fornecendo a base para a 
busca de registros ordenados e acessos eficientes.
O espaço em disco para o registro dos índices é menor do que os requeridos 
pelas tabelas (abstração de outros detalhes das tabelas). 
Índices
Em um banco de dados relacional, um índice é a cópia de uma parte da 
tabela.
Alguns bancos de dados estendem o poder de indexação, permitindo que 
índices sejam criados em funções ou expressões.
Um índice pode ser criado como upper(nome), que guardaria somente nomes 
com “caixa alta” no índice. 
Outra opção são índices “filtrados”, onde as entradas são criadas somente 
para os registros que satisfazem uma expressão condicional.
Índices
Funções:
- Manter a integridade dos dados;
- Otimizar o acesso a dados;
- Melhorar a junção das tabelas;
- Classificar resultados;
- Agregar dados;
Índices
Manter a integridade dos dados;
O uso de chaves únicas e primárias para reforçar o nível de unicidade de seu 
repositório/deposíto de dados por tabela.
Diferenças entre chaves únicas e primárias
Primary Key
- Só uma chave primária pode existir por tabela;
- Não pode conter valor NULL;
- Fornece um meio de recuperar qualquer linha específica em uma tabela;
- Se uma coluna de AUTO INCREMENTO for definida, ela deve ser parte da 
chave primária.
Índices
Manter a integridade dos dados;
O uso de chaves únicas e primárias para reforçar o nível de unicidade de seu 
repositório/deposíto de dados por tabela.
Diferenças entre chaves únicas e primárias
Unique Key
É possível possuir mais de uma chave única por tabela;
É permitido valor NULL, onde cada valor NULL é único, ou seja (NULL != 
NULL).
Índices
Manter a integridade dos dados;
Alguns bancos de dados suportam chaves estrangeiras para garantir a 
integridade dos dados, o que não é visto como índice, e sim, como 
constraints.
Um requisito comum de certas implementações é que um índice exista tanto 
na tabela destino quanto na tabela de origem, para permitir o gerenciamento 
das chaves estrangeiras.
Índices
Otimizar o acesso a dados;
Índices permitem que o otimizador elimine a necessidade de examinar todos 
os dados da tabela durante a consulta. Restringindo o número de linhas 
acessadas, o desempenho da consulta pode ser significantemente 
melhorado. 
Isto é o uso mais comum de índices.
Índices
Melhorar a junção das tabelas;
Além de restringir dados em uma determinada tabela, outra proposta no uso 
de índices é a junção de tabelas de forma eficiente.
O uso de ínidices em uma coluna de junção, fornece um benefício imediato 
de performance.
O domínio na criação de índices para a junção de tabelas de forma correta é 
fundamental para a performance em qualquer banco relacional.
Índices
Classificar resultados;
Indices guardam os dados de forma ordenada. Isto torna o uso de índices 
bastante comum na seleção de registros de modo ordenado.
É possível ordenar registros utilizando o operador ORDER BY. Porém sem o 
uso de índices o banco de dados executa um filesort internamente nas linhas 
da tabela recuperadas.
O uso de índices de forma predefinida fornece um significante aumento de 
performance em sistemas de alta concorrência onde são requisitadas 
centenas ou milhares de consultas por segundo, já que os resultados são pré-
ordenados.
Índices
Agregar dados;
Ìndices podem ser utilizados como meio de calcular resultados agregados 
mais facilmente.
Exemplo: A soma do total de todos os pedidos em um determinado período 
pode ser mais eficientemente executado com um índice na data e na 
quantidade de pedidos.
Índices
Terminologia
Tecnicas
Teoria por trás de como as estruturas de dados permitem várias abordagens 
para acesso as informações. Essa técnicas incluem B-tree, B+tree, R-tree e 
Hash. Cada técnica utiliza conceitos diferentes dependendo de cada objetivo.
Implementações
Como os bancos de dados implementam as várias técnicas de estrutura de 
dados. Por exemplo o MyISAM implementa B-tree diferente do InnoDB.
Índices
Tipos de índices suportados pelo MySQL
- Chave prímária
- Chave única
- Secundários não únicos
Suportados pela maioria dos bancos de dados relacionais.
- Suporte a full-text e índices espaciais, dependendo do storage engine.
Outras implementações de índices são possíveis: 
- Fractal Tree (http://en.wikipedia.org/wiki/TokuDB), 
- InfiniDB (http://infinidb.org/) 
- Infobright (http://www.infobright.com/)
Índices
Teoria das estruturas de dados
B-tree (http://en.wikipedia.org/wiki/B-tree)
Suporta inserção de dados, manipulação e seleção através do gerenciamento 
de um conjunto de nós em uma estrutura como a raiz de uma árvore.
Existem dois tipos de nós: 
Nós de índice – organizam e direcionam em um sentido ordenado para os 
dados guardados nas folhas.
Diferente de Árvore Binária.
Índices
Teoria das estruturas de dados
B-tree (http://en.wikipedia.org/wiki/B-tree)
Índices
Teoria das estruturas de dados
B+tree (http://en.wikipedia.org/wiki/B%2B_tree)
Suporta inserção de dados, manipulação e seleção através do gerenciamento 
de um conjunto de nós em uma estrutura como a raiz de uma árvore 
utilizando uma chave.
Índices
Teoria das estruturas de dados
B+tree
Índices
Teoria das estruturas de dados
Hash (http://en.wikipedia.org/wiki/Hash_table)
É um algoritmo aplicado a um determinado valor para retornar um ponteiro 
único ou posição dentro de um repositório de dados.
O benefício na utilização de uma tabela Hash, está no tempo de recuperação 
de uma determinada linha.
Índices
Teoria das estruturas de dados
Hash (http://en.wikipedia.org/wiki/Hash_table)
Índices
Teoria das estruturas de dados
R-Tree
Suporta gerenciamento geométrico baseado em tipos de dados. Permite a 
indexação multidimensional como coordenadas geográficas, retângulos e 
polígonos.
Índices
Teoria das estruturas de dados
R-Tree
Árvore para retângulos 2D
Índices
Ìndices de uma coluna
Não existe uma limitação prática na criação de índices.
Criando um índice:
ALTER TABLE <NOME DA TABELA> ADD INDEX [NOME_DO_INDICE] (NOME_DA_COLUNA)
Índices
Ìndices de uma coluna
Índices
Ìndices de uma coluna
Índices
Ìndices de uma coluna
Índices
Ìndices de uma coluna
Índices
Ìndices de uma coluna
Índices
Ìndices de uma coluna
Dúvidas ???

Outros materiais