O surgimento dos bancos de dados NoSQL teve um grande impacto na área de
desenvolvimento de software. Manipulação de dados em grande escala e escalabilidade
horizontal são conceitos cada vez mais necessários e se tornam comuns no dia a dia de quem
lida com bancos de dados. Projetos de software novos cada vez mais aderem ao NoSQL, seja
aderindo ao conceito desde o projeto inicial do software ou migrando a infraestrutura de um
modelo relacional já existente. Mesmo com essa gama de novas possibilidades proporcionada
pelos bancos dados NoSQL, os bancos relacionais ainda se sobressaem em muitos cenários,
como quando há necessidade de garantir as propriedades de atomicidade, consistência,
isolamento e durabilidade (ACID) ou quando uma determinada aplicação possui regras de
negócio complexas com grandes cadeias de relacionamento entre entidades. Essa dicotomia
entre os modelos tradicionais e os recentes NoSQL pode gerar dúvidas no momento de se
projetar uma nova aplicação. A escalabilidade horizontal e a flexibilidade na estrutura dos dados
nos bancos NoSQL pode muitas vezes resultar em sua escolha, mesmo em um cenário onde um
SGBD relacional seria mais benéfico. Este estudo propõe uma análise de funcionalidades
disponibilizadas, bem como uma comparação de performance entre os bancos de dados NoSQL
MongoDB e Redis com o SGBD relacional PostgreSQL. Serão explicadas as principais
funcionalidades para se trabalhar com escalabilidade em cada um dos bancos de dados. A
comparação de performance será feita através de consultas do benchmark TPC-H, que é
utilizado por grandes empresas do ramo de tecnologia para medição de performance, e
apresenta cenários diversificados com diferentes níveis de complexidade. O principal objetivo
é avaliar como os bancos de dados NoSQL se comparam ao PostgreSQL nos cenários
propostos. |