Translate

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

quinta-feira, 23 de abril de 2026

💣🔥 EzNoSQL no z/OS — O Golpe Silencioso: COMO O MAINFRAME APRENDEU JSON SEM PEDIR PERMISSÃO

 

Bellacosa Mainframe apresenta EzNoSQL no Z/OS

💣🔥 EzNoSQL no z/OS — O Golpe Silencioso: COMO O MAINFRAME APRENDEU JSON SEM PEDIR PERMISSÃO

Se você é COBOL júnior e acha que NoSQL é coisa de cloud, segura essa:
o mainframe não só entendeu… como absorveu o conceito sem quebrar uma linha de negócio.


🧬 Origem — de onde veio essa “mutação”?

Tudo começa com um problema real:

👉 Sistemas core em z/OS
👉 Dados rígidos em Db2, VSAM, IMS
👉 Mundo moderno falando JSON, REST, mobile, eventos

💥 Conflito inevitável.

A IBM já vinha preparando o terreno com:

  • Suporte a JSON no Db2
  • z/OS Connect expondo APIs
  • Integração com cloud

👉 O EzNoSQL for z/OS® surge como uma resposta pragmática:

💣 “E se a gente trouxer o modelo NoSQL pra dentro do mainframe ao invés de empurrar o mainframe pra fora?”


📅 História e lançamento

Diferente de produtos clássicos da IBM, o EzNoSQL não nasceu como um “big bang” tipo CICS ou Db2.

👉 Ele aparece por volta da década de 2010 (era pós-cloud), como parte da estratégia de:

  • Modernização de aplicações
  • APIs REST
  • Dados semi-estruturados

💡 Não é um produto mainstream amplamente divulgado como CICS ou Db2
👉 É mais nichado, usado em arquiteturas modernas híbridas


🧠 O que ele realmente é (explicação raiz)

Pensa assim, jovem COBOLista:

👉 VSAM = registro fixo
👉 Db2 = tabela estruturada
👉 EzNoSQL = documento flexível (tipo JSON)

Exemplo:

{
"conta": "123",
"cliente": "Bellacosa",
"apps": ["mobile", "web"],
"config": {
"notificacao": true
}
}

💣 Isso no mundo antigo exigiria:

  • várias tabelas
  • joins
  • redesign

👉 Aqui: 1 documento


⚙️ Como ele funciona na prática

Arquitetura típica:

App → API → z/OS Connect → COBOL → EzNoSQL

Integra com:

  • CICS
  • z/OS
  • Segurança via RACF

🚀 Vantagens (o lado poderoso)

🔥 1. Modernização sem reescrita

Você não precisa jogar COBOL fora.

👉 Você evolui.


⚡ 2. JSON nativo no mainframe

Perfeito para:

  • APIs REST
  • Mobile
  • Integrações modernas

🛡️ 3. Segurança absurda

Tudo herdado do mainframe:

  • RACF
  • auditoria
  • controle fino

🧩 4. Integração natural

Nada de ETL maluco ou sync externo.


⚠️ Desvantagens (a parte que ninguém te conta)

❌ 1. Não é cloud-native puro

Não compete diretamente com:

  • MongoDB
  • Cassandra

❌ 2. Escalabilidade diferente

Mainframe escala verticalmente
NoSQL moderno escala horizontalmente


❌ 3. Curva de entendimento

COBOL + JSON = choque cultural no começo 😅


🧪 Exemplo mental (modo Bellacosa)

🎯 Problema

Cliente muda preferências toda hora.

No Db2:

  • ALTER TABLE?
  • nova coluna?
  • impacto em batch?

💣 Dor.


🎯 Com EzNoSQL

{
"cliente": "123",
"preferencias": {
"tema": "dark",
"idioma": "pt-BR",
"notificacao": true
}
}

👉 Mudou? Só adiciona campo.

SEM ALTER TABLE.
SEM impacto global.


🧠 Curiosidades (nível raiz)

💡 EzNoSQL não substitui Db2
👉 Ele resolve outro tipo de problema

💡 Ele é mais comum em:

  • bancos
  • fintechs
  • modernização de legado

💡 Muitas vezes você usa sem perceber:
👉 “camada invisível” por trás de APIs


🥚 Easter Egg (essa é boa)

💣 O maior segredo:

Muita empresa diz:

👉 “Estamos usando microserviços modernos”

Mas por trás…

👉 ainda existe COBOL chamando algo tipo EzNoSQL no z/OS 😎


🧠 Insight profundo (pra você crescer rápido)

👉 O futuro NÃO é:

  • COBOL vs NoSQL
  • Mainframe vs Cloud

💣 O futuro é:

Mainframe + NoSQL + APIs + eventos


🧪 Analogia final (pra fixar de vez)

  • Db2 = planilha Excel organizada
  • VSAM = arquivo binário rápido
  • EzNoSQL = JSON flexível tipo API moderna

🚀 Conclusão

O EzNoSQL for z/OS® é uma peça estratégica:

👉 Ele permite que o mainframe:

  • fale JSON
  • exponha APIs
  • se conecte ao mundo moderno

💣 Sem perder:

  • performance
  • segurança
  • confiabilidade
  •  

quinta-feira, 29 de janeiro de 2026

💥 VSAM: O “Banco de Dados Gratuito” do z/OS — Muito Mais do Que Você Imagina

 

Bellacosa Mainframe uma visão para padawans do VSAM

💥 VSAM: O “Banco de Dados Gratuito” do z/OS — Muito Mais do Que Você Imagina

🧠 Explicação Enriquecida para Padawns

📌 O que é VSAM?

Tradução:
VSAM significa Virtual Storage Access Method. O termo “Access Method” surgiu lá nos anos 60 com o OS/360 e basicamente define como os dados são acessados (disco, fita, etc.).

Comentário Bellacosa:
👉 “Access Method” é o motor invisível do I/O no mainframe.
👉 VSAM é otimizado para disco — esqueça fita aqui (só backup/export).


📌 Tipos principais: ESDS vs KSDS

Tradução:

  • ESDS (Entry Sequenced Data Set)
    • Acesso via RBA (Relative Byte Address)
  • KSDS (Key Sequenced Data Set)
    • Acesso via chave ou RBA
    • Possui índice

Comentário prático:

TipoQuando usarMentalidade
ESDSLog, append-only, histórico“grava e nunca mexe”
KSDSCRUD clássico“mini banco de dados”

💡 Insight importante:
KSDS = VSAM mais próximo de banco relacional
ESDS = VSAM mais próximo de log estruturado


📌 Alternate Index (AIX)

Tradução:
Você pode criar índices alternativos (AIX) para acessar registros por outras chaves.

Comentário:
👉 Isso é o equivalente a índices secundários no DB2
👉 Mas aqui você controla tudo manualmente

💣 E aqui nasce a dor:

  • consistência
  • manutenção
  • performance

📌 Cluster, Componentes e Sphere

Tradução:

  • ESDS → Data component
  • KSDS → Data + Index component
  • Conjunto com AIX → chamado de Sphere

Comentário:
👉 “Sphere” é basicamente o ecossistema do dataset VSAM
👉 Em produção, isso vira uma mini arquitetura de dados


🚀 VSAM na Vida Real

Tradução:
VSAM continua sendo amplamente usado porque é:

  • rápido
  • escalável
  • já vem com z/OS
  • não exige banco adicional

Comentário forte:
💣 VSAM é o NoSQL original do mainframe
Antes de MongoDB existir, o z/OS já fazia isso há décadas


🔥 Caso real: Criando um Key/Value Store com VSAM

O autor implementa um banco estilo NoSQL key/value.


📌 Requisitos do sistema

Tradução + Expansão:

  • Fácil inserir/recuperar chave
  • Persistente (VSAM)
  • Rápido
  • Sem limite de tamanho
  • Permite agrupamento de chaves

Comentário:
👉 Isso é literalmente um Redis raiz no mainframe


🧪 Exemplo prático

Xsysvar 'MDLB URL'='https://MakingDevelopersLivesBetter.wordpress.com'
Xsysvar 'MDLB URL'

Saída:

https://MakingDevelopersLivesBetter.wordpress.com

💡 Tradução mental:
👉 SET / GET de um banco NoSQL
👉 Só que rodando em USS + VSAM


📦 Agrupamento de dados

Xsysvar -PZOS -C'z/OS CSI' CSI=MVS.GLOBAL.CSI
Xsysvar -l CSI

Saída:

ZOS CSI MVS.GLOBAL.CSI z/OS CSI

Comentário:
👉 Aqui entra conceito de namespace / grouping
👉 Muito parecido com:

  • tags
  • collections
  • schemas

🧠 Design inteligente do VSAM

📌 Problema: chave não pode ser longa

VSAM exige:

  • chave fixa
  • tamanho definido

💡 Solução genial

O autor divide a chave em:

ParteTipo
fixaaté 15 bytes
variávelaté 32K

Comentário avançado:
👉 Isso resolve:

  • limitação do VSAM
  • performance de indexação
  • flexibilidade

💣 Isso é arquitetura de baixo nível de respeito.


🧬 Layout do registro VSAM

Estrutura:

CampoFunção
Iflag ativo/inativo
Pproduct-id
Kchave
Vvalor
offsetsponteiros
Tárea variável
F-Ifiltros

🔥 Insight poderoso

👉 VSAM aqui está sendo usado como:

  • banco
  • indexador
  • storage engine

👉 Tudo manual

💣 Isso é o que bancos modernos fazem internamente!


⚠️ Limitação crítica do ESDS

Problema:

  • não permite aumentar tamanho do registro

Solução usada:

  • marca registro antigo como inativo
  • cria novo registro

💥 Tradução prática

👉 Isso é um UPDATE = DELETE + INSERT

Exatamente como:

  • Kafka log
  • bancos append-only

🧑‍💻 Acesso via C no z/OS

Funções usadas:

  • fopen()
  • fread()
  • fwrite()
  • flocate()
  • fupdate()

📌 Exemplo lógico

flocate(file, key);
fread(...);
fupdate(...);

💡 Comentário

👉 Isso é praticamente uma API de banco
👉 Só que nível kernel/mainframe


🔍 Função mais importante: vsamxlocate

O que faz:

  • busca chave
  • aplica filtros
  • percorre registros

💥 Tradução moderna

👉 Isso é um:

  • SELECT com WHERE
    • scan manual

🚀 Criação do VSAM (automação)

Comando:

crtvsam cluster repro key

💡 Comentário

👉 Isso substitui:

  • JCL complexo
  • IDCAMS manual

👉 Usando Z Open Automation Utilities


🔥 Conclusão (estilo Bellacosa)

👉 VSAM não é “arquivo”
👉 VSAM é um engine de dados low-level

💣 Você pode construir:

  • banco NoSQL
  • cache distribuído
  • config store
  • sistema transacional

🧠 Sacadas de Ouro

  • VSAM = NoSQL antes do NoSQL
  • ESDS = log append-only
  • KSDS = índice + acesso direto
  • AIX = índices secundários
  • UPDATE = recriação de registro
  • Performance vem do design da chave

🚀 Expansão além do texto (o pulo do gato)

💣 Se você quiser levar isso pro próximo nível:

Você pode:

1. Criar um Redis-like no z/OS

  • VSAM + C + USS

2. Criar API REST

  • z/OS Connect
  • consumindo VSAM

3. Integrar com COBOL

READ VSAM-FILE
KEY IS WS-KEY

🔥 Pergunta provocativa pra você

👉 E se você substituísse config files, tabelas pequenas e até alguns DB2 por VSAM bem modelado?

💣 Você reduziria:

  • custo
  • latência
  • dependência

domingo, 26 de outubro de 2025

☕🔥💣 IMS DL/I É O VERDADEIRO NoSQL ORIGINAL?

 

Bellacosa Mainframe apresenta conceitos de DL/I em IMS

☕🔥💣 IMS DL/I É O VERDADEIRO NoSQL ORIGINAL?

O dinossauro do mainframe que já fazia navegação hierárquica décadas antes do Vale do Silício inventar o termo “NoSQL”

Existe uma ironia maravilhosa na história da computação.

Durante anos o mercado vendeu a ideia de que:

  • NoSQL era revolucionário

  • bancos hierárquicos eram ultrapassados

  • o futuro havia finalmente derrotado o legado

Então, em algum momento, muita gente percebeu uma coisa desconfortável:

O IMS já fazia várias dessas ideias nos anos 60.

Sim.

Décadas antes de MongoDB, Cassandra, DynamoDB ou Redis existirem…

o velho IMS já trabalhava com:

  • navegação hierárquica

  • acesso sem SQL

  • paths previsíveis

  • estruturas não relacionais

  • acesso ultrarrápido

  • escalabilidade absurda

E isso gera uma pergunta extremamente provocativa:

O IMS DL/I pode ser considerado um NoSQL?

A resposta curta é:

☕ Tecnicamente… SIM.

Mas com algumas nuances MUITO interessantes.


🌳 Antes do SQL Existia o Mundo Selvagem

Hoje quase todo desenvolvedor nasce dentro do universo SQL.

Tudo gira em torno de:

SELECT
INSERT
UPDATE
DELETE
JOIN

Mas antes da explosão dos bancos relacionais, o cenário era completamente diferente.

Existiam:

  • bancos hierárquicos

  • bancos em rede

  • ISAM

  • VSAM

  • estruturas proprietárias

E foi nesse ambiente que nasceu o IMS.

Em 1968.

Durante o projeto Apollo.

Ou seja:

o IMS surgiu ANTES do SQL dominar o planeta.


🚀 O Que Define um Banco NoSQL?

Essa é a chave da discussão.

NoSQL normalmente significa:

“Not Only SQL”

Ou seja:

bancos que NÃO dependem do modelo relacional tradicional.

Exemplos modernos:

  • MongoDB → documento

  • Cassandra → colunar distribuído

  • Redis → chave/valor

  • Neo4j → grafos

O ponto central é:

O modelo não-relacional.

E aqui o IMS entra com força brutal.


🌳 IMS NÃO é Relacional

O IMS trabalha com:

Estruturas hierárquicas

Exemplo:

CLIENTE
 └── CONTA
      └── CARTAO
           └── MOVIMENTO

Isso NÃO é uma tabela relacional.

Não existem JOINs naturais.

Não existe optimizer SQL clássico.

Não existe álgebra relacional.

O acesso ocorre via:

  • navegação

  • paths

  • ponteiros físicos

  • hierarquia

Exatamente como muitos NoSQL modernos.


⚡ DL/I — O Anti-SQL

Aqui está a maior diferença filosófica.

No SQL você diz:

“O que eu quero.”

O banco decide:

  • índice

  • plano

  • join

  • optimizer

No DL/I você diz:

“Como navegar.”

Exemplo clássico:

CALL 'CBLTDLI'
     USING 'GU  '
           PCB
           AREA
           SSA.

O programador controla explicitamente:

  • navegação

  • path

  • posição

  • contexto hierárquico

Isso é MUITO mais próximo de certos bancos NoSQL modernos do que muita gente imagina.


💾 O IMS Já Fazia “Document Thinking”

Observe a estrutura:

CLIENTE
 └── CONTA
      └── MOVIMENTO

Isso lembra MUITO:

  • documentos aninhados

  • árvores JSON

  • estruturas embedded

Exatamente o tipo de modelagem popularizada décadas depois por MongoDB.

A diferença?

O IMS fazia isso quando memória ainda era luxo.


🚀 Então o IMS Era um MongoDB dos Anos 60?

😄

Não exatamente.

Mas existe uma verdade desconfortável:

Muitos conceitos NoSQL modernos já existiam no IMS.

Especialmente:

  • hierarquia

  • navegação direta

  • ausência de JOIN

  • acesso por path

  • performance orientada ao modelo físico


⚔️ Onde o IMS Difere do NoSQL Moderno

Aqui entram diferenças importantes.


🌐 Distribuição

Muitos NoSQL modernos nasceram para:

  • cloud

  • clusters massivos

  • commodity servers

  • sharding horizontal

O IMS nasceu para:

Mainframe centralizado de missão crítica.


🧠 Consistência

Muitos NoSQL modernos sacrificam:

  • consistência forte

  • ACID completo

em troca de escalabilidade.

O IMS faz o contrário.

Ele foi criado para:

  • integridade brutal

  • transações críticas

  • confiabilidade absoluta

Ou seja:

O IMS é MUITO mais conservador.


🔥 O IMS é Quase “Pré-NoSQL”

Talvez a melhor definição seja:

O IMS é um ancestral direto do pensamento NoSQL.

Porque ele já trabalhava com:

✅ modelo não relacional
✅ paths previsíveis
✅ hierarquia
✅ performance orientada à estrutura
✅ ausência de JOIN pesado

Décadas antes do termo existir.


🌳 O Grande Segredo: O Modelo Físico

A maioria dos bancos modernos tenta esconder o armazenamento físico.

O IMS faz quase o oposto.

No IMS avançado:

  • HDAM

  • HIDAM

  • DEDB

  • randomizers

  • root anchor points

influenciam diretamente o comportamento do banco.

O programador IMS clássico precisava entender:

COMO O DADO EXISTE NO DISCO.

Isso é extremamente raro hoje.


⚡ Por Que o IMS Continua Tão Rápido?

Porque ele evita camadas gigantescas de abstração.

No SQL moderno:

consulta
 → optimizer
 → parser
 → planner
 → join engine
 → executor

No IMS:

path → ponteiro → segmento

Muito mais direto.

Muito mais previsível.

Muito mais brutal.


☕ Easter Egg Mainframe

Existe uma piada cruel no mundo IMS:

“MongoDB reinventou a árvore.
IMS já morava na floresta.”

😄

E honestamente?

Existe bastante verdade nisso.


🌳 IMS e JSON — O Paradoxo Moderno

Aqui a coisa fica quase cyberpunk.

Hoje muitos sistemas modernos fazem:

JSON → API REST → z/OS Connect → IMS DL/I

Ou seja:

Aplicações mobile modernas acabam alimentando um banco hierárquico criado antes da internet existir.

Isso é absurdamente fascinante.


🚀 O Que os Desenvolvedores Modernos Não Percebem

Muita gente olha o IMS e pensa:

“legado.”

Veteranos enxergam outra coisa:

Engenharia extrema.

Porque o IMS foi construído numa época onde:

  • CPU era escassa

  • disco era lento

  • memória era minúscula

Então a IBM precisou criar um sistema:

  • previsível

  • eficiente

  • econômico

  • extremamente otimizado

O resultado?

Uma arquitetura que continua competitiva em workloads específicos até hoje.


⚔️ O SQL Venceu… Mas Não Matou o IMS

O SQL venceu o mercado corporativo.

Isso é fato.

Mas ele NÃO substituiu totalmente o IMS.

Porque existem workloads onde:

  • previsibilidade

  • TPS

  • throughput

  • latência mínima

são mais importantes que flexibilidade.

Especialmente em:

  • bancos

  • telecom

  • ATM

  • autorização financeira

  • seguros


🌐 O Verdadeiro Paradoxo

O mercado moderno adora chamar IMS de “tecnologia antiga”.

Mas muitas arquiteturas modernas acabaram:

voltando para ideias que o IMS já utilizava.

Inclusive:

  • modelos não relacionais

  • acesso orientado a documento

  • estruturas hierárquicas

  • paths previsíveis

  • performance baseada no modelo físico

A história da computação é cheia dessas ironias.


💣 Então… IMS DL/I É NoSQL?

A resposta mais honesta seria:

SIM.

Mas um NoSQL ancestral.

Um NoSQL criado décadas antes do marketing inventar o termo.

O IMS não nasceu tentando ser moderno.

Ele nasceu tentando sobreviver às limitações brutais dos anos 60.

E talvez justamente por isso ele ainda exista.

Porque no final das contas:

modas tecnológicas mudam.

Mas sistemas que realmente entregam performance absurda em missão crítica raramente desaparecem.

E o velho DL/I continua navegando pela árvore como poucos sistemas modernos conseguem fazer.

quarta-feira, 23 de fevereiro de 2022

SQL versus NoSQL: A Guerra que Nunca Existiu (e por que todo Programador COBOL deveria entender os dois)

 

Bellacosa Mainframe numa guerra que nunca existiu sql versus nosql

☕ Um Café no Bellacosa Mainframe

SQL versus NoSQL: A Guerra que Nunca Existiu (e por que todo Programador COBOL deveria entender os dois)

"A tecnologia muda. Os princípios permanecem."

Imagine que você acabou de entrar em uma grande empresa. É seu primeiro emprego como programador COBOL. Você acabou de aprender JCL, já conseguiu fazer seu primeiro programa rodar no z/OS, descobriu o que é um Job, um Dataset e finalmente conseguiu fazer um SELECT sem esquecer o END-EXEC.

Então alguém da equipe comenta durante uma reunião:

"Estamos integrando o Mainframe com MongoDB."

Cinco minutos depois outro colega fala:

"Os dados vão para Redis."

Na sequência o arquiteto comenta:

"O Neo4j será usado para análise de fraude."

Você pensa:

"Mas... eu aprendi SQL... o que aconteceu? Agora existem quatro bancos diferentes?"

Bem-vindo ao desenvolvimento moderno.

Hoje vamos conversar sobre uma das maiores dúvidas de quem está começando:

SQL ou NoSQL?

Spoiler...

A resposta é muito diferente do que a internet costuma vender.

Pegue seu café.

Vamos conversar.


O mito da guerra

Existe uma narrativa que aparece em vídeos, blogs e redes sociais dizendo que:

SQL morreu.

Ou então:

NoSQL veio substituir os bancos relacionais.

Nada poderia estar mais distante da realidade.

Na verdade, SQL nunca esteve tão vivo.

E NoSQL nunca tentou matá-lo.

Os dois nasceram para resolver problemas completamente diferentes.

É como comparar:

  • um caminhão

  • um avião

Qual é melhor?

Depende.

Você quer transportar cimento entre cidades?

Ou cruzar o oceano?

A pergunta está errada.

Da mesma forma:

A pergunta nunca foi SQL versus NoSQL.

A pergunta correta sempre foi:

Qual tecnologia resolve melhor ESTE problema?


Uma pequena viagem no tempo

Imagine que estamos em 1970.

Os computadores ocupavam salas inteiras.

Não existia internet.

Não existia smartphone.

Nem notebook.

Muito menos Cloud.

Os bancos de dados funcionavam quase como arquivos gigantes.

Era preciso conhecer exatamente onde cada informação estava gravada.

Era complicado.

Foi então que um pesquisador da IBM chamado Edgar Frank Codd publicou um artigo que mudaria para sempre a computação:

A Relational Model of Data for Large Shared Data Banks

Esse trabalho apresentou uma ideia brilhante.

Em vez de pensar em ponteiros físicos...

Vamos pensar em relações.

Assim nasceram:

  • tabelas

  • linhas

  • colunas

  • chaves

  • relacionamentos

Nascia o Modelo Relacional.

Poucos anos depois, a própria IBM desenvolveu o System R, um projeto experimental que introduziu a linguagem SQL (Structured Query Language). A ideia mostrou tanto potencial que outras empresas passaram a investir no modelo, surgindo plataformas como Oracle, Informix, SQL Server, PostgreSQL, MySQL e, naturalmente, o Db2, um dos pilares do universo IBM Mainframe.


Por que o SQL fez tanto sucesso?

Porque ele resolveu um problema gigantesco.

Imagine um banco.

Existem milhões de clientes.

Cada cliente possui:

  • conta corrente

  • poupança

  • investimentos

  • cartões

  • empréstimos

Tudo isso precisa estar relacionado.

Se João mudar de endereço...

Não faz sentido atualizar vinte lugares diferentes.

O SQL organiza essas informações em tabelas relacionadas, reduzindo redundâncias e garantindo consistência.

Esse conceito recebe o nome de normalização.

Parece um detalhe.

Na prática...

Economizou bilhões de dólares em armazenamento ao longo da história.


ACID: o superpoder invisível

Existe um conceito que todo programador júnior deveria decorar.

ACID.

Não porque cai em entrevista.

Mas porque explica por que bancos confiam tanto em SQL.

Imagine transferir R$ 500 de uma conta para outra.

São duas operações:

  • retirar da Conta A

  • adicionar na Conta B

E se faltar energia exatamente no meio?

ACID garante que isso não aconteça.

Ou tudo acontece...

Ou nada acontece.

Isso é chamado de Atomicidade.

Depois temos:

Consistência

Os dados permanecem válidos.

Isolamento

Milhares de pessoas podem operar simultaneamente sem "atropelar" umas às outras.

Durabilidade

Depois do COMMIT...

Mesmo que o servidor desligue...

Os dados continuam lá.

É por isso que bancos, seguradoras e bolsas de valores continuam confiando em bancos relacionais.


Onde entra o Mainframe?

Agora vem uma curiosidade que muita gente desconhece.

Grande parte do dinheiro que circula diariamente no mundo passa por Mainframes.

Cartões.

PIX.

TED.

DOC.

Compras internacionais.

Folha de pagamento.

Seguros.

Tudo isso frequentemente passa por sistemas COBOL utilizando Db2 for z/OS.

Quando você escreve:

EXEC SQL

SELECT SALDO

INTO :WS-SALDO

FROM CONTAS

WHERE NUMERO = :WS-CONTA

END-EXEC.

O SQL não está apenas buscando dados.

Existe todo um universo trabalhando por trás:

  • Pré-compilador SQL

  • DBRM

  • Package

  • Bind

  • Plan

  • Otimizador

  • Buffer Pools

  • Logging

  • Locking

  • Recovery

O desenvolvedor enxerga apenas a ponta do iceberg.


Então por que surgiu o NoSQL?

Porque o mundo mudou.

Muito.

Em 1970 ninguém imaginava redes sociais.

Nem streaming.

Nem IoT.

Nem celulares.

Nem milhões de fotos por minuto.

Agora imagine armazenar:

  • vídeos

  • comentários

  • curtidas

  • localização

  • mensagens

  • sensores

  • documentos JSON

Tudo isso em tabelas relacionais.

Funciona?

Sim.

Mas nem sempre é a melhor escolha.

Foi então que surgiu o movimento NoSQL.

Curiosamente...

NoSQL não significa "Sem SQL".

Significa:

Not Only SQL

Ou seja...

Existem outros modelos além do relacional.


Os quatro reinos do NoSQL

Quando alguém diz "NoSQL", na verdade está falando de uma família inteira de bancos.

📄 Documento

Exemplo:

MongoDB.

Os dados ficam parecidos com JSON.

Cada documento pode possuir uma estrutura diferente.

Perfeito para aplicações web.


🔑 Chave-Valor

Exemplo:

Redis.

Imagine um gigantesco dicionário.

Você fornece uma chave.

Recebe um valor.

Extremamente rápido.

Muito utilizado como cache.


📚 Colunar

Exemplos:

Cassandra.

ScyllaDB.

HBase.

Projetados para trabalhar com enormes volumes distribuídos.

Muito utilizados em Big Data.


🌐 Grafos

Exemplo:

Neo4j.

Aqui o importante não são os registros.

São os relacionamentos.

Quem conhece quem?

Quem comprou junto?

Quem transferiu dinheiro para quem?

Ideal para detectar fraudes.


SQL é rígido?

Sim.

E isso é uma vantagem.

Imagine um cadastro de funcionários.

Todos possuem:

  • matrícula

  • nome

  • salário

  • departamento

É ótimo exigir que todos tenham exatamente a mesma estrutura.

Já em uma rede social...

Cada usuário pode possuir informações diferentes.

Uns possuem Instagram.

Outros TikTok.

Outros LinkedIn.

Outros nenhum.

Forçar uma estrutura única pode ser desnecessário.

É aí que bancos orientados a documentos brilham.


Escalabilidade

Existe outra diferença importante.

Tradicionalmente, bancos SQL cresceram na vertical.

Mais CPU.

Mais memória.

Mais discos.

Servidor maior.

Já muitos bancos NoSQL foram desenhados pensando em crescer horizontalmente.

Mais servidores.

Mais nós.

Mais máquinas.

É o modelo utilizado por empresas como Google, Amazon, Netflix e Meta.

Mas atenção: hoje essa divisão não é absoluta. Bancos relacionais modernos também oferecem mecanismos de escalabilidade horizontal, e diversas soluções NoSQL implementam recursos avançados de consistência e transações.


SQL também evoluiu

Existe outro mito.

"O SQL parou no tempo."

Errado.

Hoje temos:

  • JSON dentro do PostgreSQL

  • JSON no Oracle

  • JSON no SQL Server

  • JSON no Db2

  • XML

  • Graph Extensions

  • Machine Learning integrado

  • Consultas analíticas

  • Window Functions

  • Compressão avançada

  • IA auxiliando otimização

Os bancos relacionais modernos absorveram diversas características que antes eram exclusivas do NoSQL.


NoSQL também evoluiu

MongoDB hoje possui:

  • transações

  • índices sofisticados

  • agregações complexas

Redis deixou de ser apenas cache.

Neo4j suporta consultas extremamente sofisticadas.

Cassandra possui consistência configurável.

Ou seja...

Os mundos estão convergindo.


O conceito mais importante: Polyglot Persistence

Se existe uma expressão que todo desenvolvedor moderno deveria conhecer é esta:

Polyglot Persistence.

Ela significa:

usar o banco certo para cada problema.

Imagine um banco digital.

Ele pode utilizar:

Db2 → contas correntes

MongoDB → documentos

Redis → cache

Neo4j → fraude

Elastic → pesquisa

Banco Vetorial → IA

Tudo funcionando junto.

Não existe regra dizendo que um sistema deve possuir apenas um banco.


O papel do COBOL nessa história

Aqui existe um enorme equívoco.

Muitos imaginam que COBOL só conversa com Db2.

Hoje isso está longe da realidade.

Aplicações COBOL podem consumir:

REST APIs.

MQ.

Kafka.

gRPC.

z/OS Connect.

Eventos.

Microsserviços.

E esses serviços podem acessar MongoDB, Redis ou qualquer outro banco moderno.

O COBOL continua sendo o cérebro transacional.

Os demais componentes ampliam suas capacidades.


Dicas para quem está começando

Se eu pudesse aconselhar um programador júnior, seguiria esta ordem:

  1. Aprenda modelagem de dados.

  2. Domine SQL.

  3. Entenda normalização.

  4. Aprenda índices.

  5. Estude planos de acesso.

  6. Descubra como funciona um otimizador.

  7. Aprenda transações.

  8. Depois estude MongoDB.

  9. Conheça Redis.

  10. Descubra Neo4j.

  11. Aprenda APIs REST.

  12. Entenda eventos e mensageria.

A tecnologia muda.

Os fundamentos permanecem.


Curiosidades que pouca gente conhece

☕ O primeiro grande projeto SQL da IBM chamava-se System R.

☕ O Db2 nasceu dentro da IBM justamente para materializar as ideias do modelo relacional em ambientes corporativos.

☕ O comando SELECT * é um dos mais utilizados por iniciantes... e um dos menos recomendados em produção. Buscar apenas as colunas necessárias reduz tráfego de dados e melhora o desempenho.

☕ Muitos sistemas bancários escritos há mais de 30 anos continuam processando milhões de transações diariamente com desempenho impressionante.

☕ Redis consegue responder consultas em microssegundos porque mantém os dados principalmente em memória.

☕ Neo4j foi inspirado na Teoria dos Grafos, um ramo da matemática muito mais antigo do que os computadores.

☕ Diversos bancos NoSQL utilizam conceitos publicados em artigos científicos da Google e da Amazon sobre sistemas distribuídos, como Bigtable, Dynamo e MapReduce.

☕ O termo NoSQL surgiu como um movimento alternativo, mas acabou sendo reinterpretado como Not Only SQL, refletindo melhor a realidade atual.


Easter Eggs Bellacosa Mainframe 🥚

🔍 Easter Egg #1 – O herói invisível

Sempre que você executa um SELECT no Db2, existe um componente trabalhando silenciosamente para decidir o melhor caminho de acesso: o otimizador de consultas. Ele é como o GPS do banco de dados. Você não o vê, mas ele escolhe a rota mais eficiente.


🥚 Easter Egg #2 – O COBOL nunca pergunta "como"

Um programa COBOL com Embedded SQL apenas descreve o que deseja. Quem decide como buscar os dados é o Db2. Essa separação entre intenção e estratégia foi uma das grandes revoluções introduzidas pelo SQL.


🥚 Easter Egg #3 – O Mainframe conversa com o futuro

Um programa COBOL criado na década de 1990 pode, com poucas adaptações, consumir uma API REST hospedada na nuvem que, por sua vez, grava documentos em MongoDB e publica eventos em Kafka. O legado não é um obstáculo: ele pode ser parte da arquitetura moderna.


🥚 Easter Egg #4 – Nem tudo é tabela

Quando você olhar para uma árvore genealógica, uma rede social ou um mapa de rotas aéreas, pense em grafos. Quando observar um catálogo de produtos com atributos diferentes para cada item, pense em documentos. Quando acessar seu extrato bancário, pense em tabelas relacionais. O segredo está em reconhecer o problema antes de escolher a ferramenta.


Conclusão

No fim das contas, SQL e NoSQL não são adversários. São aliados que nasceram em épocas diferentes para enfrentar desafios distintos. O SQL continua sendo o alicerce dos sistemas críticos que exigem consistência, integridade e confiabilidade — exatamente o tipo de ambiente onde o IBM Z e o Db2 brilham há décadas. Já o NoSQL oferece flexibilidade, escalabilidade e modelos especializados que complementam essas capacidades em aplicações modernas, distribuídas e orientadas a dados.

Se você está iniciando sua jornada como programador COBOL ou desenvolvedor Mainframe, não caia na armadilha dos modismos. Aprenda primeiro os fundamentos: modelagem de dados, SQL, índices, transações e otimização de consultas. Esses conhecimentos acompanharão toda a sua carreira. Depois, expanda seus horizontes estudando MongoDB, Redis, Cassandra, Neo4j e outras tecnologias que fazem parte das arquiteturas atuais.

Lembre-se sempre de uma filosofia muito presente no universo Bellacosa Mainframe:

Um excelente desenvolvedor não é aquele que conhece todas as ferramentas, mas aquele que sabe exatamente quando usar cada uma delas.

No mundo do IBM Z, onde convivem sistemas escritos há décadas com APIs, microsserviços, inteligência artificial e computação em nuvem, essa capacidade de escolher a tecnologia certa é o que transforma um programador júnior em um verdadeiro arquiteto de soluções. Afinal, o futuro não pertence ao SQL nem ao NoSQL. Ele pertence aos profissionais que compreendem ambos e conseguem fazê-los trabalhar juntos.


domingo, 8 de abril de 2007

O que é VSAMDB NoSQL?

 

Bellacosa Mainframe apresenta vsamdb nosql

O que é VSAMDB NoSQL?

Quando alguém ouve a expressão NoSQL, normalmente pensa em bancos de dados modernos como MongoDB, Cassandra ou Redis.

Mas poucas pessoas sabem que o mundo mainframe também possui soluções NoSQL.

Uma delas é o:

VSAMDB

O VSAMDB é uma tecnologia que utiliza arquivos VSAM como base para criar um banco de dados do tipo Key-Value (Chave-Valor), oferecendo acesso extremamente rápido sem a necessidade de um banco de dados relacional como o Db2.


Definição simples

O VSAMDB é um banco de dados NoSQL desenvolvido para o ambiente IBM Mainframe, utilizando arquivos VSAM como mecanismo de armazenamento.

Seu objetivo é oferecer:

  • alta velocidade;

  • simplicidade;

  • grande escalabilidade;

  • acesso direto por chave.

Na prática, ele transforma arquivos VSAM em um banco de dados NoSQL.


Uma analogia simples

Imagine um enorme armário com milhares de gavetas.

Cada gaveta possui uma etiqueta.

CPF123456789

Dentro da gaveta existe uma informação.

Nome: João
Saldo: 2500
Cidade: Campinas

Para localizar os dados basta informar a etiqueta.

Não é necessário executar consultas SQL.

O VSAMDB funciona exatamente assim.


O que é NoSQL?

NoSQL significa:

Not Only SQL (Não Apenas SQL)

São bancos de dados que não utilizam necessariamente tabelas relacionais.

Existem vários modelos:

  • Key-Value

  • Documento

  • Colunar

  • Grafo

O VSAMDB pertence ao modelo:

Key-Value


O modelo Key-Value

O funcionamento é extremamente simples.

Existe uma chave.

Existe um valor.

Exemplo:

CPF123456789

↓

Nome=João
Cidade=São Paulo
Saldo=1500

Outro exemplo:

CLIENTE0001

↓

JSON

Cada chave aponta para um conteúdo.


Como funciona?

Internamente o VSAMDB utiliza:

  • VSAM KSDS;

  • índices;

  • acesso direto;

  • estruturas otimizadas.

Quando o programa solicita:

CLIENTE0001

O VSAMDB encontra rapidamente o valor correspondente.


Estrutura simplificada

Chave
↓

1001

↓

{
 Nome:"Maria",
 Cidade:"Rio",
 Limite:8000
}

Outro registro:

1002

↓

{
 Nome:"Carlos",
 Cidade:"Curitiba",
 Limite:12000
}

Por que utilizar VSAMDB?

Porque muitos sistemas não precisam:

  • JOIN;

  • SQL complexo;

  • relacionamentos.

Eles apenas precisam recuperar informações rapidamente.


Vantagens

Muito rápido

O acesso ocorre diretamente pela chave.


Simples

Sem necessidade de SQL.


Excelente desempenho

Ideal para milhões de consultas.


Aproveita VSAM

Utiliza toda a robustez do armazenamento do z/OS.


Como os dados são armazenados?

Normalmente cada registro possui:

CHAVE

↓

VALOR

O valor pode conter:

  • texto;

  • JSON;

  • XML;

  • dados binários;

  • documentos.


Exemplo simples

CHAVE

CLIENTE100

Valor:

{
 "Nome":"João",
 "Cidade":"Campinas",
 "Saldo":3500
}

O programa solicita:

GET CLIENTE100

O VSAMDB devolve todo o documento.


Operações básicas

Assim como outros bancos NoSQL, normalmente existem operações como:

PUT

Gravar.


GET

Consultar.


UPDATE

Atualizar.


DELETE

Excluir.


Onde ele é utilizado?

Principalmente em:

  • APIs;

  • microsserviços;

  • aplicações Java;

  • aplicações COBOL;

  • sistemas de alta performance;

  • cache corporativo;

  • consultas rápidas.


VSAMDB x Db2

VSAMDBDb2
NoSQLRelacional
Key-ValueTabelas
Sem SQL obrigatórioSQL
Muito rápidoMuito flexível
Sem JOINJOIN disponível

VSAMDB x MongoDB

VSAMDBMongoDB
MainframeMultiplataforma
VSAMDocumentos
IBM ZLinux, Windows, Cloud
Alta integração com z/OSEcossistema web

VSAMDB x KSDS

KSDSVSAMDB
ArquivoBanco NoSQL
Dados estruturadosChave-Valor
Programador controla acessoAPI simplificada
VSAM puroCamada sobre VSAM

Quem utiliza?

  • bancos;

  • seguradoras;

  • telecomunicações;

  • governo;

  • grandes empresas.

Principalmente quando existem milhões de consultas rápidas.


Curiosidades incríveis

1. O VSAMDB aproveita toda a confiabilidade do VSAM

Ele utiliza uma tecnologia presente no z/OS há décadas.


2. É possível armazenar documentos

O valor associado à chave pode conter estruturas como JSON.


3. É ideal para APIs modernas

Aplicações REST podem consultar dados rapidamente sem necessidade de SQL complexo.


4. Une o mundo tradicional ao moderno

O VSAMDB permite que aplicações desenvolvidas para o IBM Z adotem conceitos de NoSQL, preservando a robustez e a disponibilidade do ambiente mainframe.


Erros comuns de iniciantes

"VSAMDB substitui o Db2"

Não.

Cada tecnologia possui objetivos diferentes.


"NoSQL significa sem estrutura"

Não.

Significa apenas que o banco não depende exclusivamente do modelo relacional.


"VSAMDB é apenas um arquivo VSAM"

Também não.

Ele utiliza o VSAM como mecanismo de armazenamento, mas adiciona uma camada de gerenciamento típica de bancos NoSQL.


Quando escolher VSAMDB?

O VSAMDB é uma boa opção quando a aplicação precisa:

  • consultar dados rapidamente por chave;

  • armazenar documentos ou objetos;

  • suportar grande volume de acessos;

  • reduzir a complexidade de consultas SQL;

  • integrar aplicações modernas ao ambiente IBM Z.

Já para sistemas que exigem consultas complexas, relacionamentos entre tabelas, transações SQL sofisticadas e análises relacionais, o Db2 para z/OS continua sendo a solução mais indicada.


Conclusão

O VSAMDB NoSQL representa uma evolução interessante do armazenamento no ambiente IBM Mainframe.

Ao combinar a confiabilidade e o desempenho do VSAM com o modelo Key-Value dos bancos NoSQL, ele oferece uma solução extremamente rápida para aplicações modernas que precisam recuperar informações diretamente pela chave.

Para profissionais que desejam compreender a modernização do IBM Z, conhecer o VSAMDB é importante, pois ele demonstra como tecnologias clássicas do mainframe podem ser adaptadas para arquiteturas modernas baseadas em APIs, microsserviços e computação em nuvem.