| Bellacosa Mainframe apresenta vsam esds |
O que é VSAM ESDS?
Quando alguém começa a estudar armazenamento de dados no mainframe, logo descobre que existe uma tecnologia chamada VSAM (Virtual Storage Access Method).
Dentro do VSAM existem quatro tipos principais de arquivos:
KSDS (Key Sequenced Data Set)
ESDS (Entry Sequenced Data Set)
RRDS (Relative Record Data Set)
LDS (Linear Data Set)
Neste artigo vamos conhecer o ESDS, um dos formatos mais simples e eficientes do VSAM.
Definição simples
O ESDS (Entry Sequenced Data Set) é um tipo de arquivo VSAM onde os registros são gravados exatamente na ordem em que chegam.
Não existe chave primária.
Não existe ordenação.
Não existe índice.
Cada novo registro é simplesmente adicionado ao final do arquivo.
Uma analogia simples
Imagine um caderno.
Você começa a escrever na primeira página.
Depois escreve na segunda.
Depois na terceira.
Você nunca reorganiza as páginas.
Você apenas continua escrevendo.
O ESDS funciona exatamente assim.
O que significa ESDS?
ESDS significa:
Entry Sequenced Data Set
Em português:
Conjunto de Dados Sequencial por Entrada.
O nome explica seu funcionamento:
Os registros permanecem na mesma sequência em que foram inseridos.
Como funciona?
Imagine que um sistema grave os seguintes clientes.
João
Maria
Carlos
Ana
Pedro
O ESDS armazenará exatamente nesta ordem.
Registro 1 → João
Registro 2 → Maria
Registro 3 → Carlos
Registro 4 → Ana
Registro 5 → Pedro
Se um novo cliente chegar:
José
Ele será colocado no final.
Registro 6 → José
Nada será reorganizado.
Não existe chave
Essa é uma característica muito importante.
Diferente do KSDS:
12345
23456
34567
No ESDS não existe:
chave;
índice;
pesquisa direta por chave.
Os registros são apenas armazenados em sequência.
Como localizar um registro?
Existem duas formas principais.
1. Leitura Sequencial
O programa lê:
Registro 1
↓
Registro 2
↓
Registro 3
↓
Registro 4
Até encontrar o registro desejado.
2. RBA
O ESDS possui um identificador chamado:
RBA
Relative Byte Address
O RBA indica a posição física do registro dentro do arquivo.
Exemplo:
João → RBA 00000000
Maria → RBA 00000080
Carlos → RBA 00000160
Se o programa conhece o RBA, pode acessar diretamente aquele registro.
Como os registros são gravados?
Sempre no final.
Exemplo:
ANTES
A
B
C
D
Após inserir "E":
A
B
C
D
E
Nunca ocorre reorganização automática.
Como excluir um registro?
O ESDS não remove fisicamente o registro.
Normalmente o sistema:
marca como excluído;
reutiliza posteriormente;
reorganiza o arquivo através de utilitários.
Como alterar um registro?
Pode ser atualizado.
Porém seu tamanho normalmente não deve ultrapassar o espaço disponível.
Caso contrário pode ser necessário reorganizar o arquivo.
Estrutura do ESDS
+----------------------+
Registro 1
+----------------------+
Registro 2
+----------------------+
Registro 3
+----------------------+
Registro 4
+----------------------+
Registro 5
+----------------------+
Tudo em sequência.
Quando utilizar ESDS?
O ESDS é indicado quando:
a ordem de chegada é importante;
haverá muitas gravações;
pouca pesquisa por chave;
leitura predominantemente sequencial.
Exemplos de uso
logs de aplicações;
trilhas de auditoria;
históricos;
arquivos temporários;
captura de eventos;
processamento batch.
Como criar um ESDS?
Normalmente utilizando IDCAMS.
Exemplo simplificado:
//DEFINE EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
DEFINE CLUSTER (
NAME(BELLA.CLIENTES.ESDS)
INDEXED
NONINDEXED
RECORDSIZE(80 80)
TRACKS(5 2)
)
/*
Observe que o ESDS é definido como:
NONINDEXED
Ou seja:
sem índice.
Como acessar em COBOL?
Utilizando VSAM.
Exemplo:
SELECT CLIENTES
ASSIGN TO VSAMFILE
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
Depois:
READ CLIENTES
Lendo registro por registro.
Vantagens
Simplicidade
Não possui índice.
Inserção rápida
Sempre grava no final.
Boa performance
Excelente para grandes cargas sequenciais.
Menor overhead
Menos estruturas de controle.
Desvantagens
Pesquisa lenta
Sem chave.
Pouca flexibilidade
Não é ideal para consultas frequentes.
Exclusões
Podem exigir reorganização periódica.
ESDS x KSDS
| ESDS | KSDS |
|---|---|
| Sem chave | Possui chave |
| Sem índice | Índice automático |
| Ordem de entrada | Ordem pela chave |
| Inserção rápida | Inserção mais complexa |
| Leitura sequencial | Pesquisa rápida por chave |
Curiosidades incríveis
1. O ESDS é um dos tipos mais antigos do VSAM
Ele existe desde a introdução do VSAM na década de 1970.
2. O RBA é fundamental
Muitos sistemas utilizam o Relative Byte Address para localizar registros rapidamente.
3. O ESDS é excelente para auditoria
Como preserva a ordem de gravação, é ideal para armazenar históricos e trilhas de eventos.
4. Muitos sistemas batch utilizam ESDS
Principalmente quando os dados são processados em sequência.
Erros comuns de iniciantes
"ESDS possui chave"
Não.
Ele não utiliza chave primária.
"É igual KSDS"
Não.
KSDS possui índice e pesquisa por chave.
ESDS trabalha com sequência de entrada.
"Posso pesquisar rapidamente qualquer registro"
Somente se conhecer o RBA.
Caso contrário, normalmente é necessária uma leitura sequencial.
Quando escolher ESDS?
Escolha ESDS quando:
a ordem cronológica dos registros for importante;
a aplicação gravar muitos dados continuamente;
as consultas forem predominantemente sequenciais;
não houver necessidade de acesso frequente por chave.
Conclusão
O VSAM ESDS é um tipo de arquivo que armazena registros exatamente na ordem em que são inseridos, sem utilizar índices ou chaves.
Sua simplicidade proporciona excelente desempenho para gravações sequenciais, tornando-o uma escolha ideal para logs, auditorias, históricos e aplicações batch.
Embora não seja a melhor opção para pesquisas rápidas, o ESDS continua sendo uma peça importante da arquitetura VSAM e um conceito fundamental para quem deseja dominar o armazenamento de dados no ambiente IBM Mainframe.