Beruflich Dokumente
Kultur Dokumente
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
Cap 5
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
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
Cap 5
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
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)
Cap 5
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
Cap 5
Cap 5
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
Cap 5
Cap 5
Cap 5
Cap 5
Cap 5
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
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
Cap 5
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
11
Cap 5
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
12
Cap 5
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
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
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
14
Cap 5
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
Cap 5
15
Cap 5
Ordenado
Varredura sequencial
ceil(b/2)
Ordenado
Pesquisa binria
ceil(log2b)
Cap 5
16
Cap 5
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
Cap 5
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)
Cap 5
ndices primrios
18
Cap 5
ndices primrios
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
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
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
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
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
22