Translate

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

sábado, 7 de abril de 2007

O que é VSAM LDS?

 

Bellacosa Mainframe apresenta vsam lds

O que é VSAM LDS?

Quando estudamos VSAM (Virtual Storage Access Method), encontramos quatro tipos principais de datasets:

  • KSDS (Key Sequenced Data Set)

  • ESDS (Entry Sequenced Data Set)

  • RRDS (Relative Record Data Set)

  • LDS (Linear Data Set)

O LDS é o mais diferente de todos.

Enquanto KSDS, ESDS e RRDS armazenam registros organizados, o LDS trabalha apenas com uma sequência contínua de bytes.

Por isso ele é muito utilizado internamente pelo z/OS e por bancos de dados como o Db2.


Definição simples

O LDS (Linear Data Set) é um tipo de arquivo VSAM que armazena dados como um fluxo contínuo de bytes, sem dividir as informações em registros.

Ele não possui:

  • chave primária;

  • índice;

  • registros lógicos;

  • número relativo de registros.

Em vez disso, o programa acessa os dados por endereço ou deslocamento (offset).


Uma analogia simples

Imagine um enorme rolo de papel em branco.

Você pode escrever em qualquer posição.

Não existem:

  • páginas;

  • capítulos;

  • linhas numeradas.

Existe apenas um espaço contínuo.

O LDS funciona exatamente assim.


O que significa LDS?

LDS significa:

Linear Data Set

Em português:

Conjunto de Dados Linear.

Seu nome vem justamente do fato de os dados serem armazenados linearmente.


Como funciona?

Enquanto um KSDS é organizado assim:

Registro 1

Registro 2

Registro 3

O LDS funciona assim:

□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□

É apenas um bloco contínuo de armazenamento.

O sistema não sabe onde começa ou termina um registro.

Quem controla isso é a aplicação.


Quem organiza os dados?

No LDS, toda a responsabilidade fica com o programa.

Ele decide:

  • onde gravar;

  • onde ler;

  • qual o tamanho dos dados;

  • como interpretar cada informação.

O VSAM apenas fornece o espaço.


Como os dados são acessados?

O acesso normalmente ocorre por:

  • endereço;

  • offset;

  • página;

  • bloco.

Exemplo:

Offset 000000

↓

Offset 000512

↓

Offset 001024

↓

Offset 001536

O programa informa o deslocamento desejado.


Estrutura do LDS

+------------------------------------------------------+

Bloco contínuo de bytes

□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□

+------------------------------------------------------+

Sem registros.

Sem índice.

Sem chave.


Como criar um LDS?

Normalmente utilizando IDCAMS.

Exemplo simplificado:

//DEFINE EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
 DEFINE CLUSTER (
   NAME(BELLA.DATABASE.LDS)
   LINEAR
   TRACKS(50 10)
 )
 /*

Observe a palavra:

LINEAR

Ela identifica um Linear Data Set.


O LDS possui registros?

Não.

Essa é sua principal característica.

Diferente dos demais VSAM:

TipoPossui registros?
KSDSSim
ESDSSim
RRDSSim
LDSNão

O LDS possui chave?

Não.

Também não possui:

  • índice;

  • RBA lógico;

  • RRN.

Ele trabalha apenas com bytes.


Onde o LDS é utilizado?

O uso mais famoso é no:

Db2 para z/OS

Os Tablespaces do Db2 utilizam Linear Data Sets.

Isso permite que o próprio Db2 organize:

  • páginas;

  • índices;

  • buffers;

  • tabelas.


Outros usos

Também aparece em:

  • bancos de dados;

  • sistemas de alto desempenho;

  • aplicações especializadas;

  • componentes internos do z/OS.


Como o Db2 utiliza LDS?

Imagine uma tabela com milhões de clientes.

O Db2 controla:

  • páginas;

  • buffers;

  • linhas;

  • índices.

O LDS apenas fornece o espaço físico.

É como um grande terreno vazio.

Quem constrói os edifícios é o Db2.


Vantagens

Alto desempenho

Ideal para grandes bancos de dados.


Flexibilidade

O aplicativo controla toda a organização.


Excelente para SGBDs

Perfeito para Db2.


Grande capacidade

Pode armazenar enormes volumes de dados.


Desvantagens

Complexidade

O desenvolvedor precisa controlar toda a estrutura.


Não indicado para aplicações COBOL tradicionais

Normalmente utiliza-se KSDS.


Sem recursos automáticos

Não existe:

  • chave;

  • pesquisa;

  • índice.

Tudo deve ser implementado pela aplicação.


LDS x KSDS

LDSKSDS
Sem registrosPossui registros
Sem chaveChave primária
Sem índiceÍndice automático
Bytes contínuosDados organizados
Ideal para Db2Ideal para aplicações COBOL

LDS x ESDS

LDSESDS
Fluxo contínuoRegistros sequenciais
Sem estruturaEstrutura definida
OffsetRBA

LDS x RRDS

LDSRRDS
Bytes contínuosNúmero relativo
Sem registrosRegistros fixos

Curiosidades incríveis

1. O Db2 utiliza intensamente LDS

Grande parte dos Tablespaces modernos é armazenada em Linear Data Sets.


2. O z/OS trata o LDS de forma diferente dos demais VSAM

Ele não interpreta o conteúdo.

Apenas administra o espaço físico.


3. O LDS pode armazenar bilhões de bytes

É ideal para aplicações de grande porte.


4. Muitos programadores COBOL nunca trabalham diretamente com LDS

Quem normalmente utiliza esse tipo de dataset são administradores de Db2, especialistas em storage e desenvolvedores de sistemas de baixo nível.


Erros comuns de iniciantes

"LDS é igual KSDS"

Não.

O KSDS organiza registros.

O LDS não possui registros.


"Posso fazer READ KEY"

Não.

Não existe chave.


"O VSAM controla os dados"

No LDS, quem controla a estrutura é a aplicação.


Quando escolher LDS?

Escolha um LDS quando:

  • estiver desenvolvendo sistemas de armazenamento especializados;

  • precisar controlar diretamente o layout físico dos dados;

  • trabalhar com Db2 ou outros bancos de dados que utilizem Linear Data Sets;

  • precisar de máximo desempenho e flexibilidade.

Para aplicações COBOL tradicionais, normalmente o KSDS continua sendo a melhor escolha.


Conclusão

O VSAM LDS (Linear Data Set) é o tipo mais diferente da família VSAM.

Ao contrário dos demais formatos, ele não trabalha com registros, chaves ou índices. Em vez disso, oferece um espaço linear de armazenamento, deixando para a aplicação toda a responsabilidade pela organização dos dados.

Essa característica faz do LDS a base ideal para bancos de dados como o Db2 para z/OS, que utilizam sua flexibilidade para gerenciar milhões de registros com alto desempenho e eficiência. Para quem deseja compreender profundamente a arquitetura de armazenamento do IBM Mainframe, conhecer o LDS é um passo importante na jornada de aprendizado.


terça-feira, 13 de fevereiro de 2007

O que é DB2 Mainframe?

 

Bellacosa Mainframe  o que é DB2 Mainframe

O que é DB2 Mainframe?

O DB2 for z/OS é o principal sistema gerenciador de banco de dados relacional (RDBMS) da IBM para o ambiente Mainframe IBM Z.

Quando você faz:

  • um PIX;

  • uma transferência bancária;

  • uma consulta de saldo;

  • uma compra com cartão;

há uma grande chance de existir um banco DB2 armazenando ou consultando essas informações.


Definição simples

DB2 é:

um banco de dados relacional corporativo de alta performance.

Ele armazena:

  • clientes;

  • contas;

  • contratos;

  • apólices;

  • transações;

  • produtos;

  • históricos.


Analogia simples

Imagine um enorme arquivo de fichas organizado.

O DB2 permite:

  • guardar informações;

  • localizar rapidamente;

  • atualizar dados;

  • remover registros;

  • relacionar tabelas.


História

O DB2 surgiu na IBM no início da década de 1980.

Foi um dos primeiros bancos comerciais baseados nos conceitos relacionais propostos por:

Edgar F. Codd


O que significa DB2?

Originalmente:

Database 2

Hoje a IBM usa oficialmente:

IBM Db2 for z/OS


Onde o DB2 roda?

Principalmente em:

  • IBM Z

  • z/OS

Mas também existem versões para:

  • Linux

  • Unix

  • Windows


Arquitetura simplificada

Aplicação COBOL
        ↓
SQL
        ↓
DB2
        ↓
Tablespaces
        ↓
Disco

O que é uma tabela?

Local onde os dados são armazenados.


Exemplo

Tabela CLIENTES

IDNOMESALDO
1JOÃO1000
2MARIA5000

Criando uma tabela

CREATE TABLE CLIENTES
(
   ID      INTEGER,
   NOME    VARCHAR(50),
   SALDO   DECIMAL(9,2)
);

O que é SQL?

Structured Query Language.

Linguagem usada para conversar com o DB2.


Comandos mais comuns

SELECT

Consulta dados.

SELECT *
FROM CLIENTES;

INSERT

Inclui registros.

INSERT INTO CLIENTES
VALUES (1,'JOAO',1000);

UPDATE

Atualiza registros.

UPDATE CLIENTES
SET SALDO = 2000
WHERE ID = 1;

DELETE

Remove registros.

DELETE
FROM CLIENTES
WHERE ID = 1;

DB2 e COBOL

Uma das combinações mais famosas da história da computação.


Exemplo

EXEC SQL

   SELECT NOME
   INTO :WS-NOME

   FROM CLIENTES

   WHERE ID = :WS-ID

END-EXEC.

O que é SQL embutido?

SQL escrito dentro do COBOL.

Chamado de:

Embedded SQL


Processo de compilação

COBOL + SQL
      ↓
Precompiler DB2
      ↓
Compilador COBOL
      ↓
Bind
      ↓
Execução

O que é BIND?

Processo que cria:

Package

e

Plan

necessários para execução SQL.


Objetos principais do DB2


Database

Container lógico.


Tablespace

Local físico onde as tabelas ficam.


Table

Armazena dados.


Index

Acelera pesquisas.


View

Consulta virtual.


Synonym / Alias

Nome alternativo.


Exemplo simplificado

DATABASE
   ↓
TABLESPACE
   ↓
TABLE

O que é Tablespace?

Área física onde o DB2 grava os dados.


O que é Index?

Estrutura que acelera consultas.


Sem índice

1
2
3
4
5
...

Procura sequencial.


Com índice

Índice
 ↓
Registro encontrado

Muito mais rápido.


O que é Cursor?

Usado quando um SELECT retorna várias linhas.


Exemplo

DECLARE C1 CURSOR FOR
SELECT NOME
FROM CLIENTES;

Operações com Cursor

DECLARE
   ↓
OPEN
   ↓
FETCH
   ↓
CLOSE

FETCH

Lê uma linha por vez.


SQLCODE

Código de retorno do DB2.

Muito importante.


Exemplos

SQLCODESignificado
0Sucesso
+100Registro não encontrado
-305Valor nulo
-803Chave duplicada
-904Recurso indisponível
-911Deadlock/Rollback

SQLCA

Área de comunicação SQL.


Exemplo

EXEC SQL
   INCLUDE SQLCA
END-EXEC.

O que é COMMIT?

Confirma alterações.


Exemplo

COMMIT;

O que é ROLLBACK?

Desfaz alterações.


Exemplo

ROLLBACK;

Fluxo transacional

UPDATE
   ↓
COMMIT

ou

UPDATE
   ↓
ERRO
   ↓
ROLLBACK

DB2 Online e Batch

Online

Normalmente:

  • CICS

  • IMS TM


Batch

Normalmente:

  • COBOL

  • JCL

  • Scheduler


Ferramentas comuns

  • SPUFI

  • DSNTEP2

  • QMF

  • Data Studio

  • Db2 Admin Tool


Como o DB2 aparece no dia a dia?

Praticamente em:

  • PIX

  • cartões

  • internet banking

  • seguros

  • e-commerce

  • governo


Curiosidades

1. Alguns bancos possuem bancos DB2 com dezenas de terabytes

2. O DB2 processa bilhões de transações diariamente

3. Muitas aplicações COBOL acessam DB2 há mais de 30 anos

4. O DB2 é considerado um dos bancos mais confiáveis do mundo


Erros comuns de iniciantes

Ignorar SQLCODE


Esquecer COMMIT


Não fechar CURSOR


Fazer SELECT sem índice


Não entender SQLCA


Resumo rápido

ConceitoFunção
DB2Banco de dados relacional
SQLLinguagem do DB2
TableArmazena dados
IndexAcelera consultas
CursorPercorre linhas
SQLCARetorno SQL
SQLCODECódigo de retorno
COMMITConfirma
ROLLBACKDesfaz
BINDGera Package/Plan

Conclusão

O DB2 for z/OS é um dos pilares do ecossistema Mainframe IBM Z. Ele fornece armazenamento relacional de alta disponibilidade, segurança e desempenho para aplicações COBOL, CICS, IMS e batch que processam milhões de transações críticas diariamente.