COBOL - Organização de arquivos
A organização do arquivo indica como os registros são organizados em um arquivo. Dependendo dos dispositivos de entrada-saída, sua organização de arquivos pode ser sequencial, sequencial de linha, indexada ou relativa. Decida os tipos de arquivos e dispositivos a serem usados ao projetar seu programa.
Você tem as seguintes opções de organização de arquivos:
- Organização sequencial de arquivos
- A ordem cronológica em que os registros são inseridos quando um arquivo é criado estabelece a organização dos registros.
- Cada registro, exceto o primeiro, possui um registro predecessor exclusivo e cada registro, exceto o último, possui um registro sucessor exclusivo. Uma vez estabelecidas, essas relações não mudam.
- O modo de acesso (transmissão de registros) permitido para arquivos sequenciais é apenas sequencial.
- Organização de arquivos sequencial de linha
- Arquivos sequenciais de linha são arquivos sequenciais que residem no sistema de arquivos hierárquico (HFS) e que contêm apenas caracteres como dados.
- Cada registro termina com um caractere de nova linha.
- O único modo de acesso (transmissão de registro) permitido para arquivos sequenciais de linha é sequencial.
- Organização de arquivos indexados
- Cada registro no arquivo contém um campo especial cujo conteúdo forma a chave de registro. A posição da chave é a mesma em cada registro.
- O componente de índice do arquivo estabelece a organização lógica do arquivo, uma ordenação por chave de registro.
- A organização física real dos registros no arquivo não é significativa para seu programa COBOL.
- Um arquivo indexado também pode usar índices alternativos além da chave de registro. Essas chaves permitem acessar o arquivo usando uma ordenação lógica diferente dos registros.
- Os modos de acesso (transmissão de registros) permitidos para arquivos indexados são sequenciais, aleatórios ou dinâmicos.
- Quando você lê ou grava arquivos indexados sequencialmente, a sequência é a dos valores de chave.
- Organização de arquivos relativa
- Os registros no arquivo são identificados por sua localização em relação ao início do arquivo.
- O primeiro registro no arquivo tem um número de registro relativo de 1, o décimo registro tem um número de registro relativo de 10 e assim por diante.
- Os modos de acesso (transmissão de registro) permitidos para arquivos relativos são sequenciais, aleatórios ou dinâmicos. Quando os arquivos relativos são lidos ou gravados sequencialmente, a sequência é a do número do registro relativo.
Escolhendo a organização do arquivo e o modo de acesso:
Existem várias diretrizes que você pode usar para determinar qual organização de arquivo e modo de acesso usar em um aplicativo.
Considere as seguintes diretrizes ao escolher a organização de arquivos:
- Se um aplicativo acessa registros (de comprimento fixo ou variável) apenas sequencialmente e não insere registros entre registros existentes, um arquivo sequencial QSAM ou VSAM é o tipo mais simples.
- Se você estiver desenvolvendo um aplicativo para UNIX que acessa sequencialmente registros que contêm apenas caracteres imprimíveis e determinados caracteres de controle, os arquivos sequenciais de linha funcionam melhor.
- Se um aplicativo requer acesso sequencial e aleatório (se os registros são de tamanho fixo ou variável), um arquivo indexado VSAM é o tipo mais flexível.
- Se um aplicativo inserir e excluir registros aleatoriamente, um arquivo relativo funcionará bem.
Considere as seguintes diretrizes ao escolher o modo de acesso:
- Se uma grande porcentagem de um arquivo for referenciada ou atualizada em um aplicativo, o acesso sequencial será mais rápido que o acesso aleatório ou dinâmico.
- Se uma pequena porcentagem de registros for processada durante cada execução de um aplicativo, use o acesso aleatório ou dinâmico.
Resumo das organizações de arquivos, modos de acesso e formatos de registro de arquivos COBOL
File organization | Sequential access | Random access | Dynamic access | Fixed length | Variable length |
QSAM (physical sequential) | X | | | X | X |
Line sequential | X | | | X | X |
VSAM sequential (ESDS) | X | | | X | X |
VSAM indexed (KSDS) | X | X | X | X | X |
VSAM relative (RRDS) | X | X | X | X | X |