Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

BANCOS DE DADOS 
NÃO RELACIONAIS
Unidade 2
Bancos de dados 
documentais e 
chave-valor
CEO 
DAVID LIRA STEPHEN BARROS
Diretora Editorial 
ALESSANDRA FERREIRA
Gerente Editorial 
LAURA KRISTINA FRANCO DOS SANTOS
Projeto Gráfico 
TIAGO DA ROCHA
Autoria 
JÉSSICA LAISA DIAS DA SILVA
4 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
A
U
TO
RI
A
Jéssica Laisa Dias da Silva
Olá, possuo graduação em Sistema da Informação e 
Mestrado em Sistema e Computação na UFRN. Tenho experiência 
na área de Informática na educação, com ênfase em Mineração 
de Dados Educacionais, como também atuo no estímulo dos 
jovens e crianças no estudo da programação. Realizo trabalhos 
e pesquisas voltados ao universo dos jogos digitais inseridos no 
contexto educacional, como incentivo deles no ensino dos jovens 
e aos professores. Atualmente realizo pesquisas no contexto de 
disseminação do pensamento computacional, para crianças e 
jovens. As minhas áreas de interesse são: Educação, Engenharia 
de software, Mineração de dados, Pensamento computacional, 
Jogos digitais educativos e Gerenciamento de projeto. Sou 
apaixonada pelo que faço e adoro transmitir minha experiência 
de vida àqueles que estão iniciando em suas profissões. Por isso 
fui convidada pela Editora Telesapiens a integrar seu elenco de 
autores independentes. Estou muito feliz em poder ajudar você 
nesta fase de muito estudo e trabalho. Conte comigo!
5BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
ÍC
O
N
ES
Esses ícones aparecerão em sua trilha de aprendizagem nos seguintes casos:
OBJETIVO
No início do 
desenvolvimento 
de uma nova 
competência. DEFINIÇÃO
Caso haja a 
necessidade de 
apresentar um novo 
conceito.
NOTA
Quando são 
necessárias 
observações ou 
complementações. IMPORTANTE
Se as observações 
escritas tiverem que 
ser priorizadas.
EXPLICANDO 
MELHOR
Se algo precisar ser 
melhor explicado ou 
detalhado. VOCÊ SABIA?
Se existirem 
curiosidades e 
indagações lúdicas 
sobre o tema em 
estudo.
SAIBA MAIS
Existência de 
textos, referências 
bibliográficas e links 
para aprofundar seu 
conhecimento.
ACESSE
Se for preciso acessar 
sites para fazer 
downloads, assistir 
vídeos, ler textos ou 
ouvir podcasts. 
REFLITA
Se houver a 
necessidade de 
chamar a atenção 
sobre algo a 
ser refletido ou 
discutido.
RESUMINDO
Quando for preciso 
fazer um resumo 
cumulativo das últimas 
abordagens.
ATIVIDADES
Quando alguma 
atividade de 
autoaprendizagem 
for aplicada. TESTANDO
Quando uma 
competência é 
concluída e questões 
são explicadas.
6 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
SU
M
Á
RI
O
Modelagem de dados em bancos documentais ..................... 9
Fundamentos dos bancos de dados chave-valor .......................................... 9
Operações básicas em bancos chave-valor ..................................................14
Padrões de projeto e modelagem de dados em bancos chave-valor ..... 16
Casos práticos e exemplos de implementação de bancos de 
dados chave-valor ...............................................................................19
Operações em bancos de dados chave-valor ....................... 25
Fundamentos dos bancos de dados chave-valor ....................................... 25
Operações básicas em bancos chave-valor ..................................................29
Otimização e escalabilidade em bancos chave-valor ................................. 32
Estudos de caso e melhores práticas em bancos de dados chave-
valor .......................................................................................................36
Bd documentais e chave-valor em MongoDB e Redis ......... 41
Introdução às ferramentas de bancos de dados NoSQL: MongoDB e 
Redis .....................................................................................................................41
Implementação de banco de dados com MongoDB ................................... 44
Gerenciamento de dados com Redis .............................................................47
Práticas avançadas e otimização em MongoDB e Redis .............. 50
Padrões de design e boas práticas em bd documentais e 
chave-valor .............................................................................. 55
Fundamentos dos padrões de design em bancos de dados NoSQL ...... 55
Melhores práticas na implementação de bancos de dados documentais e 
chave-valor ..........................................................................................................58
Padrões de design avançados para MongoDB e Redis .............................. 61
Casos de uso e aplicações práticas de bancos de dados 
NoSQL ...................................................................................................65
7BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
A
PR
ES
EN
TA
ÇÃ
O
Você sabia que a área de Tecnologia da Informação, 
com foco em bancos de dados, é uma das mais demandadas na 
indústria, e será responsável pela geração de mais de milhares 
de empregos nos próximos cinco anos? Isso mesmo. A área de 
gerenciamento e desenvolvimento de bancos de dados faz parte 
da cadeia crítica de operações de uma empresa. Sua principal 
responsabilidade é armazenar, gerenciar e analisar dados 
de forma eficiente, garantindo que as informações estejam 
acessíveis, seguras e otimizadas para suportar decisões críticas de 
negócios. Em um mundo sucessivamente mais movido por dados, 
em que a quantidade de informações geradas e coletadas cresce 
exponencialmente, a habilidade de manipular e entender esses 
dados se torna indispensável. Bancos de dados não relacionais, 
como os documentais e chave-valor, emergem como soluções 
poderosas para lidar com a variedade, a velocidade e o volume 
dos dados modernos, oferecendo flexibilidade, escalabilidade 
e performance que os sistemas tradicionais muitas vezes não 
conseguem igualar. Ao longo desta unidade letiva, você vai 
mergulhar nesse universo, explorando os conceitos, as ferramentas 
e as práticas que estão moldando o futuro do gerenciamento de 
dados. Entendeu? Prepare-se para uma jornada enriquecedora 
pelo mundo dos bancos de dados NoSQL, um campo vital e em 
constante evolução na indústria da tecnologia. Avante!
8 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
O
BJ
ET
IV
O
S
Olá. Seja muito bem-vindo à Unidade 2. Nosso objetivo 
é auxiliar você no desenvolvimento das seguintes competências 
profissionais até o término desta etapa de estudos:
 • Projetar modelos de dados para bancos documentais.
 • Executar operações em bancos chave-valor.
 • Utilizar ferramentas como MongoDB e Redis na 
implementação e gerenciamento de bancos de dados 
NoSQL.
 • Aplicar padrões de design e melhores práticas na 
implementação e gerenciamento de bancos de dados 
NoSQL.
9BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Modelagem de dados em 
bancos documentais
OBJETIVO
Ao término deste capítulo, você será capaz de 
entender como funciona a modelagem de dados 
em bancos de dados chave-valor. Isso será 
fundamental para o exercício de sua profissão, 
especialmente se você está envolvido no 
desenvolvimento de sistemas de armazenamento 
e acesso a dados. As pessoas que tentaram 
utilizar bancos de dados chave-valor sem a devida 
instrução muitas vezes enfrentaram desafios 
ao criar, ler, atualizar e deletar dados de forma 
eficiente. E então? Motivado para desenvolver essa 
competência? Vamos lá!
Fundamentos dos bancos de 
dados chave-valor
Os bancos de dados chave-valor representam um dos 
paradigmas mais simplificados e eficientes no universo dos bancos 
de dados não relacionais. 
Essa modalidade de banco de dados armazena dados 
como um conjunto de pares chave-valor, em que a chave é única 
e mapeia diretamente para um valor específico. Essa estrutura 
de dados é comparativamente mais simples que as estruturas 
encontradas em bancos de dados relacionais, que utilizam tabelas 
com esquemas fixos.
Um aspecto notável dos bancos de dados chave-valormoderno de gerenciamento de dados 
NoSQL. Na Introdução às “Ferramentas de bancos 
de dados NoSQL”, vimos como MongoDB e Redis 
se diferenciam dos bancos de dados tradicionais, 
oferecendo uma abordagem mais flexível e 
escalável para o armazenamento de dados. Com 
o MongoDB, você explorou como os dados podem 
ser armazenados em um formato documental, 
facilitando a modelagem de dados complexos e 
heterogêneos. Por outro lado, o Redis, com sua 
arquitetura baseada em chave-valor, mostrou ser 
uma solução eficaz para aplicações que exigem 
alta performance em operações de leitura e 
escrita. Na seção sobre “Implementação de banco 
de dados com MongoDB”, você deve ter adquirido 
conhecimento prático sobre como estruturar e 
manipular dados usando essa poderosa ferramenta 
de banco de dados documental. Aprendemos 
a importância de um design de esquema bem 
pensado e como o MongoDB oferece flexibilidade 
na modelagem de dados, o que é fundamental 
para aplicações modernas que lidam com grandes 
volumes de dados diversificados. Avançando 
para o “Gerenciamento de dados com Redis”, 
descobrimos como essa ferramenta pode ser 
usada para melhorar o desempenho de aplicações 
através de caching, gerenciamento de sessões e 
filas de mensagens. O Redis se destaca por sua 
velocidade e simplicidade, sendo uma escolha 
ideal para casos de uso que requerem tempos de 
resposta extremamente rápidos. Finalmente, na
54 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
seção de “Práticas avançadas e otimização em 
MongoDB e Redis”, você foi introduzido a técnicas 
mais sofisticadas para otimizar o desempenho 
e a eficiência dessas ferramentas. Exploramos 
estratégias avançadas como indexação, sharding, 
e replicação, que são essenciais para garantir 
a escalabilidade e a alta disponibilidade dos 
sistemas de banco de dados. Compreender essas 
tecnologias e como aplicá-las efetivamente é 
fundamental no mundo de big data e aplicações 
web de alta performance. Esperamos que 
este capítulo tenha fornecido uma base sólida 
sobre MongoDB e Redis, equipando você com 
o conhecimento necessário para utilizar essas 
poderosas ferramentas de banco de dados NoSQL 
em suas futuras iniciativas de desenvolvimento e 
gerenciamento de dados. 
55BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Padrões de design e boas 
práticas em bd documentais e 
chave-valor 
OBJETIVO
Ao término deste capítulo, você será capaz 
de entender como funcionam os padrões de 
design avançados e as melhores práticas na 
implementação e gerenciamento de bancos 
de dados NoSQL, especificamente focando em 
sistemas como MongoDB e Redis. As pessoas 
que tentaram implementar e gerenciar bancos 
de dados NoSQL sem a devida instrução tiveram 
problemas ao lidar com questões de desempenho, 
escalabilidade e integração de dados. E então? 
Vamos lá!
Fundamentos dos padrões de 
design em bancos de dados 
NoSQL 
A compreensão dos padrões de design em bancos de 
dados NoSQL é fundamental para o desenvolvimento de aplicações 
eficientes e escaláveis. Os bancos de dados NoSQL, que incluem 
modelos como documentais e chave-valor, oferecem flexibilidade 
e performance que se adaptam às necessidades de aplicações 
modernas, mas também exigem uma abordagem diferenciada no 
design e na modelagem de dados.
Um dos primeiros conceitos a ser compreendido é a 
natureza dos modelos de dados documentais e chave-valor. 
Bancos de dados documentais, como o MongoDB, armazenam 
dados em documentos, geralmente formatados em JSON ou BSON. 
Esse modelo é altamente flexível, permitindo a inclusão de dados 
não estruturados e estruturados em um mesmo documento. 
56 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Já os bancos de dados chave-valor, como o Redis, são 
estruturados em um formato simples de chave associada a um 
valor, sendo ideal para operações de leitura e escrita rápidas e 
para o armazenamento de dados em sessões, cache, entre outros.
Os padrões de design em bancos de dados NoSQL visam a 
otimizar tanto o armazenamento quanto a recuperação de dados. 
No caso de bancos documentais, isso pode significar a criação 
de documentos bem estruturados que agrupam informações 
relacionadas, reduzindo a necessidade de operações de junção, 
que são custosas em termos de desempenho. Em bancos de 
dados chave-valor, o design eficiente geralmente envolve a 
escolha cuidadosa das chaves para garantir acesso rápido e evitar 
conflitos.
IMPORTANTE
A adaptação dos padrões tradicionais de design 
de bancos de dados para o contexto NoSQL é 
um desafio. Em bancos de dados relacionais, a 
normalização é um conceito fundamental para 
reduzir a redundância e garantir a integridade dos 
dados. 
No entanto, em NoSQL, especialmente em bancos docu-
mentais, uma certa desnormalização é muitas vezes preferível 
para otimizar a performance. Isso pode incluir, por exemplo, a in-
corporação de dados que estariam em tabelas separadas em ban-
cos de dados relacionais em um único documento.
Essa desnormalização, embora benéfica para a perfor-
mance, requer cuidado. É necessário encontrar um equilíbrio en-
tre o desempenho e a manutenção da consistência dos dados. 
Decisões de design, como até que ponto incorporar dados em um 
documento ou quando usar referências, devem ser baseadas no 
uso específico dos dados e nos padrões de acesso da aplicação.
57BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Além disso, os padrões de design em NoSQL também 
devem levar em conta a escalabilidade. Em ambientes distribuídos, 
em que os dados podem estar espalhados por vários servidores 
ou até mesmo datacenters, considerações como particionamento 
de dados (sharding) e replicação são essenciais. Os padrões de 
design devem facilitar esses processos, garantindo que os dados 
sejam distribuídos de maneira eficiente e que a aplicação possa 
escalar horizontalmente.
Outro aspecto importante é a indexação em bancos de 
dados NoSQL. Um design eficiente deve considerar quais campos 
serão frequentemente acessados e como eles serão consultados, 
para criar índices que otimizem as consultas. Porém, é necessário 
equilibrar a criação de índices com o impacto no desempenho de 
escrita e no uso de recursos.
Em resumo, os padrões de design em bancos de dados 
NoSQL são fundamentais para aproveitar ao máximo as 
características dessas tecnologias. Eles exigem uma abordagem 
que considere a flexibilidade do modelo de dados, a necessidade 
de desempenho e eficiência na recuperação de dados, e as 
demandas de escalabilidade e distribuição. 
Compreender esses padrões é essencial para arquitetos de 
software, desenvolvedores e administradores de banco de dados 
que buscam construir sistemas robustos, escaláveis e eficientes 
em um ambiente de tecnologia em constante evolução.
58 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Melhores práticas na 
implementação de bancos de 
dados documentais e chave-valor
Ao implementar bancos de dados NoSQL, seja em formato 
documental como o MongoDB ou em chave-valor como o Redis, é 
crucial seguir as melhores práticas para garantir o desempenho, a 
escalabilidade e a confiabilidade do sistema. Essas práticas devem 
ser adaptadas às características e limitações específicas de cada 
tipo de banco de dados.
Para bancos de dados documentais (como MongoDB): 
a estruturação de documentos é vital. É importante projetar os 
documentos de maneira que eles agrupem de forma lógica as 
informações relacionadas. Uma estrutura bem pensada reduz a 
necessidade de operações de junção e melhora a performance 
das consultas.
SAIBA MAIS
Índices são fundamentais para acelerar as 
consultas. No entanto, índices desnecessários 
podem prejudicar o desempenho de escrita. É 
importante criar índices para os campos mais 
consultados e revisá-los periodicamente para 
garantir que continuem relevantes à medida que 
os padrões de acesso dos dados evoluem.
 • Design de schema flexível: aproveite a flexibilidade 
do MongoDB para ajustar os esquemas conforme 
necessário. Um design de schema flexívelpermite 
ajustes rápidos e eficientes, adaptando-se facilmente 
às mudanças nos requisitos de dados.
 • Gerenciamento de grandes datasets: para grandes 
conjuntos de dados, considere técnicas como sharding 
(particionamento de dados) para distribuir a carga de 
59BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
dados de forma eficiente entre vários servidores ou 
clusters.
 • Para bancos de dados chave-valor (como Redis): 
gerenciamento de memória: no Redis, o gerenciamento 
eficiente da memória é crucial, pois todos os dados são 
armazenados em memória. Utilize estratégias como 
a definição de políticas de expiração para chaves e a 
seleção cuidadosa dos tipos de dados para otimizar o 
uso da memória.
 • Estruturação de chaves: a escolha das chaves é funda-
mental. Chaves bem estruturadas e nomeadas de 
forma consistente facilitam a organização e a recupe-
ração de dados. Evite chaves excessivamente longas ou 
complexas.
Replicação para alta disponibilidade:
 • Implemente a replicação para garantir a alta disponi-
bilidade. No Redis, a replicação permite que os dados 
sejam copiados para múltiplos servidores, garantindo 
que, em caso de falha de um servidor, os dados possam 
ser recuperados rapidamente.
 • Persistência de dados: embora o Redis seja um arma-
zenamento primariamente em memória, é importante 
configurar a persistência de dados para evitar a perda 
de dados em caso de falhas. Utilize os métodos RDB ou 
AOF para assegurar a persistência.
Práticas comuns para ambos os tipos de bancos de dados:
 • Monitoramento e análise de performance: monitore o 
desempenho e os recursos do sistema regularmente. 
Ferramentas de monitoramento podem ajudar a iden-
tificar gargalos e otimizar o desempenho.
60 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
 • Segurança dos dados: implemente medidas de segu-
rança robustas, incluindo controle de acesso, criptogra-
fia em repouso e em trânsito, e proteção contra ata-
ques cibernéticos.
 • Testes e simulação de carga: realize testes de carga e 
simulações para entender como o sistema se comporta 
sob diferentes condições. Isso é crucial para garantir a 
escalabilidade e a estabilidade do sistema.
 • Documentação e conhecimento compartilhado: man-
tenha a documentação atualizada e compartilhe co-
nhecimentos e melhores práticas com a equipe. Isso é 
essencial para manter a qualidade e a consistência do 
trabalho em equipe.
Seguir essas melhores práticas ajudará a maximizar o 
potencial dos bancos de dados NoSQL, garantindo sistemas de 
dados eficientes, escaláveis e confiáveis. É importante lembrar 
que cada aplicação tem suas peculiaridades, e a adaptação dessas 
práticas ao contexto específico de cada projeto é fundamental 
para o sucesso da implementação.
61BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Padrões de design avançados 
para MongoDB e Redis
No universo dos bancos de dados NoSQL, tanto o MongoDB 
quanto o Redis oferecem padrões de design avançados que podem 
ser empregados para resolver problemas complexos e otimizar 
o desempenho das aplicações. Compreender e aplicar esses 
padrões é crucial para tirar o máximo proveito das capacidades 
únicas de cada sistema.
Para MongoDB:
Padrão de agregação:
 • O MongoDB oferece um poderoso framework de 
agregação que permite a execução de operações 
complexas de processamento de dados, como filtragem, 
agrupamento e ordenação de dados. Esse framework 
é semelhante em funcionalidade às instruções SQL 
GROUP BY, mas com capacidades muito mais amplas.
 • Exemplo de uso: em um sistema de e-commerce, o 
padrão de agregação pode ser utilizado para analisar 
padrões de compra, agrupando dados por categoria de 
produto e calculando a média de vendas.
Modelagem de dados para leitura eficiente:
 • Em cenários nos quais a velocidade de leitura é crítica, a 
modelagem de dados no MongoDB pode ser otimizada 
para reduzir a quantidade de operações de leitura. Isso 
muitas vezes envolve a denormalização de dados e o 
uso estratégico de subdocumentos.
62 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
 • Exemplo: armazenar informações de perfil do usuário 
diretamente no documento de uma postagem em um 
fórum social para evitar múltiplas leituras.
Padrões de design para transações multidocumentos:
 • Embora o MongoDB tenha suporte para transações 
multidocumentos, o uso eficiente dessas transações 
requer um design cuidadoso para evitar problemas de 
desempenho e garantir a consistência dos dados.
 • Exemplo: gerenciamento de estoque em um sistema de 
varejo, em que a atualização de inventário e a criação 
de ordem de venda devem ser realizadas como uma 
única transação atômica.
Para Redis:
Uso eficiente de estruturas de dados:
 • O Redis oferece uma variedade de estruturas de 
dados como listas, conjuntos, conjuntos ordenados e 
hashes, cada uma adequada para diferentes tipos de 
problemas.
 • Exemplo: usar listas para implementar filas de tarefas 
ou mensagens, e conjuntos ordenados para sistemas 
de classificação ou leaderboards.
Padrões de chaves para escalabilidade:
 • A escolha e estruturação das chaves no Redis é funda-
mental para a escalabilidade e a organização dos dados. 
Padrões de nomenclatura consistentes e a divisão 
lógica de chaves podem melhorar a manutenção e a 
performance.
63BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
 • Exemplo: estruturar chaves com um formato como 
tipo:identificador:atributo para facilitar a busca e orga-
nização dos dados.
Pub/Sub para comunicação em tempo real:
 • O Redis suporta o modelo de publicação/assinatura 
(pub/sub), permitindo a comunicação em tempo real 
entre diferentes partes de uma aplicação.
 • Exemplo: implementar um sistema de notificações em 
tempo real em um aplicativo de chat.
Padrões para maximizar a performance em memória:
 • Dado que o Redis opera com dados em memória, 
padrões que maximizam o uso eficiente da memória 
são cruciais. Isso inclui estratégias como a compressão 
de dados, uso inteligente de tipos de dados e definição 
de políticas de expiração.
 • Exemplo: comprimir dados de sessões de usuário 
para maximizar a capacidade de armazenamento em 
sistemas com grande número de usuários.
Práticas comuns para ambos:
Monitoramento e otimização contínua:
 • Monitorar constantemente o desempenho e ajustar os 
padrões de design conforme necessário é crucial para 
ambos os sistemas. Isso garante que as aplicações 
permaneçam responsivas e eficientes à medida que 
evoluem.
Segurança dos dados:
64 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
 • A segurança não deve ser negligenciada em nenhum 
padrão de design. Práticas como a criptografia de dados 
sensíveis e o controle de acesso robusto são essenciais.
Ao aplicar esses padrões de design avançados, é possível 
resolver desafios complexos de maneira eficiente e eficaz, explo-
rando plenamente as capacidades do MongoDB e do Redis. Esses 
padrões não apenas melhoram o desempenho das aplicações, 
mas também contribuem para a escalabilidade, a manutenção e a 
segurança dos sistemas de banco de dados.
SAIBA MAIS
O Redis, conhecido por sua eficiência como 
um banco de dados chave-valor em memória, 
tem uma característica menos conhecida, mas 
extremamente poderosa chamada “Lua scripting”? 
Essa funcionalidade permite que os usuários 
escrevam scripts na linguagem Lua diretamente 
no servidor Redis. Com isso, é possível executar 
operações complexas de maneira atômica no 
servidor, reduzindo a necessidade de múltiplas 
viagens de ida e volta entre o aplicativo e o banco de 
dados. Essa abordagem pode resultar em melhorias 
significativas de desempenho, especialmente em 
aplicações que exigem processamento de dados 
em tempo real.
Por outro lado, no MongoDB, uma característica interes-
sante é o uso do padrão de “Bucketing” para séries temporais ou 
dados de séries temporais. Esse padrão envolve a agregação de 
múltiplos documentos dentro de um único documento “bucket”, 
baseado em um determinado intervalo de tempo ou tamanho de 
dados.Essa técnica pode otimizar significativamente as consultas 
e o armazenamento de grandes volumes de dados que são regis-
trados ou analisados ao longo do tempo, como dados de sensores 
IoT ou registros de eventos de aplicativos.
65BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Ambas as características destacam como MongoDB e Re-
dis não são apenas sistemas de armazenamento de dados, mas 
também plataformas poderosas para processamento e manipu-
lação avançada de dados, permitindo aos desenvolvedores criar 
soluções altamente eficientes e personalizadas para problemas 
específicos.
Casos de uso e aplicações práticas de 
bancos de dados NoSQL
A aplicação de padrões de design e melhores práticas em 
bancos de dados NoSQL, como MongoDB e Redis, pode ser melhor 
ilustrada através de estudos de caso e exemplos práticos. Esses 
casos demonstram como os conceitos teóricos são implementados 
para resolver problemas do mundo real, resultando em soluções 
eficientes e escaláveis.
Sistemas de e-commerce usando MongoDB:
 • Em um sistema de e-commerce, o MongoDB pode ser 
utilizado para gerenciar catálogos de produtos com 
uma variedade de atributos. Graças à sua natureza 
documental, o MongoDB permite armazenar produtos 
com diferentes características sem a necessidade de 
um esquema rígido. Isso facilita a adição de novos tipos 
de produtos e a realização de consultas complexas, 
como filtros por múltiplos atributos.
 • A utilização de padrões de agregação no MongoDB 
pode ser usada para análises em tempo real, como a 
determinação de produtos mais vendidos, análise de 
comportamento do cliente e personalização de ofertas.
Gerenciamento de sessões em aplicações web com Redis:
66 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
 • O Redis é amplamente utilizado para gerenciar sessões 
em aplicações web devido à sua alta performance e 
eficiência em operações de leitura e escrita. Ao arma-
zenar dados de sessão no Redis, as aplicações podem 
gerenciar grandes volumes de usuários simultâneos 
sem comprometer a velocidade, oferecendo uma expe-
riência de usuário fluida e responsiva.
 • O uso eficiente de estruturas de dados do Redis, como 
strings e hashes, e a implementação de políticas de 
expiração automatizadas, ajuda a otimizar o uso da 
memória e a manter a integridade dos dados de sessão.
Sistemas de análise de big data com MongoDB:
 • O MongoDB é adequado para sistemas de análise de 
big data devido à sua capacidade de lidar com grandes 
volumes de dados não estruturados e semiestruturados. 
Sua flexibilidade em modelagem de dados e o poderoso 
framework de agregação permitem análises complexas 
e processamento de dados em larga escala.
 • Empresas podem utilizar o MongoDB para coletar e 
analisar dados de fontes diversas, como mídias sociais, 
sensores IoT e logs de transações, para obter insights 
valiosos sobre tendências de mercado, comportamento 
do consumidor e otimização de operações.
Redis para filas de mensagens e comunicação em tempo real:
 • O padrão pub/sub do Redis é ideal para implementar fi-
las de mensagens e sistemas de comunicação em tem-
po real. Por exemplo, em aplicativos de chat ou sistemas 
de notificação, o Redis pode ser usado para transmitir 
mensagens instantaneamente entre os usuários.
67BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
 • Além disso, sua capacidade de processar grandes volu-
mes de mensagens de forma rápida e confiável o tor-
na uma escolha ideal para sistemas de mensageria em 
ambientes de alta demanda.
MongoDB e Redis em sistemas híbridos:
 • Em muitos cenários, o MongoDB e o Redis são usados 
juntos para aproveitar as forças de ambos. Por exemplo, 
um sistema de recomendação de produtos pode usar o 
MongoDB para armazenar e analisar dados históricos de 
compras dos usuários, enquanto o Redis é usado para 
armazenar e recuperar as recomendações em tempo real.
 • Essa abordagem híbrida oferece um equilíbrio entre a 
capacidade de processamento analítico e a necessida-
de de respostas rápidas, maximizando a eficiência e a 
eficácia do sistema.
Esses casos de uso demonstram a versatilidade e a eficácia 
dos bancos de dados NoSQL em ambientes diversos. Ao aplicar pa-
drões de design e melhores práticas específicas, é possível criar solu-
ções que são não apenas funcionais, mas também escaláveis, segu-
ras e otimizadas para as necessidades específicas de cada aplicação.
RESUMINDO
E então? Gostou do que lhe mostramos? Aprendeu 
mesmo tudinho? Agora, só para termos certeza 
de que você realmente entendeu o tema de 
estudo deste capítulo, vamos resumir tudo o que 
vimos. Você deve ter aprendido que: No Capítulo 
4 do nosso e-book sobre “Padrões de design e 
boas práticas em BD documentais e chave-valor”, 
abordamos aspectos essenciais para trabalhar 
eficientemente com bancos de dados NoSQL, em 
particular, os modelos documentais e chave-valor. 
Em “Fundamentos dos padrões de design em 
bancos de dados NoSQL”, exploramos os princípios
68 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
básicos dos padrões de design em bancos de 
dados NoSQL. Você aprendeu sobre a importância 
da estruturação de dados e como os padrões de 
design podem ser aplicados para otimizar tanto o 
armazenamento quanto a recuperação de dados 
em sistemas como MongoDB e Redis. Já em 
“Melhores práticas na implementação de bancos 
de dados documentais e chave-valor”, discutimos 
as estratégias fundamentais e as melhores práticas 
para implementar bancos de dados documentais 
e chave-valor. Você viu como a escolha correta de 
estruturas de dados, a otimização de índices e o 
gerenciamento eficaz de memória são cruciais 
para o sucesso desses sistemas. Em “Padrões de 
design avançados para MongoDB e Redis” nessa 
seção, mergulhamos em padrões de design mais 
sofisticados, específicos para MongoDB e Redis. 
Você aprendeu sobre técnicas avançadas como o 
padrão de agregação no MongoDB e o uso eficiente 
de estruturas de dados complexas no Redis, 
que podem ser usadas para resolver problemas 
desafiadores e melhorar o desempenho das 
aplicações. Por fim, em “Casos de uso e aplicações 
práticas de bancos de dados NoSQL”, finalmente, 
apresentamos exemplos reais e estudos de caso 
demonstrando como esses padrões e práticas 
são aplicados no mundo real. Desde sistemas de 
e-commerce até análises de big data, você viu como 
o conhecimento adquirido pode ser aplicado em 
diversos cenários para criar soluções eficientes 
e escaláveis. Agora que revisamos o conteúdo, 
esperamos que você esteja mais preparado para 
aplicar esses conhecimentos em seu ambiente 
profissional. Lembre-se de que a prática constante 
e a atualização contínua são fundamentais neste 
campo em rápida evolução. Avante na sua jornada 
de aprendizado e inovação com bancos de dados 
NoSQL!
69BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
BANKER, K. MongoDB in Action. New York: Manning Publications, 
2011. 
CARLSON, J. Redis in Action. Shelter Island: Manning Publications, 
2013.
CHODOROW, K. MongoDB: The Definitive Guide. Sebastopol: 
O’Reilly Media. 2013.
LOUKIDES, M. What is Data Science? Sebastopol: O’Reilly Media. 
2010.
REDMOND, E.; WILSON, J. Seven Databases in Seven Weeks: A 
Guide to Modern Databases and the NoSQL Movement. New York: 
Pragmatic Bookshelf, 2012.
SADALAGE, P. J.; FOWLER, M. NoSQL Distilled: A Brief Guide to 
the Emerging World of Polyglot Persistence. Sebastopol: Addison-
Wesley Professional, 2012.
TIWARI, S. Professional NoSQL. New York: John Wiley & Sons. 
2011.
RE
FE
RÊ
N
CI
A
S
	Modelagem de dados em bancos documentais
	Fundamentos dos bancos de dados chave-valor
	Operações básicas em bancos chave-valor
	Padrões de projeto e modelagem de dados em bancos chave-valor
	Casos práticos e exemplos de implementação de bancos de dados chave-valor
	Operações em bancos de dados chave-valor 
	Fundamentos dos bancos de dados chave-valor 
	Operações básicas em bancos chave-valor
	Otimização e escalabilidade em bancos chave-valor 
	Estudos de caso e melhores práticasem bancos de dados chave-valor
	Bd documentais e chave-valor em MongoDB e Redis 
	Introdução às ferramentas de bancos de dados NoSQL: MongoDB e Redis
	Implementação de banco de dados com MongoDB
	Gerenciamento de dados com Redis
	Práticas avançadas e otimização em MongoDB e Redis
	Padrões de design e boas práticas em bd documentais e chave-valor 
	Fundamentos dos padrões de design em bancos de dados NoSQL 
	Melhores práticas na implementação de bancos de dados documentais e chave-valor
	Padrões de design avançados para MongoDB e Redis
	Casos de uso e aplicações práticas de bancos de dados NoSQLé a 
sua alta eficiência em operações de leitura e escrita, principalmente 
devido à sua simplicidade estrutural. Em contraste com os bancos 
de dados relacionais, que requerem esquemas predefinidos e 
podem envolver operações complexas de junção de tabelas, os 
10 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
bancos de dados chave-valor operam com uma lógica mais direta 
e menos exigente em termos de processamento.
Imagem 2.1- Banco de dados
Fonte: Freepik. 
A natureza flexível dos bancos de dados chave-valor 
também permite uma escalabilidade horizontal eficaz. Isso 
significa que eles são capazes de lidar com um volume crescente 
de trabalho de maneira mais eficiente, distribuindo dados entre 
múltiplos nós. 
Essa característica os torna ideais para aplicações que 
necessitam de alta disponibilidade e desempenho, como sistemas 
de cache de alta velocidade e armazenamento de sessões de 
usuário em websites.
Outra vantagem significativa dos bancos de dados chave-
valor é a sua capacidade de armazenar uma grande variedade 
de tipos de dados, desde strings simples até objetos complexos. 
Isso oferece uma flexibilidade considerável para desenvolvedores, 
11BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
permitindo armazenar praticamente qualquer tipo de dado sem a 
necessidade de modificar a estrutura do banco de dados.
EXEMPLO: Um clássico de banco de dados chave-valor 
é o Redis, amplamente conhecido por sua velocidade e 
eficiência. Redis é frequentemente usado para gerenciar 
sessões de usuário, cache de página da web e até mesmo 
como um broker de mensagens. Sua popularidade se deve, 
em grande parte, à sua capacidade de oferecer respostas 
rápidas e tratamento eficiente de dados em tempo real.
Outro exemplo notável é o Amazon DynamoDB, que 
combina a facilidade de uso dos bancos de dados chave-valor com 
a capacidade de escalar automaticamente para acomodar cargas 
de trabalho extremamente altas. DynamoDB é um exemplo de 
como os bancos de dados chave-valor podem ser empregados 
em grandes aplicações comerciais e industriais, oferecendo 
desempenho e escalabilidade consistentes.
Curiosamente, os bancos de dados chave-valor não são 
um conceito novo. Suas raízes remontam às primeiras formas 
de armazenamento de dados em computadores, em que a 
simplicidade era fundamental devido às limitações de hardware. 
Com o passar do tempo e o avanço da tecnologia, esses bancos 
de dados evoluíram, mas mantiveram sua premissa básica de 
simplicidade e eficiência.
A eficácia dos bancos de dados chave-valor em aplicações 
modernas é notavelmente demonstrada em sistemas de 
recomendação personalizada, como os usados por plataformas 
de streaming de vídeo e música. 
Esses sistemas frequentemente recorrem a bancos de 
dados chave-valor para armazenar e acessar rapidamente perfis 
12 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
de usuário e históricos de interação, facilitando recomendações 
precisas e em tempo real.
Além disso, no contexto de Big Data e análise de dados, 
os bancos de dados chave-valor desempenham um papel crítico. 
Eles são capazes de armazenar e processar enormes volumes de 
dados semiestruturados ou não estruturados, algo que os bancos 
de dados relacionais tradicionais muitas vezes lutam para fazer de 
maneira eficiente.
Imagem 2.2 - Big data
Fonte: Freepik.
No entanto, apesar de suas muitas vantagens, os bancos 
de dados chave-valor também têm suas limitações. Eles não são 
adequados para todas as aplicações, especialmente aquelas 
que exigem relações complexas entre dados ou integridade 
transacional rigorosa. Em tais casos, os bancos de dados relacionais 
ainda podem ser a escolha preferida.
Além disso, a falta de um esquema definido nos bancos de 
dados chave-valor pode ser uma desvantagem em situações em 
que a consistência e a estrutura dos dados são críticas. A ausência 
13BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
de um esquema fixo exige que os desenvolvedores gerenciem a 
consistência dos dados a nível de aplicação, o que pode aumentar 
a complexidade do desenvolvimento.
Como uma curiosidade, vale destacar que os bancos de 
dados chave-valor têm sido uma peça central no desenvolvimento 
de aplicações Internet of Things (IoT). Eles são perfeitamente 
adequados para lidar com o alto volume de dados gerados por 
dispositivos IoT e para responder rapidamente a consultas, uma 
necessidade crítica nesse campo.
Finalmente, ao considerar a adoção de um banco de 
dados chave-valor, é crucial avaliar as necessidades específicas da 
aplicação em questão. Embora ofereçam vantagens significativas 
em termos de desempenho e escalabilidade, eles podem não ser 
adequados para todos os tipos de carga de trabalho ou requisitos 
de dados.
SAIBA MAIS
Os fundamentos dos bancos de dados chave-
valor têm suas raízes em conceitos simples, mas 
poderosos. A chave-valor, que é a base desses 
bancos de dados, remonta aos sistemas de 
armazenamento de dados mais primitivos, em 
que as informações eram associadas a uma chave 
única para recuperação eficiente.
O interessante é que essa abordagem de chave-
valor é tão antiga quanto a escrita humana. Pense 
nos catálogos de bibliotecas antigas, em que cada 
livro era associado a um número único (a chave) que 
permitia aos bibliotecários localizá-lo rapidamente 
nas prateleiras (o valor). Essa simplicidade é uma 
das razões pelas quais os bancos de dados chave-
valor são tão eficientes e populares, mesmo nos 
tempos modernos da tecnologia da informação.
14 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Portanto, ao explorar os fundamentos dos bancos de 
dados chave-valor, lembre-se de que essa abordagem tem 
raízes profundas na história da organização e recuperação de 
informações, e continua sendo uma escolha relevante e eficaz 
para muitas aplicações contemporânea.
Operações básicas em bancos 
chave-valor
A essência de qualquer banco de dados, incluindo os do 
tipo chave-valor, é a capacidade de realizar operações básicas 
como criar, ler, atualizar e deletar dados - comumente conhecidas 
pelo acrônimo CRUD. 
Essas operações formam a espinha dorsal da interação 
com os dados armazenados e são fundamentais para entender 
a funcionalidade e a utilidade dos bancos de dados chave-valor.
 • Criação (create): a operação de criação em um banco 
de dados chave-valor é geralmente simples e direta. 
Consiste em inserir um novo par chave-valor no banco 
de dados. A chave atua como um identificador único, 
enquanto o valor pode ser uma variedade de tipos de 
dados, desde simples strings até objetos complexos. 
Por exemplo, no Redis, uma popular implementação de 
banco de dados chave-valor, a criação de um novo par 
chave-valor pode ser feita com o comando SET chave-
valor.
 • Leitura (read): a leitura é uma operação fundamental 
e é tipicamente realizada fornecendo a chave para 
recuperar o valor correspondente. No Redis, por 
exemplo, isso é feito através do comando GET chave, 
que retorna o valor associado à chave especificada. 
Essa operação é extremamente rápida em bancos de 
15BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
dados chave-valor devido à sua natureza otimizada 
para acesso direto a dados.
 • Atualização (update): a atualização modifica o valor 
associado a uma chave existente. Em muitos bancos de 
dados chave-valor, a atualização é realizada da mesma 
forma que a criação, utilizando o mesmo comando, 
como o SET no Redis. Se a chave já existir, seu valor é 
substituído pelo novo valor fornecido.
 • Deleção (delete): a operação de deleção remove um par 
chave-valor do banco de dados. No Redis, isso pode 
ser feito com o comando DEL chave. Uma vez que 
um par chave-valor é deletado, ele não pode mais ser 
recuperado, o que destaca a importância de operações 
cuidadosas de deleção.
Vamos explorar essas operações com mais detalhes, 
usando exemplos do Redis e do DynamoDB, dois populares 
bancos de dados chave-valor.
No Redis, a operação SET é usada tanto para criar como para 
atualizar dados.Por exemplo, SET usuario123 nome “João” criaria 
um novo par chave-valor em que o usuario123 é a chave e nome 
“João” é o valor. Para ler esse valor, usaríamos GET usuario123, que 
retornaria nome “João”. Para atualizar, poderíamos simplesmente 
emitir outro comando SET com a mesma chave, mas com um 
valor diferente. A deleção é realizada com DEL usuario123, que 
removeria completamente esse par chave-valor do banco de 
dados.
Por outro lado, o DynamoDB, um serviço oferecido pela 
Amazon Web Services, opera com uma lógica semelhante, mas 
com uma sintaxe diferente e capacidades adicionais. Por exemplo, 
para criar um item no DynamoDB, utilizamos uma operação 
PutItem, que especifica a tabela e o item (par chave-valor) a ser 
16 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
inserido. A leitura é realizada com GetItem, especificando a chave 
do item desejado. A atualização é feita com UpdateItem, que 
permite modificar um item existente. A deleção utiliza DeleteItem, 
que remove um item especificado da tabela.
Essas operações básicas, embora simples em sua essência, 
permitem uma vasta gama de funcionalidades e são o coração 
da interatividade com bancos de dados chave-valor. A rapidez e 
eficiência dessas operações são algumas das razões pelas quais 
os bancos de dados chave-valor são tão populares, especialmente 
em aplicações que exigem acesso rápido e frequente a dados.
Além disso, é importante notar que, embora os bancos de 
dados chave-valor sejam otimizados para operações CRUD rápidas, 
eles geralmente não oferecem a mesma gama de funcionalidades 
de consulta e análise encontradas em bancos de dados relacionais. 
Portanto, a escolha de um banco de dados chave-valor deve ser 
feita considerando as necessidades específicas da aplicação.
Em resumo, as operações CRUD em bancos de dados 
chave-valor são fundamentais para sua funcionalidade e eficiência. 
A simplicidade dessas operações, combinada com a capacidade 
de armazenar uma ampla variedade de tipos de dados, torna 
os bancos de dados chave-valor uma ferramenta poderosa para 
muitas aplicações modernas.
Padrões de projeto e modelagem 
de dados em bancos chave-valor
A modelagem de dados em bancos de dados chave-valor 
difere significativamente da modelagem em bancos de dados 
relacionais. Devido à sua natureza não relacional e à falta de 
um esquema rígido, os bancos de dados chave-valor oferecem 
17BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
uma flexibilidade considerável, mas também requerem uma 
abordagem cuidadosa no design e na modelagem de dados.
 • Entendendo a estrutura chave-valor: a base de qualquer 
banco de dados chave-valor é, obviamente, o par 
chave-valor. As chaves funcionam como identificadores 
únicos e são a principal maneira de acessar os dados. 
Os valores podem ser dados simples ou estruturas mais 
complexas. A eficiência de um banco de dados chave-
valor está diretamente ligada à forma como as chaves 
são estruturadas e utilizadas.
 • Escolha de chaves: a escolha das chaves é crucial 
em um banco de dados chave-valor. Chaves bem 
projetadas facilitam o acesso rápido e eficiente aos 
dados. É importante que as chaves sejam tanto únicas 
quanto informativas. Por exemplo, em um sistema que 
armazena informações de usuários, em vez de usar 
uma chave simples como usuario1, uma chave mais 
descritiva como usuario:12345:perfil pode ser mais 
eficaz, indicando claramente a natureza dos dados 
(perfil de usuário) e o identificador único do usuário 
(12345).
 • Modelagem de dados para performance: uma das 
principais vantagens dos bancos de dados chave-valor 
é a velocidade de acesso aos dados. Para otimizar o 
desempenho, é importante minimizar a necessidade 
de operações de leitura múltiplas ou complexas. Isso 
muitas vezes significa armazenar dados de forma 
denormalizada. Por exemplo, ao invés de armazenar 
dados de usuário e seus endereços em entidades 
separadas (como faríamos em um banco relacional), em 
um banco de dados chave-valor, muitas vezes faz mais 
18 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
sentido armazenar todas as informações do usuário, 
incluindo o endereço, sob uma única chave.
 • Evitando antipadrões: um dos desafios comuns em 
bancos de dados chave-valor é evitar antipadrões 
como o uso excessivo de chaves ou a criação de 
chaves extremamente longas e complexas. Embora a 
flexibilidade seja uma vantagem, ela pode levar a uma 
estrutura de dados desorganizada se não for bem 
gerenciada.
 • Exemplo prático - modelagem em Redis: vamos 
considerar um exemplo prático usando o Redis. 
Suponha que estamos construindo um sistema de 
gerenciamento de pedidos. Uma abordagem eficiente 
poderia ser usar uma chave composta que inclui 
vários elementos. Por exemplo, pedido:12345 poderia 
ser a chave para um pedido específico. Dentro dessa 
chave, poderíamos armazenar um hash com todas 
as informações relevantes do pedido, como itens, 
quantidades, preços e informações do cliente. Isso 
facilita o acesso rápido e direto a todas as informações 
de um pedido específico com uma única operação de 
leitura.
 • Considerações sobre escalabilidade: ao modelar dados 
para um banco de dados chave-valor, é igualmente 
importante considerar a escalabilidade. Devido à 
natureza distribuída de muitos bancos de dados chave-
valor, como o DynamoDB da Amazon, o design das 
chaves pode impactar como os dados são distribuídos 
entre diferentes nós. Um bom design de chave ajuda 
a garantir uma distribuição uniforme dos dados, 
evitando “pontos quentes” que podem causar gargalos 
de desempenho.
19BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
 • Manutenção e evolução do esquema de dados: 
embora os bancos de dados chave-valor não tenham 
esquemas fixos, a estrutura dos dados ainda precisa 
ser gerenciada. Isso é particularmente importante à 
medida que a aplicação evolui. Mudanças na estrutura 
dos dados armazenados podem exigir migrações ou 
atualizações dos dados existentes.
 • Aproveitando a simplicidade para agilidade: a 
simplicidade da modelagem de dados em bancos de 
dados chave-valor pode ser uma grande vantagem em 
termos de agilidade de desenvolvimento. A capacidade 
de adaptar rapidamente a estrutura de dados sem a 
necessidade de migrações de esquema complexas 
permite uma iteração mais rápida e uma adaptação 
mais fácil às mudanças nas necessidades de negócios.
Em resumo, a modelagem de dados em bancos de 
dados chave-valor requer uma abordagem estratégica focada 
na eficiência de acesso aos dados, no desempenho e na 
escalabilidade. Embora ofereça grande flexibilidade, é essencial um 
planejamento cuidadoso para garantir que a estrutura de dados 
atenda às necessidades da aplicação e mantenha a integridade e 
a organização dos dados.
Casos práticos e exemplos de 
implementação de bancos de dados 
chave-valor
A aplicação de bancos de dados chave-valor no mundo 
real abrange uma variedade de indústrias e casos de uso, 
demonstrando sua versatilidade e eficácia. Vamos explorar alguns 
exemplos notáveis que ilustram como esses bancos de dados são 
implementados e os desafios que eles ajudam a superar.
20 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
 • Gerenciamento de sessões em websites de alto tráfego: 
uma aplicação comum de bancos de dados chave-valor 
é no gerenciamento de sessões de usuário em sites com 
tráfego intenso. Por exemplo, grandes plataformas de 
e-commerce frequentemente usam Redis para gerenciar 
sessões de usuário. O Redis, com sua alta velocidade 
de leitura e escrita, é ideal para armazenar e acessar 
rapidamente informações de sessão, como carrinhos 
de compras e preferências de usuário, mesmo com 
milhões de usuários ativos simultaneamente.
 • Twitter: uso de NoSQL para escalabilidade de 
mensagens: o Twitter é um exemplo clássico de uma 
empresa que migrou para um sistema baseado em 
NoSQL para lidar com seu enorme volume de dados. 
Inicialmente, o Twitter utilizava bancos de dados 
relacionais, mas com o crescimento exponencial em 
número de tweets,a empresa adotou o Cassandra, um 
banco de dados NoSQL, para escalar de maneira mais 
eficiente e gerenciar grandes volumes de dados de 
tweets de forma mais eficaz.
 • Sistema de recomendação da Netflix: a Netflix utiliza 
bancos de dados chave-valor para alimentar seus 
sistemas de recomendação personalizados. Ao 
armazenar informações de visualização e preferências 
de usuários em um banco de dados chave-valor, a 
Netflix consegue acessar rapidamente esses dados 
para fornecer recomendações personalizadas em 
tempo real, melhorando a experiência do usuário e 
mantendo alto desempenho, mesmo com uma base de 
usuários global.
21BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Imagem 2.3- Netflix
Fonte: Freepik. 
 • Airbnb e o uso de Redis para armazenamento em 
cache: o Airbnb usa Redis para várias funções de cache, 
ajudando a melhorar a velocidade e a eficiência de seu 
site. O cache com Redis permite que o Airbnb armazene 
temporariamente dados frequentemente acessados, 
como listagens populares de aluguéis e informações 
de usuários, reduzindo a carga em seus servidores de 
banco de dados principais e melhorando a experiência 
do usuário.
 • Jogos on-line e gerenciamento de estado em tempo 
real: muitos jogos on-line utilizam bancos de dados 
chave-valor para gerenciar o estado do jogo em tempo 
real. Por exemplo, um jogo pode usar um banco de 
dados chave-valor para armazenar informações sobre 
a posição dos jogadores, pontuações e estados de jogo, 
22 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
permitindo atualizações rápidas e sincronização em 
tempo real entre os jogadores.
 • Desafios e soluções: um desafio comum no uso de 
bancos de dados chave-valor é garantir a consistência 
dos dados em sistemas distribuídos. Empresas como a 
Netflix e o Airbnb enfrentaram esse desafio implemen-
tando estratégias de replicação e particionamento de 
dados, garantindo que os dados estejam disponíveis e 
consistentes, mesmo em ambientes altamente distri-
buídos.
 • Considerações de escalabilidade e desempenho: outra 
consideração importante é a escalabilidade. Empresas 
como o Twitter tiveram que garantir que seus sistemas 
NoSQL pudessem escalar para suportar um crescimento 
massivo de dados e tráfego de usuários. Isso foi alcançado 
através de arquiteturas distribuídas que permitem 
adicionar mais capacidade conforme necessário.
 • Flexibilidade e adaptabilidade: a flexibilidade dos bancos 
de dados chave-valor também desempenha um papel 
crucial. Eles permitem que organizações como a Netflix 
se adaptem rapidamente às mudanças nas demandas 
dos usuários e padrões de uso, ajustando esquemas de 
dados sem a necessidade de grandes reformulações.
Esses exemplos ilustram não apenas a diversidade de apli-
cações para bancos de dados chave-valor, mas também destacam 
a importância de considerar cuidadosamente os requisitos espe-
cíficos de desempenho, escalabilidade e consistência de dados. 
Em cada caso, o sucesso na implementação desses sistemas 
dependeu de uma compreensão clara dos desafios envolvidos e 
da escolha do banco de dados chave-valor adequado para atender 
a essas necessidades.
23BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
RESUMINDO
E então? Gostou do que lhe mostramos? Aprendeu 
mesmo tudinho? Agora, só para termos certeza de 
que você realmente entendeu o tema de estudo 
deste capítulo, vamos resumir tudo o que vimos. 
Você deve ter aprendido que a modelagem de 
dados em bancos de dados chave-valor é uma 
abordagem flexível e eficiente para armazenar e 
acessar informações. Neste capítulo, exploramos 
os seguintes tópicos: “Fundamentos dos bancos de 
dados chave-valor” começamos com os conceitos 
básicos, compreendendo o que são bancos de 
dados chave-valor, como eles funcionam e por 
que são uma escolha popular para certos tipos 
de aplicações. Aprendemos que eles consistem 
em pares chave-valor, em que a chave atua como 
um identificador único e o valor pode conter uma 
variedade de tipos de dados. “Operações básicas 
em bancos chave-valor” exploramos as operações 
CRUD (Criar, Ler, Atualizar, Deletar) em bancos de 
dados chave-valor, utilizando exemplos práticos 
do Redis e do DynamoDB. Compreendemos como 
criar, ler, atualizar e deletar dados de forma eficiente. 
“Padrões de projeto e modelagem de dados em 
bancos chave-valor” discutimos estratégias para 
otimizar o desempenho, incluindo a escolha de 
chaves apropriadas, modelagem de dados eficiente 
e evitando antipadrões. Entendemos a importância 
da escolha cuidadosa das chaves e como modelar 
dados para obter o máximo de desempenho. 
“Casos práticos e exemplos de implementação 
de bancos de dados chave-valor” exploramos 
casos reais de implementação em empresas como 
Twitter, Netflix, Airbnb e em jogos on-line. Vimos 
como essas organizações enfrentaram desafios 
de escalabilidade, consistência e desempenho 
ao implementar bancos de dados chave-valor 
em suas soluções. Com esses conhecimentos, 
você está bem preparado para compreender a
24 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
importância e a aplicabilidade dos bancos de 
dados chave-valor em diversos cenários e como 
eles podem ser uma escolha poderosa para 
otimizar o armazenamento e acesso a dados em 
suas futuras aplicações. Continue explorando e 
praticando, pois, a modelagem de dados é uma 
habilidade fundamental no mundo da tecnologia 
da informação.
25BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Operações em bancos de dados 
chave-valor 
OBJETIVO
Ao término deste capítulo, você será capaz de 
entender como funciona a execução de operações 
em bancos de dados chave-valor. As pessoas que 
tentaram realizar inserções, buscas, atualizações 
e exclusões em bancos de dados chave-valor sem 
a devida instrução tiveram problemas ao lidar 
com questões de desempenho, escalabilidade 
e consistência de dados. Esses desafios, 
embora comuns, podem ser superados com o 
conhecimento adequado. E então? Motivado para 
desenvolver essa competência? Vamos lá!
Fundamentos dos bancos de 
dados chave-valor 
Os bancos de dados chave-valor representam um dos 
paradigmas mais simplificados e eficientes dentro do universo dos 
bancos de dados NoSQL. Diferentemente dos bancos de dados 
relacionais tradicionais, que utilizam tabelas para organizar os 
dados, os bancos de dados chave-valor armazenam dados em um 
formato que, como o nome sugere, é composto por um par de 
chave e valor. Cada item no banco de dados é armazenado como 
uma chave única, associada a um valor específico.
Nesse modelo, a chave funciona como um identificador 
exclusivo para cada item de dados. Essa chave é utilizada para 
recuperar o valor correspondente, que pode ser uma string 
simples, um número, ou até mesmo uma estrutura de dados mais 
complexa. 
A simplicidade dessa abordagem permite operações 
de leitura e escrita extremamente rápidas, tornando os bancos 
26 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
de dados chave-valor ideais para aplicações que exigem alta 
performance e escalabilidade.
Uma das principais características dos bancos de dados 
chave-valor é a sua flexibilidade. Ao contrário dos bancos de dados 
relacionais, que exigem um esquema fixo de tabelas e colunas, os 
bancos chave-valor permitem que os dados sejam armazenados 
sem uma estrutura predefinida. 
Isso significa que cada item pode ter seu próprio conjunto 
de atributos, o que é particularmente útil para armazenar dados 
heterogêneos e para aplicações que precisam se adaptar rapida-
mente a mudanças nos requisitos de dados.
Outro aspecto importante é a escalabilidade. Os bancos 
de dados chave-valor são projetados para serem facilmente 
escaláveis de forma horizontal. Isso significa que, à medida 
que a carga de trabalho aumenta, novos servidores podem ser 
adicionados ao cluster de banco de dados para distribuir a carga, 
sem a necessidade de reestruturação significativa.
No que diz respeito à recuperação de dados, os bancos 
de dados chave-valor são projetados para consultas simplesbaseadas em chaves. Enquanto os bancos de dados relacionais 
oferecem linguagens de consulta complexas, como SQL, que 
permitem consultas avançadas e junções de tabelas, os bancos 
de dados chave-valor geralmente se limitam a buscas diretas por 
chaves. Isso reduz a complexidade e melhora a velocidade, mas 
também limita a gama de consultas que podem ser realizadas 
diretamente.
27BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Imagem 2.4 - Consultas em SQL
Fonte: Freepik. 
Uma consideração importante no uso de bancos de 
dados chave-valor é a gestão de consistência de dados. Muitos 
sistemas chave-valor oferecem diferentes níveis de consistência, 
permitindo que os desenvolvedores escolham entre consistência 
estrita ou eventual, dependendo das necessidades da aplicação. 
A consistência eventual, por exemplo, pode ser adequada para 
aplicações onde a atualização imediata de todos os dados em 
todos os locais não é crítica.
Além disso, o suporte a transações em bancos de dados 
chave-valor varia amplamente. Enquanto alguns oferecem 
suporte robusto a transações multichave, outros oferecem apenas 
operações atômicas em uma única chave. Essa característica deve 
ser cuidadosamente considerada ao escolher um banco de dados 
chave-valor para aplicações que exigem integridade transacional.
Outra questão importante é a segurança dos dados. Muitos 
bancos de dados chave-valor oferecem recursos avançados de 
segurança, incluindo controle de acesso baseado em funções, 
criptografia de dados em repouso e em trânsito, e auditorias de 
28 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
segurança. Esses recursos são cruciais em aplicações que lidam 
com dados sensíveis.
A escolha do banco de dados chave-valor certo depende das 
necessidades específicas da aplicação. Fatores como o tamanho e 
a natureza dos dados, os padrões de acesso, a necessidade de 
escalabilidade e os requisitos de consistência e segurança devem 
ser considerados.
EXEMPLO: Os mais populares bancos de dados chave-
valor são Redis e DynamoDB da Amazon. Redis é conhecido 
por sua alta performance e conjunto rico de tipos de 
dados, enquanto DynamoDB oferece escalabilidade e 
flexibilidade, sendo amplamente utilizado em aplicações 
em grande escala.
No contexto de aplicações reais, bancos de dados chave-
valor são frequentemente utilizados para gerenciar sessões de 
usuário, armazenar preferências de configuração, implementar 
filas de mensagens e para caching de alto desempenho. Sua 
simplicidade e eficiência os tornam ideais para casos de uso em 
que a velocidade de leitura e escrita é prioritária e a estrutura de 
dados é relativamente simples.
IMPORTANTE
É importante notar que, apesar de suas muitas 
vantagens, os bancos de dados chave-valor não 
são a solução ideal para todos os cenários. Eles 
são menos adequados para casos em que são 
necessárias consultas complexas e relações entre 
diferentes conjuntos de dados. Em tais situações, 
um banco de dados relacional ou um NoSQL de 
outro tipo, como um banco de dados orientado a 
documentos ou colunar, pode ser mais apropriado.
29BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Finalmente, ao implementar um banco de dados chave-
valor, é crucial considerar aspectos como backup e recuperação 
de desastres, monitoramento do desempenho e manutenção 
contínua. A gestão eficaz desses aspectos garante a confiabilidade 
e a disponibilidade do banco de dados em ambientes de produção.
Operações básicas em bancos 
chave-valor
Os bancos de dados chave-valor, um dos principais tipos 
de bancos de dados NoSQL, são conhecidos por sua simplicidade 
e eficiência, especialmente em operações básicas como inserção, 
busca, atualização e exclusão de dados. Essas operações formam 
a espinha dorsal de quase todas as aplicações de banco de dados 
e são cruciais para entender como trabalhar eficientemente com 
tecnologias de chave-valor.
 • Inserção de dados: a inserção é o processo de adicionar 
um novo par de chave-valor ao banco de dados. Em um 
banco de dados chave-valor, cada chave deve ser única. 
Se uma chave já existente for usada em uma operação 
de inserção, o valor anterior será substituído pelo novo, 
a menos que o banco de dados seja configurado de 
outra forma. A simplicidade dessa operação é uma das 
razões pela qual os bancos chave-valor são tão rápidos 
e eficientes.
 • Busca de dados: a busca, ou recuperação de dados, é 
realizada usando a chave. Ao fornecer a chave, o banco 
de dados retorna rapidamente o valor correspondente. 
Essa operação é extremamente rápida em bancos 
de dados chave-valor devido à sua estrutura de 
dados otimizada e ao fato de que a busca é realizada 
30 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
diretamente pela chave, sem a necessidade de varrer 
outras estruturas de dados.
 • Atualização de dados: a atualização em um banco de 
dados chave-valor é semelhante à inserção. Se a chave 
já existir, o valor associado a essa chave é atualizado 
com o novo valor fornecido. Essa operação é direta e, 
como a inserção, beneficia-se da eficiência do modelo 
de dados chave-valor.
 • Exclusão de dados: a exclusão remove o par de chave-
valor do banco de dados. Após a exclusão, tanto a chave 
quanto o valor associado são removidos, liberando 
espaço e mantendo a eficiência do banco de dados. A 
operação de exclusão é crucial para a gestão de dados, 
especialmente em aplicações que acumulam grandes 
volumes de dados temporários ou transitórios.
Cada uma dessas operações tem implicações importantes 
para o desempenho e a gestão de um banco de dados. Por 
exemplo, em um cenário de e-commerce, a inserção de dados 
pode ser usada para adicionar novos produtos ao catálogo, a 
busca para recuperar informações do produto, a atualização para 
modificar os preços dos produtos, e a exclusão para remover 
produtos descontinuados.
Um ponto importante a considerar é a atomicidade das 
operações. Muitos bancos de dados chave-valor garantem que 
cada operação individual é atômica, o que significa que ou a 
operação é concluída com sucesso, ou o sistema retorna ao seu 
estado anterior, garantindo a integridade dos dados.
Além disso, a simplicidade das operações em bancos de 
dados chave-valor também traz algumas limitações. 
31BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
EXEMPLO: Eles não suportam operações complexas de 
consulta ou junções, como em bancos de dados relacionais. 
Isso pode limitar seu uso em aplicações que requerem 
análises de dados complexas ou em que as relações entre 
diferentes tipos de dados são fundamentais.
No entanto, em muitas aplicações modernas, nas quais a 
velocidade e a eficiência são cruciais, e as relações entre dados 
não são complexas, os bancos de dados chave-valor oferecem um 
desempenho significativamente melhor. Eles são particularmente 
úteis em cenários como caching de dados, em que a rapidez 
nas operações de leitura e escrita é mais importante do que a 
complexidade das consultas.
Os bancos de dados chave-valor também são uma 
excelente escolha para aplicações que exigem alta disponibilidade 
e escalabilidade. Sua arquitetura simples facilita a distribuição de 
dados em vários servidores, o que é fundamental para sistemas 
distribuídos e para garantir a alta disponibilidade.
SAIBA MAIS
As operações básicas em bancos de dados 
chave-valor, embora aparentemente simples, 
são a base para o funcionamento de muitas das 
maiores plataformas digitais do mundo? Por 
exemplo, grandes empresas de tecnologia, como 
redes sociais e serviços de streaming, dependem 
fortemente desses bancos de dados para gerenciar 
sessões de usuários e personalizar experiências 
em tempo real. A eficiência das operações de 
inserção, busca, atualização e exclusão em bancos 
de dados chave-valor não só permite o manuseio 
de enormes volumes de dados, mas também 
assegura uma resposta quase instantânea 
às solicitações do usuário. Esse desempenho 
impressionante é crucial para manter a satisfação 
do usuário e a competitividade no mercadodigital.
32 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Outra aplicação comum de bancos de dados chave-valor 
é no armazenamento de sessões de usuários em aplicações web. 
Devido à sua capacidade de realizar operações de leitura e escrita 
de forma rápida, eles são ideais para gerenciar grandes volumes 
de sessões de usuários simultâneas.
Otimização e escalabilidade em 
bancos chave-valor 
A otimização e a escalabilidade são aspectos cruciais no 
gerenciamento de bancos de dados chave-valor, especialmente 
em ambientes que lidam com grandes volumes de dados e exigem 
alta disponibilidade. Esta seção explora como os bancos de dados 
chave-valor podem ser otimizados para melhor desempenho e 
como eles se adaptam para atender diferentes cargas de trabalho 
e requisitos de escalabilidade.
 • Otimização para desempenho: o desempenho é um dos 
principais atrativos dos bancos de dados chave-valor. 
Eles são otimizados para garantir operações rápidas 
de leitura e escrita, o que é alcançado através de uma 
estrutura de dados simples e eficiente. No entanto, a 
otimização não se limita apenas à arquitetura interna; 
ela também envolve práticas de gerenciamento de 
dados, como o uso eficiente de índices e a escolha 
adequada de chaves.
 • Gerenciamento eficiente de memória: muitos bancos de 
dados chave-valor armazenam dados em memória para 
acesso rápido. A gestão eficiente da memória é crucial 
para manter o desempenho, especialmente quando se 
lida com grandes conjuntos de dados. Estratégias como 
a limitação do tamanho dos dados armazenados em 
33BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
memória e o uso de mecanismos de cache podem ser 
implementadas para otimizar o uso da memória.
 • Escalabilidade horizontal: um dos maiores desafios ao 
lidar com grandes volumes de dados é a escalabilidade. 
Os bancos de dados chave-valor são projetados para 
serem facilmente escaláveis de forma horizontal, o 
que significa que eles podem se expandir adicionando 
mais máquinas ao sistema. Isso permite que eles lidem 
eficientemente com o aumento do volume de dados e 
do número de requisições.
 • Particionamento de dados: o particionamento é 
uma técnica chave para alcançar escalabilidade. 
Ela envolve dividir os dados em várias partes que 
podem ser distribuídas em diferentes servidores. 
O particionamento pode ser baseado em chaves 
(como range ou hash partitioning) para garantir uma 
distribuição equilibrada dos dados e evitar pontos de 
congestionamento.
 • Replicação para alta disponibilidade: para garantir alta 
disponibilidade e resistência a falhas, muitos bancos 
de dados chave-valor utilizam replicação de dados. 
Isso significa que os dados são copiados em vários 
servidores, garantindo que, em caso de falha de um 
servidor, os dados ainda possam ser acessados a partir 
de outro local.
 • Consistência eventual versus consistência estrita: outro 
aspecto importante na otimização de bancos de dados 
chave-valor é a gestão da consistência dos dados. 
Alguns sistemas optam por consistência eventual, o 
que significa que as cópias dos dados podem não estar 
completamente sincronizadas em todos os momentos, 
mas eventualmente alcançarão um estado consistente. 
34 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Isso é frequentemente preferido por sua capacidade de 
melhorar o desempenho e a disponibilidade (Loukides, 
2010). 
 • Balanceamento de carga: o balanceamento de carga é 
essencial para distribuir uniformemente as requisições 
de dados entre os diferentes servidores. Isso não 
só melhora o desempenho, mas também evita a 
sobrecarga de servidores individuais, garantindo uma 
operação mais estável e confiável do banco de dados.
 • Otimização de consultas: embora os bancos de 
dados chave-valor sejam geralmente projetados para 
consultas simples baseadas em chave, otimizações 
podem ser aplicadas para melhorar o desempenho 
dessas operações. Estratégias como a redução do 
número de operações de leitura e escrita e o uso de 
técnicas de compressão de dados podem ser eficazes.
 • Monitoramento e ajuste contínuo: um aspecto 
crítico da otimização é o monitoramento contínuo 
do desempenho do banco de dados. Ferramentas de 
monitoramento podem fornecer insights valiosos sobre 
o uso de recursos, padrões de tráfego e gargalos de 
desempenho, permitindo ajustes proativos para manter 
o banco de dados funcionando de maneira otimizada.
 • Backup e recuperação de desastres: a otimização 
também envolve a implementação de estratégias 
robustas de backup e recuperação de desastres. 
Isso garante que, em caso de falhas de hardware ou 
outros problemas, os dados possam ser rapidamente 
restaurados, minimizando a interrupção dos serviços.
35BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
 • Segurança de dados: embora a otimização muitas vezes 
se concentre no desempenho e na escalabilidade, a 
segurança dos dados não deve ser negligenciada. A 
implementação de medidas de segurança robustas, 
como criptografia e controle de acesso, é crucial para 
proteger os dados contra acessos não autorizados e 
violações.
 • Adaptação a diferentes cargas de trabalho: os bancos 
de dados chave-valor são versáteis e podem se adaptar 
a diferentes cargas de trabalho. Seja em aplicações que 
exigem leituras frequentes ou em cenários com pesadas 
escritas de dados, eles podem ser configurados para 
atender a esses requisitos de maneira eficiente.
 • Escolha do sistema de banco de dados apropriado: por 
fim, a otimização começa com a escolha do sistema de 
banco de dados chave-valor correto. Cada sistema tem 
suas próprias forças e fraquezas, e a escolha deve ser 
baseada nas necessidades específicas da aplicação.
 • Considerações finais: a otimização e a escalabilidade 
em bancos de dados chave-valor são fundamentais 
para o sucesso de aplicações modernas que lidam 
com grandes volumes de dados. Ao implementar as 
estratégias corretas, é possível garantir não apenas 
o desempenho e a disponibilidade, mas também a 
segurança e a integridade dos dados (Redmond; Wilson, 
2012).
36 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Estudos de caso e melhores práticas 
em bancos de dados chave-valor
A aplicação de bancos de dados chave-valor no mundo real 
oferece insights valiosos sobre como eles podem ser efetivamente 
utilizados e gerenciados. Esta seção apresenta estudos de caso e 
discute as melhores práticas para implementar e gerenciar bancos 
de dados chave-valor, destacando como evitar erros comuns.
 • Estudos de caso de sucesso: vários casos de sucesso 
ilustram a eficácia dos bancos de dados chave-valor. 
Um exemplo notável é o uso do Redis, um banco de 
dados chave-valor, por plataformas de mídia social para 
gerenciar dados de sessões de usuário em tempo real. 
Outro caso é o uso do Amazon DynamoDB por empresas 
de comércio eletrônico para gerenciar grandes volumes 
de transações e dados de catálogo de produtos.
 • Seleção criteriosa do banco de dados: a escolha do 
banco de dados chave-valor adequado é fundamental. 
Diferentes sistemas oferecem diferentes conjuntos 
de recursos, e a seleção deve ser baseada nas neces-
sidades específicas da aplicação, como desempenho, 
escalabilidade, e consistência dos dados.
 • Design de chave eficiente: uma das melhores práticas 
em bancos de dados chave-valor é o design eficiente 
das chaves. Chaves mal projetadas podem levar 
a problemas de desempenho, especialmente em 
sistemas distribuídos. É importante que as chaves 
sejam projetadas para distribuir dados de maneira 
uniforme entre os nós.
 • Gerenciamento de conexões: o gerenciamento eficiente 
de conexões é crucial. Muitos bancos de dados chave-
37BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
valor mantêm as conexões abertas para melhorar o 
desempenho. No entanto, isso pode consumir recursos 
significativos, e é essencial monitorar e gerenciar essas 
conexões para evitar a sobrecarga do sistema.
 • Monitoramento e ajuste: o monitoramento contínuo 
do desempenho do banco de dadosé essencial. 
Ferramentas de monitoramento podem fornecer 
informações valiosas sobre a saúde do banco de 
dados, permitindo ajustes proativos para otimizar o 
desempenho e a escalabilidade.
 • Estratégias de backup e recuperação: implementar 
estratégias robustas de backup e recuperação de 
desastres é uma prática recomendada. Isso garante a 
segurança dos dados e a continuidade dos negócios em 
caso de falhas.
 • Balanceamento de carga e replicação de dados: utilizar 
balanceamento de carga e replicação de dados pode 
melhorar significativamente a disponibilidade e a 
resistência a falhas. Isso é especialmente importante 
em ambientes de produção de alta demanda.
 • Gestão de transações: embora os bancos de dados 
chave-valor não sejam conhecidos por suportar transa-
ções complexas como os bancos de dados relacionais, 
algumas implementações oferecem suporte a transa-
ções. Entender e utilizar esses recursos pode ser crucial 
para certas aplicações.
 • Segurança de dados: a implementação de medidas de 
segurança robustas, como controle de acesso e cripto-
grafia, é vital para proteger os dados. Isso é especial-
mente importante em aplicações que lidam com infor-
mações sensíveis.
38 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
 • Escalabilidade proativa: planejar a escalabilidade desde 
o início é uma prática recomendada. Isso envolve en-
tender como o banco de dados chave-valor escolhido 
lida com o aumento do volume de dados e requisições 
e planejar a infraestrutura de acordo.
 • Consistência dos dados: gerenciar a consistência dos 
dados é um desafio comum em bancos de dados 
chave-valor, especialmente em ambientes distribuídos. 
É importante entender as garantias de consistência 
oferecidas pelo banco de dados e como elas se alinham 
com os requisitos da aplicação.
 • Documentação e conhecimento da equipe: manter 
uma documentação abrangente e garantir que a equi-
pe entenda completamente o funcionamento e as prá-
ticas recomendadas do banco de dados chave-valor é 
fundamental para evitar erros e garantir o uso eficiente 
do sistema.
 • Testes e validação: realizar testes rigorosos e validação 
regularmente ajuda a identificar problemas potenciais 
e garante que o banco de dados está funcionando 
conforme esperado.
 • Adaptação às mudanças: o ambiente de tecnologia 
está sempre evoluindo, e é importante estar preparado 
para adaptar o banco de dados a novas tecnologias e 
práticas à medida que surgem.
 • Considerações finais: a aplicação eficaz de bancos 
de dados chave-valor requer uma combinação de 
planejamento cuidadoso, monitoramento constante 
e adaptação às necessidades em evolução. Estudar 
casos de sucesso e aplicar as melhores práticas são 
fundamentais para o sucesso.
39BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
RESUMINDO
E então? Gostou do que lhe mostramos? Aprendeu 
mesmo tudinho? Agora, só para termos certeza 
de que você realmente entendeu o tema de 
estudo deste capítulo, vamos resumir tudo o 
que vimos. Você deve ter aprendido que: no 
Capítulo 2 “Operações em bancos de dados 
chave-valor”, mergulhamos no mundo dos bancos 
de dados NoSQL, especificamente focando no 
modelo chave-valor. Exploramos a arquitetura 
básica e o funcionamento desses bancos de 
dados. Você deve ter entendido a importância 
das chaves únicas e como elas se relacionam 
aos valores, além das principais características 
que diferenciam os bancos de dados chave-
valor de outros tipos. Em seguida, detalhamos 
as operações fundamentais: inserção, busca, 
atualização e exclusão. Aqui, a ênfase foi colocada 
na simplicidade e eficiência dessas operações, 
fundamentais para o desempenho rápido e eficaz 
desses sistemas de banco de dados. Avançando, 
discutimos como esses bancos de dados podem 
ser otimizados para um desempenho superior 
e adaptados para lidar com diferentes cargas de 
trabalho. Exploramos estratégias importantes 
como particionamento de dados, replicação 
e balanceamento de carga, essenciais para 
gerenciar grandes volumes de dados e garantir 
alta disponibilidade. Por fim, apresentamos casos 
reais de uso e discutimos as melhores práticas 
para a implementação e gerenciamento eficazes 
desses sistemas. Aqui, você deve ter aprendido 
sobre a importância de escolher o sistema certo, 
projetar chaves eficientemente, e implementar 
medidas de segurança e gerenciamento de 
transações adequadas. Este capítulo foi projetado 
para fornecer uma compreensão abrangente 
das operações em bancos de dados chave-valor, 
equipando-o com o conhecimento necessário para
40 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
aplicar essas habilidades no mundo real. Agora, 
com esse entendimento em mãos, você está mais 
preparado para enfrentar os desafios e aproveitar 
as oportunidades que esses sistemas de banco de 
dados oferecem.
41BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Bd documentais e chave-valor 
em MongoDB e Redis 
OBJETIVO
Ao término deste capítulo, você será capaz de 
entender como funciona a implementação e a 
aplicação de bancos de dados NoSQL em variados 
cenários, com ênfase particular nos bancos de 
dados documentais e chave-valor. O conhecimento 
detalhado de como esses sistemas funcionam, 
suas melhores práticas e casos de uso específicos 
é crucial para evitar tais dificuldades. E então? 
Vamos lá!
Introdução às ferramentas 
de bancos de dados NoSQL: 
MongoDB e Redis
O advento dos bancos de dados NoSQL marcou uma 
evolução significativa na maneira como armazenamos e 
gerenciamos dados em aplicações modernas. 
Dentre as ferramentas mais proeminentes nessa 
categoria, destacam-se o MongoDB e o Redis, cada um com suas 
características únicas e aplicações específicas. Este capítulo visa 
a introduzir essas ferramentas, explorando suas funcionalidades, 
histórias e por que são essenciais no cenário atual dos bancos de 
dados (Chodorow, 2013). 
O MongoDB, lançado em 2009 pela MongoDB Inc., é um 
banco de dados orientado a documentos. Sua estrutura flexível 
permite armazenar dados em formatos JSON-like, o que o torna 
particularmente adequado para aplicações que necessitam de 
agilidade no desenvolvimento e na modelagem de dados. Diferente 
dos bancos de dados relacionais, que utilizam tabelas rígidas, o 
42 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
MongoDB oferece uma abordagem mais dinâmica, facilitando a 
manipulação de dados complexos e heterogêneos (Carlson, 2013).
A popularidade do MongoDB pode ser atribuída à sua 
escalabilidade e desempenho, especialmente em grandes 
conjuntos de dados e em aplicações que requerem operações 
de leitura e escrita intensas. Além disso, sua natureza de código 
aberto e a vasta comunidade que o apoia contribuem para um 
ecossistema robusto e em constante evolução.
Por outro lado, o Redis, criado por Salvatore Sanfilippo 
em 2009, é um armazenamento de estrutura de dados em 
memória. É frequentemente usado como um sistema de cache 
e gerenciador de sessões devido à sua velocidade excepcional. O 
Redis suporta diversas estruturas de dados, como strings, hashes, 
listas, conjuntos e conjuntos ordenados, oferecendo flexibilidade 
em diferentes casos de uso.
A eficiência do Redis está em sua capacidade de realizar 
operações em alta velocidade, pois opera com dados armazenados 
na memória, ao contrário de sistemas baseados em disco. Essa 
característica o torna ideal para situações que exigem resposta 
rápida, como sistemas de cache, filas de mensagens, e aplicações 
em tempo real.
A história do MongoDB e do Redis reflete a evolução das 
necessidades de armazenamento de dados. Enquanto o MongoDB 
surgiu como resposta à necessidade de lidar com grandes volumes 
de dados de forma flexível e eficiente, o Redis foi desenvolvido 
para atender demandas de alta performance em operações de 
leitura e escrita.
No contexto dos bancos de dados NoSQL, o MongoDB e o 
Redis representam duas abordagens distintas. O MongoDB, com 
sua estrutura baseada em documentos, é ideal para aplicações 
43BANCOS DE DADOSNÃO RELACIONAIS
U
ni
da
de
 2
que requerem um modelo de dados mais rico e detalhado. Já 
o Redis, com sua performance em operações em memória, é 
excelente para tarefas que necessitam de velocidade e eficiência.
A escolha entre MongoDB e Redis, ou a decisão de usá-
los em conjunto, depende das necessidades específicas de cada 
aplicação. Em muitos casos, eles são usados em paralelo, com o 
MongoDB atuando como o principal armazenamento de dados 
e o Redis como cache ou gerenciador de sessões, combinando o 
melhor de ambos os mundos.
O MongoDB tem se adaptado às mudanças no mundo dos 
dados, incorporando novas funcionalidades como o MongoDB 
Atlas, um serviço de banco de dados em nuvem, que oferece ainda 
mais flexibilidade e escalabilidade. Isso mostra como o MongoDB 
continua relevante e adaptável às novas tendências tecnológicas.
Da mesma forma, o Redis tem evoluído, com novas 
funcionalidades sendo adicionadas regularmente. Uma das 
características mais notáveis do Redis é sua capacidade de persistir 
dados em disco, apesar de ser primariamente um armazenamento 
em memória, o que amplia seu escopo de aplicação.
A utilização dessas ferramentas em diferentes indústrias 
demonstra sua versatilidade. O MongoDB é amplamente utilizado 
em aplicações web, móveis, de Internet das Coisas (IoT) e em 
análises de dados, enquanto o Redis é frequentemente escolhido 
para gerenciamento de sessões, filas de mensagens e como cache 
em sistemas web.
A adoção dessas tecnologias também é evidenciada por sua 
presença em grandes empresas e projetos de alto perfil. Empresas 
como Adobe, eBay, e Verizon usam o MongoDB, enquanto o Redis 
é utilizado por organizações como Twitter, GitHub e Snapchat.
44 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Imagem 2.5 – Tecnologias
Fonte: Freepik. 
Essa ampla adoção é um testemunho da robustez, 
escalabilidade e flexibilidade do MongoDB e do Redis, reafirmando 
seu valor no ecossistema de bancos de dados NoSQL.
Finalmente, compreender o MongoDB e o Redis é essencial 
para profissionais de TI que desejam se manter atualizados com as 
tendências atuais em tecnologia de banco de dados. Seu papel no 
manejo de grandes volumes de dados, em diversas formas e com 
alta velocidade, os torna ferramentas indispensáveis no arsenal 
de qualquer desenvolvedor ou administrador de banco de dados.
Implementação de banco de 
dados com MongoDB
A implementação de um banco de dados com o MongoDB 
é um processo que envolve várias etapas, desde a instalação 
até a manipulação de dados. O MongoDB, como um banco de 
45BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
dados orientado a documentos, oferece uma abordagem flexível 
e eficiente para gerenciamento de dados, especialmente em 
aplicações web modernas e sistemas de grande escala.
O primeiro passo na implementação do MongoDB é a sua 
instalação. O MongoDB oferece versões para diversos sistemas 
operacionais, incluindo Windows, Linux e macOS. A instalação 
pode ser realizada através de pacotes de instalação específicos 
para cada sistema ou via gerenciadores de pacotes, o que facilita a 
configuração inicial e a atualização do banco de dados.
Após a instalação, o próximo passo é configurar o ambiente 
do MongoDB. Isso envolve a definição de parâmetros como o 
diretório de armazenamento de dados e a configuração de rede, 
permitindo que o banco de dados seja acessado localmente ou 
remotamente. Uma boa prática é garantir a segurança do banco 
de dados por meio da configuração de autenticação e autorização, 
especialmente em ambientes de produção.
Com o ambiente configurado, o próximo passo é a 
criação de um banco de dados e coleções dentro do MongoDB. 
Uma coleção no MongoDB é análoga a uma tabela em bancos 
de dados relacionais, mas sem um esquema fixo. Isso significa 
que os documentos (registros) dentro de uma coleção podem ter 
estruturas diferentes, oferecendo flexibilidade na modelagem de 
dados.
IMPORTANTE
A inserção de dados no MongoDB é realizada através 
da criação de documentos, que são estruturas de 
dados no formato BSON (uma variação binária 
do JSON). Isso torna o processo de inserção 
intuitivo, especialmente para desenvolvedores 
familiarizados com JSON. A inserção pode ser 
feita individualmente ou em lote, facilitando a 
manipulação de grandes volumes de dados.
46 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
A consulta de dados no MongoDB é realizada mediante 
a um sistema de consulta rico e flexível. As consultas podem 
ser simples, como buscar documentos com base em um campo 
específico, ou mais complexas, incluindo operações de agregação 
e junções entre coleções. O MongoDB também oferece recursos 
de indexação, que podem ser utilizados para otimizar as consultas 
e melhorar o desempenho.
A atualização de documentos no MongoDB é feita através 
de comandos que permitem alterar campos específicos de um 
ou mais documentos. As operações de atualização são flexíveis 
e podem incluir a adição, remoção ou modificação de campos 
dentro de um documento.
A exclusão de dados no MongoDB pode ser feita em nível 
de documento ou coleção. As operações de exclusão devem ser 
usadas com cuidado, especialmente em ambientes de produção, 
para evitar a perda acidental de dados importantes.
Além das operações básicas de CRUD (criação, leitura, 
atualização e exclusão), o MongoDB oferece funcionalidades 
avançadas, como transações multidocumentos e replicação. Essas 
funcionalidades são importantes para garantir a integridade e a 
disponibilidade dos dados em aplicações críticas.
O gerenciamento de banco de dados no MongoDB também 
envolve tarefas como monitoramento, backup e recuperação. 
Ferramentas e serviços, como o MongoDB Atlas, oferecem 
recursos para facilitar essas tarefas, proporcionando um ambiente 
de banco de dados robusto e confiável.
A implementação do MongoDB em ambientes de 
nuvem é progressivamente mais comum, dada a flexibilidade e 
escalabilidade que a nuvem oferece. Serviços como o MongoDB 
47BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Atlas permitem a implantação de clusters de MongoDB na nuvem, 
gerenciados e otimizados para desempenho e segurança.
IMPORTANTE
A comunidade MongoDB é ativa e oferece uma 
vasta gama de recursos para desenvolvedores 
e administradores de banco de dados. Isso 
inclui documentação oficial, tutoriais, fóruns de 
discussão e eventos, que são recursos valiosos 
para quem está implementando e gerenciando 
bancos de dados MongoDB.
Finalmente, a prática e a experimentação são fundamentais 
no processo de aprendizado e implementação do MongoDB. A 
exploração de diferentes funcionalidades e a aplicação em projetos 
reais são essenciais para adquirir proficiência na ferramenta.
Gerenciamento de dados com 
Redis
O Redis, conhecido como um armazenamento de estrutura 
de dados em memória, é uma ferramenta poderosa para 
gerenciamento de dados em aplicações de alta performance. Este 
capítulo visa a explorar a instalação, configuração e uso do Redis, 
destacando sua eficácia em diferentes cenários, como cache de 
dados e gerenciamento de sessões.
A instalação do Redis é notavelmente simples, podendo ser 
feita em diversos sistemas operacionais. No Linux, por exemplo, 
ela pode ser realizada através de gerenciadores de pacotes. No 
Windows, o Redis pode ser instalado usando o subsistema Linux 
ou containers. A facilidade de instalação torna o Redis uma escolha 
popular para desenvolvedores e administradores de sistemas.
Após a instalação, a configuração inicial do Redis é um 
passo crucial. O arquivo de configuração do Redis permite ajustar 
48 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
várias opções, como o uso de memória, segurança e persistência 
de dados. Uma configuração apropriada é essencial para otimizar 
o desempenho e garantir a segurança dos dados.
SAIBA MAIS
O Redis suporta uma variedade de estruturas 
de dados, incluindo strings, listas, conjuntos, 
conjuntos ordenados, hashes e bitmaps. Essa 
diversidade permite que o Redisseja utilizado em 
uma ampla gama de aplicações, desde simples 
armazenamentos de chave-valor até sistemas mais 
complexos de processamento de dados.
Uma das operações básicas no Redis é a inserção de dados. 
Isso pode ser feito de maneira simples e direta, com comandos 
para cada tipo de estrutura de dados. Por exemplo, para strings, 
usa-se o comando SET, enquanto para listas, o comando LPUSH 
ou RPUSH pode ser utilizado.
A leitura de dados no Redis também é eficiente e direta. 
Utilizando comandos como GET para strings ou LRANGE para 
listas, é possível recuperar dados rapidamente, o que é um dos 
principais atrativos do Redis, especialmente para operações que 
necessitam de alta velocidade.
A atualização de dados no Redis segue a mesma lógica 
simples. Em muitos casos, a atualização é realizada usando os 
mesmos comandos de inserção, substituindo os valores antigos 
pelos novos.
A exclusão de dados é igualmente eficiente. Comandos 
como DEL permitem remover dados de forma rápida. Além disso, 
o Redis oferece recursos como a expiração automática de chaves, 
que são úteis para aplicações de cache, em que os dados antigos 
precisam ser removidos periodicamente.
49BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
O Redis é amplamente utilizado como um sistema de cache 
devido à sua velocidade e eficiência em armazenar e recuperar 
dados. O uso do Redis como cache reduz a carga em bancos de 
dados tradicionais e melhora o tempo de resposta das aplicações.
SAIBA MAIS
Outro caso de uso comum do Redis é no 
gerenciamento de sessões em aplicações web. Ao 
armazenar dados de sessão no Redis, as aplicações 
podem gerenciar sessões de usuário de forma 
eficiente e distribuída, o que é especialmente 
útil em ambientes de alta disponibilidade e 
escalabilidade.
Além desses casos, o Redis é usado em filas de mensagens, 
pub/sub (publicação e assinatura) para sistemas de comunicação 
em tempo real, e até em aplicações de análise de dados, em que 
sua capacidade de manipular grandes volumes de dados em 
memória é uma grande vantagem.
A persistência de dados é uma característica notável do 
Redis. Embora seja principalmente um armazenamento em 
memória, o Redis oferece opções para persistir dados em disco, 
garantindo que os dados não sejam perdidos em caso de falha do 
sistema.
O monitoramento e a administração do Redis são 
facilitados por várias ferramentas e interfaces. Comandos como 
INFO e ferramentas como o Redis-cli e Redis Desktop Manager 
oferecem insights valiosos sobre o desempenho e uso do Redis.
A comunidade em torno do Redis é ativa e colaborativa, 
fornecendo uma vasta quantidade de recursos, como 
documentação detalhada, tutoriais e fóruns de discussão. Isso 
torna a adoção do Redis mais acessível a novos usuários e contribui 
para a constante evolução da ferramenta.
50 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
Em resumo, o Redis é uma ferramenta versátil e eficiente 
para o gerenciamento de dados em memória, com aplicações que 
vão desde cache de alta performance até sistemas complexos de 
processamento de dados. Sua facilidade de uso, combinada com 
a capacidade de lidar com diferentes estruturas de dados, o torna 
uma escolha excelente para uma variedade de casos de uso.
Práticas avançadas e otimização em 
MongoDB e Redis
A otimização e a adoção de práticas avançadas são funda-
mentais para aproveitar ao máximo as capacidades do MongoDB 
e do Redis. Este capítulo explora estratégias e técnicas que podem 
melhorar significativamente a performance, escalabilidade e con-
fiabilidade desses sistemas de banco de dados.
Começando pelo MongoDB, a indexação é uma das 
técnicas mais críticas para otimização. Indexes são essenciais para 
melhorar a velocidade das operações de consulta, pois permitem 
que o banco de dados localize os dados de forma mais eficiente. 
No entanto, é importante usar indexes de forma estratégica, pois 
indexes excessivos podem prejudicar a performance de escrita 
(Carlson, 2013).
IMPORTANTE
A replicação no MongoDB é outra prática 
importante para garantir a alta disponibilidade 
e a segurança dos dados. A replicação envolve 
a criação de cópias dos dados em múltiplos 
servidores, garantindo que, em caso de falha de 
um servidor, os dados possam ser recuperados de 
outro servidor replica.
O sharding é outra técnica avançada usada no MongoDB 
para lidar com grandes volumes de dados e alto throughput de 
operações. O sharding envolve a distribuição de dados entre 
51BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
diferentes servidores, o que permite escalabilidade horizontal e 
melhor distribuição da carga.
Para o Redis, a otimização frequentemente envolve a ges-
tão eficiente do uso de memória, dado que é um armazenamento 
de dados em memória. Estratégias como a definição de políticas 
de expiração para dados e o uso consciente de tipos de dados po-
dem ajudar a otimizar o uso de memória.
O Redis também suporta a replicação, o que é crucial para 
garantir a disponibilidade e a segurança dos dados. A replicação 
no Redis permite que os dados sejam copiados para múltiplos 
servidores, proporcionando redundância e continuidade dos 
negócios em caso de falhas (Banker, 2016).
Outra prática importante no uso do Redis é a persistência 
de dados. Embora o Redis seja predominantemente usado como 
um armazenamento em memória, ele oferece opções para 
persistir dados em disco, o que é fundamental para prevenir a 
perda de dados.
No que diz respeito a backups, tanto o MongoDB quanto 
o Redis oferecem mecanismos para backup e recuperação de 
dados. É crucial estabelecer uma rotina de backups regulares para 
proteger contra perda de dados devido a falhas de hardware, 
erros humanos ou desastres.
Para garantir a performance e a escalabilidade, tanto no 
MongoDB quanto no Redis, é essencial monitorar constantemente 
o desempenho do sistema. Ferramentas e técnicas de 
monitoramento podem identificar gargalos de desempenho, uso 
de recursos e padrões de tráfego, permitindo ajustes proativos 
para manter a estabilidade do sistema.
52 BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
IMPORTANTE
As melhores práticas em ambos os sistemas 
também incluem a segurança dos dados. Isso 
envolve a configuração de medidas de segurança 
como autenticação, autorização, criptografia de 
dados em repouso e em trânsito, e proteção contra 
ataques cibernéticos.
No contexto de aplicações em nuvem, a otimização pode 
incluir a seleção de tipos de instância adequados, a configuração 
de auto scaling e a utilização de serviços gerenciados, como o 
MongoDB Atlas ou Redis Enterprise, que oferecem recursos 
adicionais de performance e segurança.
Para aplicações que utilizam tanto o MongoDB quanto 
o Redis, uma estratégia comum é usar o Redis para operações 
que requerem alta velocidade, como cache ou gerenciamento 
de sessões, e o MongoDB para armazenamento de dados mais 
persistentes e complexos.
Outra consideração importante é a escolha e a otimização 
das linguagens de programação e frameworks usados para 
interagir com esses bancos de dados. A eficiência do código pode 
ter um grande impacto no desempenho geral do sistema.
A integração e o uso de ferramentas de DevOps, como 
automação de implantação, contêinerização e orquestração, 
também são cruciais para a otimização e gerenciamento eficiente 
desses bancos de dados.
Finalmente, a educação e o treinamento contínuos são 
essenciais. Manter-se atualizado com as últimas atualizações, 
recursos e melhores práticas do MongoDB e do Redis é 
fundamental para qualquer profissional que trabalha com essas 
tecnologias.
53BANCOS DE DADOS NÃO RELACIONAIS
U
ni
da
de
 2
RESUMINDO
E então? Gostou do que lhe mostramos? Aprendeu 
mesmo tudinho? Agora, só para termos certeza de 
que você realmente entendeu o tema de estudo 
deste capítulo, vamos resumir tudo o que vimos. 
Você deve ter aprendido que os bancos de dados 
documentais e chave-valor, especificamente 
MongoDB e Redis, desempenham papéis cruciais no 
ecossistema

Mais conteúdos dessa disciplina