organização de arquivos classificação e pesquisa de ...valdeni/arqpdf/a02-inf01124_disco.pdf1...
TRANSCRIPT
1
Classificação e Pesquisa de Dados
Aula 2Organização de Arquivos: Arquivos Sequenciais e
Arquivos Sequenciais Indexados
UFRGS INF01124
Organização de Arquivos
Propósiton Estudo de técnicas de armazenamento e
recuperação de dados em memória secundáriaPrincipais técnicasn Arquivos seqüenciaisn Arquivos indexadosn Arquivos invertidosn Arquivos de texto
Armazenamento em disco
Disco
Trilhas divididasem
setores
Cabeçote deLeitura/gravação
Braço dePosicionamentoDo cabeçote
Sentidorotacional
Estrutura do disco
Armazenamento em disco: características
Várias superfícies de gravação/leituraCilindro: definido como sendo um conjunto de trilhas verticalmente alinhadas e com mesmo diâmetron Registros que pertencem a um mesmo cilindro
não requerem deslocamento do mecanismo de acesso
Armazenamento em disco: características
Custo de acesso ao discon Tempo de busca (seek time): tempo de deslocamento
do mecanismo de acesso de uma trilha para outran Latência rotacional: tempo para que o inicio do bloco
que contenha o registro a ser lido passe pelo cabeçote de leitura/gravação
n Tempo de transferência: quantidade de tempo necessário para que um bloco (ou setor) seja transferido para um buffer de memória
2
Terminologia empregada
Arquivon Coleção de registros lógicos
Registro lógicon Seqüência de campos ou atributos da entidade ou
objeto sendo modelado
Campon Corresponde a cada uma das informações que se
deseja modelar a respeito da entidade ou objeto considerado
n Ex.: Nome, salário, cargo, etc.
Tipos de acesso a arquivos
Acesso ao arquivo inteiron Computação gráfican Engenharia de softwaren CAD n DocumentosAcesso a registrosn Banco de dadosn Processamento transacional
Arquivo de funcionário
Campo: cargoTipo: alfanuméricoComprimento: 30 bytes
Campo: salárioTipo: numérico realComprimento: 7 bytes
Campo: data-nascTipo: dataComprimento: 8 bytes
Campo: nomeTipo: alfabéticoComprimento: 35 bytes
1012 Maria 01/10/1982 1250,00 analista
Campo: númeroTipo: numérico inteiroComprimento: 4 bytes
Registro lógico
Terminologia empregada
Registro físicon O armazenamento de um arquivo é feito, via
de regra, por blocos de registros lógicosn Um bloco corresponde a quantidade de dados
transferidos em um acesso simplesn Um bloco de registros lógicos corresponde a
um registro físico
Terminologia empregada
n Em cada leitura ou gravação é lido ou gravado um bloco e não apenas um registro lógico
n Usualmente, o tamanho dos blocos é constante e coincidente com uma unidade de armazenamento do meio físico utilizado (ex.: Setores, trilhas em disco magnético)
n Fator de bloco: número (inteiro) de registros lógicos por bloco
Estrutura de acesso
Arquivo
Buffers
RegistroPrograma
Sistema operacional
Arquivo físico
Um registro
Um bloco em cada buffer
Blocos físicos
3
Tipos de registros lógicos
# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 1
# 2
# 3
# 4
# 5
# 6
Registro de tamanhoFIXO
Registro de tamanhoVARIÁVEL
Registros de tamanho fixo
nr div fb : bloco onde está o registronr mod fb : posição do registro no bloco
n nr : posição relativa no arquivo
n fb : fator de bloco
1 2 3 4
5 6 7 8
Registros de tamanho variável
Problemas de acesso, exceto o serialProblemas de atualização, podendo haver aumento de tamanho do registroAs vezes é conveniente deixar alguns itens no formato usual, por serem usados com grande freqüência. Assim, evita-se a expansão à cada vez que são manipulados
1 2 3 4 5
6 7 8 9
Arquivo seqüencial - AS
Caracterizaçãon Registros fisicamente ordenados por uma chave
primária ou chave de ordenação
100010501075110013001350140014401480. . .
AdemarAfonsoCarlosDarciEberGenaroHelenaMariaRamon. . .
252722253919192122. . .
900500120015005006504209001340. . .
Número Nome Idade Salário
Arquivo seqüencial
Indicação de uson Memória de acesso seqüencialn Indicado para arquivos que sofrem
recuperações/atualizações por lotes (em batch)
Contra-indicaçãon Quando há mais do que uma chaven Quando exige-se respostas em tempo realn Aplicações com inserções/exclusões arbitrárias
Acesso a um registro
Serial ou seqüencial
Aleatório
ArquivoSeqüencial
4
Arquivo Seqüencial 19
Acesso Serial ou Seqüencial a um registro
Registros fisicamente armazenados de acordo com a seqüência na qual são solicitadosNa maioria dos acessos o registro solicitado estará em memória por pertencer ao mesmo bloco do seu antecessor
Arquivo Seqüencial 20
Acesso Aleatório a um registro
Registro solicitado através de um argumento de pesquisaCasos possíveisn Argumento de pesquisa coincide com a chave
de ordenaçãow Constatação rápida da ausênciaw Arquivo armazenado em dispositivo de acesso direto à possibilidade de busca via pesquisa binária
n Argumento de pesquisa não coincide com a chave de ordenação
Arquivo Seqüencial 21
Atualização
Inserções/exclusões de registrosn Arquivo mestren Arquivo de transaçõesw Pode ser usado como extensão do mestre
n Arquivo de saída (novo mestre)n Execução da operação de intercalação
Processamento em lotes
Arquivo mestre
Arquivo de transações
Processamento Arquivo de saída
Arquivo Seqüencial 23
Atualização
Alteração de um registron Situação normalw Localiza à lê à altera campos à grava
n Situações especiaisw Alteração aumenta o tamanho do registrow Alteração modifica o valor da chave de ordenação
Arquivo seqüencial indexado
Indicação de uson Quando o volume de acessos aleatórios torna-
se significativo, surge a necessidade de uma estrutura de acesso eficiente para a localização de um registro dado o argumento de pesquisa
5
Arquivo seqüencial indexado
Caracterizaçãon Esta organização consiste essencialmente de
um arquivo seqüencial acrescido de um índice, oferecendo acesso serial ordenado e aleatório eficientes
n Além do arquivo seqüencial e do índice, esta organização ainda prevê uma área de extensão (ou área de overflow) , utilizada para a implementação da operação de inserção de registros
O que é um índice
Estrutura de acesso formada por uma coleção de pares do tipo <chave, endereço>, cada um deles associando o valor de uma chave de acesso a um endereço do arquivo na memória secundária (disco)Principais vantagensn Ocupa menos espaço à maior rapidez de buscan Permite acesso ordenado sem rearranjar o arquivon Permite múltiplos caminhos de acesson Oferece maior facilidade de acesso a registros de tamanho
variável
Arquivo seqüencial indexado
1480 12200 4* 7
1075 11350 41480 7
1800 101950 132200 16
2450 192700 22
* 25
1000 Ademar . . .1050 Afonso . . .1075 Ângela . . .
1100 Antonio . . .1300 Carlos . . .1350 Cesar . . .
#1#2#3
#1#2#3
#4#5#6
#7#8#9
#1#2#3
#4#5#6
Para tornar a pesquisa mais eficiente, o índice normalmente é estruturado em vários níveis (árvore B, por exemplo).
Número endereço Número endereço Número nome
exte
nsão
Área de extensão
Alternativas de implementação1. Em cada registro da área principal, associar um
campo de elo para conter o endereço da lista encadeada de seus antecessores (ou sucessores), alocados na área de extensão
2. Em cada bloco de registros, associar um campo de elo, destinado a conter o endereço da lista de extensões do blocow Manutenção da seqüencialidade física dos registros dentro
de cada bloco da área principalw Todos os registros da lista de extensão de um bloco
possuem ordem maior do que todos os da área principal
Arquivo Sqüencial Indexado 29
Acesso a um registro(justificativa da disciplina)
Serial : diretamente sobre a área de dados (para ordena-los são utilizados os algoritmos de classificação)
Aleatório: é feito via índice(para acessar são utilizados os algoritmos de pesquisa)
ArquivoSeqüencial Indexado
Arquivo Seqüencial Indexado 30
Inserção de um registro
Determinação do local onde deve ocorrer a inserção à busca no arquivo via índiceCom área de extensãon Inserção do registro na lista de extensão do seu
sucessor na área principal ou no bloco selecionado
Sem área de extensãon As inserções são feitas em endereços liberados por
exclusões ou reservados para este fim quando da geração do arquivo
6
Arquivo Seqüencial Indexado 31
Exclusão de um registro
Determinação do local onde deve ocorrer a exclusão à busca no arquivo via índice
Colocação da marca de excluído
Arquivo Seqüencial Indexado 32
Alteração de um registro
Determinação do local onde deve ocorrer a alteração à busca no arquivo via índice
Procedimento normal (lê à altera à grava)n Quando a alteração não envolve a chave de ordenação e não
aumenta o comprimento do registro
Procedimento diferenciadon Lê à exclui à re-insere registro modificado
Arquivo Seqüencial Indexado 33
Requisitos para reorganização
Acessos freqüentes às áreas de extensão
Necessidade de desconsideração dos registros excluídos
Ponto de reorganização
Arquivo Seqüencial Indexado 34
Procedimento de reorganização
Leitura exaustiva e transferência de todos os registros para uma nova áreaTodos os registros são colocados na área principal, ficando a área de extensão toda livreRegistros excluídos desde a última reorganização são retirados fisicamente do arquivoGeração de um novo índice