Академический Документы
Профессиональный Документы
Культура Документы
Indexao Aula 9
Introduo
O usurio de um sistema de banco de dados est normalmente interessado no desempenho do sistema. Quo rpido esse sistema responde a uma requisio desse usurio? Portanto, o fator principal de satisfao (ou de insatisfao) o desempenho da base de dados se o tempo de resposta a uma consulta grande demais, o sistema desvalorizado.
Introduo
eficincia das estruturas computacionais usadas para representar os dados na base e, como o sistema eficientemente capaz de operar nessas estruturas de dados.
De
Gerenciador de Arquivos
Componente funcional de um SGBD que gerencia a alocao do espao na armazenagem do disco e as estruturas de dados usadas para representar a informao armazenada no disco.
Gerenciador de Buffer
Componente funcional de um SGBD responsvel pela transferncia de informaes entre o disco de armazenagem e a memria principal.
ORGANIZAO DE ARQUIVOS
CONCEITOS BSICOS
Arquivo de dados
Estrutura de um arquivo.
Insero
Adio
de um registro no arquivo
Alterao
Corresponde
Excluso
Eliminao
de um registro do arquivo
Consulta
Localizao
de um registro no arquivo.
Reorganizao/Ordenao
Dependendo
da organizao de arquivos utilizada necessrio reorganizar ou ordenar os registros, facilitando a sua manipulao.
O registro lgico corresponde s instncias (objetos) do mundo real, cujos atributos so representados pelos campos. Estes registros que so manipulados pelos programas (sistemas) de aplicao. O registro fsico corresponde organizao fsica onde as informaes so armazenadas (no HD, setores).
Organizao de Arquivos
Organizar um arquivo significa relacionar (mapear) a estrutura lgica e a estrutura fsica de um arquivo.
Organizao de Arquivos
A organizao de arquivo trata do arranjo ou a forma de distribuio dos registros dentro do arquivo, objetivando agilizar o processo de armazenamento e recuperao de dados.
Arquivos Sequenciais
Em um arquivo sequencial, os registros so dispostos ordenadamente, obedecendo sequncia determinada por uma chave primria, chamada de chave de ordenao.
Arquivos Sequenciais
Para permitir uma recuperao rpida de registros na ordem da chave de busca, os registros so encadeados por ponteiros. O ponteiro em cada registro aponta para o prximo registro na ordem da chave de busca.
Arquivos Sequenciais
1 3 2 5 3 10 4 12 5 30 6 50
32 25 43 23 21 29
Arquivos Sequenciais
um
til quando preciso processar quase todos os elementos. Desvantagens: Incluso extremamente custosa. e Excluso
Arquivos Sequenciais
Exemplo de Insero
Ademar 32 5000
5
10 12
Roberto
Gerson Yeda
25
43 23
7500
6000 9000
30
50 15
Bernardo
ngela Vanessa
21
29 28
4500
5000 6000 Overflow
consiste na obteno do prximo registro, segundo a chave de ordenao. Este tipo de acesso extremamente eficiente por estarem os registros fisicamente armazenados de acordo com a sequncia que solicitada. O argumento de pesquisa comparado com cada registro lido de forma seqencial.
Busca Binria
Divide-se o arquivo pela metade e compara-se o argumento de pesquisa com o registro da diviso. Se este no for o registro desejado, determina-se para qual metade se far a prxima diviso (compara se o argumento de pesquisa maior ou menor que o registro da diviso), e novamente se faz a comparao com o registro divisor e assim sucessivamente.
INDEXAO
Indexao Problema
Indexao Problema
Tempo para encontrar o livro aumenta significativamente com o nmero de livros que se tem na biblioteca em questo. Soluo:
Um
catlogo, organizado de alguma forma (por autor, por ttulo, ...) que diga onde encontrar o livro na prateleira.
Indexao Soluo em BD
Utilizao de ndices.
Objetivo:
Permitir
O que um ndice?
Um
ndices
O uso de ndice conveniente aos processos que precisam de um desempenho mais gil, mesmo para os registros que no se encontrem ordenados fisicamente.
ndices
ndices so, portanto, estruturas de dados auxiliares cujo nico propsito tornar mais rpido o acesso a registros baseados em certos campos, chamados campos de indexao.
ndices
Um ndice permite localizar um registro sem ter que examinar mais que uma pequena frao dos registros possveis; O(s) campo(s) cujos valores o ndice se baseia formam a chave de pesquisa;
ndices
Cada ndice formado pelo valor de um atributo chave do registro e pela sua localizao fsica no interior do arquivo. A estrutura com a tabela de ndices tambm armazenada e mantida em disco.
ndices
ndices
Ordenados
Baseiam-se
Hash
Baseiam-se
na distribuio uniforme dos valores determinados por uma funo (funo de hash).
Esparso
Clustering
Secundrio
NDICES ORDENADOS
DENSO X ESPARSO
Os ponteiros em um arquivo de ndices podem se referir a cada registro do arquivo ou a um bloco de disco, originando dois tipos de ndices:
ndice
ndice Denso
H uma entrada no ndice para cada valor de chave que ocorre em um registro de dados.
Esse registro de ndice contm o valor da chave de busca e um ponteiro para o registro.
ndice Esparso
H um entrada no ndice apenas para alguns valores de chave (um para cada bloco).
Para localizar um registro com chave K, procura-se a entrada E do ndice com o maior valor de chave menor ou igual a K e pesquisa-se o arquivo a partir do registro apontado por E.
ndice Esparso
Um ndice esparso utiliza menos espao para armazenamento ao custo de um tempo um pouco maior para encontrar um registro dada sua chave. No ndice esparso, inseres e remoes so menos custosas quando comparadas ao ndice denso.
Exerccios
Considere uma relao com 1.000.000 registros (ou tuplas) que cabem dez a dez em um bloco de 4.096 bytes.
a) b)
a) b)
Qual o espao necessrio para os dados? Se o campo da chave tem 32 bytes e um ponteiro 8 bytes.
Quantos pares chave-ponteiro cabem em um bloco? Qual o espao ocupado por um ndice denso para esta relao? E se um ndice esparso for utilizado, qual o espao gasto pelo ndice?
c)
NDICES ORDENADOS
ndice Primrio
No arquivo sequencial, um campo chave usado para ordenar fisicamente os registro de arquivos em disco. Se a chave de ordenao for um campo exclusivo (sem duplicatas), ento o ndice chamado de ndice Primrio.
ndice Primrio
ndice Primrio
Vantagens
Economia
Desvantagem
Incluso
e remoo de registros
(o nmero de entradas
ndice Clustering
Se a chave de ordenao for um campo no chave (com duplicatas), ento o ndice chamado de ndice Clustering. Existe uma entrada no ndice clustering para cada valor distinto do campo clustering. O ndice contm o valor e um ponteiro para o primeiro bloco no arquivo de dados que possua um registro com aquele valor para seu campo clustering.
ndice de Clustering
Campo Clustering
No ndice de Cluster os registros de um arquivo so fisicamente ordenados por um campo de ordenao que permite duplicatas.
ndice de Clustering
Vantagens
Economia
Desvantagem
Incluso
e remoo de registros
Um arquivo pode possuir, no mximo, um ndice primrio ou um ndice de clustering, porm no ambos. Porque um arquivo pode possuir, no mximo, um campo de ordenao fsica.
ndice Secundrio
Frequentemente desejamos ter vrios ndices em uma relao, a fim de facilitar consultas variadas. Um terceiro tipo de ndice, chamado de ndice secundrio, pode ser especificado sobre qualquer campo no-ordenado de um arquivo. Um arquivo pode possuir diversos ndices secundrios, alm de seu mtodo de acesso principal.
ndice Secundrio
Um ndice secundrio um ndice cuja chave no aquela da ordem sequencial do arquivo. Portanto, a diferena entre ndice secundrio e ndice primrio est no fato de que o ndice secundrio no determina a colocao de registros no arquivo de dados.
Um ndice secundrio um ndice denso, normalmente com duplicatas. O ndice consiste em pares chave-ponteiro.
so
Os dados no esto classificados pela chave de pesquisa. As chaves no arquivo de ndices esto classificadas.
NDICES ORDENADOS
SECUNDRIO PARA NO CHAVE PRIMRIA
ndice Secundrio
Se o campo chave que estiver sendo indexado possuir duplicatas, dizemos que temos um ndice Secundrio para No Chave Primria.
Como as ordens da chave secundria e da chave fsica diferem, ao tentarmos varrer o arquivo sequencialmente na ordem da chave secundria, a leitura de cada registro provavelmente requerer a leitura de um novo bloco do disco.
ndice Secundrio
ndice Registro no Disco
Selecione todos os registros de valor 20. Recuperar 2 blocos de ndice + 3 blocos de dados.
ndice Secundrio
Problema:
O
uso de um ndice secundrio pode resultar em muito mais operaes de E/S do disco.
Soluo:
estruturas que agrupem os valores de chave. Uma forma conveniente de evitar a repetio de valores usar um nvel de carter indireto, chamado depsito (bucket), entre o arquivo de ndices secundrios e o arquivo de dados.
Criar
Bloco de Pont.
Deposito
Nomecliente
Green Johnson Peterson Smith Hayes Willians Lyle
saldo
750 500 600 700 400 900 700
Redwood
Round Hill
222
305
Lindsay
Turner
700
350
Numero -conta
217 101 110 215 102 201 218 222 305
sald o
750 500 600 700
ndices Secundrios
A cada mudana no banco de dados, todos os ndices secundrios (e depsitos) precisam ser modificados.
Fatores que tornam a pesquisa baseada em ndices mais eficiente do que parece
O nmero de blocos de ndices em geral pequeno quando comparado com o nmero de blocos de dados. Tendo em vista que as chaves so classificadas, podemos usar a pesquisa binria para encontrar uma determinada chave. Se houver n blocos do ndice, bastar examinar log2n deles.
O ndice pode ser pequeno o bastante para ser mantido permanente em buffers da memria principal.
NDICES ORDENADOS
MONONVEL X MULTINVEL
ndice Mononvel
ndice Multinvel
Se esses blocos no estiverem em algum lugar onde saibamos que possvel encontr-los, por exemplo em cilindros designados de um disco, ento talvez seja necessria outra estrutura de dados para localiz-los.
Mesmo que isto ocorra, talvez ainda seja preciso executar muitas operaes de E/S de disco para alcanar o registro que queremos localizar. Inserindo um ndice no ndice, poderemos tornar o uso do primeiro nvel de ndices mais eficiente.
ndice Multinvel
Um ndice multinvel considera o arquivo ndice, o qual chamaremos agora de primeiro nvel (ou base) do ndice multinvel, como um arquivo ordenado com um valor distinto para cada k(i). Portanto, podemos criar um ndice principal para o primeiro nvel.
Esse ndice para o primeiro nvel chamado de segundo nvel do ndice multinvel.
Uma vez que o segundo nvel um ndice principal, podemos utilizar ncoras de blocos de forma que o segundo nvel possua uma entrada para cada bloco do primeiro nvel.
ndice Multinvel
ndice Nvel Secundrio ndice Primeiro Nvel (base)
Arquivo de dados
ndice Multinvel
D-se o nome de fator de bloco do ndice (bfri) para o nmero de registros lgicos que cabem em um registro fsico. O valor de bfri chamado de fan out (fo) do ndice multinvel. Um ndice multinvel com r entradas de primeiro nvel ter aproximadamente t nveis, onde t = log fo(r).
ndices Multinvel t = 2
Primeiro Nvel (BASE)
2 8 15 24
Chave Primria
2 5 8 12 15 21
TABELA DE DADOS
35
24 29
39 44 51
35 36 39
55 63 71 80
41 44 46 51 52
85 93 95 100
. . .
ndices Multinvel t = 2
Primeiro Nvel (BASE)
2 8 15 24
Chave Primria
2 5 8 12 15 21
ARQUIVOS DE DADOS
35
24 29
39 44 51
35 36 39
55 63 71 80
41 44 46 51 52
Bloco de memria
85 93
Fan-out = 4
(bfrndice ou fo)
95 100
. . .
ndice Multinvel
Embora um ou dois nveis de ndices sejam com frequencia muito teis para acelerar consultas, h uma estrutura mais geral usada comumente em SGBDs comerciais por serem mais flexveis e escalveis. A famlia geral de estruturas de dados chamada rvore B, e a variante utilizada com mais frequncia conhecida como rvore B+.
ndice Multinvel
Basicamente, a rvore B:
Automaticamente
mantm os nveis balanceados para a quantidade de dados que est sendo indexada, e,
o espao usado por seus blocos para que eles sempre estejam ocupados com pelo menos a metade de sua capacidade.
Gerencia
NDICES ORDENADOS
RVORE B X RVORE B+
MULTINVEL
rvore B
As rvores B so rvores balanceadas que visam otimizar as operaes de entrada e sada nos dispositivos. Em uma aplicao comum de uma rvore B, a quantidade de dados to grande que provavelmente no caberia na memria principal. A rvore B copia blocos especficos para a memria principal quando necessrio e os grava no disco se os blocos tiverem sido alterados.
rvore B
a ordem da rvore B
rvore B
rvore B
Exemplo ordem 3
rvore B
Exemplo ordem 4
N de uma rvore B
Ponteiro de rvore Ponteiro de dados Ponteiro de rvore Ponteiro de dados Ponteiro de rvore
P1
ki
Pri
P2
kj
P3
Prj
P4
5
8 < Ki < 5
8
Ki > 8
Ki < 5
Ns Folhas
12
Exemplo - Relao
Clearview
218
Lyle
700
Exemplo
Downtown
Redwood
Redwood 222 Lindsay 700
Brighton
Clearview
Mianus
Perrydge
Round Hill
A rvore B gerencia o espao usado por seus blocos para que eles sempre estejam ocupados com pelo menos a metade de sua capacidade.
Redwood
Bucket de Redwood
Brighton
Clearview
Mianus
Bucket de Mianus
Perrydge
Round Hill
rvore B+
Na rvore B, uma chave somente entrada uma vez em algum nvel da rvore.
J na rvore B+, todos os dados s so armazenados nas folhas. Desta maneira, a estrutura conceitual das folhas difere da estrutura dos ns internos. As folhas da rvore B+ esto ligadas em sequncia, tornando possvel o acesso ordenado a seus campos.
N de uma rvore B
A chave 5 aparece uma nica vez na rvore. O n da rvore B tem um ponteiro para os dados referentes a chave.
5
8 < Ki < 5
8
Ki > 8
Ki < 5
Ns Folhas
12
rvore B+
N de uma rvore B+
Ponteiro de rvore Ponteiro de rvore
ki
P1
kj
P2
Ns Intermedirio
5
8 Ki < 5
Ki 5
Ns Folhas
1 3
6 7
9 12
N de uma rvore B+
Ponteiro de rvore Ponteiro de rvore
ki
P1
kj
P2
Ns Intermedirio
6
Ns Folhas
12
Exemplo - Relao
Clearview
218
Lyle
700
Exemplo
Perrydge Downtown Mianus Redwood
Brighton
Clearview
Downtown
Mianus
Perrydge
Redwood
Round Hill
Downtown
Mianus Perryridge Redwood Round Hill
101
215 102 222 305
Johnson
Smith Hayes Lindsay Turner
500
700 400 700 350
Vantagens rvore B+
Embora a insero e remoo em rvore B+ sejam complicadas, elas requerem relativamente poucas operaes. a velocidade de operaes em rvores B+ que as torna uma estrutura de ndice usada frequentemente em implementaes de bancos de dados.
Ausncia de armazenamento redundante de chaves de busca; Possibilidade de encontrar uma chave sem chegar at um n folha;
Busca
mais rpida
A remoo mais simples, pois a entrada a ser removida sempre estar numa folha.
NDICES DIRETOS
HASH ESTTICO X HASH DINMICO
Hashing
Uma desvantagem de esquemas de ndice que precisamos fazer o acesso a uma estrutura de ndice a fim de localizar dados. A tcnica de hashing evita o acesso a uma estrutura de ndice. Os arquivos seriam organizados por meio de uma funo de hash.
Hashing
Acesso direto ao endereo do bloco de disco que contm o registro desejado; Aplica-se uma funo sobre o valor da chave de procura do registro para encontrar o bloco de disco correto;
Utiliza-se do conceito de bucket para representar uma unidade de armazenamento de um ou mais registros;
Normalmente equivalente a um bloco de disco, porm ele pode denotar um valor maior ou menor que um bloco de disco.
Funo de Hashing
Seja K o conjunto de todos os valores da chave de busca em uma relao; Seja B o conjunto de todos os endereos de buckets. Uma funo de hashing uma funo de K para B.
h(K)
Funes de Hashing
Uma funo Hash ideal distribui as chaves armazenadas uniformemente por todos os buckets, de forma que todos os buckets tenham o mesmo nmero de registros. Pior funo:
Mapeia
Funes de Hashing
Funo ideal:
Distribui
Distribuio
aleatria
O valor de hash no estar relacionado a qualquer ordenao externamente visvel sobre os valores da chave de busca.
Exemplo - Relao
Exemplo
Funo de Hashing
Decidimos
ter 24 buckets A funo ir mapear a i-sima letra do alfabeto para o i-simo bucket.
Bucket 0
Bucket 1 Brighton
Bucket 2 Clearview
Bucket 3 Downtown
...
Bucket 12 Mianus Bucket 15 Perryridge
Bucket 17 Redwood
Round Hill
...
Bucket 23
Exemplo
Se a busca for pela agncia Perrydge, a funo computa o inteiro que o P representa, vai at o bucket (bloco) correto e varre o bloco at encontrar o registro correspondente chave de busca. Se uma agncia chamada Lavras for inserida, o registro referente a essa agncia ser gravado no bucket nmero 11. A remoo de qualquer registro tambm direta. Ou seja, para remover o registro de chave Ki, calcula-se h(Ki) para localizar o bucket para aquele registro e varre o bucket procurando pelo registro de chave Ki.
Funo de Hashing
A funo de hashing escolhida no momento da implementao do sistema e no se pode mud-la mais tarde. A funo h mapeia valores de chave de busca para um conjunto fixo B de endereos de buckets.
Se
B for muito grande, desperdia-se espao. Se B for muito pequeno, o bloco conter valores muito diferentes da chave de busca.
Hashing Dinmico
A necessidade de fixar o conjunto B de endereos de buckets um problema srio com a tcnica de hashing esttico. A maioria dos bancos crescem muito com o tempo.
Hashing Dinmico
Divide e une os buckets enquanto o banco de dados cresce e encurta Eficincia do espao mantida Funo gera valores relativamente grandes por intervalos
Hashing Dinmico
Hashing dinmico inicial
Hashing Dinmico
Vantagens
Desempenho
mantido quando o arquivo aumenta Sobrecarga de espao mnima Buckets no precisam ser reservados
Desvantagem
Pesquisa
EXERCCIO
EXERCCIOS
4 lista de exerccios No site
Exerccio rvore B e B+
Um atributo como chave primria Um atributo como UNIQUE Pelo menos mais trs atributos Pelo menos dez registros
b)
Esquematize e justifique:
O arquivo sequencial Os ndices das chaves primria e unique Mais dois ndices secundrios, sendo um mononvel e um multinvel
Entregar impresso:
Indexao e Hashing
Criar ao menos um ndice secundrio sobre o banco de dados do trabalho final da disciplina.
Justificar