Buscar

BANCO DE DADOS APLICADO A BIG DATA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 1/41
BANCO DE DADOS APLICADO ABANCO DE DADOS APLICADO A
BIG DATABIG DATA
INTRODUÇÃO AOSINTRODUÇÃO AOS
BANCOS DE DADOS NÃOBANCOS DE DADOS NÃO
RELACIONAIS (NOSQL)RELACIONAIS (NOSQL)
Autor: Esp. Everton Gomede
Revisor : Isabel Cr is t ina S iqueira da S i lva
I N I C I A R
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 2/41
Introdução
Se você desenvolveu aplicativos para web nos últimos anos, provavelmente, já
utilizou um banco de dados relacional como armazenamento de dados
primários. Se você está familiarizado com Structured Query Language (SQL),
pode apreciar a utilidade de um modelo de dados bem normalizado, a
necessidade de transações e as garantias fornecidas por um mecanismo de
armazenamento durável. Simpli�cando, o banco de dados relacional é
maduro e bem conhecido. Quando os desenvolvedores começam a defender
alternativas para armazenamento de dados, questões sobre a viabilidade e a
utilidade dessas novas tecnologias começam a surgir. Esses novos tipos de
armazenamento são substituições de sistemas de banco de dados
relacionais? Quem os está utilizando na produção, e por quê? Quais
compensações estão envolvidas na mudança para um banco de dados não
relacional? As respostas a essas perguntas dependem da resposta a esta: por
que os desenvolvedores estão interessados nos bancos de dados não
relacionais? Um banco de dados não relacional é um sistema de
gerenciamento de banco de dados projetado para desenvolver, rapidamente,
aplicativos da web e infraestrutura de internet.
introdução
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 3/41
A história dos bancos de dados não relacionais é breve, mas vale a pena ser
contada, principalmente do ponto de vista do seu mais ilustre representante:
o MongoDB, pois ele nasceu de um projeto mais ambicioso (BANKER et al .,
2016).
Em meados de 2007, uma startup da cidade de Nova York, chamada 10gen,
começou a trabalhar em uma plataforma como serviço (PaaS), composta por
um servidor de aplicativos e um banco de dados, que hospedaria aplicativos
da web e os escalaria conforme necessário. Assim como o aplicativo do Google
Engine, a plataforma da 10gen foi projetada para lidar com dimensionamento
e gerenciamento de infraestrutura de hardware e software automaticamente,
liberando os desenvolvedores para se concentrarem exclusivamente no
código do aplicativo. A 10gen, �nalmente, descobriu que a maioria dos
Bancos de DadosBancos de Dados
não Relacionais enão Relacionais e
sua Utilização emsua Utilização em
Aplicações de Aplicações de BigBig
DataData
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 4/41
desenvolvedores não se sente confortável abrindo mão de tanto controle
sobre suas pilhas de tecnologia, mas os usuários desejam a nova tecnologia
de banco de dados da 10gen. Isso levou a 10gen a concentrar seus esforços
exclusivamente no banco de dados que se tornou o MongoDB (BANKER et al .,
2016).
Desde então, a 10gen mudou seu nome para MongoDB, Inc. e continua a
patrocinar o desenvolvimento do banco de dados como um projeto de código
aberto. O código está disponível publicamente e é livre para ser modi�cado e
usado (sujeito aos termos de sua licença), e a comunidade em geral é
encorajada a arquivar relatórios de bugs e enviar correções. Ainda assim, a
maior parte do núcleo do MongoDB foi feita pelos desenvolvedores, que são
fundadores ou funcionários da empresa, e o código do projeto continua a ser
determinado pelas necessidades de sua comunidade de usuários e pelo
objetivo abrangente de criar um banco de dados que combina os melhores
recursos dos bancos de dados relacionais e os armazenamentos dos pares
distribuídos. Assim, o modelo de negócios da MongoDB, Inc. não é contrário
ao de outras empresas de código aberto bem conhecidas: apoiar o
desenvolvimento de um produto de código aberto e fornecer serviços de
assinatura para usuários �nais (BANKER et al., 2016).
A coisa mais importante a se lembrar é que o MongoDB pretendia ser uma
parte extremamente simples, mas �exível, de uma pilha de aplicativos da web
. Esses tipos de casos de uso direcionaram as escolhas feitas no
desenvolvimento do MongoDB e ajudam a explicar suas características. Além
disso, o MongoDB começou a ser usado para aplicações utilizando o conceito
conhecido como big data .
Big data é um termo genérico para qualquer coleção de conjuntos
de dados tão grandes ou complexos que torna-se difícil processá-
los usando técnicas tradicionais de gerenciamento de dados como,
por exemplo, os RDBMS (sistemas de gerenciamento de banco de
dados relacional) (CIELEN; MEYSMAN; ALI, 2016, p. 1).
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 5/41
A ciência de dados e o big data são usados em quase todos os lugares, tanto
em contextos comerciais quanto não comerciais. O número de casos de uso é
vasto e os exemplos que forneceremos, ao longo deste estudo, apenas
arranham a superfície das possibilidades.
Empresas comerciais de quase todos os setores usam ciência de dados e big
data para obter insights sobre seus clientes, processos, equipes, conclusões e
produtos. Muitas empresas usam ciência de dados para oferecer aos clientes
uma melhor experiência de usuário, bem como para venda cruzada, venda
incrementada e personalização de suas ofertas. Um bom exemplo disso é o
Google AdSense, que coleta dados de usuários da internet para que
mensagens comerciais relevantes possam ser direcionadas a eles. O MaxPoint
é outro exemplo de publicidade personalizada em tempo real (CAMPELLO;
CALDEIRA, 2014).
Pro�ssionais de recursos humanos usam análises de pessoas e mineração de
texto para selecionar candidatos, monitorar o humor de funcionários e
estudar redes informais entre colegas de trabalho. A análise de pessoas é
ponto central e tema do livro Moneyball: a arte de ganhar um jogo injusto . No
livro (e �lme), vemos que o processo de seleção tradicional para o beisebol
americano era aleatório, e substituí-lo, por sinais correlatos, mudou tudo.
Baseando-se em estatísticas, foram contratados os jogadores certos, que
foram colocados nas posições em que teriam maior vantagem.
As instituições �nanceiras usam ciência de dados para prever mercados de
ações, determinar o risco de emprestar dinheiro e aprender como atrair
novos clientes para seus serviços. No momento em que esse estudo foi
escrito, pelo menos 50% das negociações, em todo o mundo, estavam sendo
executadas automaticamente por máquinas, com base em algoritmos
desenvolvidos por cientistas de dados que trabalham em algoritmos de
negociação (DOURADO, 2013).
Organizações governamentais também estão cientes do valor dos dados.
Muitas organizações governamentais não contam apenas com cientistas de
dados internos para descobrir informações valiosas, mas também para
compartilhar dados com o público. Além disso, esses dados podem ser
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 6/41
utilizados para obter insights ou construir aplicativos baseados em dados. Por
exemplo, Data.gov é um dos conjuntos de dados abertos do governo dos EUA.
Em uma organização governamental, um cientista de dados trabalha em
diversos projetos, como detecção de fraude e outras atividades criminosas ou
em otimização de �nanciamento do projeto. Um exemplo bem conhecido foi
o caso revelado por Edward Snowden, que vazou documentos internos, da
Agência de Segurança Nacional Americana e do Governo Britânico, que
mostram claramente como eles usarama ciência de dados e o big data para
monitorar milhões de indivíduos. Essas organizações de segurança
arrecadaram 5 bilhões de registros de dados de aplicativos amplamente
difundidos, como Google Maps, Angry Birds, e-mail e mensagens de texto,
dentre muitas outras fontes de dados, e, em seguida, aplicam técnicas da
ciência de dados para destilar informações (CIELEN; MEYSMAN; ALI, 2016).
As Organizações Não Governamentais (ONGs) também conhecem o uso de
dados e os utilizam para arrecadar dinheiro e defender suas causas. A The
World Wildlife Fund (WWF), por exemplo, emprega cientistas de dados para
aumentar a e�cácia de sua arrecadação de fundos. Muitos cientistas de dados
dedicam parte de seu tempo ajudando ONGs, porque elas, muitas vezes, não
têm recursos para coletar dados e empregar cientistas de dados. O DataKind,
por exemplo, é um grupo de cientistas de dados que dedica seu tempo ao
benefício da humanidade (BANKER et al., 2016).
As universidades utilizam a ciência de dados em suas pesquisas e também
para aprimorar a experiência de estudo de seus alunos. A ascensão de cursos
on-line abertos e massivos (MOOC) produz muitos dados, o que permite que
as universidades estudem como esse tipo de aprendizagem pode
complementar as aulas tradicionais. MOOCs são um ativo inestimável, então,
se você deseja se tornar um cientista de dados e pro�ssional de big data ,
de�nitivamente, dê uma olhada em alguns dos mais conhecidos: Coursera,
Udacity e edX. O cenário do big data e da ciência de dados muda rapidamente,
e os MOOCs permitem que você se mantenha atualizado, seguindo os cursos
das melhores universidades. Se você ainda não os conhece, reserve um
tempo para fazer isso. O quadro, a seguir, apresenta um resumo das
aplicações do big data em diversos contextos.
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 7/41
Contexto Aplicação Benefícios Exemplos
Empresas
comerciais
Ciência de
dados e big
data
Obter insights sobre
seus clientes,
processos, equipe,
conclusão e
produtos.
Google
AdSense
Recursos
humanos
Big data e
aprendizado
de máquina
Análises de pessoas
e mineração de
texto para
selecionar
candidatos,
monitorar o humor
de funcionários e
estudar redes
informais entre
colegas de trabalho.
Linkedin
Organizações
governamentais
Big data e
sensores
Obter informações
dos cidadãos e suas
interações com
câmeras etc.
Data.gov
Organizações
não
governamentais
Big data
Usam para
arrecadar dinheiro e
defender suas
causas.
WWF
Universidades Big data e
bancos não
relacionais
Usam ciência de
dados em suas
pesquisas e também
para aprimorar a
experiência de
Coursera,
Udacity e
edX
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 8/41
Quadro 1.1 - Resumo das aplicações de big data e bancos não relacionais 
Fonte: Elaborado pelo autor.
#PraCegoVer : o quadro apresenta um resumo dos cenários de
utilização do banco de dados NoSQL no contexto de big data . Além disso,
traz alguns exemplos de aplicações que podem ser encontradas na
internet.
Como podemos veri�car no Quadro 1.1, existem diversas aplicações para os
bancos de dados não relacionais. Muito provavelmente você já utilizou alguns
deles ao navegar em um site de comércio eletrônico ou fazer um curso em
uma das plataformas citadas.
Conhecimento
Teste seus Conhecimentos 
(Atividade não pontuada) 
Big data é um termo genérico para qualquer coleção de conjuntos de dados tão
grandes ou complexos que se torna difícil processá-los usando técnicas tradicionais
de gerenciamento de dados. Algumas das dimensões que não podem ser facilmente
processadas envolvem velocidade, volume e volatilidade.
estudo de seus
alunos.
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=KR… 9/41
CIELEN, D.; MEYSMAN, A. D. B.; ALI, A. Introducing data science . Big data, machine
learning, and more, using Python tools. New York: Manning Publications Co., 2016.
Assinale a alternativa que apresenta uma tecnologia para armazenamento de dados
que pode ter di�culdades ao lidar com o cenário de big data.
a) MongoDB.
b) Bancos de dados NoSQL.
c) Apache Hadoop.
d) RDBMS.
e) MOOC.
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 10/41
Um banco de dados não relacional (NoSQL), como o MongoDB, por exemplo,
é um sistema de gerenciamento de banco de dados projetado para
desenvolver, rapidamente, aplicativos web, big data e infraestrutura de
internet. O modelo de dados e as estratégias de persistência são construídos
para alta capacidade de leitura e gravação e têm a capacidade de escalar
facilmente e com failover . Se um aplicativo requer apenas um nó de banco de
dados ou dezenas deles, o MongoDB pode fornecer um desempenho
surpreendentemente bom. Se você teve di�culdades dimensionando bancos
de dados relacionais, isso pode ser uma ótima notícia. Mas nem todo mundo
precisa operar em escala. Talvez você só precise de um único servidor de
Casos de UsoCasos de Uso
Visando DirecionarVisando Direcionar
os Cenários deos Cenários de
Utilização dosUtilização dos
Bancos de DadosBancos de Dados
não Relacionaisnão Relacionais
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 11/41
banco de dados (BANKER et al. , 2016). Talvez a maior razão para os
desenvolvedores utilizarem o MongoDB não seja por causa de sua
possibilidade de escalonamento, mas devido ao seu modelo de dados
intuitivo. O MongoDB armazena suas informações em documentos, em vez de
linhas. Mas o que é um documento? Segue um exemplo: 
{
_id: 10,
username: 'everton',
email: 'evertongomede@gmail.com'
} 
Esse é um documento bastante simples: armazenar alguns campos de
informações sobre um usuário. Qual é a vantagem desse modelo? Imagine
que você deseja armazenar vários e-mails para cada usuário. No mundo
relacional, você pode criar uma tabela separada de endereços de e-mail e dos
usuários aos quais eles estão associados. Já o MongoDB oferece outra
maneira de armazená-los: 
{
_id: 10,
username: everton,
email: [
'evertongomede@gmail.com',
'gomede@gmail.com'
]
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 12/41
} 
E, assim, você criou uma variedade de endereços de e-mail e resolveu seu
problema. Nesse caso, como desenvolvedor, você achará extremamente útil
ser capaz de armazenar um documento estruturado dessa forma em seu
banco de dados, sem se preocupar em ajustar um esquema ou adicionar mais
tabelas quando seus dados mudarem (BANKER et al., 2016).
O formato de documento do MongoDB é baseado em JSON, um esquema
popular para armazenar estruturas de dados. JSON é um acrônimo para
JavaScript Object Notation . Como você acabou de ver, a estrutura JSON
consiste em chaves e valores que podem ser aninhados de forma arbitrária.
Tais estruturas são análogas aos dicionários e mapas hash de outras
linguagens de programação. Um modelo de dados baseado em documento
pode representar estruturas de dados ricas e hierárquicas. Tais estruturas,
em bancos relacionais, muitas vezes, só podem ser feitas com as junções de
várias tabelas comuns aos bancos de dados relacionais (CIELEN; MEYSMAN;
ALI, 2016).
Por exemplo, suponha que você esteja modelando produtos para um site de
comércio eletrônico. Com um modelo de dados relacional totalmente
normalizado, as informações de qualquer produto podem ser divididas em
dezenas de tabelas. Se você deseja obter uma representação de produto do
banco de dados, você precisará escrever uma consulta SQL cheia de junções.
Em contraste, com um modelo de documento, a maioria das informações de
umproduto pode ser representada dentro de um único documento. Quando
você abre o shell JavaScript do MongoDB, você pode, facilmente, obter uma
representação compreensível de seu produto, com todas as suas informações
organizadas hierarquicamente, em uma estrutura semelhante ao JSON. Além
disso, depois de o produto estar armazenado, você também pode consultá-lo
e manipulá-lo. Os recursos de consulta do MongoDB são projetados
especi�camente para manipular documentos estruturados, para que os
usuários que mudam de bancos de dados relacionais experimentem um nível
semelhante de poder de consulta. Além disso, a maioria dos desenvolvedores,
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 13/41
atualmente, trabalha com orientação a objetos e quer um armazenamento de
dados que mapeie melhor os objetos. Com o MongoDB, um objeto de�nido
na linguagem de programação pode, muitas vezes, ser persistido como está,
removendo parte da complexidade dos mapeadores de objetos. Se você tem
experiência com bancos de dados relacionais, pode ser útil abordar o
MongoDB na perspectiva da transição de suas habilidades existentes nesse
novo banco de dados (CAMPELLO; CALDEIRA, 2014).
O MongoDB foi criticado em várias frentes, às vezes, de forma justa e, às
vezes, injustamente. Nossa visão é que ele é uma ferramenta na caixa de
ferramentas do desenvolvedor, como qualquer outro banco de dados, e você
deve conhecer suas limitações e pontos fortes. Algumas cargas de trabalho
exigem junções e gerenciamento de memória diferentes do que o MongoDB
fornece. Por outro lado, o modelo baseado em documento se encaixa
particularmente bem com algumas cargas de trabalho, e a falta de um
esquema signi�ca que o MongoDB pode ser uma das melhores ferramentas
para desenvolver rapidamente e iterando em um aplicativo (CIELEN;
MEYSMAN; ALI, 2016).
Modelo de Dados do Documento
O modelo de dados do MongoDB é orientado a documentos. Se você não está
familiarizado com documentos no contexto de bancos de dados, o conceito
pode ser demonstrado mais facilmente por um exemplo. Um documento
JSON precisa de aspas duplas em todos os lugares, exceto para valores
numéricos. A lista, a seguir, mostra a versão JavaScript de um documento
JSON, em que as aspas duplas não são necessárias. 
{
_id: ObjectID('5bd9e8e1acefdaa2212108aa961b'),
title: 'MongoDB',
url: 'http://mongodb.com/',
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 14/41
author: 'everton',
vote_count: 20,
(1) tags: ['databases', 'mongodb', 'indexing'],
(2) image: {
url: 'http://mongodb/db.jpg',
caption: 'Um banco de dados.',
type: 'jpg',
size: 85181,
data: 'Binary'
},
(3) comments: [
{
user: 'everton',
text: 'Artigo'
},
{
user: 'everton',
text: 'Artigo'
}
]
} 
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 15/41
Essa lista mostra um documento JSON representando um artigo em um site
de notícias sociais (por exemplo, Reddit ou Twitter). Como você pode ver, um
documento é essencialmente um conjunto de nomes de propriedades e seus
valores. Os valores podem ser tipos de dados simples, como strings , números
e datas. Mas esses valores também podem ser matrizes e até mesmo outros
documentos JSON, como na Linha (1). Essas últimas construções permitem
que os documentos representem uma variedade de estruturas de dados
ricas. Você verá que a amostra do documento tem uma propriedade, tags ,
como na Linha (2), que armazena as tags do artigo em uma matriz. Mas mais
interessante é a propriedade de comentários, como na Linha (3), que é uma
matriz de documentos de comentários.
Internamente, o MongoDB armazena documentos em um formato chamado
Binary JSON ou BSON. BSON tem uma estrutura semelhante, mas se destina
ao armazenamento de muitos documentos. Quando você consulta o
MongoDB e obtém os resultados de volta, eles serão traduzidos em uma
estrutura de dados fácil de ler. O shell do MongoDB usa JavaScript e obtém
documentos em JSON, que é o que usaremos para a maioria de nossos
exemplos. Onde os bancos de dados relacionais têm tabelas, o MongoDB tem
coleções. Em outras palavras, MySQL (um banco de dados relacional popular)
mantém seus dados em tabelas de linhas, enquanto o MongoDB mantém
seus dados em coleções de documentos, que você pode considerar como um
grupo de documentos (BANKER et al ., 2016).
Coleções são um conceito importante no MongoDB. Os dados em uma
coleção são armazenados em disco, e a maioria das consultas exige que você
especi�que qual coleção deseja segmentar. Vamos parar um pouco para
comparar as coleções do MongoDB com a representação de um banco
relacional padrão de banco de dados dos mesmos dados. A Figura 1.1 mostra
um provável análogo relacional. 
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 16/41
Porque as tabelas são essencialmente planas, a representação dos vários
relacionamentos “um-para-muitos”, em seu documento de postagem, requer
várias tabelas. Você começa com uma tabela de posts contendo as
informações essenciais para cada postagem. Então, você cria três outras
tabelas, cada uma delas inclui um campo, post_id , referenciando a postagem
original. A técnica de separar os dados do objeto em várias tabelas é
conhecida como normalização. Um dado normalizado set , dentre outras
coisas, garante que cada unidade de dados seja representada em um único
lugar. Mas a normalização estrita tem seus custos. Notavelmente, alguma
montagem é necessária. Para exibir a postagem que você acabou de fazer
referência, você precisará realizar uma junção entre as postagens e as tabelas
de comentários.
Em última análise, a questão de saber se a normalização estrita é necessária
depende do tipo de dado que você está modelando. O que é importante notar
aqui é que um modelo de dados orientado a documento representa
Figura 1.1 - Modelo relacional para o exemplo do JSON listado anteriormente 
Fonte: Adaptada de Banker et al. (2016, p. 8).
#PraCegoVer : a imagem apresenta um exemplo de modelagem, utilizando um
banco de dados relacional, de como o código escrito em JSON seria
implementado.
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 17/41
naturalmente os dados de uma forma agregada, permitindo que você
trabalhe com um objeto holisticamente: todos os dados que representam
uma postagem, de comentários a tags , podem ser encaixados em um único
objeto de banco de dados (BANKER et al., 2016). 
Conhecimento
Teste seus Conhecimentos 
(Atividade não pontuada) 
Os bancos de dados não relacionais permitem que um par de chaves e valores
possa ser utilizado para o armazenamento de dados. O formato para o
armazenamento é conhecido como JSON. Esse formato é transformado para o
BSON, de maneira a facilitar o armazenamento interno do MongoDB.
BANKER, K. et al . MongoDB in action . Second Edition. New York: Manning
Publications Co., 2016.
Assinale a alternativa que indica qual a principal vantagem, do ponto de vista da
modelagem, para o desenvolvedor de software, ao utilizar o armazenamento chave-
valor.
a) Existe a necessidade de junções com chaves estrangeiras, para a
recuperação dos dados do banco.
b) Existe a necessidade de normalização utilizando várias formas normais,
para evitar anomalias.
c) Não existe a necessidade de implementação de um modelo de dados que
seja �xo ou complexo.
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 18/41
d) Não é necessária a alteração de um esquema, no caso de alteração da
estrutura do modelo.
e) Existe a necessidade do armazenamento em BSON, paraque os dados
possam ser binários.
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 19/41
Provavelmente, você já percebeu que, além de fornecerem uma estrutura
rica, os documentos não precisam estar em conformidade com um esquema
previamente especi�cado. Com um banco de dados relacional, você armazena
linhas em uma tabela. Cada tabela tem um esquema estritamente de�nido,
especi�cando quais colunas e tipos são permitidos. Se alguma linha em uma
tabela precisar de um campo extra, você deve alterar a tabela explicitamente.
O MongoDB agrupa documentos em coleções, contêineres, que não impõem
nenhum tipo de esquema (BANKER et al., 2016). Em teoria, cada documento
em uma coleção pode ter uma estrutura completamente diferente; na prática,
o documento de uma coleção será relativamente uniforme. Por exemplo,
cada documento na coleção de postagens terá campos para título, tags,
comentários etc.
Princípios dePrincípios de
DesignDesign
Comparando-osComparando-os
com os Bancos decom os Bancos de
Dados RelacionaisDados Relacionais
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 20/41
Vantagens do Modelo sem Esquema
Essa falta de esquema imposto confere algumas vantagens. Primeiro, o
código do seu aplicativo, e não o banco de dados, reforça a estrutura dos
dados. Isso pode acelerar a aplicação inicial de desenvolvimento, quando o
esquema muda com frequência. Em segundo lugar, e mais signi�cativamente,
um modelo sem esquema permite que você represente dados com
propriedades verdadeiramente variáveis. Por exemplo, imagine que você está
construindo um catálogo de produtos de comércio eletrônico. Não há como
saber, com antecedência, quais atributos um produto terá, então, o aplicativo
precisará levar em conta essa variabilidade. A forma tradicional de lidar com
isso em um banco de dados de esquema �xo é usar o valor padrão do
atributo de entidade, mostrado na Figura 1.2. 
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 21/41
O que você viu foi uma parte de um modelo de dados para uma estrutura de
comércio eletrônico. Observe a série de tabelas que são essencialmente
iguais, exceto por um único atributo, valor (value) , que varia apenas por tipo
de dados. Essa estrutura permite que um administrador de�na tipos de
produtos adicionais e seus atributos, mas o resultado é uma complexidade
signi�cativa. Pense em utilizar o shell do MySQL para examinar ou atualizar
um produto modelado nesse caminho; as junções SQL necessárias para
Figura 1.2 - Extrato de um esquema para um e-commerce 
Fonte: Adaptada de Banker et al. (2016, p. 9).
#PraCegoVer : a imagem apresenta um extrato de um modelo de dados baseado
em um banco de dados relacional. No caso da falta de um determinado valor, o
padrão é assumido.
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 22/41
montar o produto seriam enormemente complexas. Modelado como um
documento, nenhuma junção é necessária, e novos atributos podem ser
adicionados dinamicamente. Nem todos os modelos relacionais são tão
complexos, mas o ponto é que, quando você está desenvolvendo um
aplicativo MongoDB, não precisa se preocupar tanto sobre quais campos de
dados você precisará no futuro (DOURADO, 2013).
Consultas ad hoc
Dizer que um sistema suporta consultas ad hoc é dizer que não é necessário
de�nir, de forma antecipada, quais tipos de consultas o sistema aceitará.
Bancos de dados relacionais têm essa propriedade; eles executarão �elmente
qualquer consulta SQL bem formada, com qualquer número de condições.
Consultas ad hoc são fáceis de utilizar se os únicos bancos de dados que você
já tem usado são relacionais. Mas nem todos os bancos de dados oferecem
suporte a consultas dinâmicas. Por exemplo, armazenamentos de valores-
chave podem ser consultados em apenas um eixo: a chave do valor. Como
muitos outros sistemas, armazenamentos de valores-chave sacri�cam o rico
poder de consulta em troca de um simples modelo de escalabilidade. Um dos
objetivos de design do MongoDB é preservar a maior parte da consulta; poder
este que é tão fundamental para o mundo do banco de dados relacional. Para
ver como a linguagem de consulta do MongoDB funciona, vamos apresentar
um exemplo simples envolvendo postagens e comentários. Suponha que você
queira encontrar todas as postagens marcadas com o termo “política” tendo
mais de 10 votos. Uma consulta SQL seria assim: 
SELECT * FROM posts
INNER JOIN posts_tags ON posts.id = posts_tags.post_id
INNER JOIN tags ON posts_tags.tag_id == tags.id
WHERE tags.text = 'politics' AND posts.vote_count > 10; 
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 23/41
A consulta equivalente no MongoDB é especi�cada usando um documento
como um matcher. A chave $gt especial indica a condição maior que: 
db.posts.find({'tags': 'politics', 'vote_count': {'$gt':
10}}); 
Observe que as duas consultas assumem um modelo de dados diferente. A
consulta SQL depende de um modelo estritamente normalizado, em que os
posts e as tags são armazenados em tabelas distintas, enquanto a consulta do
MongoDB assume que as tags são armazenadas em cada documento de
postagem. Mas ambas as consultas demonstram a capacidade de consultar
combinações arbitrárias de atributos, que é a essência da capacidade de
consulta ad hoc .
Índices
Um elemento crítico das consultas ad hoc é que elas procuram valores que
você ainda não conhece quando cria o banco de dados. Conforme você
adiciona mais e mais documentos ao seu banco de dados, a busca por um
valor se torna cada vez mais cara; é uma agulha em um palheiro, em
constante expansão. Portanto, você precisa de uma maneira e�ciente de
pesquisar seus dados. A solução para isso é um índice.
A melhor maneira de entender os índices de banco de dados é por analogia:
muitos livros têm índices que combinam palavras-chaves com números de
página (BANKER et al ., 2016). Suponha que você tem um livro de receitas e
deseja encontrar todas as receitas que utilizam peras (talvez você tenha
muitas peras e queira utilizá-las antes que estraguem). A abordagem
demorada seria examinar cada receita e veri�car cada lista de ingredientes,
para ver se há peras no preparo. A maioria das pessoas preferiria veri�car o
índice para a entrada “peras”, que forneceria uma lista de todas as receitas
que contêm peras. Os índices de banco de dados são estruturas de dados que
fornecem esse mesmo serviço. Os índices, no MongoDB, são implementados
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 24/41
como uma estrutura de dados B-tree. Índices de árvore B, também usados em
muitos bancos de dados relacionais, são otimizados para uma variedade de
consultas, incluindo varreduras de intervalo e consultas com cláusulas de
classi�cação. Mas o WiredTiger tem suporte para log estruturado merge-trees
(LSM), que deve estar disponível na liberação para produção do MongoDB. 
A maioria dos bancos de dados dá, a cada documento ou linha, uma chave
primária, um identi�cador único para esse dado. A chave primária é
geralmente indexada automaticamente, para que cada dado possa ser
acessado de forma e�ciente, usando sua chave exclusiva, e o MongoDB não é
diferente. Mas cada banco de dados permite que você também indexe os
dados dentro dessa linha ou desse documento. Tais índices são chamados de
índices secundários. Muitos bancos de dados NoSQL, como HBase, são
considerados armazenamento valores-chave, porque não permitem nenhum
índice secundário (BANKER et al ., 2016). Esse é um recurso signi�cativo no
MongoDB; ao propiciarvários índices secundários, o MongoDB permite que
os usuários otimizem uma ampla variedade de consultas. Com o MongoDB,
você pode criar até 64 índices por coleção. Os tipos de índices suportados
saibamaisSaiba mais
Indexação é um assunto relevante para
qualquer tipo de tecnologia que recupere
informações. Nesse caso, vale a pena saber
mais sobre tais recursos e como utilizá-los
para melhorar a velocidade de recuperação
de dados. Uma das melhores referências
para o MongoDB é sua documentação o�cial.
Saiba mais, ao acessar o link a seguir.
A C E S S A R
https://docs.mongodb.com/manual/indexes/
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 25/41
incluem todos aqueles que você encontraria em um RDBMS; ascendente,
descendente, índices únicos, de chave composta, hash , de texto e até mesmo
geoespaciais são suportados. Como o MongoDB e a maioria dos RDBMSs
usam a mesma estrutura de dados para seus índices, o conselho para o
gerenciamento de índices, em ambos os sistemas, é semelhante. 
praticar
Vamos Praticar
Vimos que a construção de junções e a complexidade de um código para
recuperação de informações pode reduzir, drasticamente, ao se utilizar um banco
de dados não relacional. Isso pode ser de grande importância no dia a dia e facilitar
o desenvolvimento de aplicações para big data . A partir do que foi apresentado,
elabore um código de programação para recuperar a seguinte informação,
baseando-se no modelo não relacional:
SELECT * FROM posts
INNER JOIN posts_tags ON posts.id = posts_tags.post_id
INNER JOIN tags ON posts_tags.tag_id == tags.id
WHERE tags.text = 'economics' AND posts.vote_count > 5; 
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 26/41
Existem mais pontos importantes que podemos destacar com relação ao
modelo relacional. Por exemplo, a replicação de dados é comum para permitir
o escalonamento horizontal. A durabilidade das transações também é outro
ponto importante para o modelo de pares de chave-valor. Além disso, outro
recurso muito útil é a estratégica de dimensionamento dos bancos, para
suportar as cargas necessárias. Vamos ver alguns deles, com um pouco mais
de detalhes, na sequência.
Uma visão inicial dos bancos de dados NoSQL, em especial, o MongoDB, pode
ser resumida, de maneira a destacar os elementos fundamentais desse tipo
de tecnologia. O infográ�co a seguir apresenta tais informações.
Pontos AdicionaisPontos Adicionais
do Modelo nãodo Modelo não
RelacionalRelacional
NoSQL
1 2 3 4 5 6
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 27/41
#PraCegoVer : o infográ�co apresenta seis tópicos em linha horizontal que
destacam os elementos fundamentais dos bancos de dados NoSQL. Ao clicar no
primeiro tópico é apresentado o título “Big Data”, logo abaixo está o conceito
“Conjunto de ferramentas, princípios e técnicas utilizadas para gerenciar um
volume de dados muito grande”; ao lado do conceito há a imagem ilustrativa de
um monitor que apresenta um grá�co em barras. Cada uma das barras apresenta
uma cor: azul, vermelho, verde-água, amarelo, branco e roxo. No canto direito do
monitor, há três engrenagens, uma de cada cor: verde-água, azul e amarelo. Ao
clicar no segundo tópico é apresentado o título “Consultas ad hoc”, logo abaixo
está o conceito “Consultas em bancos de dados feitas para recuperar linhas de
acordo com os critérios de seleção”; ao lado do conceito há a imagem ilustrativa
de três bancos de dados seguidos, nas cores: verde-água, amarelo e azul-escuro.
Na parte superior dos bancos de dados há uma �echa vermelha, que inicia no
banco de dados azul escuro e vai até o amarelo. Na parte inferior dos bancos de
dados há uma �echa vermelha, que inicia no verde-água e vai até o azul-escuro.
Ao clicar no terceiro tópico é apresentado o título “dimensionamento”, logo
abaixo está o conceito “Estratégia para escalonar os recursos de software e
hardware para atender a demanda de usuários”; ao lado do conceito há a imagem
ilustrativa de um lápis azul claro, sobre uma folha com linhas. Na parte superior
da folha há uma linha horizontal com três marcações. A marcação do canto
Big data
Conjunto de ferramentas, princípios
e técnicas utilizadas para gerenciar
um volume de dados muito grande.
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 28/41
esquerdo apresenta um ícone de pessoa em cor verde-água. A marcação do meio
apresenta um ícone de pessoa em cor amarela. A marcação do canto direito
apresenta um ícone de pessoa em cor vermelha. Ao clicar no quarto tópico é
apresentado o título “Reaplicação”, logo abaixo está o conceito “Estratégia para
reduzir a indisponibilidade dos bancos de dados e aumentar seu poder de
processamento”; ao lado do conceito há a imagem ilustrativa de um monitor que
apresenta uma folha com linhas, na parte superior direita do monitor há três
engrenagens, uma de cada cor: verde-água, amarelo e vermelho. Ao lado do
monitor há um celular que apresenta uma folha com linhas. Entre as duas
imagens há uma �echa, que sai do monitor em direção ao celular. Ao clicar no
quinto tópico é apresentado o título “índices”, logo abaixo está o conceito
“Recurso utilizado para acelerar a recuperação dos dados em um banco de
dados”; ao lado do conceito há a imagem ilustrativa de mãos segurando um
tablet. O tablet apresenta uma linha crescente de grá�co, na cor vermelha e um
grá�co em barras, com quatro barras, nas cores: azul-claro, vermelho, verde-água
e amarelo. Ao clicar no sexto tópico é apresentado o título “Chave-valor”, logo
abaixo está o conceito “A forma básica de armazenamento de dados em um
banco de dados NoSQL, ao lado do conceito há a imagem ilustrativa de três
bancos de dados, nas cores: verde-água, amarelo e azul-escuro.
Replicação
O MongoDB fornece replicação de banco de dados por meio de uma
topologia conhecida como conjunto de réplicas. Conjuntos de réplicas
distribuem dados em duas ou mais máquinas, para redundância e para
automatizar failover , em caso de falhas no servidor e na rede. Além disso, a
replicação é usada para dimensionar leituras de banco de dados. Se você tiver
um aplicativo de leitura intensiva, como costuma ser o caso da web, é possível
espalhar leituras de bancos de dados entre máquinas no cluster (BANKER et
al., 2016).
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 29/41
Conjuntos de Réplicas
Os conjuntos de réplicas consistem em muitos servidores MongoDB,
geralmente, com cada servidor em uma máquina física separada; vamos
chamá-los de nós. A qualquer momento, um nó serve como o nó primário do
conjunto de réplicas, e um ou mais nós servem como secundários. Assim
como a replicação primary/secondary (primária/secundária), com a qual você
já deve estar familiarizado em outros bancos de dados, o nó primário de um
conjunto de réplicas pode aceitar ambos, leitura e escrita, mas os nós
secundários são somente para leitura. O que torna os conjuntos de réplicas
únicos é seu suporte para failover automatizado: se o nó primário falhar, o
cluster irá escolher um nó secundário e, automaticamente, promovê-lo ao
primário. Quando o antigo primário voltar on-line , fará isso como um
secundário. Uma ilustração desse processo é apresentada na Figura 1.3.
Figura 1.3 - Exemplo de funcionamento de um ambiente de replicação 
Fonte: Adaptada de Banker et al. (2016, p. 12).
#PraCegoVer : a imagem apresenta um exemplo de funcionamento de
replicação. Em (1), a replicação ocorre normalmente. Em (2), um dos nós falha. Por
�m, em (3), os nós se recon�guram para recuperar a replicação.
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K…30/41
Velocidade e Durabilidade
Para entender a abordagem do MongoDB para durabilidade, deve-se,
primeiramente, considerar algumas ideias. Nos sistemas de bancos de dados,
existe uma relação inversa entre velocidade de gravação e durabilidade.
A velocidade de gravação pode ser entendida como o volume de inserções,
atualizações e exclusões que um banco de dados pode processar em um
determinado momento (BANKER et al ., 2016). A durabilidade refere-se ao
nível de garantia de que as operações de gravação tornaram-se permanentes.
Por exemplo, suponha que você escreva 100 registros, de 50KB cada, para um
banco de dados e, em seguida, desligue o servidor. Esses registros serão
recuperáveis? Quando você coloca a máquina on-line novamente, ou seja, a
liga? A resposta depende do seu sistema de banco de dados, sua con�guração
e do hardware que o hospeda.
A maioria dos bancos de dados permite durabilidade por padrão, então, você
estará seguro se isso acontecer. Para algumas aplicações, como o
armazenamento de linhas de registro, pode fazer mais sentido ter gravações
mais rápidas, mesmo se houver risco de perda de dados. O problema é que
gravar em um disco rígido magnético é muitas vezes mais lento do que gravar
em RAM. Certos bancos de dados, como o Memcached, gravam
exclusivamente na RAM, o que os torna extremamente rápidos, mas
completamente voláteis. Por outro lado, poucos bancos de dados gravam
exclusivamente para o disco, porque o baixo desempenho de tal operação é
inaceitável. Portanto, os designers de banco de dados, muitas vezes, precisam
fazer concessões para fornecer o melhor equilíbrio entre velocidade e
durabilidade.
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 31/41
reflitaRe�ita
O mundo da tecnologia atual exige
uma velocidade de resposta muito
signi�cativa. Por exemplo, imagine que
você esteja assistindo a um vídeo e
lendo os comentários enquanto isso.
Caso esses comentários sejam
carregados de forma lenta, sua
experiência será ruim. Os bancos
NoSQL tentam resolver essa questão
privilegiando muito mais as leituras do
que as escritas, para que a experiência
de usuário não seja prejudicada.
Além disso, esses bancos permitem
que o acesso aos dados seja mais
veloz, utilizando técnicas de indexação
e escalonamento, vertical ou
horizontal. Tudo isso visando reduzir o
consumo de rede e manter o �uxo de
informação para uma melhor
experiência de usuário. Nesse cenário,
pense sobre como as tecnologias de
NoSQL possibilitam a entrega de
informação com a velocidade desejada
(BANKER et al ., 2016).
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 32/41
Dimensionamento
A maneira mais fácil de dimensionar a maioria dos bancos de dados é
atualizar o hardware. Se seu aplicativo está sendo executado em um único nó,
geralmente, é possível adicionar alguma combinação de discos, mais memória
e uma CPU mais robusta, para aliviar quaisquer gargalos de banco de dados.
A técnica de aumentar o hardware de um único nó para escala é conhecida
como escala vertical ou scaling up (BANKER et al ., 2016).
A escala vertical tem como vantagens ser simples, con�ável e econômica, até
certo ponto, mas, eventualmente, você chega a um ponto em que não é mais
viável mudar para uma máquina melhor. Então, faz sentido considerar o
dimensionamento horizontal ou horizontal (consulte a Figura 1.4). Em vez de
aumentar um único nó, escalar horizontalmente signi�ca distribuir o banco de
dados em várias máquinas. Uma arquitetura em escala horizontal pode ser
executada em muitas máquinas menores e mais baratas, geralmente,
reduzindo seus custos de hospedagem. Além disso, a distribuição de dados
pelas máquinas atenua as consequências da falha. Máquinas,
inevitavelmente, vão falhar de vez em quando. Se você escalou verticalmente
e a máquina falhou, então, você precisa lidar com a falha de uma máquina, da
qual a maior parte do seu sistema depende. Isso pode não ser um problema
se houver uma cópia dos dados em um secondary replicado, dessa forma,
ocorre que, se apenas um único servidor falhar, isso irá desativar todo o
sistema.
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 33/41
Compare isso a uma falha dentro de uma arquitetura dimensionada
horizontalmente. Isso pode ser menos catastró�co, porque uma única
máquina representa uma porcentagem muito menor do sistema como um
todo. O MongoDB foi projetado para tornar o dimensionamento horizontal
gerenciável. Isso é feito por meio de um mecanismo de particionamento
baseado em intervalo, conhecido como sharding , que gerencia
automaticamente a distribuição de dados entre os nós. Também há uma
fragmentação baseada em hash e tag mecanismo, mas é apenas outra forma
de mecanismo de fragmentação baseado em alcance (BANKER et al., 2016). O
sistema de fragmentação lida com a adição de nós de fragmentos e também
facilita failover automático. Fragmentos individuais são constituídos por um
conjunto de réplicas, que consiste em pelo menos dois nós, garantindo
recuperação automática sem ponto único de falha. Tudo isso signi�ca que
nenhum código de aplicativo precisa lidar com essa logística; o código do seu
Figura 1.4 - Dimensionamento do banco de dados não relacional 
Fonte: Adaptada de Banker et al. (2016, p. 14).
#PraCegoVer : a imagem apresenta um exemplo de escalonamento
(dimensionamento) do banco de dados não relacional. Isso pode ser feito
verticalmente, com o aumento da capacidade do hardware; ou horizontalmente,
com o aumento de nós do banco de dados.
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 34/41
aplicativo se comunica com um cluster fragmentado da mesma forma que se
comunica com um único nó.
praticar
Vamos Praticar
Escalonamento ou dimensionamento é uma tarefa comum em ambientes de big
data. Para isso, há duas possibilidades para realizar tal operação. Nesse caso, o
escalonamento vertical exige um aumento de hardware, em termos de capacidade.
Por outro lado, o escalonamento horizontal pode ser feito com hardwares
heterogêneos e de menor capacidade.
A partir do que foi apresentado, explique, em um parágrafo de, no máximo, 4
(quatro) linhas, quando o escalonamento vertical deve ser utilizado e qual sua
limitação.
Como podemos observar em nosso estudo, existem alguns conceitos que
estão presentes tanto no domínio dos bancos de dados relacionais como nos
não relacionais. A diferença fundamental entre eles está na forma de
armazenamento dos dados. Enquanto os bancos relacionais estão no formato
de tuplas, nos bancos de dados não relacionais estão no formato de pares
chave-valor.
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 35/41
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 36/41
Material
Complementar
indicações
FILME
Moneyball
Ano : 2011
Comentário : este �lme apresenta uma visão geral de
como o big data pode auxiliar no desenvolvimento de
soluções para o esporte. Nele, podemos ver como os
dados são fundamentais para qualquer tipo de solução.
Para isso, o motor que permite tal desenvolvimento são
os bancos de dados NoSQL. Para conhecer mais sobre
o �lme, acesse o trailler a seguir.
T R A I L E R
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 37/41
LIVRO
Big Data
Editora : Elsevier
Autores: Viktor Mayer-Schonberer e Kenneth Cukier
ISBN : 8535270906, 9788535270907
Comentário : este livro trata de como extrair valor dos
dados disponibilizados nocotidiano e que podem
passar despercebidos. É uma grande fonte de insights
que vai permitir que você entenda como os bancos
NoSQL podem auxiliar em tais tarefas.
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 38/41
Conclusão
Vimos como a demanda por dados tem crescido e como eles estão
disponíveis diariamente, para que todos possam criar soluções úteis em
diversos cenários. Uma dessas soluções refere-se ao conceito de NoSQL ou,
em outras palavras, bancos de dados não relacionais. Um dos grandes
representantes desse tipo de tecnologia é o banco de dados MongoDB. Ele
permite criar soluções para cenários de big data de forma escalonável. Além
disso, vimos como tais soluções exigem tecnologias complementares aos
bancos de dados relacionais, como os bancos de dados não relacionais. Tais
tecnologias devem ser encaradas não como uma melhoria dos bancos
relacionais, mas, sim, como algo que deve ser utilizado em conjunto, para
suprir a demanda por informações.
conclusão
Referências
Bibliográ�cas
BANKER, K. et al . MongoDB in action . 2. ed. New York: Manning Publications
Co., 2016.
referências
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 39/41
CAMPELLO, B.; CALDEIRA, P. D. T. Introdução às fontes de informação . 3.
ed. Belo Horizonte: Autêntica Editora, 2014.
CIELEN, D.; MEYSMAN, A. D. B.; ALI, A. Introducing data science . Big data,
machine learning, and more, using Python tools. New York: Manning
Publications Co., 2016.
DOURADO, D. Big data . 1. ed. São Paulo. Editora Brasport, 2013.
MONEYBALL (2011) Movie Trailer – HD – Brad Pitt. 2010. 1 vídeo (2 min 30s).
Publicado pelo canal Movieclips Trailers. Disponível em:
https://www.youtube.com/watch?v=-4QPVo0UIzc . Acesso em: 24 nov. 2020.
MONGODB. Indexes . Disponível em:
https://docs.mongodb.com/manual/indexes/ . Acesso em: 24 nov. 2020.
https://www.youtube.com/watch?v=-4QPVo0UIzc
https://docs.mongodb.com/manual/indexes/
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 40/41
05/06/2022 14:31 Ead.br
https://student.ulife.com.br/ContentPlayer/Index?lc=iC4B%2bEzw7KX86eOUj4yj1g%3d%3d&l=7%2fjQdvxuaUtCYN6aW7ddEA%3d%3d&cd=K… 41/41

Continue navegando