Como o DB2 Express-C evita se tornar um crippleware
Versões grátis de produtos comerciais não são novidade em
2012. O movimento de software livre criou um clima de expectativa para
que produtos sejam disponibilizados gratuitamente e muitos provedores de
software responderam liberando versões não gratuitas (advogados não
gostam da palavra “gratuito” por alguma razão) de seus produtos
comerciais. Não foi uma decisão fácil. Afinal, se alguns produtos podem
ser obtidos gratuitamente, qual é a razão de continuar pagando centenas
de milhares ou até mesmo milhões de dólares para comprar os mesmos
produtos?
Para proteger a renda considerável dos produtos
existentes, os fornecedores impuseram limitações aos seus produtos
gratuitos, geralmente tão severas que a maioria desses produtos foi
marcada como “crippleware”. Um bom exemplo é o DBMS gratuito da Oracle e
da Microsoft. Tanto o Oracle Express
Edition quanto o Microsoft SQL Server Express Edition são
versões muito aptas de suas contrapartes comerciais e, às vezes, muito
dispendiosas. Para proteger a renda (como deveria ser), a Oracle e a
Microsoft apresentaram um conjunto muito semelhante de restrições nas
áreas de uso da memória, energia de processamento e disponibilidade.
Essas restrições, embora poucas, são formas bastante razoáveis de
restringir o desempenho do DBMS sem comprometer a funcionalidade.
No entanto, os dois fornecedores decidiram restringir
severamente a quantidade de dados que seu DBMS gratuito pode gerenciar. A
Oracle restringe o Oracle XE a 11 GB de dados e o Microsoft SQL Server
impõe uma restrição de 10 GB.
O DB2 Express-C é diferente de outro DBMS comercial gratuito?
O DB2 Express-C escolheu uma estratégia diferente.
Sentimos que o caminho pelo qual optamos, embora mais arriscado para a
IBM, é o melhor para os nossos clientes. (Se as pessoas não pagam, ainda
assim são seus clientes? Acreditamos que sim.) Essa estratégia
disponibiliza todos os recursos do DB2, sem reservas, aos
desenvolvedores de aplicativos. Ao desenvolver aplicativos com o DB2
Express-C, é possível estar certo de que cada interface de programação
que o DB2 oferece está disponível. Também pode estar certo de que o
código do aplicativo desenvolvido usando o DB2 Express-C executará sem
modificações com qualquer outra edição do DB2 para Linux®, UNIX®,
Windows® e IBM
InfoSphere® Warehouse (produto do data warehouse do
DB2). Na maioria dos casos, também executará inalterado com o DB2 para
z/OS® e DB2 no System i®.
Além disso, como o DB2 Express-C contém exatamente o
mesmo código das edições pagas do DB2 para Linux, UNIX e Windows, é
possível estar certo de que seu aplicativo terá exatamente o mesmo
comportamento quando executado com versões pagas do DB2 ou quando usado
com o DB2 Express-C gratuito. Ao contrário de ofertas da concorrência da
Oracle e Microsoft, você nunca está limitado pela quantidade de dados
que o DB2 Express-C pode gerenciar. Qualquer pessoa que recebe a
mensagem de erro ORA-12592 ao exceder o tamanho do banco de dados de 11
GB pode atestar como isso pode ser devastador, especialmente se sua
reputação com seus clientes estiver em risco. Não há mensagem
equivalente no DB2 Express-C e o DB2 nunca para de funcionar porque
algum limite arbitrário de quantidade de dados foi excedido. O tamanho
do banco de dados que o DB2 Express-C pode gerenciar é essencialmente
ilimitado. Ele é restrito apenas pelos recursos disponibilizados ao
servidor DB2 Express-C e a restrição é para o desempenho, não para a
função. O DB2 Express-C não colocará você em uma situação na qual seu
aplicativo para de funcionar devido à limitação de licença.
Como estamos falando sobre bancos de dados e recursos,
também devemos apontar que os servidores do DB2 Express-C podem ser
físicos ou virtuais. Além disso, é possível ter diversas instâncias do
DB2 executando em um único servidor, com cada instância tendo no máximo
256 bancos de dados DB2 separados e distintos. Cada banco de dados pode
separar mais os dados em esquemas de 32 K. Essa é uma grande oferta de
capacidade por qualquer DBMS pago e é incomparável no mercado de “DBMS
gratuito”.
Se o DB2 Express-C oferece essa grande capacidade
gratuitamente, por que alguém pagaria pelas edições Express, Workgroup,
Enterprise e Advanced Enterprise do DB2? O desempenho de um DBMS é
altamente dependente de recursos disponíveis da memória e do
processador. Seu valor também está diretamente relacionado à eficiência
operacional que é derivada pela funcionalidade avançada disponível, a
fim de que o administrador de banco de dados principal otimize a
operação do DBMS. Essas são as duas dimensões de diferenciação para as
várias edições do DB2.
Recursos disponíveis para o DB2 Express-C
Primeiro, vamos dar uma olhada na dimensão dos recursos. O
DB2 Express-C pode ser implementado em servidores de qualquer tamanho
(físico ou virtual) com qualquer quantidade de memória. Em outras
palavras, sua seleção de hardware do servidor para executar o DB2
Express-C não é restrita de nenhuma maneira. No entanto, o DB2 Express-C
irá se controlar para usar os recursos aos quais ele tem permissão de
acordo com os termos do contrato de licença. Especificamente, o DB2
Express-C planejará a execução de tarefas do DB2 em dois núcleos do
processador, independentemente de quantos núcleos estejam presentes no
servidor no qual o DB2 Express-C está sendo executado. Isso é feito
automaticamente, sem gerar a responsabilidade de monitorar e gerenciar a
conformidade no cliente. Se desejar, é possível alterar quais núcleos
do processador serão usados pelo DB2 Express-C. Por padrão, ele usará os
dois primeiros núcleos do processador, ou seja, os numerados 0 e 1.
Essa limitação de capacidade da CPU no DB2 Express-C 10 é inalterada nas
versões anteriores do DB2 Express-C 10.
Outro aspecto da dimensão de recursos é a memória
principal ou RAM. Versões anteriores do DB2 Express-C 10 se controlavam
para utilizar no máximo 2 GB de memória. A versão 10 do DB2 Express-C
duplica a quantidade máxima de memória para 4 GB. Você pode estar se
perguntando por que decidimos duplicar a quantidade de memória
utilizável, mantendo o número de núcleos do processador igual ao das
versões anteriores. Achamos que a memória tem um impacto muito maior
sobre o desempenho do que sobre a capacidade da CPU. Especificamente,
achamos que muitas das novas cargas de trabalho, como as que envolvem
texto e processamento XML, podem realmente precisar de memória extra.
Para concluir a revisão da dimensão dos recursos,
considere alguns exemplos. Digamos que você tenha um servidor de
arquitetura x64 com dois processadores quad-core e 64 GB de memória. É
possível implementar o DB2 Express-C nesse servidor sem preocupações com
a conformidade da licença. O DB2 Express-C usará os dois núcleos do
processador, deixando os seis núcleos restantes disponíveis para outras
carga de trabalho, como servidor da web ou do aplicativo, ou o novo
servidor de busca de texto (mais sobre isso mais adiante). Da mesma
forma, o DB2 Express-C usará os 4 GB de memória com os 60 GB restantes
disponíveis para outras cargas de trabalho.
É provável que você ainda esteja em dúvida sobre por que
atualizar para as versões pagas do DB2. As versões pagas do DB2
aproveitam mais recursos do processador e da memória. Consequentemente,
oferecem níveis mais altos de desempenho. Além disso, as edições pagas
do DB2 oferecem aos DBAs funções adicionais a fim de otimizar o
desempenho de seus bancos de dados e reduzir os custos operacionais. Por
exemplo, as edições pagas do DB2 oferecem a funcionalidade avançada de
compactação de dados, que pode reduzir drasticamente o custo de
armazenamento, ao mesmo tempo em que melhora o desempenho. Para clientes
que precisam gerenciar bancos de dados muito grandes, só a economia no
custo de armazenamento facilmente compensará o custo da licença do DB2.
Outro exemplo de recursos de redução de custo nas
edições pagas do DB2 é o armazenamento de várias temperaturas (novo na
V10.1). Esse recurso permite que os DBAs frequentemente localizem dados
usados e importantes (dados quentes) em um armazenamento mais rápido,
como um SSD, e coloquem dados de referência ou usados com pouca
frequência (dados frios) em um armazenamento muito mais barato.
Assim como a compactação, o desempenho melhorado e a
redução de custos de armazenamento podem mais do que compensar o custo
da licença do DB2.
Outro exemplo podem ser tabelas de consulta
materializadas (MQT). Trata-se essencialmente de consultas complexas
pré-calculadas que podem fornecer respostas instantâneas a perguntas
que, de outra forma, podem demorar horas para serem calculadas. A função
do concentrador de conexão permite que os DBAs manipulem cargas de
trabalho de milhares de usuários, sem dedicar recursos do servidor de
banco de dados a cada um. Isso permite que uma única instância de banco
de dados manipule um número muito maior de usuários simultâneos. Esse
recurso está disponível nas versões pagas do DB2, mas não é oferecido
como parte do produto DB2 Express-C. Segurança avançada é outro exemplo.
O controle de acesso baseado em rótulo (LBAC) e o controle de acesso de
linha e coluna (RCAC, novo na V10.1) permitem que os DBAs ofereçam mais
segurança e privacidade dos dados, sem sobrecarregar os desenvolvedores
de aplicativos com esses requisitos.
Observe que todas essas funções são projetadas para
ajudar os DBAs a desenvolverem ambientes de banco de dados de desempenho
mais alto, menos dispendiosos para operar e mais seguros. Isso não é
uma coincidência, mas é um ponto de design. Conforme mencionado
anteriormente no artigo, o DB2 Express-C oferece todas as interfaces de
programação do DB2, permitindo que os aplicativos desenvolvidos com o
DB2 Express-C sejam executados em todas as edições do DB2, ao mesmo
tempo em que fornece aos DBAs funcionalidade avançada para otimizar o
custo e o desempenho desses aplicativos. Também devemos mencionar que o
DB2 Express-C é suportado pela comunidade de pessoas com ideias afins,
enquanto as edições pagas do DB2 fornecem suporte técnico oferecido pela
equipe de suporte mundial da IBM.
Interfaces de programação do DB2
Até aqui, falamos como o DB2 Express-C fornece todas as
interfaces do DB2, diferenciando-se quanto aos recursos e
características operacionais. Agora é a vez de falar sobre essas
interfaces e os aprimoramentos oferecidos na V10. Vamos começar com um
dos recursos mais exclusivos do DB2: a capacidade de processar dados XML
usando o recurso chamado pureXML®.
- Processamento XML ainda mais rápido
Fizemos questão de incluir o pureXML no DB2 Express-C
gratuito. A Versão 10 oferece aprimoramentos na maneira como processa
XML, que são melhores descritos por uma única palavra: “velocidade”. O
processamento do DB2 de XML sempre foi rápido. Na versão 10, está ainda
mais rápido… muito mais rápido. Primeiro, há aprimoramentos profundos no
mecanismo para agilizar diversos tipos de consultas XML.
Especificamente, consultas usando a função XMLTABLE, com predicados de
junção inicial, XQuery não lineares e com um eixo-pai. O melhor recurso é
que todos esses aprimoramentos melhoram o desempenho sem fazer nenhuma
mudança na API. O desempenho é impulsionado simplesmente atualizando
para o DB2 Express-C 10 e sem tocar em nenhum código do aplicativo.
Outra forma como as consultas XML são aceleradas é por meio da inclusão de novos índices.
Na V10, é possível definir índices nos tipos de dados DECIMAL
e INTEGER
de XML.
Antes do DB2 10, você estava limitado a índices do tipo DOUBLE
, que não ofereciam o mecanismo XML nativo do DB2 com todas as oportunidades para atingir o desempenho mais alto possível.
O DB2 10 também permite definir índices nas funções XML FN:UPPER_CASE
, resultando em buscas rápidas sem distinção entre maiúsculas e
minúsculas de seus dados XML. Os índices também podem ser definidos nas
funções FN:EXISTS
, portanto, agilizando consultas que procuram um elemento específico em uma coluna XML.
Novamente, é importante apontar que nenhuma mudança no código do aplicativo é necessária.
Simplesmente defina esses novos índices para acelerar as consultas existentes.
Finalmente, programadores Java agora podem aproveitar o formato XML binário mais compacto (XDBX
) para agilizar a transferência de dados XML entre um aplicativo Java e o servidor DB2 Express-C 10.
- Procura de texto mais eficiente
No DB2, criar e manter índices de procura de texto é a
tarefa do serviço de procura de texto, que, às vezes, pode ser uma
tarefa intensa, com o potencial de consumir recursos no servidor do DB2
Express-C. O DB2 10 permite hospedar o serviço de Procura de Texto em um
servidor separado de forma que ele utilize recursos dedicados e não
interfira no restante do trabalho do DB2. Os usuários do DB2 Express-C
têm um benefício adicional. Caso você esteja executando o DB2 Express-C
em um servidor com recursos além do que pode ser
utilizado pelo DB2 Express-C (dois núcleos do processador e 4 GB de
memória), ainda pode utilizar os recursos extras para o serviço de
procura de texto.
Além de eficiência melhorada, a procura de texto do DB2
Express-C 10 suporta procuras difusas e também procuras de proximidade. A
procura difusa permite localizar texto semelhante (pense no tipo de
função como o Google sugere), enquanto a procura de proximidade permite
aplicar restrições na distância entre as sequências que estão sendo
procuradas. Ao contrário dos outros recursos descritos até aqui, tanto a
procura difusa quanto a procura de proximidade requerem pequenas
mudanças nas consultas.
- RDF: Uma oportunidade inteiramente nova para o DB2 Express-C
A explosão da popularidade da Internet e a
proliferação de recursos da web fez com que muitas pessoas reconhecessem
a necessidade de uma estrutura coesiva para gerenciar metadados em um
vasto mar de recursos. Por exemplo, uma simples página da web pode ter
um título, um autor, as datas de criação e de modificação e informações
sobre atribuição: tudo isso pode ter valor significativo se as máquinas
puderem ser ativadas para procurar e descobrir recursos na web. A
capacidade dos computadores de usar esses metadados para entender
informações sobre recursos da web é a ideia que sustenta a Web
Semântica.
O Resource Description Framework (RDF) é um padrão
W3C para descrever recursos da web. Ele descreve recursos da web no
formato assunto-predicado-objeto, por exemplo, “Leon é canadense” ou
“Leon conhece Paul”. Esses tipos de entidades de dados expressas no
formato assunto-predicado-objeto são chamados de triplos e são
armazenados em bancos de dados especializados de armazenamento triplo. O
DB2 Express-C 10 pode funcionar como um banco de dados de armazenamento
triplo nativo, permitindo armazenar e consultar dados do RDF no DB2
Express-C. O RDF é um formato de dados muito interessante para
representar relacionamentos, como gráfico social (pense em redes sociais
como o Facebook e o Twitter). Friend of a Friend (FOAF) é um projeto
que está criando informações legíveis por máquina descrevendo pessoas e
as relações entre elas, e é um exemplo do uso dos dados RDF.
- Viagem no tempo pelos dados
Hoje, mais do que nunca, há um grande interesse em
gerenciar o tempo como uma dimensão de dados. Há diversos motivadores de
negócios para essa necessidade. Uma dessas necessidades origina-se de
um requisito de cumprir com vários regulamentos do governo e do segmento
de mercado. Muitos dos requisitos de conformidade se centralizam em uma
necessidade de manter um histórico completo de mudanças de dados.
Muitos regulamentos exigem a capacidade de responder a perguntas sobre o
estado dos negócios e vários pontos de dados em um momento.
Muitas organizações requerem a capacidade de consultar e
atualizar datas efetivas e períodos de validade para suas operações.
O DB2 Express-C 10 introduz recursos de gerenciamento de
dados temporais chamados DB2 Time Travel Query, que tornam o processo
de capturar mudanças de dados com o tempo ou de configurar datas
efetivas e períodos de validade um processo simples que requer apenas
algumas instruções SQL. No passado, a inclusão de recurso temporal teria
exigido a criação de acionadores do banco de dados e a lógica de
aplicativo muito complexa. O novo Time Travel Query simplifica muito
esse processo. Nossas medidas mostram que o DB2 Time Travel Query pode
reduzir o esforço em até 45 vezes. Ótimo valor para um produto gratuito.
Obtenha uma introdução detalhada de dados temporais e do Time Travel Query no artigo ”
A matter of time: Temporal data management in DB2
10.”
- Compatibilidade com o Oracle
A discussão sobre o novo recurso de programação não estaria
completa sem pelo menos uma menção dos recursos de compatibilidade da
Oracle do DB2 Express-C 10. Embora tenhamos disponibilizado a
compatibilidade com o Oracle no DB2 Express-C
V9.7.5, muitas pessoas terão sua primeira experiência com
esses recursos na versão 10 do DB2 Express-C. Além disso, na versão 10,
aprimoramos ainda mais a compatibilidade com o Oracle para fazer com que
ainda mais aplicativos desenvolvidos para o Oracle sejam facilmente
executados no DB2 com muito poucas mudanças. Estudos recentes mostram
que até 98% do código do aplicativo gravado para o Oracle foi deixado
intacto e os aplicativos ainda funcionarão com o DB2 Express-C. Não
iremos recontar todos os recursos de compatibilidade do DB2 com o Oracle
aqui, pois há uma riqueza de informações disponíveis sobre esse tópico,
como no artigo “DB2 10: Run Oracle applications on DB2 10 for Linux, UNIX,
and Windows.”
Agora é um excelente momento para começar a utilizar o DB2 Express-C 10
Até agora, você viu todo o valor que o produto DB2
Express-C 10 oferece, por incrível que pareça, totalmente gratuito.
Também facilitamos muito a introdução ao DB2 Express-C v10. O produto
está disponível para download em ibm.com/db2/express. Também é possível
colocar seu próprio servidor DB2 Express-C em execução na nuvem em menos
de 30 minutos: http://bit.ly/Iv8837. É possível esperar que apareçam novos cursos gratuitos em
DB2University.com e
há uma
grande quantidade de artigos e tutoriais que serão
lançados sobre os novos recursos no DB2 10. Agora é o momento de agir e
experimentar o DB2 Express-C 10.
Recursos
Aprender
- Leia mais sobre o DB2 10 no artigo “O que há de novo no DB2 10 para Linux, UNIX e Windows”
(developerWorks, abril de 2012). - Obtenha uma introdução detalhada de dados temporais e do Time Travel Query no artigo “Uma questão de tempo: gerenciamento de dados temporal no DB2 10”
(developerWorks, abril de 2012). - Conheça os detalhes da compatibilidade com o Oracle no DB2 10 no artigo “DB2 10: Execute aplicativos Oracle no DB2 10 para Linux, UNIX e
Windows”
(developerWorks, abril de 2012). - Obtenha um guia detalhado para “Recomendações do gerenciamento de dados de múltiplas temperaturas do DB2 V10.1”
(developerWorks, abril de 2012). - No diálogo área de DB2 para Linux, UNIX e Windows no developerWorks, obtenha os recursos necessários para melhorar seus conhecimentos sobre DB2.
- Obtenha mais informações sobre DB2 Express-C no ibm.com.
- Siga o DeveloperWorks no Twitter.
Obter produtos e tecnologias
- Faça o download do DB2 Express-C hoje e experimente você mesmo.
Discutir
- Participar do fórum de discussão.
- Participe da comunidade do developerWorks.
Entre em contato com outros usuários do developerWorks, enquanto explora
os blogs, fóruns, grupos e wikis orientados ao desenvolvedor.
Sobre o autor
Leon
Katsnelson lidera os esforços do IBM Information Management na
Computação em Nuvem. O foco atual de Leon é na área emergente do Big
Data, especificamente no contexto de computação em nuvem. Leon lidera o
IM Cloud Computing Center of Competence, uma equipe de profissionais
experientes e talentosos cujo objetivo é ajudar clientes e parceiros com
os produtos do IBM Information Management, como o DB2, InfoSphere
Warehouse, InfoSphere BigInsights, InfoSphere Streams, entre outros,
para terem sucesso na nuvem. Leon tem 27 anos de carreira em TI, com 18
anos em várias funções no desenvolvimento e gerenciamento de produtos do
DB2.
Artigo publicado originalmente na rede IBM developerWorks Brasil https://www.ibm.com/developerworks/br/data/library/techarticle/dm-1204db2expressc/index.html