quarta-feira, 29 de maio de 2024

Siga-nos Linkedyn

Follow on LinkedIn

sábado, 4 de maio de 2024

🧩 O “Relational Problem”: quando o modelo relacional começa a ranger os dentes

 

Bellacosa Mainframe e o  Relation Problem 

🧩 O “Relational Problem”: quando o modelo relacional começa a ranger os dentes

Teve uma época — lá pelos anos 70 e 80 — em que o modelo relacional era praticamente um presente divino.
Ted Codd apareceu com tabelas, chaves, normalização e alguém pensou:

“Pronto, agora dá pra organizar o mundo inteiro em linhas e colunas.”

E funcionou. Funcionou bem demais.
Funcionou tanto que virou padrão em bancos, governos, ERPs, mainframes, folha de pagamento, compensação bancária, impostos, seguros… o pacote completo.

Só que aí veio o mundo moderno.
E ele veio sem pedir licença.


📈 A explosão de dados (ou: quando o DB começou a suar frio)

Web, mobile, redes sociais, IoT, logs, sensores, streaming, analytics em tempo real…
De repente, o banco relacional passou a ouvir frases como:

  • “Preciso escalar horizontalmente.”

  • “Tem que responder em milissegundos.”

  • “O schema muda toda semana.”

  • “Esse JSON aqui é meio… flexível.”

Nesse momento nasce o que chamamos de Relational Problem:
👉 a dificuldade crescente de gerenciar, escalar e consultar dados usando RDBMS tradicionais em ambientes cada vez maiores, mais variados e mais exigentes.

O vilão clássico?

  • Schemas rígidos

  • Joins caros

  • Crescimento exponencial de volume

  • Performance sofrendo conforme a complexidade aumenta

📌 Easter egg: se você já viu um EXPLAIN com 12 joins e custo astronômico, você já sentiu o Relational Problem na pele.


🏗️ Solução 1: Escalar pra cima (o famoso “compra mais ferro”)

A primeira reação clássica é:

“Coloca mais CPU, mais memória e mais disco.”

No mundo mainframe isso tem nome, sobrenome e fatura alta 💸.

✔️ Funciona? Funciona.
❌ Resolve pra sempre? Não.

  • É caro

  • Tem limite físico

  • E uma hora… acaba

👉 Vertical scaling resolve dor imediata, não o problema estrutural.


🔧 Solução 2: Otimizar até a última gota

Aí entra o arsenal conhecido:

  • Índices

  • Partitioning

  • Denormalização

  • Tuning de SQL

  • Estatísticas afinadas na lua certa 🌕

Isso melhora muito, mas cobra seu preço:

  • Mais complexidade

  • Mais overhead operacional

  • Mais chances de alguém quebrar tudo num ALTER inocente

📌 Fofoquinha: todo ambiente tem aquele índice criado “em produção às pressas” que ninguém sabe se pode remover.


🌐 Solução 3: Relacional distribuído (o meio do caminho)

Aqui a ideia é ousada:

“Vamos manter o modelo relacional, mas espalhar os dados.”

Resultado:

  • Mais escalabilidade

  • Mais disponibilidade

  • E… mais complexidade de consistência e transação

💡 ACID distribuído não é trivial.
Quem já estudou two-phase commit sabe que não existe almoço grátis.


🚀 Solução 4: NoSQL — o rebelde sem gravata

Aí surgem os NoSQL:

  • Key-value

  • Documento

  • Colunar

  • Grafos

Eles dizem:

“Relaxa o schema, relaxa o relacionamento, escala horizontalmente e seja feliz.”

✔️ Alta performance
✔️ Flexibilidade
✔️ Escala global

❌ Menos garantias transacionais
❌ Consistência eventualmente… eventual 😅

📌 Easter egg: NoSQL não significa “No SQL”, mas muita gente usa como “No JOIN, graças a Deus”.


🔀 Solução 5: Abordagem híbrida (o mundo real)

Na prática, o que venceu foi o híbrido:

  • Relacional para transação crítica

  • NoSQL ou Data Warehouse para analytics e volume massivo

  • Cada banco no seu quadrado

👉 O banco certo para o problema certo.

💬 Comentário Bellacosa:
Mainframe + DB2 continua reinando onde consistência, auditoria e confiabilidade não são opcionais.


⚖️ Os grandes trade-offs (onde mora a dor)

Resolver o Relational Problem é basicamente escolher qual dor você aceita.

🔐 Consistência vs Disponibilidade & Escala

  • Relacional ama ACID

  • Distribuído ama performance

  • CAP theorem fica no meio rindo da sua cara

🧱 Rigidez de schema vs Flexibilidade

  • Schema fixo protege a integridade

  • Schema flexível acelera mudança

  • Um trava, o outro corre… e tropeça às vezes

⚙️ Performance vs Complexidade

  • Tuning melhora performance

  • Mas aumenta custo, risco e dependência de especialistas

💰 Custo vs Controle

  • Hardware e licenças caros

  • Cloud e distribuído mais baratos (até não serem)


🏦 Quem escolhe o quê?

  • Bancos, governos, seguradoras
    👉 Consistência, governança, auditoria
    👉 Relacional forte, bem cuidado, bem documentado

  • Empresas web-scale, data-driven
    👉 Escala, agilidade, crescimento rápido
    👉 Distribuído, NoSQL, híbrido

📌 Não é sobre tecnologia “melhor”.
É sobre prioridade de negócio.


☕ Conclusão estilo café no mainframe

O Relational Problem não significa que o modelo relacional falhou.
Significa que ele foi bom demais por tempo demais em um mundo que mudou radicalmente.

A maturidade está em entender:

  • Onde ele brilha

  • Onde ele sofre

  • E como combiná-lo com outras abordagens

💬 Última fofoquinha:
Quem decreta a “morte do relacional” geralmente nunca precisou fechar um balanço financeiro auditado.

quinta-feira, 2 de maio de 2024

🖥️📼 Dicionário Bellacosa Mainframe para Sobreviventes do El Jefe

 


🖥️📼 “Dicionário Bellacosa Mainframe para Sobreviventes do El Jefe”

(Ou: traduzindo o dialeto cigano do Vagner para o mundo real)

Quem acompanha as minhas memórias no El Jefe Midnight Lunch já percebeu uma coisa: às vezes, no meio de uma lembrança de bolinho de chuva, pastelão americano e listagem de papel contínuo, eu largo um termo de mainframe do nada, como se fosse a coisa mais normal que existe.

Mas eu sei, meus amigos:
📌 Nem todo mundo fala “COBOLês avançado”
📌 Nem todo mundo cresceu abraçado a um CICS desde bebê
📌 Nem todo mundo tem saudade do barulho da impressora 3800 de madrugada

Então, aqui está: o Dicionário Bellacosa Mainframe, criado para que qualquer leitor — mesmo que nunca tenha visto um cartão perfurado — consiga entender minhas histórias, comparações e analogias.



🔷 TERMOS BÁSICOS

Mainframe

O Godzilla dos computadores.
Aquela máquina gigante, estável, que não cai, não falha e não pergunta se você quer atualizar no meio do trabalho.

Tradução humana:
O adulto responsável enquanto seu PC está em crise existencial.


JCL

Job Control Language.

É o “ritual mágico”, o “livro de feitiços”, o “receituário da avó espanhola”: você escreve, entrega para o sistema e ele executa.

Analogia Bellacosa:
É como escrever uma receita de bolo tão detalhada que até o bisavô Francisco conseguiria assar o bolo sem reclamar.


COBOL

A linguagem de programação que muita gente disse que iria morrer…
e não morreu.
E não vai morrer.
E provavelmente vai processar sua aposentadoria daqui a 30 anos.

Tradução humana:
É o português arcaico dos computadores: prolixo, claro e impossível de substituir totalmente.


CICS

O “caixa eletrônico dos programas”.
É onde as transações acontecem, onde o dinheiro anda, onde a mágica empresarial vive.

Analogia Bellacosa:
É o shopping center das aplicações.
Todo mundo passa lá.


VSAM

É como um armário gigante cheio de gavetas organizadinhas (às vezes).
A casa das tabelas e registros que os sistemas acessam.

Tradução humana:
O “armário de documentos” que só você sabe onde está cada pasta.


TSO/ISPF

A “entrada do prédio”.
O lugar onde você loga, mexe, edita arquivos, cria coisas.

Analogia Bellacosa:
É o seu “escritório virtual 1980 edition”, só que sobrevivente da Guerra Fria.




🔷 TERMOS DO DIA A DIA (QUE EU VIVO USANDO)

Listagem em formulário contínuo

Uma tira infinita de papel com furos laterais.
Se você nunca rasgou errado e destruiu tudo, você não viveu o suficiente.

Tradução humana:
O “scroll infinito” antes da internet.


Carbonado

Sabe papel carbono?
Então.
Agora imagine isso… mas TURBINADO.
Várias cópias saindo juntas.

Tradução humana:
Era o “CTRL+C / CTRL+V” da década de 1970.


80, 130 e 255 colunas

Não é código secreto.
É a largura do papel.
80 colunas era o padrão dos cartões perfurados.
130 e 255… eram para os relatórios parrudos.

Tradução humana:
O tamanho da sua “tela impressa”.


REXX

Uma linguagem simples, simpática e poderosa para automação.

Analogia Bellacosa:
É o “canivete suíço” do mainframe.


JES2

É o maestro que rege todos os jobs.
O cara que segura a bronca no processamento.

Tradução humana:
O gerente que recebe mil requisições, organiza a fila e manda cada uma para sua máquina.


🔷 TERMOS FOFINHOS (QUE PARECEM PERIGOSOS)

Dump

Parece uma palavra feia, mas é só a “fotografia” da memória quando algo deu ruim.

Analogia Bellacosa:
É como tirar foto da bagunça da sala antes de arrumar, para mostrar depois quem fez o estrago.


HSM

O “bibliotecário automático”.
Ele arquiva arquivos velhos e recupera quando você precisa.

Tradução humana:
O Tio que guardava tudo em caixas no porão e lembrava exatamente onde estava cada coisa.


RACF

O guardião da porta.
O segurança do prédio.
A catraca eletrônica que diz “você entra” ou “você não entra”.

Tradução humana:
O porteiro que impede seu primo mala de subir no seu apartamento.


🔷 TERMOS LENDÁRIOS (RESTRITOS A BELLACOSOLOGIA AVANÇADA)

O famoso “JOB explodiu”

Significa apenas que falhou.
Mas dizer “explodiu” deixa mais dramático.


“SDUMP do demônio”

Quando o dump é tão grande que parece que o sistema escreveu Guerra e Paz em hexadecimais.


“Modo Ninja”

Quando o analista faz ajustes rápidos, limpos e precisos, sem derrubar o sistema, sem ser visto e ainda deixa tudo funcionando melhor do que antes.


🎯 Conclusão: por que isso importa para o leitor do El Jefe Midnight Lunch?

Porque as minhas histórias misturam:

🍞 bolinho de chuva
🎞️ O Gordo e o Magro
📼 impressoras de formulário contínuo
🖥️ mainframe
👴 memórias do bisavô espanhol
📟 SDUMPs, RACF, CICS, JCL

…e tudo isso faz parte do meu mundo.

E agora, faz parte do seu também.
Bem-vindo à Bellacosa-lândia Mainframe Edition™.