Escolher o banco de dados certo para sua empresa pode ser uma tarefa difícil e demorada, especialmente para os mal familiarizados..

Embora seja tentador implementar um sistema com a mentalidade de simplesmente marcar uma caixa necessária, é cada vez mais importante que as organizações escolham um banco de dados especializado para suas próprias necessidades..

Com isso em mente, nos reunimos com Randal Hoff, VP da empresa de banco de dados Faircom, para descobrir o que precisa acontecer no processo de tomada de decisão..

TechRadar Pro: Como você identifica o banco de dados correto para as necessidades de uma empresa??

Randal Hoff: A primeira etapa é entender suas necessidades de negócios e avaliar o volume e o tipo de dados que você está tentando extrair, armazenar e analisar..

Durante essa etapa, é importante observar se você tem fontes de dados confinadas em bancos de dados e aplicativos herdados. Às vezes, esse tipo de dado foi desenvolvido usando o COBOL e outras linguagens de codificação veneráveis, o que pode tornar o processo de extração bastante difícil..

No entanto, entender o escopo completo dos dados que serão incluídos no projeto é um contexto vital para as decisões de negócios e deve ser coletado antes de determinar qual banco de dados - ou bancos de dados e plataformas - é adequado às suas necessidades..

TRP: Simultaneamente, também é necessário debater as necessidades futuras da empresa. Como as arquiteturas de banco de dados serão gerenciadas e modificadas à medida que as necessidades de negócios evoluírem e precisarem ser mantidas?

RH: Um fator crítico é garantir suporte a APIs padrão, que são essenciais para a integração de bancos de dados e armazenamentos de dados com outros aplicativos de negócios..

O desenvolvimento de suporte para APIs, especialmente quando alguns armazenamentos de dados estão bloqueados em aplicativos legados que não suportam APIs modernas, pode ser uma tarefa difícil, pois eles podem, às vezes, exigir esforços de modernização em plataformas legadas.

Ao mesmo tempo, existem práticas existentes que suportam a modernização sem substituir totalmente os aplicativos legados. Existem bancos de dados especializados em trazer dados legados para a frente com o mínimo de esforço e risco, como o c-treeACE da FairCom..

TRP: Em que circunstâncias é benéfico integrar SQL e NoSQL?

RH: Obviamente, você precisa da ferramenta certa para o trabalho certo, mas às vezes o simples conceito de olhar para o futuro deixará claro se o NoSQL, SQL ou a integração de ambos é ideal para você.

O NoSQL se tornou uma arquitetura popular para lidar com grandes volumes de dados, porque eles podem ser mais eficientes com relação à capacidade de processamento necessária para lidar com arquivos grandes.

Ao mesmo tempo, é importante considerar se os dados que serão armazenados devem suportar consistência de dados imediata. Além disso, você vai querer perguntar a si mesmo - Como missão crítica é o aplicativo e banco de dados relacionado?

Uma questão que algumas empresas enfrentam quando trabalham com big data não estruturado é que muitos bancos de dados Open Source NoSQL não são compatíveis com Atomicity, Consistency, Isolation e Durability (ACID) e não suportam persistência em tempo real. Como resultado, essa falta de conformidade com o ACID pode resultar em dados fora de sincronia e inconsistentes.

Além disso, o SQL é normalmente a linguagem de referência para relatórios de inteligência de negócios e análises detalhadas, e o SQL pode não ser facilmente suportado com implementações do NoSQL..

Embora o propósito inicial dos dados - estruturados ou não - possa exigir uma solução NoSQL para desempenho, esse mesmo conjunto de dados pode ser necessário para relatórios mais estruturados de análise e business intelligence, que é onde o suporte SQL pode ser um bom benefício.

Em vez de limitar a escolha de arquitetura de banco de dados a um banco de dados NoSQL ou SQL, uma abordagem mais prudente pode ser considerar bancos de dados que possam suportar uma integração NoSQL + SQL, para manter as opções abertas no futuro.

A implantação de uma arquitetura de banco de dados que planeja posterior integração NoSQL + SQL oferece aos engenheiros mais flexibilidade e controle, fornecendo uma maneira de extrair, armazenar e gerenciar dados usando o overhead reduzido do NoSQL, mas fornecendo a funcionalidade SQL quando necessário.