☕ Um Café no Bellacosa Mainframe
Gostou do conteúdo? Ajude a manter o café quente, o COBOL compilando e o mainframe acordado. 😄
☕ Pague um café ao Bellacosa

Translate

segunda-feira, 4 de junho de 2018

A Poesia Visual dos Animes: Onde Mora a Beleza dos Desenhos



 A Poesia Visual dos Animes: Onde Mora a Beleza dos Desenhos

Há algo de quase hipnótico em certos animes — uma harmonia entre traço, cor e silêncio que faz cada cena parecer um quadro vivo. Quem já se perdeu nas paisagens de Your Name, nas cores melancólicas de Mushishi ou na delicadeza dos gestos em Violet Evergarden sabe que há uma verdadeira poesia por trás dessas animações. Mas de onde vem essa beleza?

🌸 A origem estética: da arte tradicional japonesa ao anime moderno

O anime herda muito da estética japonesa clássica — especialmente da pintura ukiyo-e, do minimalismo zen e da filosofia wabi-sabi (a beleza do imperfeito e efêmero). Em séries como Mononoke Hime (Princesa Mononoke) ou Spirited Away, de Hayao Miyazaki, vemos composições inspiradas em gravuras de Hiroshige e Hokusai, com planos abertos, neblinas sutis e uso da natureza como espelho da alma humana.

O foco não está apenas na ação, mas no intervalo — o ma — aquele espaço entre sons, movimentos e emoções onde mora a contemplação.


🎨 Principais estilos visuais de anime

  1. Realismo poético – traços detalhados, iluminação suave e foco emocional. Exemplo: 5 Centimeters per Second (Makoto Shinkai).

  2. Estilo pictórico – uso de cores planas e texturas que lembram pintura. Exemplo: The Tale of Princess Kaguya (Isao Takahata).

  3. Expressionismo emocional – exageros visuais para expressar sentimentos. Exemplo: Evangelion (Hideaki Anno).

  4. Minimalismo atmosférico – simplicidade e silêncio como força estética. Exemplo: Mushishi (Hiroshi Nagahama).



✍️ Autores e estúdios que transformaram a animação em arte

  • Hayao Miyazaki (Studio Ghibli) – poeta da natureza e da infância.

  • Makoto Shinkai – mestre da luz e da distância emocional.

  • Masaaki Yuasa – experimenta com movimento e surrealismo visual.

  • Mamoru Hosoda – equilibra tecnologia e emoção humana.

  • Hideaki Anno – transforma a psicologia em linguagem visual.



💡 Dicas para apreciar a beleza de um anime

  • Pause. Observe os cenários como se fossem telas de pintura.

  • Note a luz: manhãs, crepúsculos e reflexos d’água são símbolos de passagem e tempo.

  • Ouça o silêncio — ele diz tanto quanto os diálogos.

  • Pesquise os bastidores: muitos animadores se inspiram em locais reais, capturando a atmosfera do cotidiano japonês.

🌅 Curiosidade final

Sabia que o termo “anime” vem de animēshon (do inglês animation) mas foi moldado com alma japonesa? Enquanto o Ocidente via animação como entretenimento, o Japão a transformou em linguagem poética e filosófica — uma forma de sentir o mundo.

A beleza dos animes está naquilo que eles não precisam explicar, mas apenas mostrar: o vento movendo o campo, o som da chuva, o olhar perdido no horizonte. É ali que a poesia nasce — entre o traço e o silêncio.

Quer que eu acrescente uma parte final com recomendações de animes poéticos (com breve descrição e autor)? Isso deixaria o post mais completo para leitores que buscam começar a explorar esse lado artístico.

domingo, 3 de junho de 2018

JASHIN-CHAN DROPKICK — O ANIME QUE TRANSFORMOU FALHAS RECORRENTES, VIOLÊNCIA CARTUNESCA

 

Bellacosa Mainframe e a loucura de jashin chan dropkick

☕💣😈 OPERADOR, UM DEMÔNIO FOI ACIDENTALMENTE PROMOVIDO PARA PRODUÇÃO E AGORA O CICLO DE ABEND FAZ PARTE DA ARQUITETURA OFICIAL DO SISTEMA!

JASHIN-CHAN DROPKICK — O ANIME QUE TRANSFORMOU FALHAS RECORRENTES, VIOLÊNCIA CARTUNESCA E QUEBRA DE QUARTA PAREDE EM UM AMBIENTE DE PRODUÇÃO ESTÁVEL

Identificação da Obra

Título Original: 邪神ちゃんドロップキック (Jashin-chan Dropkick)

Título Internacional: Dropkick on My Devil!

Autor: Yukiwo

Publicação do Mangá: 2012

Estreia do Anime: Julho de 2018

Estúdio: Nomad

Diretores: Hikaru Sato e equipe

Gêneros:

  • Comédia

  • Slice of Life

  • Sobrenatural

  • Paródia

  • Humor Negro

  • Surrealismo

Classificação Indicativa:

  • Normalmente 14+ a 16+, dependendo do país

  • Contém violência exagerada e humor ácido

Episódios (séries principais):

  • Temporada 1: 11 episódios

  • Temporada 2 (Jashin-chan Dropkick'): 11 episódios

  • Temporada 3 (Jashin-chan Dropkick X): 12 episódios

  • Diversos OVAs e especiais

Total: mais de 35 episódios contando especiais.


Sinopse

A estudante universitária Yurine Hanazono, praticante de ocultismo, realiza um ritual para invocar um demônio.

O resultado é a chegada de Jashin-chan, uma garota-demônio com corpo de serpente.

Existe apenas um problema operacional:

Para retornar ao Inferno, Jashin-chan precisa eliminar a pessoa que a invocou.

O problema secundário?

Ela é absurdamente incompetente.

Toda tentativa de ataque termina com Yurine aplicando uma punição tão brutal que faria um dump completo de memória parecer um simples warning.

Como Jashin-chan possui regeneração demoníaca, o processo reinicia no próximo ciclo.

E assim nasce um dos loops mais famosos da história dos animes.


A História Sob a Ótica de Mainframe

Se traduzirmos para linguagem corporativa:

Yurine executou um JOB não homologado.

O JOB criou uma região CICS demoníaca chamada JASHIN.

O programa entrou em produção.

Não existe procedimento de rollback.

Não existe documentação.

Não existe suporte.

Não existe plano de contingência.

A única solução encontrada pela operação é destruir o sistema diariamente.

Mesmo assim o sistema continua funcionando.


O Grande Diferencial

A maioria das comédias japonesas segue uma estrutura narrativa.

Jashin-chan praticamente ignora isso.

Não existe uma jornada tradicional.

Não existe um objetivo principal.

Não existe evolução significativa.

A série é construída como um ambiente operacional permanente.

Tudo volta ao estado inicial.

A cada episódio:

  • Jashin cria um plano absurdo

  • O plano falha

  • Yurine aplica um castigo

  • O universo é restaurado

É quase um sistema batch eterno.


As Personagens Principais

Jashin-chan

A Falha Sistêmica Permanente

Características:

  • Narcisista

  • Gananciosa

  • Manipuladora

  • Preguiçosa

  • Incompetente

Curiosamente, ela também é extremamente carismática.

O público acaba torcendo justamente pela personagem responsável por todos os problemas.


Yurine Hanazono

A Operadora Suprema

Aparenta ser uma universitária comum.

Mas rapidamente percebemos que ela possui:

  • Conhecimento ocultista

  • Sangue frio

  • Tolerância infinita a problemas

Em termos de TI:

Ela é a administradora que resolve incidentes críticos sem abrir chamado.


Medusa

O Backup Financeiro

A única pessoa que realmente apoia Jashin.

Gentil, leal e emocionalmente estável.

É praticamente o storage externo que mantém o ambiente funcionando.


Pekola

O Sistema em Contingência Permanente

Um anjo que perdeu suas asas.

Passa a maior parte da série em situação de pobreza extrema.

Suas cenas frequentemente misturam humor e crítica social.


Minos

O Processador de Alta Potência

Fisicamente devastadora.

Intelectualmente simples.

Representa a força bruta sem otimização.


O Que Torna Jashin-chan Diferente?

1. Violência Sem Consequências

Normalmente violência gera drama.

Aqui ela gera humor.

Decapitações.

Explosões.

Desmembramentos.

Eletrocussões.

Tudo ocorre em tom de desenho animado.

O espectador sabe que ninguém morrerá.

Isso aproxima a obra da lógica de:

  • Tom & Jerry

  • Pica-Pau

  • Looney Tunes


2. Quebra de Quarta Parede

Jashin-chan frequentemente reconhece que está em um anime.

Ela comenta:

  • audiência

  • orçamento

  • vendas

  • patrocinadores

  • crowdfunding

O anime trata a própria existência como uma piada.


3. Humor Metalinguístico

Poucas séries modernas exploram isso tão intensamente.

Em vários episódios:

  • personagens criticam o roteiro;

  • reclamam da produção;

  • discutem episódios anteriores;

  • fazem referências à indústria dos animes.


Aventuras e Mensagens Ocultas

Na superfície parece apenas caos.

Mas existem temas interessantes.


Dependência e Convivência

Jashin quer matar Yurine.

Yurine vive castigando Jashin.

Mesmo assim ambas dependem uma da outra.

A relação funciona como uma sátira de convivências humanas tóxicas que acabam se tornando vínculos afetivos.


Família Improvisada

Boa parte dos personagens:

  • não possui família próxima;

  • não pertence ao mesmo mundo;

  • não deveria conviver.

Mas formam uma espécie de família alternativa.

Tema comum em muitos animes modernos.


Falhas Humanas

Cada personagem exagera um defeito humano:

Jashin:

  • egoísmo

Medusa:

  • dependência emocional

Pekola:

  • resignação

Minos:

  • ingenuidade

Yurine:

  • autoritarismo

O humor nasce desses exageros.


O Estúdio Nomad

O estúdio Nomad nunca esteve entre os gigantes da indústria.

Por isso Jashin-chan virou uma espécie de fenômeno improvável.

A série cresceu graças ao boca a boca dos fãs.

Não foi um sucesso impulsionado por marketing massivo.

Foi construída gradualmente.


Crowdfunding: O Caso Mais Curioso

Uma das maiores curiosidades da franquia.

Os fãs financiaram partes importantes da continuação.

Poucos animes conseguem mobilizar sua comunidade nesse nível.

Isso transformou Jashin-chan em um caso de estudo sobre financiamento coletivo na indústria japonesa.


Houve Censura?

Não exatamente.

Mas algumas cenas receberam:

  • escurecimento visual

  • cortes para TV

  • ajustes em versões de transmissão

Isso ocorreu porque o anime frequentemente exagera em:

  • mutilações cômicas

  • violência gráfica cartunesca

  • referências religiosas

Porém não houve grandes controvérsias ou proibições.

A obra sempre foi entendida como humor absurdo.


Impacto Cultural

Embora não seja um fenômeno do tamanho de Naruto ou One Piece, Jashin-chan conquistou um espaço único.

Influenciou:

  • comédias nonsense modernas;

  • produções independentes;

  • uso de crowdfunding em anime;

  • campanhas de turismo regional.

Diversas cidades japonesas participaram de colaborações promocionais com a franquia.


Análise Final

Jashin-chan Dropkick é uma raridade.

Enquanto muitos animes tentam criar:

  • universos épicos;

  • narrativas complexas;

  • dramas emocionais;

Jashin-chan faz o contrário.

Ela abraça o caos.

A repetição.

O absurdo.

A autossátira.

E transforma tudo isso em sua identidade.

Não é uma obra sobre crescimento.

Não é uma obra sobre heroísmo.

Não é uma obra sobre redenção.

É uma celebração do fracasso recorrente.

E talvez seja exatamente por isso que tantos espectadores se identificam com ela.


☕💣 Conclusão Bellacosa Mainframe

OPERADOR, APÓS TRÊS TEMPORADAS DE INVESTIGAÇÃO, O INCIDENTE FOI ENCERRADO.

Resultado da auditoria:

  • O demônio continua em produção.

  • Os ABENDs continuam ocorrendo diariamente.

  • Nenhuma correção foi aplicada.

  • Nenhum chamado foi encerrado.

  • Nenhum processo foi documentado.

Porém, surpreendentemente:

o ambiente permanece estável, os usuários estão satisfeitos e a aplicação se tornou um dos sistemas mais divertidos já executados no datacenter dos animes.

Jashin-chan Dropkick é a prova definitiva de que, às vezes, o segredo do sucesso não é eliminar os bugs. É transformar os bugs na funcionalidade principal do sistema. 😈☕🖥️💣


sábado, 2 de junho de 2018

Blog Analytics : Parte IV – Checklist de Auditoria para Blogs Antigos O Manual de Inspeção Técnica que Todo Blog com Anos de História Deveria Executar

 

Bellacosa Mainframe e o blog Analytics parte iv

☕ Um Café no Bellacosa Mainframe

Blog Analytics :  Parte IV – Checklist de Auditoria para Blogs Antigos

O Manual de Inspeção Técnica que Todo Blog com Anos de História Deveria Executar

Quando um Blog de 4.000 Artigos Merece o Mesmo Cuidado que um Sistema IBM Mainframe em Produção

☕ Um Café no Bellacosa Mainframe

Durante as três primeiras partes desta série aprendemos uma lição importante.

O problema de um blog antigo quase nunca é o conteúdo.

Na maioria das vezes, o verdadeiro problema está escondido na infraestrutura invisível construída ao longo dos anos.

Artigos escritos em épocas diferentes.

Editores diferentes.

Navegadores diferentes.

Computadores diferentes.

Ferramentas diferentes.

Inteligências artificiais diferentes.

Cada uma delas deixa pequenas marcas.

Individualmente parecem insignificantes.

Somadas durante dez ou quinze anos de publicações...

Transformam-se em uma enorme dívida técnica.

Foi exatamente isso que me fez pensar.

E se existisse um checklist semelhante ao utilizado em Data Centers para verificar a saúde de um blog?

No mundo IBM Mainframe nenhum administrador liga um sistema crítico sem executar dezenas de verificações.

Por que administrar um acervo de milhares de artigos deveria ser diferente?

Nasceu então o Checklist Bellacosa de Auditoria para Blogs Antigos.


O Conceito

Imagine que seu blog acabou de entrar em uma inspeção técnica anual.

O objetivo não é encontrar culpados.

O objetivo é descobrir:

  • riscos;

  • inconsistências;

  • oportunidades;

  • dívida técnica;

  • problemas invisíveis.

Da mesma forma que uma aeronave passa por inspeções preventivas mesmo funcionando perfeitamente.


Nível 1 — Integridade do Blog

Antes de olhar qualquer artigo individualmente, devemos verificar a estrutura do blog.

Checklist:

☐ HTTPS funcionando

☐ Sitemap atualizado

☐ Feed Atom acessível

☐ Robots.txt correto

☐ Canonical presente

☐ Search Console sem erros críticos

☐ URLs respondendo normalmente

☐ Sem páginas 404 importantes

Se essa base estiver comprometida, corrigir artigos individuais terá pouco efeito.


Nível 2 — Estrutura HTML

Agora começa a investigação propriamente dita.

Cada artigo deve ser analisado procurando:

☐ HTML inválido

☐ tags mal fechadas

<p><table>

<h2><table>

☐ tabelas quebradas

☐ listas incorretas

☐ headings vazios

☐ elementos duplicados

É exatamente aqui que o Feed Atom se torna um aliado indispensável.


Nível 3 — Resíduos de Editores

Depois vem a análise forense.

Existem marcas típicas deixadas por cada ferramenta.

Microsoft Word

☐ classes Mso

<o:p>

☐ XML interno

☐ estilos enormes


Google Docs

☐ spans excessivos

☐ estilos redundantes

☐ alinhamentos desnecessários


IA

☐ atributos data-*

☐ identificadores internos

☐ elementos sem função


Outros Editores

☐ divs redundantes

☐ spans vazios

☐ estilos copiados

Cada um desses vestígios conta parte da história daquele documento.


Nível 4 — SEO Técnico

Agora olhamos aquilo que os motores de busca enxergam.

Checklist:

☐ Título adequado

☐ Meta Description

☐ H1 único

☐ Hierarquia correta

☐ ALT nas imagens

☐ links internos

☐ links externos válidos

☐ URL amigável

☐ canonical correto

☐ Open Graph

☐ Schema quando aplicável


Nível 5 — Imagens

Muitos blogs antigos acumulam milhares de imagens.

Pouquíssimos são auditados.

Verificações importantes:

☐ ALT

☐ TITLE

☐ legenda

☐ tamanho adequado

☐ compressão

☐ imagens quebradas

☐ URLs HTTPS

☐ arquivos duplicados


Nível 6 — Links

Links representam um dos maiores patrimônios de um blog.

Também são uma das maiores fontes de problemas.

Checklist:

☐ links internos

☐ links externos

☐ redirects

☐ HTTP

☐ HTTPS

☐ páginas inexistentes

☐ vídeos removidos

☐ imagens externas indisponíveis


Nível 7 — Conteúdo

Agora deixamos a infraestrutura e analisamos o conhecimento.

Perguntas importantes:

O artigo ainda faz sentido?

Está atualizado?

Existe conteúdo duplicado?

As referências ainda existem?

As tecnologias mudaram?

Há informações obsoletas?

Nem todo artigo antigo precisa ser reescrito.

Mas alguns merecem uma atualização.


Nível 8 — Acessibilidade

Muitos esquecem.

Os buscadores não.

Checklist:

☐ contraste

☐ ALT

☐ headings

☐ listas

☐ tabelas

☐ linguagem

☐ links descritivos

☐ ordem lógica

Um blog acessível normalmente também apresenta melhor organização semântica.


Nível 9 — Performance

Outro ponto frequentemente ignorado.

Verificar:

☐ imagens pesadas

☐ HTML excessivo

☐ JavaScript desnecessário

☐ CSS repetido

☐ widgets antigos

☐ iframes obsoletos

☐ embeds quebrados

Pequenas melhorias acumuladas podem reduzir significativamente o peso de páginas antigas.


Nível 10 — Segurança

Embora o Blogger seja bastante seguro, vale verificar:

☐ conteúdo misto

☐ HTTP

☐ scripts externos

☐ widgets abandonados

☐ formulários antigos

☐ links para serviços desativados


Nível 11 — Qualidade Editorial

Chegamos ao conteúdo propriamente dito.

Checklist:

☐ ortografia

☐ gramática

☐ títulos

☐ subtítulos

☐ organização

☐ conclusão

☐ referências

☐ atualização tecnológica


Nível 12 — Dívida Técnica

Talvez o mais importante de todos.

Pergunte:

Esse artigo será fácil de editar daqui a cinco anos?

Se a resposta for "não", existe dívida técnica.

Ela pode aparecer em forma de:

  • HTML confuso;

  • estilos antigos;

  • widgets abandonados;

  • imagens externas;

  • códigos copiados;

  • estruturas redundantes.


A Filosofia Mainframe

Existe uma frase muito conhecida entre administradores de grandes ambientes IBM:

"Manutenção preventiva custa horas. Manutenção corretiva pode custar dias."

Blogs seguem exatamente essa lógica.

Uma pequena auditoria anual evita centenas de horas de trabalho futuro.


Criando um Índice de Saúde

Depois de dezenas de auditorias imaginei um indicador semelhante aos utilizados em Data Centers.

Cada artigo poderia receber uma pontuação.

Exemplo:

Bellacosa Blog Health Index

HTML.....................100

SEO........................96

Performance...............94

Acessibilidade............98

Links.....................100

Conteúdo..................97

Segurança.................100

Score Geral...............97,9

Em vez de simplesmente dizer:

"O artigo está bom."

Teríamos indicadores objetivos.

Mensuráveis.

Comparáveis.


O Dashboard do Blog

Imagine abrir um painel e visualizar instantaneamente:

✔ Total de artigos

✔ Total de imagens

✔ HTML inválido

✔ Links quebrados

✔ Artigos sem ALT

✔ Resíduos Word

✔ Resíduos IA

✔ Score médio

✔ Evolução mensal

✔ Evolução anual

Seria praticamente um RMF (Resource Measurement Facility) para Blogger.

Assim como um administrador de z/OS acompanha CPU, memória e I/O, o administrador do blog acompanharia a saúde técnica do seu acervo.


O Bellacosa Blog Doctor

Depois de toda essa investigação ficou claro que o objetivo nunca foi simplesmente "limpar HTML".

O verdadeiro objetivo é transformar um blog em um sistema de conhecimento sustentável por décadas.

O Bellacosa Blog Doctor nasce exatamente dessa filosofia.

Não apenas identificar problemas.

Mas explicar:

  • onde estão;

  • por que surgiram;

  • qual prioridade possuem;

  • quando devem ser corrigidos;

  • quais podem permanecer exatamente como estão.

Essa é a diferença entre uma ferramenta de limpeza e uma ferramenta de engenharia.


Conclusão

Ao chegar ao final desta série percebemos que um blog antigo não deve ser tratado como uma coleção de páginas independentes, mas como um patrimônio digital construído ao longo dos anos.

Cada publicação representa um registro histórico, uma peça de conhecimento e uma parte da identidade do autor.

Por isso, a manutenção não pode ser baseada em impulsos ou em modismos tecnológicos. Ela precisa seguir critérios claros, medições objetivas e uma metodologia capaz de preservar aquilo que realmente importa: o conteúdo, a estabilidade e a confiança conquistada ao longo do tempo.

Foi exatamente essa mentalidade que transformou os grandes sistemas IBM Mainframe em plataformas capazes de atravessar décadas sem perder sua confiabilidade. E é a mesma mentalidade que pode transformar um blog comum em um verdadeiro repositório permanente de conhecimento.

O Feed Atom revelou a cena do crime. A análise forense identificou as impressões digitais deixadas por cada ferramenta. A estratégia de manutenção mostrou como corrigir problemas sem comprometer o SEO. Agora, com um checklist estruturado, temos um processo repetível, mensurável e evolutivo.

Porque um blog com milhares de artigos merece ser administrado com o mesmo cuidado dedicado aos sistemas que sustentam bancos, governos e grandes empresas: menos improviso, mais engenharia; menos achismo, mais evidências; menos correções aleatórias, mais auditoria contínua.

E, no fim das contas, talvez essa seja a maior descoberta de toda a investigação: um blog também pode ser tratado como um sistema crítico — e isso muda completamente a forma como cuidamos dele.

🔎 CSI BLOGSPOT · ARQUIVO DE EVIDÊNCIAS

Blog Analytics: A Investigação Completa

Seis capítulos sobre auditoria de HTML, resíduos invisíveis, limpeza segura, checklist técnico e construção do Bellacosa Blog Doctor.

6 relatórios2018HTML · SEO · Blogger
CASE FILE 01

Blog Analytics — Parte I

Como descobrir evidências invisíveis no HTML de um blog antigo.

HTMLAuditoriaBlogspot
CASE FILE 02

Blog Analytics — Parte II

Os resíduos invisíveis deixados por editores, Word, IA e cópias antigas.

ResíduosWord HTMLIA
CASE FILE 03

Blog Analytics — Parte III

Como limpar milhares de posts sem destruir o acervo editorial.

LimpezaBackupQualidade
CASE FILE 04

Blog Analytics — Parte IV

Checklist de auditoria para blogs antigos e acervos com anos de história.

ChecklistSEO TécnicoAuditoria
CASE FILE 05

Blog Analytics — Parte V

Construindo o Bellacosa Blog Doctor e seu scanner automático.

Blog DoctorScannerJavaScript
CASE FILE 06

Blog Analytics — Parte VI

Criando o motor de regras, scores, prioridades e códigos de retorno.

Motor de RegrasScoreMainframe

Índice textual da série Blog Analytics

Esta série investiga a saúde técnica de blogs antigos no Blogger, cobrindo auditoria de HTML, resíduos de editores, SEO técnico, acessibilidade, limpeza segura, diagnóstico automatizado e motores de regras.

  1. Blog Analytics Parte I — Como descobrir evidências invisíveis
  2. Blog Analytics Parte II — Os resíduos invisíveis do HTML
  3. Blog Analytics Parte III — Como limpar com segurança
  4. Blog Analytics Parte IV — Checklist de auditoria
  5. Blog Analytics Parte V — Construindo o Bellacosa Blog Doctor
  6. Blog Analytics Parte VI — Criando o motor de regras

domingo, 20 de maio de 2018

IBM Mainframe Discovery : Capítulo V — A Frota Invisível do Transporte Interestelar

 

Bellacosa Mainframe apresenta ibm mainframe parte v

☕ Um Café no Bellacosa Mainframe

Capítulo V — A Frota Invisível do Transporte Interestelar

O Subsistema de Entrada e Saída (I/O): Por Que o IBM Z Nunca Deixa a CPU Carregar Caixas


SEGUNDA REGRA DA ENGENHARIA GALÁCTICA

Se você encontrar o capitão de uma nave descarregando caixas no depósito...

...alguma coisa está profundamente errada.

O capitão deveria estar comandando.

Os pilotos deveriam estar voando.

Os cientistas pesquisando.

Os médicos salvando vidas.

Existe uma razão para isso.

Especialistas produzem mais quando fazem aquilo para o qual foram projetados.

Curiosamente...

o IBM Mainframe pensou exatamente assim.

Enquanto boa parte dos computadores do planeta obriga a CPU a cuidar de detalhes de Entrada e Saída (I/O)...

o IBM Z simplesmente responde:

"Desculpe... eu tenho uma tripulação especializada para isso."

Hoje vamos conhecer uma das maiores obras de engenharia da computação moderna.

O lendário subsistema de I/O do Mainframe.


O Grande Porto Espacial

Imagine uma gigantesca estação espacial.

Todos os dias chegam:

20 mil cargueiros.

40 mil naves.

Milhões de passageiros.

Bilhões de contêineres.

Agora imagine que existe apenas um único funcionário organizando tudo.

O resultado seria previsível.

Caos.

Filas.

Colisões.

Aeroportos fechados.

Agora imagine outra estação.

Ela possui:

controladores de voo.

torres independentes.

radares.

equipes de solo.

docas automáticas.

computadores dedicados.

Cada profissional cuida apenas da sua especialidade.

Essa segunda estação lembra muito mais o IBM Z.


O Erro Mais Comum dos Computadores

Grande parte dos computadores tradicionais segue um modelo simples.

A CPU deseja ler um arquivo.

Então ela:

manda o pedido.

espera.

confere.

espera novamente.

recebe os dados.

volta ao trabalho.

É como um comandante abandonar a ponte de comando para verificar pessoalmente se o caminhão de suprimentos chegou.


O IBM Z Não Tem Tempo Para Isso

No universo Mainframe existe uma filosofia extremamente elegante.

A CPU deve executar programas.

Mais nada.

Todo o restante...

alguém especializado resolve.

Foi exatamente essa ideia que moldou todo o subsistema de Entrada e Saída.

Segundo Wilhelm G. Spruth, uma das razões da enorme capacidade de processamento transacional do System z é justamente descarregar boa parte do trabalho de I/O para componentes especializados, em vez de consumir ciclos da CPU principal.


Bem-vindo ao Centro Logístico da Galáxia

Imagine um centro de distribuição.

A CPU apenas escreve:

"Preciso deste arquivo."

Instantaneamente surge uma cadeia inteira de especialistas.

Cada um sabe exatamente o que fazer.

Sem interromper o comandante.

Sem desperdiçar energia.

Sem ocupar a ponte principal.


Os Control Units — As Docas Inteligentes

Chegamos ao primeiro personagem desta história.

As famosas:

Control Units.

Imagine uma gigantesca doca espacial.

Ela conversa com:

discos.

fitas.

SSD.

impressoras.

subsistemas.

A CPU sequer precisa conhecer os detalhes desses equipamentos.

Ela conversa apenas com a Control Unit.

É como um capitão dizendo:

"Quero abastecer."

Sem precisar saber:

qual mangueira.

qual válvula.

qual bomba.

Tudo isso fica sob responsabilidade da equipe da doca.

Spruth ressalta que funções tradicionalmente atribuídas a drivers de dispositivos em outras plataformas são executadas pelas Control Units no ambiente System z.


O Carteiro Nunca Vai Até a Floresta

Imagine um carteiro.

Ele não fabrica cartas.

Não escreve mensagens.

Não constrói estradas.

Ele apenas entrega.

As Control Units seguem exatamente essa lógica.

Elas especializam-se na comunicação entre a CPU e o universo externo.

Essa separação simplifica o sistema inteiro.


Drivers? Quase Não...

Aqui encontramos uma das maiores diferenças para Windows e Linux.

Nos PCs existe enorme quantidade de drivers.

Cada dispositivo possui o seu.

Cada fabricante faz diferente.

Cada atualização pode quebrar alguma coisa.

No Mainframe...

a maior parte dessa inteligência foi deslocada para o próprio hardware especializado.

Resultado?

Mais estabilidade.

Mais desempenho.

Menos complexidade para o sistema operacional.


O Channel Subsystem — O Controle de Tráfego Espacial

Agora imagine que existem milhares de cargueiros chegando ao mesmo tempo.

Quem organiza isso?

O verdadeiro maestro chama-se:

Channel Subsystem.

Pense nele como a torre de controle de um gigantesco porto espacial.

Ele decide:

qual caminho utilizar.

qual canal está livre.

qual dispositivo responderá.

qual rota está congestionada.

A CPU?

Nem toma conhecimento.

Segundo o relatório, o Channel Subsystem utiliza processadores especializados chamados System Assist Processors (SAPs), que executam esse gerenciamento fora do alcance do sistema operacional.


SAP — Os Pilotos Automáticos

Esses pequenos especialistas chamam-se:

SAPs

(System Assist Processors).

Imagine dezenas de controladores de voo trabalhando continuamente.

Enquanto isso...

a CPU continua executando COBOL.

CICS.

Db2.

Java.

Sem perder tempo organizando filas de discos.

É como contratar uma equipe inteira apenas para administrar aeroportos.


A Área Secreta da Nave

Existe um compartimento que praticamente nenhum programa consegue enxergar.

Ele chama-se:

Hardware System Area (HSA).

Pense nele como a sala de manutenção da nave.

Somente engenheiros autorizados entram ali.

É nesse ambiente que diversos mecanismos internos trabalham silenciosamente, incluindo parte da infraestrutura utilizada pelos SAPs e pelo gerenciamento dos canais.


Um Disco Pode Ter Muitas Estradas

Agora imagine uma cidade.

Existe apenas uma estrada.

Qualquer acidente paralisa tudo.

No IBM Z isso seria considerado um projeto ruim.

Em vez disso...

cada dispositivo pode possuir diversos caminhos.

Se um canal ficar indisponível...

outro assume.

Sem interromper a viagem.

Esse conceito é conhecido como:

Multiple Paths.


O GPS da Galáxia

Imagine um navegador inteligente.

Se uma rota congestiona...

ele muda imediatamente o caminho.

É exatamente isso que acontece.

O subsistema pode alterar dinamicamente a rota de uma operação de I/O.

A carga continua viajando.

O usuário nem percebe.

Spruth explica que uma operação pode inclusive terminar por um canal diferente daquele em que começou, graças ao gerenciamento dinâmico dos caminhos de conexão.


O Elevador Inteligente

Suponha um edifício de mil andares.

Cinco elevadores.

Todos recebem chamadas ao mesmo tempo.

Quem decide qual elevador atenderá cada passageiro?

O algoritmo.

No Mainframe existe conceito semelhante.

O I/O Scheduling organiza a sequência das operações para reduzir deslocamentos desnecessários e aumentar a eficiência.

Enquanto muitos sistemas realizam esse trabalho utilizando ciclos da CPU, no IBM Z boa parte dele é executada pelos componentes especializados do subsistema de I/O.


FICON — As Rodovias de Luz

Agora vamos observar as estradas.

Em vez de simples cabos...

o IBM Z utiliza conexões ópticas de altíssimo desempenho.

Entre elas destaca-se:

FICON

(Fibre Connection).

Posteriormente surgiu o:

zHPF

(High Performance FICON).

Imagine substituir antigas rodovias por túneis hiperluminais.

Mais velocidade.

Menor latência.

Maior eficiência.


O NUMA Cache Compartilhado

Chegamos a uma das partes mais sofisticadas do relatório.

Imagine quatro enormes cidades espaciais.

Cada uma possui sua biblioteca.

Normalmente...

cada cidade consulta apenas seus próprios livros.

No IBM Z ocorre algo extraordinário.

As bibliotecas conseguem cooperar.

Os caches L2 são organizados de forma a oferecer uma visão compartilhada entre diferentes "books", reduzindo custos de acesso e aumentando a eficiência em sistemas de grande porte.


DMA Diretamente no Cache

Aqui encontramos outra inovação impressionante.

Na maioria dos computadores...

os dispositivos conversam diretamente com a memória principal.

No System z...

certas operações de I/O conseguem atingir diretamente o cache L2.

Imagine um cargueiro entregando suprimentos diretamente na cozinha da nave...

sem precisar passar primeiro pelo almoxarifado.

Resultado?

Muito menos deslocamento.

Muito menos espera.

Mais desempenho.

Spruth destaca essa característica como uma implementação singular da arquitetura System z.


Quantos Discos Cabem Numa Galáxia?

O relatório apresenta números impressionantes.

Um único Channel Subsystem pode administrar dezenas de milhares de subcanais.

Diversos subsistemas podem coexistir.

Isso permite conectar quantidades gigantescas de dispositivos de armazenamento e periféricos.

É uma escala difícil até de imaginar quando pensamos em servidores convencionais.


Por Que Tudo Isso Existe?

Porque bancos não possuem apenas:

um arquivo.

Eles possuem:

milhões.

Uma companhia aérea não processa:

cem reservas.

Processa milhões.

Uma seguradora não grava:

dez registros.

Grava bilhões.

O problema nunca foi ler um arquivo.

O problema sempre foi ler milhões deles simultaneamente.


O Que Mudou Desde 2010?

Desde a publicação do relatório, o subsistema de I/O continuou evoluindo.

Hoje encontramos:

  • FICON ainda mais rápido;

  • discos Flash de altíssimo desempenho;

  • DS8000 muito mais inteligentes;

  • integração com NVMe;

  • compressão por hardware;

  • criptografia transparente;

  • Storage Class Memory;

  • melhorias em zHyperLink;

  • novos mecanismos de paralelismo.

Mas a filosofia permanece rigorosamente igual.

A CPU continua fazendo apenas aquilo que ela faz melhor.


A Grande Lição dos Engenheiros

Existe um princípio elegante escondido neste capítulo.

Não sobrecarregue quem deveria estar pensando.

Delegue.

Especialize.

Distribua responsabilidades.

Curiosamente...

essa não é apenas uma lição para computadores.

Também vale para equipes.

Projetos.

Empresas.

E até para nossas próprias rotinas.


Curiosidades do Diário de Bordo

🚀 Muitos conceitos modernos de aceleração por hardware seguem a mesma filosofia utilizada pelo IBM Z há décadas: mover tarefas especializadas para componentes dedicados.

💾 O subsistema de I/O do Mainframe é frequentemente considerado um dos maiores diferenciais da plataforma, justamente porque permite que a CPU permaneça focada no processamento das aplicações.

🌌 O Channel Subsystem trabalha de forma tão integrada ao hardware que a maior parte dos programas jamais percebe sua complexidade.

📡 Em um IBM Z, a logística de movimentação de dados lembra muito mais a operação de um gigantesco porto espacial automatizado do que a de um computador pessoal.


Diário de Bordo do Padawan COBOL

Antes de deixar o centro logístico da nave, registre estas coordenadas:

✅ A CPU do IBM Z foi projetada para processar negócios, não para administrar filas de dispositivos.

✅ Control Units, Channel Subsystem e SAPs formam uma equipe especializada que descarrega grande parte do trabalho de Entrada e Saída.

✅ Múltiplos caminhos de comunicação aumentam simultaneamente desempenho e disponibilidade.

✅ O segredo da eficiência do IBM Z não está apenas em processadores poderosos, mas em uma arquitetura onde cada componente faz exatamente aquilo para o qual foi criado.

No próximo capítulo atravessaremos as portas do Supervisor do z/OS, o verdadeiro centro nervoso da nave. Descobriremos como Kernel, Address Spaces, Dispatcher e Scheduler coordenam milhões de atividades simultâneas com a serenidade de um comandante experiente, mantendo a ordem em uma galáxia onde o caos tenta aparecer a cada microssegundo.

☕ Um Café no Bellacosa Mainframe

O Guia Galáctico do IBM Z

Dezoito capítulos e uma conclusão reunidos em um painel interativo. Escolha uma missão, abra no visor e continue explorando diretamente no artigo original.

Não entre em pânico: se o Blogger impedir a exibição dentro do iframe, use “Abrir artigo”. Os links diretos continuam visíveis para leitores e motores de busca.
01

Capítulo I — Não Entre em Pânico!

Leia no visor ou abra a publicação original.

Abrir artigo
02

Capítulo II — A Planta da Nave Mais Duradoura da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
03

Capítulo III — A Nave Que Se Recusa a Explodir

Leia no visor ou abra a publicação original.

Abrir artigo
04

Capítulo IV — A Sala dos Cofres Cósmicos

Leia no visor ou abra a publicação original.

Abrir artigo
05

Capítulo V — A Frota Invisível do Transporte Interestelar

Leia no visor ou abra a publicação original.

Abrir artigo
06

Capítulo VI — O Grande Maestro Invisível

Leia no visor ou abra a publicação original.

Abrir artigo
07

Capítulo VII — O Grande Terminal de Embarque da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
08

Capítulo VIII — A Metrópole das Transações Infinitas

Leia no visor ou abra a publicação original.

Abrir artigo
09

Capítulo IX — A Federação das Naves Invisíveis

Leia no visor ou abra a publicação original.

Abrir artigo
10

Capítulo X — A Consciência Coletiva da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
11

Capítulo XI — O Almirante Invisível da Frota

Leia no visor ou abra a publicação original.

Abrir artigo
12

Capítulo XII — A Biblioteca Infinita da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
13

Capítulo XIII — O Serviço Postal Mais Confiável da Galáxia

Leia no visor ou abra a publicação original.

Abrir artigo
14

Capítulo XIV — O Jardim Secreto da Nave

Leia no visor ou abra a publicação original.

Abrir artigo
15

Capítulo XV — O Tradutor Universal da Federação

Leia no visor ou abra a publicação original.

Abrir artigo
16

Capítulo XVI — A Fábrica Automática da Federação

Leia no visor ou abra a publicação original.

Abrir artigo
17

Capítulo XVII — A Última Fronteira Nunca Foi o Espaço

Leia no visor ou abra a publicação original.

Abrir artigo
18

Capítulo XVIII — O Guia Nunca Terminou

Leia no visor ou abra a publicação original.

Abrir artigo
19

Conclusão — Não Entre em Pânico... A Jornada Está Apenas Começando

Leia no visor ou abra a publicação original.

Abrir artigo

sexta-feira, 18 de maio de 2018

SQL JOINs: O Que Todo Programador COBOL Padawan Precisa Saber Para Entender Como os Bancos de Dados Pensam

 

Bellacosa Mainframe e o uso dos sqljoins em SQL

☕ Um Café no Bellacosa Mainframe

SQL JOINs: O Que Todo Programador COBOL Padawan Precisa Saber Para Entender Como os Bancos de Dados Pensam

Você não está apenas aprendendo comandos SQL. Está aprendendo como bilhões de registros conversam entre si todos os dias.

Existem momentos na carreira de um programador em que um conceito muda completamente sua forma de enxergar a computação.

Para alguns, esse momento acontece ao aprender ponteiros em C.

Para outros, ao descobrir orientação a objetos.

Para quem trabalha com bancos de dados relacionais, esse momento geralmente acontece quando entende, de verdade, os JOINs.

À primeira vista, parecem apenas quatro comandos:

  • INNER JOIN

  • LEFT JOIN

  • RIGHT JOIN

  • FULL OUTER JOIN

Mas, por trás deles, existe uma das maiores invenções da Ciência da Computação moderna.

Para um programador COBOL, compreender JOINs é semelhante a descobrir que, em vez de navegar manualmente por dezenas de arquivos VSAM procurando registros relacionados, existe um mecanismo matemático capaz de fazer isso automaticamente, de forma otimizada, segura e extremamente rápida.

Pegue seu café.

Hoje vamos conversar sobre como os bancos de dados realmente pensam.


Antes do SQL

Imagine que estamos em 1975.

Você trabalha em um grande banco.

Os dados estão espalhados em arquivos.

Existe um arquivo de clientes.

Outro de contas.

Outro de cartões.

Outro de empréstimos.

Outro de movimentações.

Em COBOL, o processamento normalmente seria algo parecido com:

Ler Cliente

Para cada Cliente

    Abrir arquivo de Contas

    Procurar Conta

        Abrir arquivo de Movimentos

        Procurar Movimentos

            Gerar relatório

Nada de errado.

Foi assim durante décadas.

Mas existe um problema.

À medida que os arquivos crescem...

...o processamento cresce junto.

Às vezes de forma exponencial.

Era necessário pensar diferente.


Surge o Modelo Relacional

Em 1970, Edgar F. Codd publicou um artigo que mudou a história da informática.

Sua ideia era brilhante.

Em vez de navegar manualmente entre arquivos...

...o programador apenas declararia:

"Quero relacionar estas duas tabelas."

O banco descobriria o melhor caminho.

Foi o nascimento do SQL moderno.

E junto dele...

...os JOINs.


O que é um JOIN?

JOIN significa literalmente

Junção.

É a operação que une informações de duas ou mais tabelas utilizando algum relacionamento.

Imagine duas tabelas.

CLIENTE

IDNome
1João
2Maria
3Carlos
4Ana

PEDIDO

PedidoClienteValor
1011250
1021400
1033120
1045900

Observe.

O pedido possui um campo chamado CLIENTE.

Esse campo aponta para o ID da tabela CLIENTE.

Visualmente:

CLIENTE

1 João
2 Maria
3 Carlos
4 Ana

        │

        ▼

PEDIDO

101 Cliente 1

102 Cliente 1

103 Cliente 3

104 Cliente 5

Existe um relacionamento.

É justamente isso que o JOIN explora.


INNER JOIN

É o JOIN mais famoso.

Ele responde uma pergunta muito simples.

"Quais registros existem nos dois lados?"

SQL

SELECT
    C.NOME,
    P.VALOR
FROM CLIENTE C
INNER JOIN PEDIDO P
ON C.ID = P.CLIENTE_ID;

Resultado

ClienteValor
João250
João400
Carlos120

Perceba.

Maria desapareceu.

Ana desapareceu.

O pedido do cliente 5 também desapareceu.

Por quê?

Porque não existe correspondência.

O INNER JOIN trabalha exclusivamente com a interseção.

Imagine dois círculos.

CLIENTES

(1 2 3 4)

PEDIDOS

(1 3 5)

Resultado

(1 3)

Apenas aquilo que existe em ambos.


A mágica acontece automaticamente

Quando você escreve:

INNER JOIN

Você não está dizendo ao banco:

"Leia primeiro esta tabela."

Nem:

"Depois percorra aquela."

Nem:

"Faça um loop."

Você apenas declara o resultado desejado.

O banco escolhe como chegar nele.

Esse é o paradigma declarativo.


LEFT JOIN

Agora imagine outra pergunta.

"Quero todos os clientes."

Mesmo aqueles que nunca compraram.

É aqui que entra o LEFT JOIN.

SELECT
    C.NOME,
    P.VALOR
FROM CLIENTE C
LEFT JOIN PEDIDO P
ON C.ID=P.CLIENTE_ID;

Resultado

ClienteValor
João250
João400
MariaNULL
Carlos120
AnaNULL

Observe o NULL.

Ele não significa zero.

Não significa vazio.

Significa simplesmente:

"Não existe registro correspondente."

Esse pequeno detalhe causa milhares de erros em sistemas corporativos.


Descobrindo clientes inativos

Um dos usos mais comuns do LEFT JOIN.

SELECT C.*

FROM CLIENTE C

LEFT JOIN PEDIDO P

ON C.ID=P.CLIENTE_ID

WHERE P.CLIENTE_ID IS NULL;

Resultado.

Maria.

Ana.

São clientes cadastrados.

Mas nunca fizeram pedidos.

Esse tipo de consulta é extremamente comum em:

  • CRM

  • Bancos

  • Seguradoras

  • Telecom

  • E-commerce


RIGHT JOIN

É simplesmente o espelho do LEFT.

Mantém todos os registros da direita.

Na prática...

Poucos desenvolvedores utilizam RIGHT JOIN.

A maioria prefere inverter as tabelas e continuar usando LEFT JOIN.

É mais intuitivo.


FULL OUTER JOIN

Esse é o mais democrático.

Nada é descartado.

Tudo aparece.

Clientes com pedidos.

Clientes sem pedidos.

Pedidos sem clientes.

Tudo.

CLIENTES

1

2

3

4

PEDIDOS

1

3

5

Resultado

1

2

3

4

5

Muito utilizado em auditorias.

Migração de sistemas.

Comparação de bases.

Validação de integrações.


O papel do NULL

Uma das maiores dificuldades dos iniciantes.

Imagine.

Maria nunca comprou.

O resultado será

Maria

NULL

Não escreva

WHERE VALOR=0

Porque NULL não é zero.

Use

WHERE VALOR IS NULL

Parece detalhe.

Mas não é.


O problema da multiplicação de registros

Esse é um conceito que surpreende muitos programadores COBOL.

Imagine.

Um cliente.

Cinco pedidos.

CLIENTE

João
PEDIDO

101

102

103

104

105

Resultado do JOIN.

João

101

João

102

João

103

João

104

João

105

Um registro virou cinco.

Isso é perfeitamente normal.

É consequência da cardinalidade.


Cardinalidade

Existem quatro situações clássicas.

Um para Um

Pessoa

CPF

Cada pessoa possui apenas um CPF.


Um para Muitos

Cliente

Pedidos

Um cliente possui vários pedidos.

É o relacionamento mais comum.


Muitos para Um

Milhares de pedidos.

Um cliente.

É apenas a visão inversa.


Muitos para Muitos

Aluno

Disciplina

Um aluno cursa várias disciplinas.

Uma disciplina possui vários alunos.

Nesse caso normalmente existe uma terceira tabela intermediária.


O erro que derruba servidores

Todo DBA conhece essa história.

Um desenvolvedor escreve:

SELECT *

FROM CLIENTE,

PEDIDO;

Ou

JOIN

sem ON

Resultado.

Produto Cartesiano.

Se houver:

100.000 clientes

100.000 pedidos

O banco produzirá

10 bilhões de combinações.

Pode consumir CPU, memória e I/O de forma devastadora.

Por isso, nunca execute um JOIN sem uma condição de relacionamento bem definida.


Como o DB2 realmente executa um JOIN?

Aqui entramos no mundo do IBM Mainframe.

Você escreve SQL.

Mas quem decide o caminho é o Otimizador do DB2.

Ele analisa dezenas de fatores.

Quantidade de registros.

Índices.

Estatísticas.

Cardinalidade.

Distribuição dos valores.

Buffer Pool.

Espaço disponível.

Custo estimado.

No final...

Escolhe um plano de execução.

É semelhante ao GPS.

Você informa o destino.

Ele calcula a melhor rota.


Nested Loop Join

Imagine duas listas telefônicas.

Você pega um nome.

Procura na outra lista.

Repete.

Esse é o Nested Loop.

Cliente

↓

Índice

↓

Pedido

Excelente quando existe índice.

Muito utilizado em consultas seletivas.


Merge Join

Agora imagine duas listas ordenadas alfabeticamente.

Você percorre ambas ao mesmo tempo.

Sem voltar.

Sem pesquisar novamente.

Muito eficiente para grandes conjuntos já classificados.


Hash Join

Agora imagine uma tabela hash.

Os registros menores são colocados em memória.

Depois a outra tabela apenas consulta essa estrutura.

É extremamente rápido para determinadas situações.


O papel dos índices

Sem índices...

O banco precisa procurar registro por registro.

Com índices...

Ele encontra rapidamente os dados desejados.

Imagine um livro de 2.000 páginas.

Sem índice.

Você folheia página por página.

Com índice.

Vai diretamente ao assunto.

É exatamente isso que acontece.


RUNSTATS

No DB2 existe um utilitário extremamente importante.

RUNSTATS.

Ele atualiza as estatísticas do banco.

Quantidade de linhas.

Número de páginas.

Distribuição dos valores.

Percentual de registros.

Sem essas informações...

O otimizador pode escolher um caminho ruim.

É como dirigir sem GPS.


EXPLAIN

Todo desenvolvedor Mainframe deveria aprender EXPLAIN.

Ele responde perguntas como:

  • Qual índice será utilizado?

  • Quantas páginas serão lidas?

  • Haverá Tablespace Scan?

  • Será usado Hash Join?

  • Nested Loop?

  • Merge Join?

O EXPLAIN é uma janela para o cérebro do DB2.

Não basta escrever SQL correto.

É preciso entender como ele será executado.


JOIN não é apenas SQL

Muitos iniciantes acreditam que JOIN pertence exclusivamente ao SQL.

Na verdade...

JOIN é um conceito matemático.

Baseado em Álgebra Relacional.

Projetos.

Seleções.

Uniões.

Diferenças.

Interseções.

Produto Cartesiano.

Todos esses operadores são estudados muito antes do SQL existir.

SQL apenas transformou essas ideias em uma linguagem prática.


A evolução para Big Data

Mesmo tecnologias modernas continuam utilizando o conceito de JOIN.

Spark SQL.

Hive.

Snowflake.

BigQuery.

Databricks.

DuckDB.

PostgreSQL.

Oracle.

SQL Server.

Todos executam JOINs.

Mudam os algoritmos.

Mudam as otimizações.

Mas a teoria continua exatamente a mesma criada por Edgar Codd há mais de cinquenta anos.

Isso demonstra a força de uma boa ideia.


O que um Programador COBOL Padawan deve levar desta conversa?

Se você está começando sua jornada em informática, talvez pense que JOIN é apenas mais uma palavra da linguagem SQL.

Não é.

JOIN representa uma mudança de mentalidade.

No mundo procedural, típico de muitos programas COBOL tradicionais, você descreve passo a passo como localizar, ler e combinar registros. No mundo relacional, você descreve o que deseja obter, e o banco de dados decide a melhor estratégia para alcançar esse resultado.

Essa diferença parece sutil, mas muda completamente a forma de projetar sistemas.

Ao dominar JOINs, você deixa de enxergar tabelas como arquivos isolados e passa a vê-las como partes de uma grande rede de relacionamentos. É essa visão que permite construir consultas elegantes, sistemas escaláveis e aplicações capazes de responder rapidamente a perguntas complexas sobre milhões — ou até bilhões — de registros.

Da próxima vez que escrever um INNER JOIN, lembre-se de que não está apenas unindo duas tabelas. Está utilizando um dos conceitos mais elegantes da Álgebra Relacional, aperfeiçoado por décadas de pesquisa e otimizado continuamente pelos maiores bancos de dados do mundo.

E essa é uma das grandes lições da engenharia de software: as tecnologias evoluem, as linguagens mudam, o hardware se transforma, mas os fundamentos permanecem. Quem aprende esses fundamentos não está apenas estudando SQL; está construindo uma base sólida para compreender qualquer plataforma de dados, do IBM Z aos ambientes distribuídos em nuvem.

No Bellacosa Mainframe, costumamos dizer que um verdadeiro COBOL Padawan não coleciona apenas comandos. Ele coleciona maneiras diferentes de pensar. Porque, no fim das contas, programar nunca foi apenas escrever código. Programar é aprender a conversar com a lógica que organiza o mundo dos dados. E os JOINs são uma das linguagens mais poderosas dessa conversa.

Vagner Renato Bellacosa, IBM Champion e especialista em IBM Mainframe
IBM Z17 SYSTEM ONLINE
Sobre o autor

Vagner Renato Bellacosa

IBM Champion 2026 • Especialista em IBM Mainframe

Vagner Renato Bellacosa trabalha com IBM Mainframe desde 1988 , é IBM Champion e especialista em COBOL, CICS, Db2, z/OS e IBM Z. Compartilha experiências profissionais, conhecimento técnico, história da computação e práticas do universo mainframe para aproximar novas gerações das tecnologias que sustentam empresas, bancos e governos ao redor do mundo.

IBM Champion IBM Z COBOL CICS Db2 z/OS Mainframe desde 1988
GitHub LinkedIn
Inicializando conteúdo...