Gerenciador de armazenamento
Conforme já vimos, o gerenciador de armazenamento é composto por 3 módulos: Gerenciador de Espaço em Disco, Gerenciador de Buffer Pool e Motor de Execução
3.1. Gerenciador de Espaço em Disco (GED)
suporta o conceito de página como unidade de dado; disponibiliza comandos para alocar e desalocar uma página; disponibiliza comandos para ler uma página do disco ou escrever uma página no disco ; o tamanho da página é escolhido ser do mesmo tamanho do bloco do disco. Páginas são armazenadas como blocos do disco tal que a leitura ou escrita de uma página pode ser feito em um acesso de disco.
É frequentemente útil alocar uma sequencia de páginas como uma sequencia continua de blocos de disco para manter os dados que são frequentemente acessados em ordem sequencial. Esta capacidade é essencial para explorar as vantagens de sequencialidade ao acesso a disco que discutimos na seção 2.5. Se esta capacidade é desejável deve ser providenciada pelo GED para os níveis mais altos do SGBD. Sendo assim, o GED esconde detalhes do hardware ( e possivelmente do sistema operacional) e permite que níveis mais altos do SGBD enxergue os dados como uma coleção de páginas.
3.1.1. Gerenciamento dos blocos livres
A base de dados aumenta e diminui na medida em que registros de dados são inseridos ou removidos. Embora os blocos de disco possam ter sido alocados sequencialmente, as alocações e desalocações de blocos (ou páginas), em geral, criam "buracos" numa área contigua de disco reservada para o SGBD. O GED deve gerenciar quais blocos estão livres e em uso e quais páginas estão em cada bloco ( a página está associada a dados e metadados, enquanto o bloco é apenas um "amontoado" de bytes).
Duas maneira para implementar este controle:
Base de Dados
a) manter uma lista encadeada de blocos livres - na medida que os blocos são desalocados (por níveis mais altos