Translate

Mostrar mensagens com a etiqueta RBA. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta RBA. Mostrar todas as mensagens

quarta-feira, 4 de abril de 2007

O que é VSAM ESDS?

 

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

ESDSKSDS
Sem chavePossui chave
Sem índiceÍndice automático
Ordem de entradaOrdem pela chave
Inserção rápidaInserção mais complexa
Leitura sequencialPesquisa 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.