Post on 17-Apr-2015
Gerenciamento de Arquivos, Páginas e Registros
AULA 3
Profa. Sandra de Amo
Gerenciamento de Banco de Dados – BCC
04/11/23 2
Estudaremos nesta aula:
Como localizar páginas em um arquivo ?
Como localizar registros em uma página ?
Como localizar campos em um registro ?
04/11/23 3
ORDEM DOS ASSUNTOS TRATADOS
ARQUIVO
Página
Registro
04/11/23 4
Heap Files
Heap Files: Dados não são ordenados Dados são organizados sequencialmente a
medida que são inseridos. Obter todos os dados do arquivo varrer registro
por registro a partir do primeiro. Operações
Create, destroy files Insert, delete, get a record Scan all records
Gerenciar as páginas no heap file
1.Como encontrar determinada página ?
2.Que página possui espaço livre?
Método 1: Lista ligada de páginas Método 2: Diretório de páginas
04/11/23 5
04/11/23 6
Lista Ligada de Páginas
Arquivo EndPag1
Alunos 1033
Hospital 5023
Tabela Arquivos- End 1a página
Header Page
Páginas contendo Espaço Livre
Páginas Cheias
1a página do arquivo
Inserção de novos registros
Gerenciador de arquivos Procura na lista de páginas com espaço livre onde
cabe o novo registro
Caso não encontre: aloca nova página na lista das páginas com espaço livre e insere o registro
Caso a página onde o registro tenha sido inserido fique cheia, insere esta página na lista de páginas cheias e atualiza lista de páginas livres
04/11/23 7
Deleção de páginas
Caso a deleção de um registro de uma página resulte em uma página vazia:
Caso 1: Página onde estava o registro deletado estava na lista de páginas com espaço vago Gerenciador de arquivos é acionado Página é retirada da lista de páginas vazias: ponteiros que
apontavam para ela e que saiam dela são reajustados.
Caso 2: Página onde estava o registro deletado estava na lista de páginas cheias Gerenciador de arquivos é acionado Página é retirada da lista de páginas cheias: ponteiros que
apontavam para ela e que saiam dela são reajustados.
04/11/23 8
04/11/23 9
Desvantagens
Maioria das páginas estão na lista das páginas contendo espaço vazio
Registros de tamanho variável
Toda página contém alguns bytes de espaço livre
Inserção de registro requer examinar diversas páginas para encontrar espaço suficiente
04/11/23 10
Diretório de Páginas
Diretório de Páginas = Lista Ligada
10 40
35
Pg Dados 1
Pg Dados 2
Pg Dados N
HeaderPage
Espaço Livreda Página 1
Arquivo Endpg1DP
Alunos 1033
Hospital 5023
Tabela Arquivos- End 1a páginaDP
04/11/23 11
Estudaremos nesta aula:
Como localizar páginas em um arquivo ?
Como localizar registros em uma página ?
Como localizar campos em um registro ?
04/11/23 12
Como os registros são organizados nas páginas
2 50
Identificadorda página
Número do slot
registro
rid
Página = coleção de slots
Slot = espaço físico preenchido por umregistro
rid = identificador do registro (record id)
04/11/23 13
Como registros são organizados Registros de Tamanho Fixo : 1a alternativa
Registros armazenados nos primeiros N slots N = número de registros Armazenamento consecutivo Quando um registro é deletado : o último registro passa a
ocupar o slot liberado Localização do i-ésimo registro = soma de offsets Inserção de um novo registro = após o último slot ocupado. Todos os slots vazios aparecem juntos no final da página
Problema : se há referência externa ao registro(Ex: solicita-se a localização do rid (3,2))
rid do registro contém o número do slot Como slot muda, o rid também muda
04/11/23 14
Como registros são organizados: 1a alternativa
N
Slot 1
Slot 2
Slot 3
Slot N
Espaço livre
Número de registros
Informações sobre a página :
Número da página, ponteiro para próxima página,…
04/11/23 15
Como registros são organizados (2ª alternativa) Registros de Tamanho Fixo : 2a alternativa
Info sobre página
Espaço livreSlot 1
Slot 2
Slot 3
Slot M
M Número de Slots
1 2 3 M
1 0 1 1
04/11/23 16
Como registros são organizados
Registros de Tamanho Variável
Não se pode dividir a página num número fixo de slots
Quando um novo registro é inserido Encontrar slot vazio onde o registro cabe exatamente
Quando um registro é deletado Mover registros para preencher o « buraco » criado. Todo o espaço livre deve ser contíguo.
04/11/23 17
Como registros são organizados
A fim de poder mover registros na página de tal modo que seu número de slot não modifique : Cria-se um diretório de slots Neste diretório, a cada slot está associado um
ponteiro e o tamanho do registro. Caso o registro mude de lugar, apenas o
ponteiro do slot correspondente muda no diretório de slots.
04/11/23 18
Diretório de Slots da Página
200 Número de slots no diretório
1035Ponteiro para o início do
espaço livre na página
(P1, T1)
(P2, T2)
(P200, T200)
1
2
200
Pi = ponteiro para o registro 1
Ti = tamanho do registro 1
Rid = (np, i)
Ti
04/11/23 Bacharelado em Ciência da Computação - 2004 19
Organização da Página
Página i
Espaço Livre
Área de dados
rid = (i,1)
N24
Comprimento = 24rid = (i,2)
rid = (i,N)
20 16Diretório de slots
12N
04/11/23 Bacharelado em Ciência da Computação - 2004 20
Deleção de Registros
Registro rid = (5, 3) com tamanho 50 é deletado
Entrada 3 no diretório de slots Outros registros são reorganizadosRegistro (5,4) muda de lugar – seu número de slot 4 não muda !Entrada 4 no diretório de slot muda =
(Newpointer4,T4)Entrada inicial do diretório = novo ponteiro para espaço livreNúmero de slots no diretório = igual ao anterior.
(-1,_)
Slot 3 está vago
04/11/23 21
Inserção de Registros
Registro R inserido no início do espaço livre
O endereço E onde será inserido R é obtido no diretório de slotsDiretório de slots é atualizado:
Procura-se no diretório de slots por alguma entrada (-1,x) Caso encontre : modifica-se esta entrada
(E, tamanho do registro R) Caso não encontre : acrescenta um novo slot
N+1 = (E, tamanho do registro R) Atualiza endereço do início do espaço livre no diretório de
slots
04/11/23 22
Estudaremos nesta aula:
Como localizar páginas em um arquivo ?
Como localizar registros em uma página ?
Como localizar campos em um registro ?
04/11/23 23
Formatos de Registros Processador de consultas «vê » os dados como coleção de
registros. Catálogo do sistema armazena: Número de campos,
tamanho dos campos, tipos dos campos Tamanho fixo
Número de campos fixo Cada campo tem o mesmo comprimento em todos os
registros. Tamanho variável
Número de campos é fixo Alguns campos podem ter tamanhos variáveis em
diferentes registros. Cada registro guarda seu rid (Np, Nslot).
04/11/23 24
Como localizar um campo em um registro de tamanho fixo
C1 C4C3C2
L2 L3 L4L1
B= endereço do registro Endereço = B + L1 + L2
Ci = campo i
Li = Comprimento do campo i
O tamanho do campo Ci é o mesmo em todos os registros
04/11/23 25
Como localizar um campo em um registro de tamanho variável
$ $ $$C1 C4C3C2
C1 C3 C4C2
1a alternativa
2a alternativa Registro
Endereço do final do registro
04/11/23 26
Vantagens e Desvantagens
2a alternativa é melhor:
Acesso direto a cada campo
Maneira clara de se tratar valores nulos – endereços de início e fim são iguais
Também pode tratar registros de tamanho fixo
04/11/23 27
Como são modificados os campos
Modificação de um campo : Shift nos campos subsequentes
Campo modificado pode não caber na página
Rid do registro = (Np, Nslot)
04/11/23 28
Como são modificados os campos
Registro inteiro pode não caber numa página registro é quebrado em registros menores Cada subregistro tem um ponteiro para o
subregistro subsequente
subregistro Ponteiro para o próximo subregistro