# DB2

O DB2 é um Sistema de Gestão de Banco de Dados Relacionais (SGDBR) produzido pela IBM. Existem diferentes versões do DB2 que rodam desde num simples PDA|computador de mão, até em potentes mainframes e funcionam em servidores baseados em sistemas Unix, Windows, ou Linux.

## História

O nome DB2 foi dado para o Sistema de Gerenciamento de Banco de Dados que a IBM lançou em 1983 baseado em SQL/DS para seu mainframe. A princípio o produto foi chamado System R que fora iniciado em 1978. O projeto DB2 começou no início dos anos 70 quando Edgar Frank Codd, trabalhando para IBM descreveu a teoria dos Banco de dados Relacionais e publicou sua teoria em Junho de 1970. Para aplicar o modelo, Codd criou uma linguagem de banco de dados relacionais que a chamou de Alpha. Entretanto, a IBM não acreditava no potencial das suas ideias, deixando-o fora da supervisão do grupo de programadores, que violaram diversas ideias fundamentais do modelo relacional de Codd. O resultado foi a linguagem SEQUEL, que depois foi mudado para seu acrônimo SQL porque SEQUEL já era uma marca registrada.
Por muitos anos, DB2 foi feito exclusivamente para rodar nos mainframes da IBM. Posteriormente a IBM introduziu o DB2 para outras plataformas de servidores, incluindo o Unix e o Windows, para então colocar no Linux e PDAs. Esse processo foi feito na década 90. A inspiração para os detalhes de implementação do DB2 vieram da linguagem DL/1 da IBM e do Sistema de Gerenciamento de Informações também dessa empresa. As novas versões já são avaliadas para OS/2 e é chamada DB2/2.
Na metade do ano de 2006, a IBM anunciou o “Viper”, o codinome do DB2 9 para computação distribuídas e para DB2 9 no z/OS. A empresa diz que o novo DB2 será o primeiro banco de dados relacional que armazena o XML nativo. Outros recursos incluem o desenvolvimento baseado em OLTP para computação distribuídas, o desenvolvimento baseado em Business intelligence e Data Warehousing para z\OS, mais recursos de auto configuração e auto gerenciamento, adição de recursos para a plataforma 64-bits (especialmente para z/OS), melhoria na performance do armazenamento estruturado para z/OS e a continuação da padronização do vocabulário da linguagem SQL entre z/OS e outras computação distribuídas.

## Edições

DB2 é vendida em diversos tipos de “edições” ou licenças. Pela escolha de uma versão com menos recursos, a IBM evita que os consumidores paguem por coisas que não iriam usar. Alguns exemplos de edição são a Express, Workgroup e a Edição Enterprise. A edição mais sofisticada para Linux/UNIX/Windows é o DB2 Data Warehouse Enterprise Edition, ou DB2 DWE.
DB2 para Z/OS é vendido em sua própria licença. Começando com a versão 8, a IBM vendeu o DB2 para z/OS e outros sistemas com característica muito próximas.DB2 para esse sistema tem algumas característica exclusivas: Segurança Multi-Level, tabelas de tamanhos extremamente grandes e compressão a nível de hardware. DB2 para z/OS foi sempre conhecido pela sua liderança de performance OLTP e é usado para suportar missões críticas nas operações de negócios, mas agora a versão z/OS está começando a adquirir característica Business intelligence.
Em 30 de Janeiro de 2006, a IBM lançou uma versão do DB2 chamada DB2 9 Express-C. Essa foi a resposta para os recentes pronunciamentos de versões gratuitas do Oracle e da Microsoft SQL Server. Express-C não terá limite no número de usuários e do tamanho do banco de dados. Foi desenvolvido para máquinas com sistema Windows e Linux até 2 processadores e até 2GB de memória.

### Edições na Nuvem (Cloud Services)

A IBM provem três tipos de aplicação na nuvem para o DB2 em sua plataforma Bluemix:
* DB2 on Cloud: Uma versão completamente gerenciável na nuvem.
* DB2 Hosted: Uma versão não gerenciável do DB2.
* IBM dashDB: Uma versão baseada na engine DB2, que é gerenciável e conta com capacidades adicionais da engine do Natezza. Existem duas versões desta edição: IBM dashDB para Analytics e dashDB Local.

## Competição

Historicamente, a primeira posição entre os SGDB do mercado foi marcado pela alternância entre DB2 e Oracle. Entretanto há outros SGDBs concorrentes como o Microsoft SQL Server (atualmente disponível no Windows e no Linux) além de sistemas de código aberto tais como o PostgreSQL, MySQL e Firebird. O DB2 para z/OS tem poucos concorrentes diretos, mas a Oracle vem atraindo consumidores para o Linux da zSerie, embora não as custas do DB2.
Em 2006 a IBM entrou na competição pelo emergente mercado de armazenamento warehouse aplicado ao mercado financeiro, com o lançamento de uma linha de produtos com sistemas de hardware/software pré-configurados. Essa família de “aplicações warehouse” foi nomeada como IBM Balanced Configuration Unit, ou BCU.

## Informações técnicas

DB2 pode ser administrado tanto em uma interface de comandos de linhas ou em um ambiente gráfico. A interface de comando de linha requer mais conhecimento do produto mas pode ser mais facilmente automatizado. O ambiente gráfico é uma multi-plataforma Java que contem uma grande variedade de wizards para usuários iniciantes.
DB2 tem APIs para .NET CLI, Java, Python, Perl, PHP, Ruby, C++, C, REXX, PL/I, COBOL, RPG, FORTRAN, e muitas outras linguagens de programação. DB2 também tem suporte de integração no Eclipse e no Visual Studio .NET