Banco de dados: Teorema CAP

Alguns deles existem há muito tempo mas se popularizaram a partir de 2010 para suportar o aumento crescente dos dados, das variedades dos dados e das arquiteturas emergentes. O Teorema CAP é uma estratégia para pensar em como selecionar bancos de dados para as arquitetura que se apresentam.

Em meados de 2010 o mercado de tecnologia falava praticamente de bancos do tipo relacional, com os tradicionais Oracle, SQL Server, MySQL e afins. Mas há uma grande diversidade de outros tipos de bancos de dados com características particulares. Alguns já existiram mas não eram famosos e outros surgiram em seguida. A dúvida que alguns podem ter é: para que usar outros bancos de dados se os bancos relacionais atendem talvez 100% do propósito dos demais? Bom, há motivos particulares para utilizar específicos para cenários específicos. O artigo Banco de dados: Teorema CAP ajuda a entender melhor.

Aqui no blog temos um grande conjunto de artigos sobre vários temas relacionados à tecnologia. O artigo Os 14 tipos de bancos de dados pode ser uma interessante leitura complementar a esse aqui.

Arquitetura de microsserviços e bancos de dados

Aplicações construídas sob a arquitetura monolítica normalmente trabalham com persistência em um único banco de dados. Nada impede de um monólito ter vários ou mesmo trabalhar com esquemas de dois bancos de dados (um para escrita e outro para leitura) como numa abordagem do CQRS. Ou até outros modelos menos ortodoxos. Já as arquitetura de microsserviço têm como boa prática que haja pelo menos um banco de dados para cada microsserviço.

Além disso, houve um crescimento da variedade dos dados, com características particulares a medida que as possibilidades de experiências do usuário foram crescendo. Veja que o uber, por exemplo, que exibe o mapa em tempo quase real para os carrinhos que encontram o motorista. Outras ferramentas, como o facebook possuem, uma teia com os amigos e os amigos de amigos.

Esses elementos fizeram com que progressivamente novos tipos de dados fossem ganhando importância e assim povoassem os sistemas desde então.

Os diferentes tipos de bancos de dados

Há uma grande quantidade de bancos de dados diferentes, havendo atualmente pelo menos 14 tipos diferentes. Alguns desses lidam com objetos, outros com grafos, séries temporais, vetores, documentos, etc. Todos eles podem ser utilizados nas aplicações do dia-a-dia das empresas, mas é importante ter uma certa estratégia para não se criar uma sobrecarga cognitiva desnecessários.

Esses são os TOP 10 bancos de dados mais populares no momento:

  • Oracle
  • MySQL
  • Microsoft SQL Server
  • PostgreSQL
  • MongoDB
  • Redis
  • IBM Db2
  • ElasticSearch
  • Microsoft Access
  • SQLite

Como escolher o melhor banco de dados para minha aplicação?

Foi-se criada uma forma organizada de pensamento para a escolha do banco de dados. Primeiramente é necessário entender da arquitetura da aplicação em questão e, com isso, qual é o banco de dados que melhor lida com o dado que ela tem. Digamos que uma aplicação A tenha uma estrutura completamente transacional, com poucos usuários e uma demanda simples. Nesse caso, bancos de dados como MySQL podem ser muito adequados.

Por outro lado, um cliente B possui uma estrutura que obtém dados do diário oficial que possui uma certa estrutura organizada, mas que muda com frequência. Essa aplicação também é utilizada por uma quantidade muito grande de usuários simultâneos. Nesse caso bancos de dados como MongoDB para armazenamento e Redis como cache podem ser adequados.

O Teorema CAP ou Teorema de Brewer considera que há 3 grandes características nos bancos de dados, sendo impraticável que um só banco de dados atenda a todos os requisitos ao mesmo tempo. Consistência é a garantia de que o dado está correto sempre que você tenta consumir. Disponibilidade é a garantia que que o banco pode ficar sempre disponível. Já a Tolerância a partição é a capacidade de uns bancos de terem terem alguns de seus nodos fora do ar e ainda assim ficar disponível. No diagrama acima veja que os bancos só podem assumir 2 requisitos e não os 3.

Conclusão de Teorema CAP

Em resumo há muitos bancos de dados. Alguns deles existem há muito tempo mas se popularizaram a partir de 2010 para suportar o aumento crescente dos dados, das variedades dos dados e das arquiteturas emergentes. O Teorema CAP é uma estratégia para pensar em como selecionar bancos de dados para as arquitetura que se apresentam.


Thiago Anselme
Thiago Anselme - Gerente de TI - Arquiteto de Soluções

Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.

Deixe um comentário