O que é um Dataset VSAM no Mainframe e Como Ele é Usado em COBOL?
Quando falamos de armazenamento de dados no ambiente z/OS, existem dois grandes mundos:
Arquivos Sequenciais (QSAM)
Arquivos VSAM
O VSAM é um dos métodos de armazenamento mais importantes do Mainframe IBM Z e é amplamente utilizado por aplicações COBOL bancárias, financeiras e governamentais.
O que significa VSAM?
VSAM significa:
Virtual Storage Access Method
Foi introduzido pela IBM em 1973 para substituir métodos mais antigos de acesso a dados.
O que é um Dataset VSAM?
Um Dataset VSAM é um arquivo especial que permite:
acesso direto aos registros;
pesquisa rápida;
atualização online;
inclusão e exclusão de registros;
uso de chaves de acesso.
Diferente de um arquivo sequencial, não é necessário ler tudo desde o início para encontrar um registro.
Analogia simples
Imagine uma lista telefônica.
Arquivo Sequencial
Você procura página por página.
CLIENTE 0001
CLIENTE 0002
CLIENTE 0003
...
VSAM
Você vai diretamente ao nome desejado usando um índice.
ÍNDICE
↓
CLIENTE 12345
Muito mais rápido.
Principais tipos de VSAM
Existem quatro tipos principais.
KSDS
Key Sequenced Data Set
O mais utilizado.
Possui:
chave;
índice;
acesso direto.
Exemplo:
CPF
CONTA
AGÊNCIA
Muito usado em:
bancos;
cadastro clientes;
contas correntes.
ESDS
Entry Sequenced Data Set
Registros gravados em sequência.
Não possui chave primária.
Acesso por:
posição física;
RBA (Relative Byte Address).
Usado para:
logs;
trilhas auditoria;
históricos.
RRDS
Relative Record Data Set
Acesso por número relativo.
Exemplo
Registro 1
Registro 2
Registro 3
Semelhante a um vetor gigante.
LDS
Linear Data Set
Não possui estrutura de registros.
Muito usado por:
DB2
sistemas internos IBM
Estrutura do KSDS
O tipo mais famoso.
ÍNDICE
↓
DADOS
Exemplo
000001 João
000002 Maria
000003 Carlos
Como o COBOL acessa VSAM?
Utilizando:
ORGANIZATION IS INDEXED
Exemplo ENVIRONMENT DIVISION
SELECT ARQCLI
ASSIGN TO CLIENTE
ORGANIZATION IS INDEXED
ACCESS MODE IS DYNAMIC
RECORD KEY IS CLI-CPF.
FILE SECTION
FD ARQCLI.
01 REG-CLIENTE.
05 CLI-CPF PIC 9(11).
05 CLI-NOME PIC X(30).
05 CLI-SALDO PIC 9(9)V99.
Operações básicas VSAM
OPEN
Abre arquivo.
OPEN I-O ARQCLI
READ
Lê registro.
READ ARQCLI
WRITE
Inclui registro.
WRITE REG-CLIENTE
REWRITE
Atualiza registro.
REWRITE REG-CLIENTE
DELETE
Exclui registro.
DELETE ARQCLI
START
Posiciona pela chave.
START ARQCLI
KEY >= CLI-CPF
Exemplo de inclusão
MOVE 12345678901 TO CLI-CPF
MOVE 'BELLACOSA' TO CLI-NOME
WRITE REG-CLIENTE
Exemplo de consulta
MOVE 12345678901 TO CLI-CPF
READ ARQCLI
INVALID KEY
DISPLAY 'NAO ENCONTRADO'
END-READ
Exemplo de atualização
READ ARQCLI
MOVE 5000 TO CLI-SALDO
REWRITE REG-CLIENTE
Exemplo de exclusão
READ ARQCLI
DELETE ARQCLI
O que é RECORD KEY?
Campo que identifica unicamente o registro.
Exemplo
RECORD KEY IS CLI-CPF
O que é ALTERNATE INDEX?
Índice secundário.
Permite pesquisar por outro campo.
Exemplo
CPF
NOME
EMAIL
Pesquisar por:
CPF
NOME
Acesso Sequencial
ACCESS MODE IS SEQUENTIAL
Lê um após outro.
Acesso Aleatório
ACCESS MODE IS RANDOM
Lê diretamente pela chave.
Acesso Dinâmico
ACCESS MODE IS DYNAMIC
Combina os dois.
VSAM Online
Muito utilizado em:
CICS;
contas bancárias;
cartões;
PIX;
consulta saldo.
VSAM Batch
Usado em:
processamento noturno;
fechamento diário;
faturamento;
folha salarial.
Vantagens do VSAM
Acesso rápido
Atualização online
Pesquisa por chave
Índices automáticos
Excelente desempenho
Desvantagens
Administração mais complexa
Reorganizações periódicas
Mais complexo que QSAM
VSAM vs Arquivo Sequencial
| Característica | Sequencial | VSAM |
|---|---|---|
| Chave | Não | Sim |
| Índice | Não | Sim |
| Pesquisa rápida | Não | Sim |
| Atualização direta | Limitada | Sim |
| Online | Pouco comum | Muito comum |
Onde você encontra VSAM?
Praticamente em todos os grandes ambientes:
bancos;
seguradoras;
telecom;
governo;
cartões;
sistemas financeiros.
Curiosidades
1. VSAM existe desde os anos 70
2. Milhões de aplicações COBOL usam VSAM diariamente
3. Muitos caixas eletrônicos consultam VSAM em tempo real
4. Antes do DB2 dominar aplicações online, VSAM era a principal base de dados corporativa
Resumo rápido
| Comando | Função |
|---|---|
| OPEN | Abre VSAM |
| READ | Consulta |
| WRITE | Inclui |
| REWRITE | Atualiza |
| DELETE | Remove |
| START | Posiciona |
| KSDS | Chave indexada |
| ESDS | Sequencial |
| RRDS | Relativo |
| LDS | Linear |
Conclusão
O VSAM é o principal método de armazenamento indexado do ambiente z/OS. Ele permite acesso rápido por chave, inclusão, atualização e exclusão de registros, sendo amplamente utilizado por programas COBOL em sistemas bancários, financeiros e governamentais executados em mainframes IBM Z.
Sem comentários:
Enviar um comentário