Sie sind auf Seite 1von 22

Cap 5

Introduo
Os BDs so armazenados fisicamente, em geral, como arquivos de registros em discos magnticos Este captulo vai tratar
da organizao de BDs em estruturas de armazenamento das tcnicas para acess-los eficientemente

Introduo
a coleo de dados que compe um BD precisa ser armazenada em alguma mdia de armazenamento que tem duas categorias principais:
armazenamento primrio armazenamento secundrio

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Introduo Categorias de armazenamento


armazenamento primrio
mdias que so operadas diretamente pela CPU: memria principal e memria cache fornece acesso rpido, mas de capacidade limitada

armazenamento secundrio
inclui disco magnticos, discos pticos e fitas possuem maior capacidade, de menor custo, mas o acesso mais lento no so processados diretamente pela CPU, eles devem primeiro ser copiados em um armazenamento primrio
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados) Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Introduo
Em geral os BDs usam a memria secundria, e parcelas desse banco so lidas e registradas em buffers da memria principal, conforme necessrio
com o avano tecnolgico, est se tornando possvel carregar uma grande frao de um BD em memria principal (RAMs de 8 a 16 gigabytes em um nico servidor, esto se tornando comuns)

Armazenamento de BDs
fitas magnticas: so frequentemente usadas como uma mdia de backup (custo menor que o armazenamento em disco)
os dados armazenados em fita so off-line, isto , necessrio alguma interveno (de operador ou de dispositivo) para carregar a fita antes que os dados se tornem disponveis

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Introduo
Armazenamento de BDs discos magnticos
dispositivos on-line, podem ser acessados diretamente, a qualquer momento as tcnicas utilizadas para armazenar grandes quantidades de dados em um disco so importantes o DBA deve conhecer as vantagens e desvantagens de cada tcnica de armazenamento quando estiver projetando (fisicamente) um BD em um SGBD especfico em geral, o SGBD possui diversas opes disponveis para organizao dos dados projeto fsico de BD envolve escolher, entre as opes disponveis, as tcnicas de organizao que melhor se adaptem aos requisitos de uma dada aplicao

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Introduo Organizaes primrias de arquivo


determinam como os registros de um arquivo so posicionados fisicamente no disco, e, portanto, como eles podem ser acessados
arquivo heap (arquivo desordenado)
posiciona os registros no disco sem nenhuma ordem especfica o acrscimo de novos registros se d ao final do arquivo

arquivo sorted (arquivo ordenado)


mantm os registros ordenados segundo o valor de um campo em particular (chamado de chave de ordenao)

arquivo hashed
usa uma funo hash aplicada a um campo em particular (chamado chave de hash) para determinar a posio de um registro no disco

b-trees
usam estruturas em rvores

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Introduo
Organizaes secundrias de arquivo
estruturas de acesso auxiliares que permitem um acesso eficiente aos registros de um arquivo baseando-se em campos alternativos queles que tenham sido usados para a organizao primria do arquivo (NDICES)

Descrio do hardware dos dispositivos de disco


seja qual for sua capacidade, todos os discos so feitos de material magntico moldado como um fino disco circular e protegido por uma cobertura plstica ou acrlica
de face nica: se armazena informaes em apenas uma de suas superfcies de dupla face: se ambas as superfcies so utilizadas para aumentar a capacidade de armazenamento, os discos so montados em um conjunto (pack) de discos

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Dispositivo de armazenamento secundrio

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Dispositivo de armazenamento secundrio A informao armazenada na superfcie do disco em crculos concntricos de pequenas espessuras, cada qual possuindo um dimetro distinto
cada crculo chamado de trilha para os conjuntos de discos, as trilhas de mesmo dimetro entre as vrias superfcies compem um cilindro
os dados armazenados em um cilindro podem ser recuperados muito mais rapidamente do que se fossem distribudos em diferentes cilindros

a trilha dividida em setores (parte da trilha determinada por um ngulo fixo a partir do centro)
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados) Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Dispositivo de armazenamento secundrio


A diviso de uma trilha em blocos de discos (ou pginas) de mesmo tamanho feita pelo sistema operacional durante a sua formatao (ou inicializao) do disco
o tamanho do bloco fixado e no pode ser alterado dinamicamente (varia de 512 a 4096 bytes, de 29 a 212) os blocos so separados pelos interblock gaps (intervalos entre blocos) que incluem informaes de controle, para determinar qual bloco na trilha segue cada interblock gap

A transferncia de dados entre a memria principal e o disco se d em unidades de blocos de disco


o endereo fsico de um bloco fornecido ao hardware de entrada e sada do disco
combinao do no. do cilindro, nmero da trilha (nmero da superfcie dentro do cilindro) e nmero do bloco (dentro da trilha)
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados) Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Dispositivo de armazenamento secundrio


Tempo total necessrio para localizar e transferir um bloco arbitrrio (dado o seu endereo) do disco para a memria principal
tempo de pesquisa + atraso rotacional + tempo de transferncia do bloco tempo de pesquisa: tempo para a controladora de disco posicionar mecanicamente o cabeote de leitura/escrita sobre a trilha correta (7 a 10ms em PCs e 3 a 8ms em servidores) atraso rotacional: at que o incio do bloco desejado rotacione at a posio sob o cabeote. Esse atraso depende da quantidade de rotaes por minuto do disco; ou seja, a metade do tempo de uma rotao (se tem 15000rpm, o tempo de 1 rotao 4ms, portanto o atraso 2ms) a taxa de transferncia em bytes/ms o tamanho total da trilha (em bytes) dividido pelo tempo de uma rotao (em ms)
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados) Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Dispositivo de armazenamento secundrio


tempo de transferncia do bloco, menor se os blocos forem contguos (o 1. bloco leva mais tempo e para os subseqentes, menos tempos, porque elimina o tempo de pesquisa e o atraso rotacional dos blocos a partir do 2., se esto na mesma trilha ou cilindro) o tamanho do bloco dividido pela taxa de transferncia

o tempo necessrio para localizar e transferir um bloco de disco da ordem de milissegundos


variando entre 12 e 60 ms para blocos contguos
1. bloco (12 a 60 ms) blocos subseqentes (de 1 a 2 ms cada)

ms considerado bastante alto se comparado ao tempo necessrio para processar dados na memria principal por meio das CPUs atuais
localizar dados no disco o maior gargalo em aplicaes de BD

quando necessrio transferir diversos blocos para a memria principal e todos os endereos de blocos so conhecidos, diversos buffers podem ser reservados na memria principal para acelerar a transferncia
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados) Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Buffering de blocos Enquanto um buffer estiver sendo lido ou escrito, a CPU pode processar os dados em outro buffer
existe um processador (controlador) de I/O independente, que pode executar a transferncia de um bloco de dados entre a memria e o disco de maneira independente e simultaneamente ao processamento da CPU a figura a seguir ilustra como 2 processos podem ser conduzidos em paralelo
quando uma nica CPU controla mltiplos processos, a execuo em paralelo no possvel entretanto os processos ainda podem ser executados concorrentemente de forma intercalada se est disponvel um processador exclusivo para I/O de disco
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados) Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Buffering de blocos

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Disposio de registros de arquivos em disco


Registros e tipos de registros
os dados so armazenados na forma de registros
cada registro possui uma coleo de valores relacionados que correspondem aos campos (atributos) dos registros

os tipos dos dados so os usados geralmente em programao


o nmero de bytes necessrio para cada tipo fixo para um determinado sistema

Arquivos e registros de tamanho fixo e de tamanho varivel


se todos os registros possuem o mesmo tamanho (em bytes), o arquivo formado por registros de tamanho fixo se possuem tamanhos diferentes, o arquivo formado por registros de tamanho varivel
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Disposio de registros de arquivos em disco


Razes do arquivo ter registros de tamanho de varivel
campos de tamanho varivel ou campos multivalorados ou campos opcionais possvel representar um arquivo que deveria ter registros de tamanho varivel como um arquivo de registros de tamanho fixo
para campos multivalorados, alocar espaos para todos os valores para campos opcionais, coloca null para campos de tamanho varivel, usar separadores especiais (que no aparecem em nenhum valor do campo) para encerrar os campos de valor varivel ou pode-se armazenar o tamanho, em bytes, do campo do registro, antes do valor do campo

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Disposio de registros de arquivos em disco


Trs formatos de armazenamento de registro
a) registro de tamanho fixo (6 campos e 71 bytes) b) registro com 2 campos de tamanho varivel e 3 campos de tamanho fixo c) registro de tamanho varivel com 3 tipos de caracteres separadores

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Diviso de registros em blocos Os registros precisam ser alocados em blocos de discos


BLOCO a unidade de transferncia de dados entre disco e memria
quando o bloco maior que o tamanho do registro, cada bloco poder conter vrios registros tamanho do bloco = B bytes tamanho do registro = R bytes com B > R, pode-se colocar bfr = B/R registros por bloco, onde arredonda para baixo, bfr chamado de fator de blocagem

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Diviso de registros em blocos Os registros precisam ser alocados em blocos de discos


em cada bloco pode-se ter espao no utilizado igual a B (bfr * R) bytes para usar esse espao, pode-se armazenar parte de um registro em um bloco e o restante em outro pode-se usar o bfr para calcular o nmero de blocos (b) necessrios para um arquivo de r registros b = (r / bfr) blocos onde arredonda para cima

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Diviso de registros em blocos Ao final do primeiro bloco, um ponteiro aponta para o bloco que contm o restante do registro no caso de ele no ser um bloco consecutivo (organizao spanned)
sempre que um registro for maior que um bloco, deve-se usar uma organizao spanned

Organizao no-spanned: usada com registros de tamanho fixo (B>R) Para registros de tamanho varivel, pode-se usar organizao spanned e no-spanned
se o tamanho mdio dos registros grande, vantagem usar spanned para reduzir a perda de espao em cada bloco
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados) Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Diviso de registros em blocos Organizaes no-spanned (a) e spanned (b)

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

10

Cap 5

Cabealhos de arquivo
Cabealho ou descritor de arquivo contm informaes sobre o arquivo que sero necessrias aos programas que acessam os registros
determinar os endereos de disco dos blocos do arquivo para registros de tamanho fixo no-spanned
descries do tamanho e ordem dos campos em um registro

para registros de tamanho varivel


descries de tipos de campo, caracteres separadores e cdigos de tipos de registro

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Pesquisa de um registro no disco


um ou mais blocos so copiados nos buffers da memria principal os programas procuram o(s) registro(s) desejado(s) dentro dos buffers usando a informao do cabealho do arquivo se o endereo do bloco que contm o registro desejado no conhecido, feita uma pesquisa linear pelos blocos do arquivo
cada bloco copiado em buffer e pesquisado at o registro ser localizado ou at que todos os blocos do arquivo tenham sido pesquisados

para um arquivo grande, isto pode consumir muito tempo o objetivo de uma boa organizao de arquivo localizar um bloco que contenha um registro desejado com um nmero mnimo de transferncias de bloco
Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

11

Cap 5

Organizao de arquivo x Mtodo de acesso


Organizao de arquivo se refere organizao dos dados de um arquivo em registros
maneira como registros e blocos so posicionados e interligados na mdia de armazenamento

Mtodo de acesso fornece um grupo de operaes que podem ser aplicadas a um arquivo
comandos de acesso aos registros
OPEN: prepara o arquivo para leitura ou escrita, aloca os buffers adequados para hospedar os blocos do arquivo e busca o cabealho do arquivo RESET: reposiciona o ponteiro de arquivo em seu incio FIND: busca o primeiro registro que satisfaa uma condio de pesquisa, transfere o bloco que contm aquele registro para um buffer na memria principal; o ponteiro do arquivo aponta para o registro no buffer e ele se torna o registro atual
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados) Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Mtodo de acesso
READ: copia o registro atual do buffer para uma varivel do programa do usurio FINDNEXT: procura o prximo registro no arquivo que satisfaa a condio de pesquisa
transfere o bloco contendo aquele registro para um buffer na memria principal (se ele ainda no estiver l) o registro localizado no buffer e se torna o registro atual

DELETE: exclui o registro atual e atualiza o arquivo no disco para refletir a excluso MODIFY: modifica alguns valores de campos no registro atual e atualiza o arquivo no disco para refletir a modificao INSERT: acrescenta um novo registro no arquivo por meio da localizao do bloco no qual o registro deve ser includo, transferindo aquele bloco para o buffer da memria principal, escrevendo o registro no buffer e escrevendo o buffer no disco CLOSE: finaliza o acesso ao arquivo por meio da liberao dos buffers e outras operaes de limpeza necessrias
Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

12

Cap 5

Arquivos de registros desordenados (heap files)


Organizao mais simples e bsica Os registros esto posicionados no arquivo segundo a ordem pela qual foram includos; novos registros so acrescentados no final do arquivo Incluir um novo registro
o ltimo bloco do arquivo copiado no buffer, o novo registro acrescentado e o bloco reescrito no disco o endereo do ltimo bloco do arquivo mantido no cabealho do arquivo

A pesquisa por um registro, usando qualquer condio, envolve uma pesquisa seqencial
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados) Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Arquivos de registros desordenados (heap files) Excluir um registro


o programa deve encontrar seu bloco, copi-lo em um buffer excluir o registro do buffer e reescrever o bloco de volta no disco

Excluso de registros
deixa espaos sem uso no bloco outra tcnica usar um byte para marcar a excluso programas de pesquisa consideram apenas os registros vlidos (byte com valor diferente do de excluso)
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados) Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

13

Cap 5

Arquivos de registros desordenados (heap files)


Excluso de arquivos
ambas tcnicas exigem reorganizao do arquivo para reaproveitar o espao dos registros excludos
os blocos so acessados consecutivamente e os registros so agrupados pode-se utilizar o espao dos registros excludos durante a incluso de novos registros, mas exige-se controles adicionais sobre as localizaes vazias

Pode-se usar ambas as organizaes, spanned e no-spanned Pode-se usar tanto com registros de tamanho fixo quanto com registros de tamanho varivel
a modificao de um registro de tamanho varivel pode exigir a excluso do registro antigo e a incluso de um registro modificado, porque o registro modificado pode no caber em seu espao antigo
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados) Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Arquivos de registros ordenados (sorted files)


Pode-se ordenar fisicamente os registros de um arquivo a partir de valores de um campo de classificao, que pode ser o campo-chave do arquivo
(NOME o campo chave de classificao, para nomes distintos)

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

14

Cap 5

Arquivos de registros ordenados (sorted files)


Vantagens
a leitura dos registros na ordem dos valores das chaves de classificao se torna extremamente eficiente encontrar o prximo registro a partir do atual no requer acessos a outros blocos porque o prximo registro deve estar no mesmo bloco que o atual (a menos que seja o ltimo do bloco) a condio de pesquisa baseada no valor do campo chave de classificao resulta em um acesso mais rpido pois a tcnica de pesquisa binria utilizada

Incluso
operao dispendiosa porque os registros devero permanecer ordenados fisicamente
para inserir um registro, deve-se abrir espao no arquivo e em mdia, metade dos registros dever ser transferida para abrir espao para o novo registro para tornar a incluso eficiente, mantm-se espaos no utilizados em cada bloco para novos registros, mas, uma vez usados, ressurge o problema original

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Arquivos de registros ordenados (sorted files) Modificar o valor de um campo depende


da condio para localizar o registro
se a condio de pesquisa envolver o campo-chave, pode-se localizar o registro usando pesquisa binria, caso contrrio, pesquisa linear

do campo a ser modificado


se for um campo no ordenado, faz-se a alterao do registro e sua regravao modificar campo de classificao significa que sua posio poder ser alterada no arquivo, o que exigir a excluso do registro antigo seguida da incluso do registro modificado

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

15

Cap 5

Nmeros mdios de acesso para organizaes bsicas


Encontrar um registro especfico em um arquivo com b blocos
Tipo de organizao Mtodo de acesso / pesquisa Desordenado Pesquisa Linear Nmero mdio de acesso a um registro em particular ceil(b/2)

Ordenado

Varredura sequencial

ceil(b/2)

Ordenado

Pesquisa binria

ceil(log2b)

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Estrutura de indexao de arquivos


Neste captulo assume-se que um arquivo j existe e possui alguma organizao primria
desordenada ordenada ou hash

Utiliza-se ndices, que so estruturas de acesso adicionais auxiliares


para aumentar a velocidade da recuperao de registros na resposta a certas condies de busca em geral, as estruturas de ndice fornecem caminhos de acesso secundrio (caminhos de acesso alternativos), sem afetar a disposio fsica dos registros qualquer campo pode ser usado para criar um ndice, e, podem ser construdos ndices mltiplos a partir de diferentes campos do arquivo
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados) Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

16

Cap 5

Estrutura de indexao de arquivos


Para encontrar um registro com base em certo critrio de seleo, a partir de um campo de indexao
necessrio acessar o ndice, que aponta para um ou mais blocos do arquivo em que os registros requeridos esto localizados

A estrutura de acesso de ndice ordenado se baseia no ndice de um livro texto


ter os termos importantes ao final do livro, em ordem alfabtica com uma lista dos nmeros de pginas onde o termo aparece

Uma estrutura de acesso de ndice definida com base em um nico campo do arquivo, chamado de campo de indexao
o ndice armazena cada valor do campo de indexao com uma lista de ponteiros para todos os blocos de disco que contm registros com aquele valor de campo os valores dos ndices esto ordenados para possibilitar busca binria

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

Tipos de ndices ordenados em nvel nico


Existem 3 tipos diferentes de ndice:
primrio: especificado sobre o campo-chave de classificao de um arquivo ordenado se o campo de classificao no um campo chave, ou seja, vrios registros podem ter o mesmo valor para o campo de classificao, o ndice passa a ser do tipo clustering outro tipo de ndice o secundrio que pode ser especificado sobre qualquer campo que no seja o de classificao sero abordados neste estudo os ndices primrio e secundrio

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

17

Cap 5

ndices primrios
ndice primrio um arquivo ordenado cujos registros so de tamanho fixo e contm 2 campos
primeiro: o valor do campo-chave de classificao (chave primria) segundo: um ponteiro para o bloco de disco (possui um endereo de bloco) se refere aos valores desses 2 campos de entrada de ndice por <K(i), P(i)> para se criar um ndice primrio para o arquivo do slide seguinte, usa-se o NOME como chave primria do arquivo de ndices (porque ele o campochave de classificao do arquivo, NOME nico)

H um registro de ndice para cada bloco do arquivo de dados


cada entrada no ndice (registro de ndice) possui um valor de NOME e um ponteiro
<K(1) = (Aaron, Ed), P(1) = endereo do bloco1> <K(2) = (Adams, John), P(2) = endereo do bloco2> <K(3) = (Alexander, Ed), P(3) = endereo do bloco3>
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

ndices primrios

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

18

Cap 5

ndices primrios

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

ndices primrios
Se o arquivo de ndice primrio contm bi blocos, ento, localizar um registro com valor de chave de busca exige
uma busca binria naquele ndice e um acesso ao bloco de disco contendo aquele registro total de log2bi + 1 acessos

Exemplo de economia em acessos a blocos com a utilizao de ndice primrio para busca do registro
arquivo ordenado com r = 30000 registros de tamanho fixo tamanho do registro R = 100 bytes organizao no-spanned tamanho de bloco B = 1024 bytes fator de diviso em blocos bfr = floor (B/R) = 10 registros por bloco nmero de blocos necessrios b = ceil (r/bfr) = 3000 blocos uma busca binria no arquivo de dados exigiria aproximadamente ceil (log23000) = 12 acessos a blocos

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

19

Cap 5

ndices primrios
Exemplo de economia em acessos a blocos com a utilizao de ndice primrio para busca do registro
o campo de classificao do arquivo tem V = 9 bytes um ponteiro de blocos P = 6 bytes o tamanho de cada entrada de ndice Ri = (9+6) = 15 bytes o fator de diviso em blocos para o arquivo de ndices bfri = floor (B/Ri) = floor (1024/15) = 68 entradas por bloco o nmero total de entradas de ndice ri igual ao nmero de blocos do arquivo de dados, 3000 o nmero de blocos de ndice bi = ceil (ri/bfri) = ceil (3000/68) = 45 blocos para realizar busca binria no arquivo de ndices seriam necessrios ceil(log2bi) = ceil (log245) = 6 acessos a blocos para buscar um registro usando o ndice, precisa-se de um acesso adicional a bloco no arquivo de dados, 6 + 1 = 7 acessos a blocos uma otimizao com relao busca binria no arquivo de dados, que de 12 acessos
Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Cap 5

ndices secundrios
Fornece um meio secundrio de acesso a um arquivo para o qual j existe algum acesso primrio
pode ser usado sobre um campo que uma chave candidata e possui um valor nico em cada registro ou um campo que no chave e que possui valores duplicados

O ndice um arquivo ordenado com 2 campos


campo do arquivo de dados que no o de classificao (campo de indexao) ponteiro de registro

Uma entrada de ndice criada para cada registro do arquivo de dados


em vez de uma entrada para cada bloco, como no caso de ndice primrio

Em geral, um ndice secundrio precisa de mais espao de armazenamento e de maior tempo de busca que um ndice primrio, devido ao maior nmero de entradas no arquivo de ndices
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados) Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

20

Cap 5

ndices secundrios

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

Cap 5

ndices secundrios
Considere o arquivo do exemplo anterior
r=30000 de tamanho fixo; R = 100 bytes; B = 1024 bytes; b = 3000 blocos para realizar busca linear no arquivo seriam necessrios b/2 = 3000/2 = 1500 acessos a bloco em mdia construiu-se um ndice secundrio baseado em um campo de V = 9 bytes um ponteiro de registro de tamanho P = 7 bytes, assim o tamanho de cada entrada Ri = (9+7) = 16 bytes o fator de diviso em blocos para o ndice bfri = floor(B/Ri) = 64 entradas por bloco o nmero total de entradas de ndice ri igual ao nmero de registros do arquivo de dados, 30000 nmero de blocos necessrios para o ndice bi = ceil(ri/bfri) = 469 blocos
Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados) Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

21

Cap 5

ndices secundrios
Uma busca binria neste ndice secundrio exige ceil (log2bi) = ceil(log2469) = 9 acessos a blocos Para buscar um registro usando o ndice, precisa-se de um acesso adicional a bloco do arquivo de dados, total de 10 acessos
grande melhoria em relao aos 1500 acessos a blocos necessrios, em mdia, na busca linear um pouco pior que os 7 acessos a blocos necessrios no ndice primrio

Curso: Engenharia da Computao Disciplina: EC210 (Banco de Dados)

Tema: Armazenamento em disco e estrutura de indexao de arquivos Professora: Rosanna M. R. Silveira

22

Das könnte Ihnen auch gefallen