Translate

Mostrar mensagens com a etiqueta modelagem de dados. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta modelagem de dados. Mostrar todas as mensagens

quarta-feira, 4 de maio de 2022

Engenharia de Dados para um Programador COBOL Padawan

 

Bellacosa Mainframe e a engenharia de dados

☕ Um Café no Bellacosa Mainframe

Engenharia de Dados para um Programador COBOL Padawan

Você Não Está Mudando de Profissão. Está Descobrindo que Sempre Trabalhou com Dados.

"Toda geração acredita que inventou a Engenharia de Dados. Quem passou décadas desenvolvendo em COBOL sabe que mover, transformar, validar e proteger dados sempre foi o coração do Mainframe."


Se existe uma palavra que domina o mercado de tecnologia atualmente, ela é Dados.

Data Engineer.

Data Lake.

Data Warehouse.

Data Mesh.

Data Fabric.

Big Data.

Analytics.

Machine Learning.

Inteligência Artificial.

Para quem acompanha as vagas do LinkedIn, parece que surgiu uma profissão completamente nova.

Mas será que surgiu mesmo?

Se você é um Programador COBOL Padawan, talvez esteja olhando para esse universo pensando:

"Isso não é para mim."

Ou talvez pior.

"Vou precisar esquecer tudo o que aprendi nos últimos anos."

Nada poderia estar mais distante da realidade.

Na verdade, existe uma notícia excelente.

Boa parte da Engenharia de Dados nasceu exatamente nos ambientes onde o COBOL reina há mais de sessenta anos.

Hoje vamos tomar um café e descobrir por que um programador COBOL possui muito mais vantagens para aprender Engenharia de Dados do que imagina.


O maior equívoco sobre Engenharia de Dados

Quando alguém fala "Data Engineer", muitas pessoas imaginam imediatamente alguém escrevendo Python.

Outros imaginam Spark.

Outros imaginam nuvem.

Outros imaginam Inteligência Artificial.

Tudo isso faz parte da profissão.

Mas nada disso explica sua essência.

A verdadeira Engenharia de Dados pode ser resumida em uma única pergunta:

Como garantir que a informação certa chegue ao lugar certo, no momento certo, com qualidade e segurança?

Perceba.

Não estamos falando de linguagem.

Não estamos falando de banco de dados.

Não estamos falando de cloud.

Estamos falando de engenharia.

E engenharia sempre existiu.


O COBOL sempre foi uma linguagem de dados

Vamos imaginar um programa extremamente simples.

READ CLIENTE

IF STATUS = "A"

   COMPUTE LIMITE = SALARIO * 3

   WRITE CLIENTE-APROVADO

END-IF

O que esse programa faz?

Não desenha telas.

Não cria animações.

Não faz gráficos.

Ele faz algo muito mais importante.

Transforma dados.

Exatamente o trabalho de um pipeline moderno.

Hoje essa transformação poderia estar escrita em:

Python.

Spark.

SQL.

Scala.

Mas o conceito permanece exatamente o mesmo.

Entrada.

Transformação.

Saída.


Um pipeline moderno não é muito diferente de um Job Batch

Vamos comparar.

No Mainframe

Arquivo VSAM

↓

Programa COBOL

↓

SORT

↓

IDCAMS

↓

DB2

↓

Relatório

Agora veja um ambiente moderno.

API

↓

Python

↓

Spark

↓

Data Lake

↓

Data Warehouse

↓

Dashboard

Mudaram as ferramentas.

O fluxo continua praticamente idêntico.

Receber.

Transformar.

Validar.

Persistir.

Consumir.

É por isso que muitos profissionais de Mainframe aprendem Engenharia de Dados com enorme facilidade.

Eles já entendem o processo.

Só precisam aprender novos nomes.


Nível 1 — SQL e Linux

Toda jornada começa aqui.

Algumas pessoas desprezam SQL.

Grave isto.

Quem domina SQL domina dados.

SQL continua sendo a língua universal da informação.

Não importa se você usa:

Oracle

SQL Server

PostgreSQL

MySQL

Db2

Snowflake

BigQuery

Databricks

Spark SQL

Todos conversam através de SQL.


No Linux acontece algo parecido.

Quem trabalha com z/OS talvez ache curioso.

Mas muitos comandos Linux lembram bastante utilitários clássicos do Mainframe.

Por exemplo.

Localizar informações.

Linux

grep CPF clientes.txt

Mainframe

SORT INCLUDE

Contar registros.

Linux

wc -l arquivo.txt

Mainframe

ICETOOL COUNT.

Filtrar.

Ordenar.

Mesclar.

Tudo isso já fazia parte do universo Batch décadas antes do Big Data existir.


Nível 2 — Programação

Aqui normalmente aparece Python.

Mas poderia ser Java.

Scala.

Go.

Até mesmo COBOL.

Sim.

COBOL continua sendo usado em pipelines modernos.

Principalmente quando o dado nasce no Mainframe.

O objetivo agora não é consultar dados.

É automatizar processos.

Imagine.

Você precisa:

baixar arquivos

consumir APIs

descompactar

validar

gerar logs

carregar banco

enviar e-mail

Tudo isso exige programação.

Não importa a linguagem.

O importante é pensar em automação.


O primeiro choque: APIs

Muitos programadores COBOL perguntam:

"O que é uma API?"

A resposta mais simples é:

Uma API é um programa conversando com outro programa.

Só isso.

Você já fazia isso.

CICS fazia isso.

MQ fazia isso.

IMS fazia isso.

A diferença é que hoje a conversa normalmente acontece usando:

HTTP

JSON

REST

GraphQL

gRPC

O conceito continua exatamente igual.


Nível 3 — Spark

Aqui começa a diversão.

Imagine que seu programa COBOL processa:

5 milhões de registros.

Funciona muito bem.

Agora imagine:

5 bilhões.

Não existe CPU suficiente.

Surge então o processamento distribuído.

Em vez de uma máquina.

Cem máquinas.

Ou mil.

Cada uma processando uma pequena parte.

Esse é o Spark.

Ele divide o problema.

Depois reúne os resultados.

É como um enorme SORT distribuído.


Spark não substitui SQL

Esse é outro mito.

Na prática.

Boa parte do Spark moderno utiliza SQL.

Ou Spark SQL.

Ou DataFrames.

Ou seja.

O conhecimento adquirido anteriormente continua sendo utilizado.

Nada é perdido.

Tudo evolui.


Nível 4 — Cloud

Aqui muita gente se assusta.

Parece outro universo.

Na verdade, não é.

Cloud é apenas um novo datacenter.

Só que alugado.

Imagine um CPD gigantesco.

Você liga um servidor.

Usa.

Desliga.

Paga apenas pelo tempo utilizado.

É isso.

Claro.

Existem centenas de serviços.

Mas a ideia continua simples.

Infraestrutura sob demanda.


O que muda para o Engenheiro de Dados?

Antes.

Você tinha um servidor.

Agora possui dezenas.

Centenas.

Tudo automatizado.

Surge então uma nova preocupação.

Escalabilidade.

Monitoramento.

Custos.

Segurança.


Nível 5 — Inteligência Artificial

Chegamos ao assunto da moda.

Todo mundo quer trabalhar com IA.

Mas poucos entendem uma verdade simples.

A IA depende completamente da Engenharia de Dados.

Imagine um modelo treinado com:

CPFs inválidos.

Datas erradas.

Valores duplicados.

Clientes repetidos.

O resultado será desastroso.

Existe uma frase muito antiga.

Garbage In.

Garbage Out.

Entrou lixo.

Sai lixo.


Por isso.

Antes da Inteligência Artificial.

Existe um profissional invisível.

O Engenheiro de Dados.

Ele garante que os dados sejam:

limpos

organizados

consistentes

históricos

auditáveis

confiáveis

Sem isso.

Nenhum ChatGPT.

Nenhum Copilot.

Nenhum modelo funciona adequadamente.


Mas existe algo ainda mais importante...

A imagem que inspirou este artigo mostra uma sequência de tecnologias.

Ela está correta.

Mas incompleta.

Porque existem conhecimentos que nunca saem de moda.


Modelagem de Dados

Se existe um superpoder do programador COBOL, é este.

Quem desenvolveu sistemas bancários conhece:

Cliente.

Conta.

Agência.

Contrato.

Movimentação.

Parcela.

Histórico.

Relacionamentos.

Tudo isso é modelagem.

Sem um bom modelo.

Nem Spark salva.

Nem IA resolve.

Nem Cloud ajuda.


Qualidade dos Dados

Imagine um cadastro onde o mesmo cliente aparece quinze vezes.

Ou um saldo negativo impossível.

Ou datas inexistentes.

Quem resolve?

Não é a IA.

É engenharia.

Validação.

Regras.

Auditoria.

Consistência.

Exatamente como fazemos há décadas em sistemas críticos.


Observabilidade

No Mainframe existe SDSF.

SMF.

RMF.

Logs.

Mensagens JES.

Abends.

Tudo isso existe para observar o ambiente.

Hoje fazemos exatamente a mesma coisa.

Só mudaram as ferramentas.

Monitoramos:

pipelines

latência

falhas

volumes

distribuição

anomalias

A filosofia continua igual.

Nunca confiar.

Sempre medir.


Governança

Poucos assuntos cresceram tanto.

Hoje toda empresa pergunta:

Quem alterou esse dado?

Quem acessou?

Quem apagou?

Quando?

Por quê?

No Mainframe isso sempre foi levado muito a sério.

RACF.

Auditoria.

Perfis.

Permissões.

Hoje apenas ampliamos esse conceito.


Versionamento

Você conhece Endevor?

ISPW?

ChangeMan?

Parabéns.

Você já trabalhou com gestão de versões antes mesmo do Git existir.

Hoje usamos GitHub.

GitLab.

Bitbucket.

Mas o princípio permanece.

Nunca alterar produção diretamente.

Sempre controlar mudanças.


DataOps

Assim como surgiu DevOps.

Hoje existe DataOps.

Automatizar testes.

Validar qualidade.

Executar pipelines.

Fazer deploy.

Documentar.

Monitorar.

Tudo automaticamente.

Isso reduz erros humanos.

Aumenta confiabilidade.

E acelera entregas.


O conhecimento mais importante continua sendo o negócio

Imagine dois profissionais.

O primeiro conhece:

Spark.

Kafka.

Snowflake.

Airflow.

Terraform.

Kubernetes.

Python.

Databricks.

O segundo conhece apenas SQL.

Mas entende perfeitamente:

crédito

seguros

contabilidade

tributação

previdência

Qual deles gera mais valor?

Na maioria das empresas.

O segundo.

Porque tecnologia resolve problemas.

Mas somente quem entende o negócio consegue resolver o problema correto.


O programador COBOL já possui metade da jornada concluída

Esse talvez seja o maior segredo da Engenharia de Dados.

Profissionais de Mainframe normalmente já dominam:

✔ Processamento Batch

✔ Integridade transacional

✔ Bancos relacionais

✔ Modelagem

✔ Performance

✔ Grandes volumes

✔ Segurança

✔ Auditoria

✔ Sistemas críticos

✔ Dados corporativos

O que falta aprender?

As ferramentas modernas.

E ferramentas podem ser aprendidas.

Princípios levam anos para serem construídos.


A verdadeira evolução

Muitos imaginam a carreira assim.

COBOL

↓

Python

↓

Spark

↓

Cloud

↓

IA

Na realidade.

Ela é muito mais parecida com isto.

                 Negócio
                     │
      ┌──────────────┼──────────────┐
      │              │              │
 Modelagem     Engenharia      Arquitetura
      │              │              │
      ├──────────────┼──────────────┤
      │              │              │
    SQL         Programação      Segurança
      │              │              │
      ├──────────────┼──────────────┤
      │              │              │
 Spark        Cloud         Observabilidade
      │              │              │
      └──────────────┼──────────────┘
                     │
                 DataOps
                     │
               Inteligência Artificial

Observe que a IA aparece quase no final.

Isso não é coincidência.

Ela depende de tudo o que veio antes.


Um café antes de voltar ao código...

Existe uma frase muito comum nas redes sociais:

"Aprenda IA."

Eu faria uma pequena correção.

Aprenda Engenharia.

Porque tecnologias mudam.

Spark um dia será substituído.

Novos bancos aparecerão.

Novas linguagens surgirão.

Novos frameworks nascerão.

Assim como Clipper deu lugar a outras soluções, e como muitas ferramentas de ETL evoluíram ao longo das décadas, o ecossistema continuará mudando.

Mas alguns princípios permanecem praticamente imutáveis desde os primeiros sistemas corporativos:

  • Dados precisam ser confiáveis.

  • Processos precisam ser previsíveis.

  • Sistemas precisam ser auditáveis.

  • Arquiteturas precisam ser sustentáveis.

  • Segurança nunca é opcional.

  • O negócio deve orientar a tecnologia, e não o contrário.

É exatamente por isso que um Programador COBOL não está começando do zero ao olhar para a Engenharia de Dados. Pelo contrário: ele já carrega uma bagagem construída em ambientes onde disponibilidade, consistência e integridade sempre foram requisitos inegociáveis.

No fim das contas, a maior transformação não é aprender Python, Spark ou Cloud. É perceber que o trabalho sempre foi o mesmo: transformar dados em informação confiável para apoiar decisões.

As ferramentas evoluem.

Os nomes mudam.

As interfaces ficam mais modernas.

Mas a boa engenharia continua sendo reconhecida pelos mesmos atributos de décadas atrás: simplicidade, clareza, desempenho, confiabilidade e foco no problema de negócio.

Então, Padawan, da próxima vez que ouvir alguém dizer que Engenharia de Dados é "uma profissão completamente nova", sorria, tome mais um gole do seu café e lembre-se: os mainframes já movimentavam bilhões de registros por dia quando muitos dos conceitos modernos ainda nem tinham nome.

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.


terça-feira, 20 de março de 2007

O que é CODASYL?

 

Bellacosa Mainframe apresenta o Codasyl

O que é CODASYL?

O CODASYL (Conference on Data Systems Languages) foi um consórcio criado em 1959 por fabricantes de computadores, empresas e órgãos governamentais com o objetivo de desenvolver padrões para linguagens e sistemas de informação.

O CODASYL ficou mundialmente famoso por dois grandes legados:

✅ A criação da linguagem COBOL

✅ O modelo de banco de dados em rede (Network Database Model)


Significado da Sigla

CODASYL
Conference on Data Systems Languages

Em português:

Conferência sobre Linguagens para Sistemas de Dados

Como Surgiu?

No final da década de 1950 existiam diversos fabricantes:

  • IBM

  • UNIVAC

  • Burroughs

  • Honeywell

  • RCA

Cada um possuía sua própria linguagem.

O problema era:

Programa IBM
      ≠
Programa UNIVAC

Não havia portabilidade.


A Missão do CODASYL

Criar padrões que permitissem:

  • Compartilhamento de conhecimento

  • Portabilidade

  • Padronização

  • Integração entre fabricantes


O Nascimento do COBOL

Em 1959 o CODASYL criou um comitê para desenvolver uma linguagem de negócios.

O resultado foi:

COBOL

Common Business Oriented Language

Curiosidade Histórica

Grace Hopper participou ativamente das discussões que influenciaram a criação do COBOL.


O Modelo CODASYL de Banco de Dados

Na década de 1960 o grupo criou outro marco importante:

Banco de Dados em Rede

(Network Database Model)


Como Funciona?

Os registros são ligados por relacionamentos.

Exemplo:

CLIENTE
    │
    ├── CONTA
    │
    ├── CARTÃO
    │
    └── EMPRÉSTIMO

Conceitos Básicos

Record

Equivalente a um registro.

CLIENTE

Set

Relacionamento entre registros.

CLIENTE
      ↓
   CONTA

Owner

Registro proprietário.

CLIENTE

Member

Registro associado.

CONTA

Exemplo Visual

CLIENTE (Owner)
      │
      ├──── CONTA 1
      │
      ├──── CONTA 2
      │
      └──── CONTA 3

Comparação com Modelo Hierárquico

Hierárquico (IMS)

CLIENTE
    ↓
CONTA
    ↓
MOVIMENTO

Um único caminho.


CODASYL

CLIENTE
   ↔
CONTA
   ↔
CARTÃO
   ↔
EMPRÉSTIMO

Múltiplos caminhos.


Vantagem do CODASYL

Maior flexibilidade.


Exemplo Bancário

CLIENTE
     │
     ├── CONTA
     │
     ├── CARTÃO
     │
     ├── INVESTIMENTO
     │
     └── SEGURO

Linguagem de Acesso

Os programas navegavam diretamente pelos relacionamentos.

Exemplo:

FIND CLIENTE
↓
FIND CONTA
↓
FIND MOVIMENTO

Navegação

O programador precisava conhecer:

Caminhos
Relacionamentos
Estruturas

do banco.


Produtos Baseados em CODASYL

Os mais conhecidos foram:

IDMS

(Integrated Database Management System)

Muito utilizado em Mainframe.


IDS

Integrated Data Store.


TOTAL

Outro banco de dados famoso da época.


CODASYL x Banco Relacional

Década de 1970:

Edgar F. Codd propõe:

Modelo Relacional


CODASYL:

Navegação

Relacional:

SELECT *
FROM CLIENTES

Exemplo

CODASYL:

CLIENTE
 ↓
CONTA
 ↓
MOVIMENTO

Relacional:

SELECT *
FROM MOVIMENTO
WHERE CONTA = 123

Diferenças

CODASYLRelacional
NavegacionalDeclarativo
RecordTabela
SetRelacionamento
OwnerPai
MemberFilho
Acesso físicoSQL

CODASYL e Mainframe

Durante décadas foi extremamente utilizado em:

  • Bancos

  • Seguradoras

  • Governo

  • Telecom


Muitos sistemas críticos ainda utilizam:

IDMS

baseado no modelo CODASYL.


Influência Atual

Embora o modelo relacional tenha se tornado dominante, várias ideias do CODASYL influenciaram:

  • Bancos orientados a grafos

  • Bancos NoSQL

  • Neo4j

  • Modelagem de relacionamentos complexos


CODASYL x Grafos

Curiosamente:

CODASYL (1969)
       ↓
Relacionamentos
       ↓
Grafos Modernos

Existe certa semelhança conceitual.


Curiosidades

1. O CODASYL ajudou a criar o COBOL

2. O modelo de banco em rede surgiu antes do DB2

3. O IDMS ainda existe em alguns ambientes Mainframe

4. Foi um dos modelos de banco mais importantes da história

5. Influenciou conceitos utilizados em bancos de grafos modernos


Resumo Rápido

ConceitoDescrição
CODASYLOrganização de padronização
COBOLCriado sob o CODASYL
Modelo RedeBanco de dados em rede
RecordRegistro
SetRelacionamento
OwnerRegistro pai
MemberRegistro filho
IDMSBanco baseado em CODASYL
IMSModelo hierárquico
DB2Modelo relacional

Conclusão

O CODASYL foi uma das organizações mais importantes da história da computação. Além de participar da criação do COBOL, desenvolveu o modelo de banco de dados em rede, que dominou muitos ambientes corporativos antes da popularização dos bancos relacionais. Seu legado permanece vivo em sistemas Mainframe, especialmente em ambientes IDMS, e influenciou conceitos modernos de modelagem de dados e bancos orientados a relacionamentos.