
Um arquivo de dados tem registros de tamanho fixo, podendo ser dividido em duas áreas distintas (cabeçalho e dados). Um arquivo de índice é um arquivo indexado tipo arvore balanceada.
O OpenBASE implementa dois tipos de arquivos de índices (simples e estruturado), em função da restrição de unicidade das chaves.
Chaves primárias e chave secundária únicas determinam a utilização de índices simples, onde a chave mantém uma relação das mesmas com os registros no arquivo de dados de (1:1).
Chaves secundárias não únicas determinam a utilização de índices estruturados, onde a chave mantém uma relação com o registro no arquivo de dados de (1:n).
No arquivo de dados, para cada chave secundária não única, é criada uma área adicional no registro, representada por duas colunas. Esta área é denominada de cabeçalho e cada coluna desta área corresponde a uma entrada numa lista duplamente encadeada, ou seja, contém o número do registro anterior e o número do registro posterior.
Tamanho do Registro de Arquivo de Dados
O tamanho em bytes do registro de um arquivo de dados, varia em função do tamanho da área de dados (soma dos tamanhos dos itens de dados do registro) e do tamanho da área de cabeçalhos (soma dos cabeçalhos resultantes das chaves secundárias não unívocas).
Para calcular o tamanho em bytes do registro de um arquivo de dados aplica-se a seguinte fórmula:
TR = (QC * TC) + TI
Tamanho de Registro de Arquivo de Índice
O tamanho em bytes do registro de um arquivo de índice varia em relação ao seu tipo (simples ou estruturado).
Antes de descrever as fórmulas de cálculo do tamanho dos registros desses arquivos de índices, é importante lembrar que a implementação dos índices está baseada na estrutura de árvore binária balanceada: uma "btree".
A "btree" do OpenBASE, possui controles internos que necessitam de uma área adicional nos registros de índices. Estes controles são denominados de nós da "btree" e são totalmente transparentes para o usuário. Para não fugir do objetivo deste manual, será descrita somente a sua ocupação, sem entrar em maiores detalhes sobre a arquitetura de uma "btree".
Tamanho dos arquivos de Índice Simples
Para calcular o tamanho em bytes do registro de um arquivo de índice do tipo simples, aplica-se a seguinte fórmula:
TRIS = TACB + TAE + TC
TRIS tamanho do registro
TACB tamanho da área de controle da "btree" = 1 byte
TAE tamanho da área de endereço = 4 bytes
TC tamanho da chave
Tamanho dos arquivos de Índice Estruturado
O cálculo do tamanho em bytes do registro de um arquivo de índice do tipo estruturado, é efetuado aplicando-se a fórmula:
TRIE = TACB + TAFR + TAEP+ TAEU + TC
TRIE tamanho do registro
TACB tamanho da área de controle da "btree" = 1 byte
TAFR tam. área de armazenamento da freqüência = 4 bytes
TAEP tam. área de endereço do primeiro da lista = 4 bytes
TAEU tam. área de endereço do ultimo da lista = 4 bytes
TC tamanho da chave
