| 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
| ID | NOME | SALDO |
|---|---|---|
| 1 | JOÃO | 1000 |
| 2 | MARIA | 5000 |
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
| SQLCODE | Significado |
|---|---|
| 0 | Sucesso |
| +100 | Registro não encontrado |
| -305 | Valor nulo |
| -803 | Chave duplicada |
| -904 | Recurso indisponível |
| -911 | Deadlock/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
| Conceito | Função |
|---|---|
| DB2 | Banco de dados relacional |
| SQL | Linguagem do DB2 |
| Table | Armazena dados |
| Index | Acelera consultas |
| Cursor | Percorre linhas |
| SQLCA | Retorno SQL |
| SQLCODE | Código de retorno |
| COMMIT | Confirma |
| ROLLBACK | Desfaz |
| BIND | Gera 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.