| Bellacosa Mainframe o que é um banco de dados idms |
O que é o banco de dados IDMS?
Se você trabalha ou pretende trabalhar com Mainframe, provavelmente ouvirá falar de Db2, IMS e, em empresas mais antigas, do IDMS.
Embora hoje o Db2 seja muito mais difundido, o IDMS (Integrated Database Management System) continua presente em diversas organizações que executam aplicações críticas desenvolvidas há décadas.
Definição simples
O IDMS é um Sistema Gerenciador de Banco de Dados (SGBD) criado originalmente pela Cullinane Corporation no início da década de 1970, posteriormente adquirido pela Computer Associates (CA Technologies) e hoje pertencente à Broadcom.
Ele foi projetado para computadores de grande porte (mainframes) e utiliza principalmente o modelo de banco de dados em rede (Network Database Model), padronizado pelo grupo CODASYL.
Em resumo:
IDMS é um banco de dados de alta performance para Mainframes baseado no modelo em rede, muito utilizado antes da popularização dos bancos relacionais.
Origem do nome
IDMS significa:
Integrated Database Management System
Ou seja:
Sistema Integrado de Gerenciamento de Banco de Dados.
Um pouco de história
Na década de 1970 praticamente não existiam bancos relacionais comerciais.
Os principais modelos eram:
Hierárquico (IMS)
Em Rede (IDMS)
Arquivos Sequenciais
VSAM
O IDMS rapidamente tornou-se um dos bancos mais utilizados em ambientes corporativos.
Era comum encontrá-lo em:
bancos;
seguradoras;
governos;
telecomunicações;
indústrias.
A empresa responsável
Linha do tempo:
1972
↓
Cullinane Corporation
↓
Cullinet Software
↓
Computer Associates (CA)
↓
CA Technologies
↓
Broadcom
Mesmo após diversas aquisições, o produto continua sendo mantido.
O modelo em rede (Network Database)
O IDMS não é relacional.
Ele utiliza registros ligados diretamente entre si.
Imagine uma árvore genealógica onde uma pessoa pode possuir vários relacionamentos simultaneamente.
Exemplo:
CLIENTE
│
├────────CONTA
│
├────────EMPRÉSTIMO
│
└────────CARTÃO
Cada registro conhece diretamente seus relacionamentos.
Não existe JOIN como no SQL tradicional.
Como funciona
O programador navega pelo banco.
Em vez de perguntar:
SELECT *
FROM CLIENTE
JOIN CONTA
Ele faz algo parecido com:
Encontrar CLIENTE
↓
Ir para CONTA
↓
Ir para CARTÃO
↓
Ir para EMPRÉSTIMO
É chamada de navegação por ponteiros.
O conceito de SET
A estrutura principal do IDMS chama-se SET.
Um SET representa um relacionamento.
Exemplo:
CLIENTE
↓
SET
↓
CONTA
Ou
DEPARTAMENTO
↓
SET
↓
FUNCIONÁRIO
OWNER e MEMBER
Cada relacionamento possui:
OWNER
Registro principal.
MEMBER
Registro dependente.
Exemplo:
CLIENTE (OWNER)
↓
CONTA (MEMBER)
Banco orientado a navegação
O IDMS não procura dados como um banco SQL moderno.
Ele percorre caminhos previamente definidos.
CLIENTE
↓
CONTA
↓
MOVIMENTO
↓
LANÇAMENTO
Por isso era extremamente rápido.
Linguagens utilizadas
O IDMS possui integração com:
COBOL
PL/I
Assembler
C
O COBOL foi, de longe, a linguagem mais utilizada.
DML do IDMS
Em vez de SQL, o programador utiliza comandos específicos.
Exemplos:
FIND
GET
STORE
MODIFY
ERASE
CONNECT
DISCONNECT
Exemplo
Em COBOL:
FIND CLIENTE
↓
GET CONTA
↓
MODIFY CONTA
SQL existe?
Sim.
Versões modernas possuem suporte SQL.
Mas milhares de aplicações continuam usando a DML tradicional.
Estrutura física
O banco é dividido em:
Área (Area)
Página (Page)
Registro (Record)
Set
Segmentos
Tudo cuidadosamente organizado para reduzir acesso a disco.
Vantagens
Performance
Extremamente rápida.
Pouco espaço
Muito eficiente.
Alta estabilidade
Muitas bases funcionam há décadas.
Grande escalabilidade
Milhões de registros.
Excelente integração com COBOL
Foi desenvolvido pensando nisso.
Desvantagens
Curva de aprendizado
Maior que SQL.
Navegação complexa
Exige conhecer o modelo.
Poucos profissionais
Hoje existem poucos especialistas.
Menor flexibilidade
Mudanças estruturais costumam ser mais trabalhosas.
Onde ainda é utilizado?
Ainda pode ser encontrado em:
bancos;
seguradoras;
previdência;
órgãos públicos;
sistemas fiscais;
empresas de telecomunicações.
Principalmente em aplicações desenvolvidas entre os anos 1970 e 1990.
IDMS x IMS
| IDMS | IMS |
|---|---|
| Rede | Hierárquico |
| CODASYL | IBM |
| Ponteiros | Hierarquia |
| Mais flexível | Mais rígido |
IDMS x Db2
| IDMS | Db2 |
|---|---|
| Rede | Relacional |
| Navegação | SQL |
| SET | JOIN |
| Ponteiros | Índices |
Curiosidades
1. O IDMS ajudou a popularizar o modelo CODASYL
Antes do domínio dos bancos relacionais, o padrão CODASYL era amplamente adotado para aplicações corporativas de alto desempenho, e o IDMS tornou-se sua implementação comercial mais conhecida.
2. Muitas empresas ainda executam aplicações IDMS
Apesar da idade da tecnologia, existem sistemas que processam operações críticas diariamente, especialmente em grandes organizações que investem em estabilidade e continuidade.
3. O desempenho sempre foi um diferencial
Como os relacionamentos são feitos por ponteiros, muitas operações de navegação podem ser extremamente rápidas, sem a necessidade de realizar junções complexas entre tabelas.
4. Modernização sem substituição
Em diversas empresas, aplicações COBOL que utilizam IDMS vêm sendo modernizadas por meio de APIs e integrações, mantendo o banco de dados em produção enquanto novas interfaces são desenvolvidas.
Erros comuns de iniciantes
"IDMS é um banco relacional"
Não. Seu modelo principal é o banco de dados em rede (Network Database) baseado no padrão CODASYL.
"Ele foi substituído completamente pelo Db2"
Embora muitas organizações tenham migrado para bancos relacionais, ainda existem ambientes produtivos que utilizam IDMS por sua estabilidade e desempenho.
"Quem aprende IDMS está estudando uma tecnologia morta"
O mercado é menor do que o de Db2, mas profissionais que dominam COBOL e IDMS continuam sendo procurados em empresas que mantêm aplicações legadas críticas.
Vale a pena aprender?
Se você pretende trabalhar em bancos, seguradoras, governo ou grandes empresas com sistemas legados, conhecer os conceitos do IDMS pode ser um diferencial importante.
Mesmo que seu foco principal seja Db2, estudar IDMS ajuda a compreender a evolução dos bancos de dados corporativos e dos modelos de navegação que influenciaram muitas tecnologias modernas.
Conclusão
O IDMS é um dos bancos de dados mais importantes da história do Mainframe. Baseado no modelo CODASYL em rede, ele foi projetado para oferecer alta performance e confiabilidade em aplicações corporativas críticas. Embora tenha sido ofuscado pelos bancos relacionais, continua presente em diversos ambientes produtivos e representa um capítulo fundamental da evolução dos sistemas de informação. Para um programador COBOL, compreender seus conceitos amplia a visão sobre arquiteturas legadas e facilita a manutenção e modernização de sistemas que ainda movimentam negócios em todo o mundo.