Translate

Mostrar mensagens com a etiqueta WRITE VSAM. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta WRITE VSAM. Mostrar todas as mensagens

quinta-feira, 8 de março de 2007

O que é um Dataset VSAM no Mainframe e Como Ele é Usado em COBOL?

 


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ísticaSequencialVSAM
ChaveNãoSim
ÍndiceNãoSim
Pesquisa rápidaNãoSim
Atualização diretaLimitadaSim
OnlinePouco comumMuito 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

ComandoFunção
OPENAbre VSAM
READConsulta
WRITEInclui
REWRITEAtualiza
DELETERemove
STARTPosiciona
KSDSChave indexada
ESDSSequencial
RRDSRelativo
LDSLinear

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.