Buscar

10-banco-de-dados-NoSQL


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 25 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 25 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 25 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

Bancos de dados NoSQL
Bancos de dados NoSQL
3
Apresentação
Prezado(a) aluno(a), nesta unidade, aprenderemos os principais conceitos sobre os 
bancos de dados não relacionais, também chamados de NoSQL, e suas diferenças 
com os bancos relacionais e entre si.
4
1. Introdução aos bancos de dados 
NoSQL
Os sistemas NoSQL (Not only SQL), ou sistemas não somente SQL surgiram a partir 
da necessidade de empresas e organizações que tinham aplicações gigantescas 
com armazenamento de grandes massas de dados. Imagine, por exemplo, o serviço 
de e-mail do Google ou do Hotmail.
Sistema gerenciador do banco de dados
Fonte: Plataforma Deduca (2019).
#PraCegoVer: na imagem, há uma tela de computador com ícones de vídeo, 
arquivo, HD, aspas e de configuração.
Praticamente todas as pessoas do mundo têm pelo menos um desses dois. Como 
armazenar tantas informações? Os bancos de dados relacionais não conseguiam 
mais suprir essa carência. Por isso, esse tipo de sistema foi criado para gerenciar 
milhões de mensagens de e-mail.
Os sistemas que utilizavam a linguagem SQL e eram baseados em relações (bancos 
de dados relacionais) ofereciam muitos recursos complexos, como controle de 
transações, consultas otimizadas para escrita ou leitura, dentre outras coisas, que 
não eram necessários para o armazenamento dos dados. 
5
Evoluindo, testando e melhorando
Fonte: Plataforma Deduca (2019).
#PraCegoVer: na imagem, há desenhos representando pessoas que viviam na 
Pré-História em várias situações cotidianas.
Outro ponto é o modelo estruturado que o banco relacional exigia antes de sua 
criação – era preciso ter todo o modelo de dados, os atributos, suas relações, entre 
outros (MEDEIROS, 2013). 
Esse modelo é muito restritivo e não é razoável algo tão complexo de antemão para 
as organizações.
6
2. Bancos de dados NoSQL
Os sistemas chamados NoSQL são um conjunto de ferramentas que fornecem 
técnicas mais eficientes de armazenamento para as aplicações que utilizam 
quantidades enormes de dados. 
Geralmente, essas massas de dados são fornecidas por aplicações que exigem 
comunicação constante dos usuários. A seguir, veja como são geradas as grandes 
massas de dados atualmente e quais os principais sistemas geradores de dados.
Grandes massas de dados
As redes sociais, como Facebook, Twitter, WhatsApp, dentre outros, são a 
principal causa da grande quantidade de dados. As redes sociais têm milhões 
de usuários no mundo todo, gerando grandes quantidades de informações de 
forma constante.
Avanço das redes sociais
Com o grande crescimento das redes sociais e com a adesão cada vez 
maior da população, elas têm tornado esse crescimento de dados acelerado, 
produzindo cada vez mais informações com tendência a aumentar ainda mais.
Para trabalhar com esses conjuntos de grandes quantidades de dados, os sistemas 
precisam ter uma escalabilidade alta e facilitada, permitindo atender às demandas 
sem perda na qualidade do serviço ou indisponibilidade.
7
3. Banco de dados e valores
Os bancos de dados não relacionais surgiram para suprir essa demanda dos 
sistemas pelo gerenciamento de grandes massas de dados e, paralelamente, de 
áreas de pesquisa, como mineração de dados e gerenciamento inteligente dos 
dados. Com análises por técnicas de inteligência artificial, os bancos de dados não 
relacionais ganharam espaço nesse novo contexto mundial.
Os sistemas NoSQL não assumem estruturas predefinidas, como os modelos dos 
bancos de dados relacionais. No sistema NoSQL, os dados são armazenados em um 
mesmo registro, não tendo relacionamento entre as tabelas de dados.
Banco de dados chave-valor
É um modelo muito utilizado pelas aplicações do Google. Ele permite o 
armazenamento de qualquer objeto ou valor a partir de uma chave única, 
como “NomeColaborador1”, “Antônio Maria José”; “NomeColaborador2”, 
“Josefa Maria”, e assim por diante. Exemplos: Aerospike, Dynamo, ArangoDB, 
Couchbase, FairCom, FoundationDB, InfinityDB, Oracle NoSQL Database, Riak e 
Berkeley DB.
8
Banco de dados baseado em grafos
Banco de dados baseado em grafos
Fonte: Elaborada pelo autor (2019).
Nesse modelo, os dados são armazenados em um grafo, em que cada vértice 
armazena um dado. Esse tipo de banco permite a análise dos dados de forma 
mais complexa. Exemplos: AllegroGraph, ArangoDB, InfiniteGraph, Apache 
Giraph, MarkLogic, Neo4J, OrientDB e Virtuoso.
Banco de dados baseado em tabulares
Banco de dados baseado em tabulares
Fonte: Elaborada pelo autor (2019).
Esse tipo de banco faz uso de grandes tabelas, e as chaves são os caminhos 
para as colunas. É muito utilizado para dividir os dados entre diversos 
computadores. Exemplos: Accumulo, Cassandra, Druid, Hbase e Vertica.
9
Banco de dados baseado em documentos
Banco de dados baseado em documentos
Fonte: Elaborada pelo autor (2019).
Nessa abordagem, cada registro a ser armazenado é convertido para um 
documento. Cada documento é composto por elementos, sendo o documento 
uma estrutura dinâmica e flexível. Assim, tal estrutura pode ser alterada a 
qualquer momento.
Bancos de dados 
NoSQL
Bancos de dados NoSQL
3
Apresentação
Olá, estudante. Nesta unidade, vamos conhecer como funciona de forma 
aprofundada o banco de dado NoSQL Cassandra. Ele é amplamente utilizado na 
indústria e na pesquisa por oferecem escalabilidade e confiabilidade dos dados, 
além disso consegue trabalhar com grandes massas de dados.
4
1. Surgimento e características dos 
bancos de dados NoSQL 
A Google desenvolveu um sistema de armazenamento próprio chamado de BigTable, 
utilizado pelos serviços da empresa, como Google Drive, Google Gmail, Google Maps, 
dentre outros, para o armazenamento das grandes quantidades de dados. A Google 
fornece uma API (Application Program Interface) para quem desejar utilizar o seu 
sistema de armazenamento, podendo fazer uso da tecnologia desenvolvida.
Storage options
Fonte: Plataforma Deduca (2021).
#PraCegoVer: na imagem de fundo escuro, há quatro ícones, o primeiro é de um 
HD, o segundo é de um cartão de memória, o terceiro é de uma entrada USB e, 
por fim, o último é uma nuvem.
A empresa Apache produziu um sistema muito parecido com o BigTable do Google, 
chamado de Hbase. O Hbase tem código aberto e utiliza conceitos semelhantes aos 
empregados no BigTable. Esses sistemas criaram uma nova categoria de sistemas 
de armazenamento de dados chamada de armazenamento baseado em colunas ou 
largura de colunas, também conhecida por família de colunas.
Em outra vertente, a Amazon também produziu um sistema NoSQL chamado de 
DynamoDB, utilizado em praticamente todos os serviços da Amazon na nuvem. 
Esse avanço nas tecnologias de armazenamento levou à criação de outra categoria, 
o armazenamento de dados baseados em chave-valor, também chamado de 
armazenamento de dados chave-tupla ou chave-objeto.
5
Disco rígido
Fonte: Plataforma Deduca (2021).
#PraCegoVer: fotografia de um disco rígido (HD).
Ainda na sequência do desenvolvimento de tecnologias pela indústria, o Facebook 
desenvolveu um sistema NoSQL chamado de Cassandra, que, hoje, é de código 
aberto e mantido pela Apache Foundation, conhecido como Apache Cassandra. Esse 
sistema faz uma junção das melhorias alcançadas pelos sistemas de chave-valor e 
pelos sistemas baseados em colunas.
Nesta seção, vamos descrever em detalhes os principais bancos de dados da 
categoria chave-valor, especificamente os bancos de dados Cassandra e DynamoDB. 
6
2. Banco de dados Cassandra 
O Cassandra é um dos primeiros colocados nos bancos de dados não relacionais. 
Aos poucos os bancos de dados NoSQL estão ganhando mercado. A tendência é 
que eles substituam os bancos de dados relacionais com o passar dos anos. 
A seguir, vamos abordar a relação dos bancos NoSQL com os relacionais e suas 
tecnologias.
• Bancos de dados NoSQL
Devemos nos perguntar o motivo de esses bancos de dados NoSQL estarem 
ganhando uso enquanto os relacionais estão perdendo mercado. Como já 
vimos, há diversas características positivasquanto ao uso dos bancos de 
dados NoSQL, principalmente o manuseio de grandes massas de dados e a 
escalabilidade para qualquer tipo de sistema, grande ou pequeno.
• Baixo custo
A integração dos bancos de dados NoSQL com as tecnologias que utilizam 
nuvens de dados tem garantido baixo custo da manutenção dos sistemas.
Além disso, há diversos eventos esporádicos que demandam muito poder 
computacional e de armazenamento simultâneo que não são necessários nos 
demais períodos. Por exemplo, o período de inscrições do Enem, o período de 
declaração do imposto de renda, as promoções anuais, entre outros. Esses eventos 
demandam que a organização tenha uma grande infraestrutura preparada para 
receber todas as requisições. Se a empresa optar por construir uma infraestrutura 
própria, terá prejuízo todo o resto do ano, havendo custos para manter a estrutura 
com uso limitado.
Nesses cenários descritos anteriormente, os bancos de dados NoSQL têm ganhado 
bastante mercado porque conseguem atingir os objetivos dos clientes com baixo 
custo e fácil manutenção.
7
3. Arquitetura do banco de dados 
Cassandra
O banco de dados Cassandra foi desenvolvido pelo Facebook para utilização 
conjunta com os mecanismos de busca das mensagens. Em 2008 o Cassandra virou 
um sistema de código aberto e, em 2009, passou a ser mantido pela Apache. 
Topologia baseada em anel
Fonte: Plataforma Deduca (2021).
#PraCegoVer: na imagem, há um círculo sendo dividido em sete setores deno-
minados de intervalos.
O Cassandra é uma fusão de alguns conceitos presentes no banco de dados 
DynamoDB, desenvolvido pela Amazon, e no BigTable, desenvolvido pela Google. 
Por utilizar alguns conceitos já consolidados nos bancos de dados anteriores, 
o Cassandra ganhou grande repercussão pelos aprimoramentos e ganhos de 
desempenho quando comparado a seus antecessores.
Além disso, esse sistema é compatível com todas as versões dos sistemas 
operacionais Linux e MacOS. Também há compatibilidade para algumas versões do 
Windows. Vale destacar que esse sistema foi projetado para trabalhar em um ambiente 
distribuído, podendo operar de forma local, mas com restrições de desempenho, sendo 
equivalente a um banco de dados relacional. Os benefícios do Cassandra somente são 
alcançados com o uso em um ambiente distribuído e escalável.
8
Somado a isso, veja a seguir como os dados se estruturam no Sistema Cassandra.
Estrutura dos dados no Cassandra
Fonte: Plataforma Deduca (2021).
#PraCegoVer: fluxograma que representa a estrutura de dados. Nele, há uma 
tabela com as linhas chave com as respectivas colunas e valores.
Uma caraterística fundamental do banco de dados Cassandra é sua arquitetura 
descentralizada, diferentemente da arquitetura master-slave presente em outros 
sistemas de banco de dados NoSQL. Na arquitetura do Cassandra, todos os nós 
da rede têm as mesmas características, sendo possível substituir um nó ou suas 
atividades atribuídas por um outro nó, sem perda nos dados.
Na arquitetura Cassandra não temos um único ponto de falha, melhorando o 
desempenho e a disponibilidade do sistema. Além disso, os nós da rede não 
compartilham recursos de hardware, como discos de dados, processamento ou 
memória. A utilização dessas características é chamada de arquitetura shared-
nothing, em que nada é compartilhado. O uso dessa arquitetura evita o aparecimento 
de gargalos de comunicação no sistema e concede maior autonomia entre os nós, 
permitindo que sejam heterogêneos, ou seja, com hardware diferente.
Nesse sentido, estudante, também é válido observar a respeito da escalabilidade 
desse sistema. Em relação a isso, acompanhe o recurso a seguir:
• Característica 1: 
O banco de dados Cassandra é altamente escalável por ter uma arquitetura 
descentralizada e distribuída. 
9
• Característica 2:
Essa escalabilidade é destacada principalmente na forma horizontal, em que é 
possível adicionar diversos nós na rede de forma facilitada.
Dando continuidade ao que foi visto, estudante, é possível retirar nós se a demanda 
de requisições for enxugada. Essa redução pode auxiliar na diminuição dos custos 
do sistema e reduzir tempo com manutenção. Todos esses recursos podem ser 
combinados com uma abordagem na nuvem, aumentando ainda mais o poder 
computacional do banco de dados Cassandra.
No gerenciamento interno do banco de dados Cassandra, os dados das tabelas 
são processados por uma tecnologia chamada partition key, em que é feito o 
particionamento dos dados baseado nas chaves primárias das tabelas. Após, 
as diversas partições podem ser distribuídas entre os diversos nós da rede de 
comunicação do banco de dados. 
Por fim, é relevante ressaltar que a técnica de data sharding é utilizada para fazer a 
distribuição otimizada das partições nos nós da rede. Lembre-se de que cada nó da 
rede pode armazenar zero ou várias partições, depende da estrutura e do tamanho 
da rede.
CouchDB e sua estrutura
CouchDB e sua estrutura
3
Apresentação
Olá! Seja bem-vindo(a). Nas próximas páginas, vamos aprender mais sobre o banco 
de dados CouchDB. Assim, você vai entender as técnicas de mapeamento e redução 
(MapReduce) aplicadas a esse banco de dados, bem como ao framework Hadoop.
4
1. CouchDB
O CouchDB oferece uma interface de comunicação RESTful utilizando HTTP para 
leitura, escrita, atualização e deleção dos documentos na base de dados. A interface 
RESTful oferece diversos benefícios para as aplicações baseadas na web e na 
descoberta de serviços pela rede.
Pesquisa de rede
Fonte: Plataforma Deduca (2019).
#PraCegoVer: Na imagem, há uma mão segurando uma lupa e analisando um 
papel com gráficos.
Dentro do CouchDB, os documentos são organizados utilizando um modelo de 
dados chamado de B-trees, usando o identificador do documento como chave para 
a árvore. A cada nova inserção ou atualização de um documento é gerado um novo 
identificador para o novo objeto, permitindo a rastreabilidade dos documentos e 
dos históricos.
5
Redes e sistemas
Fonte: Plataforma Deduca (2019).
#PraCegoVer: na imagem, o globo terrestre está imerso em um mar de códigos 
binários.
Cada vez que um documento é inserido ou modificado, a árvore é atualizada com 
os novos índices, mantendo os mais recentes. Sempre que necessário, a árvore 
é consultada para encontrar um documento específico. O modelo em árvore 
tem diversos benefícios. Por exemplo, é possível acessar dados profundos na 
árvore com maior rapidez, além disso, alguns permitem tempo igual para acessar 
qualquer nó da árvore.
6
2. Dados
Diferentemente do SQL, o CouchDB armazena os dados de uma forma 
semiestruturada, não necessitando da decomposição dos dados em tabelas. 
A estrutura de um documento CouchDB está embutida no próprio arquivo que 
armazena o dado, permitindo que outros serviços possam entender a estrutura do 
dado em tempo de execução.
Em relação a isso, estudante, observe o recurso a seguir, o qual aprofunda o 
tema tratado:
Dados do setor tecnológico
Algumas características importantes desse novo cenário é que podemos 
armazenar toda a música do mundo atualmente em um disco de 600 dólares. 
Todos os meses, 30 bilhões de itens de conteúdo são armazenados pelo 
Facebook. Há mais dados armazenados em 15 dos 17 setores da economia 
dos Estados Unidos do que na biblioteca do congresso norte-americano, que 
armazenou 235 terabytes desde 2011.
Relação de empregabilidade
São necessários mais de 140 mil cargos de análise profunda nos dados e mais 
de 1,5 milhão de gerentes com experiência em dados nos Estados Unidos.
Além disso, os órgãos governamentais estão migrando seus sistemas para a 
internet, tornando todos os processos organizacionais o mais digital possível.
Outro fator impactante é a geração de dados a partir dos dispositivos embarcados, 
entre eles, os smartphones. Esse tipo de dispositivo tem vários sensores que 
fornecem dados de forma constante, na ordem dos milissegundos ou segundos, 
contribuindo para o grande crescimento dos dados. Também temos osaplicativos de 
navegação que recebem a localização do GPS do usuário e informam as melhores 
rotas. A localização do usuário é atualizada de forma frequente, transferindo muitos 
dados na rede.
Por fim, os sistemas que analisam as grandes massas de dados podem atuar para 
otimizar os recursos dos setores de agricultura, saúde, economia, dentre outros.
7
3. Introdução ao mapeamento e à 
redução
As técnicas de mapeamento e redução, embora estejam em destaque atualmente, 
não são novidade desde 2004. Porém, essas técnicas foram aplicadas dentro dos 
bancos de dados, inovação que provê benefícios até hoje.
Mapeamento
Fonte: Plataforma Deduca (2019).
#PraCegoVer: Na imagem, há uma pilha de papéis voando em direção a um 
funil, o qual leva a uma máquina que, na saída dela, em uma esteira, compacta 
os papeis.
Elmasri e Navathe (2018, p. 827) destacam que o modelo de programação 
MapReduce e seu ambiente de runtime foram descritos pela primeira vez por Jeffrey 
Dean e Sanjay Ghemawat, com base em seu trabalho no Google. Nele, os usuários 
escrevem seus programas em um estilo funcional de tarefas de mapear e reduzir, 
automaticamente paralelizadas e executadas em grandes clusters de hardware. 
O paradigma de programação já existia desde a linguagem LISP, projetada por John 
McCarthy no final da década de 1950. No entanto, a reencarnação desse modo de 
realizar programação paralela e a maneira como esse paradigma foi implementado 
no Google deram origem a uma nova onda de pensamento que contribuiu para os 
desenvolvimentos subsequentes de tecnologias, como o Hadoop.
8
Nesse viés, estudante, vale ressaltar que o conceito de MapReduce parte do princípio 
de exploração dos benefícios da computação distribuída. Os problemas podem ser 
mapeados e então reduzidos. Primeiro executa-se uma função de mapeamento 
para entender o formato dos dados e, então, uma função de redução é aplicada para 
realizar o processamento que se deseja. 
Internet
Fonte: Plataforma Deduca (2019).
#PraCegoVer: na imagem, há fileiras de números, representando dados em rede.
Os dados são distribuídos entre os nós da rede baseados na saída gerada na 
função de mapeamento, garantindo que dados "similares" possam estar no mesmo 
nó, facilitando o processamento. Em seguida, cada nó executa os novos dados 
recebidos, de acordo com a chave gerada na função de mapeamento. 
É importante destacar que a função de redução é realizada em paralelo nos 
diferentes nós, daí a grande potência desse método para buscar dados.
Essa forma de processar os dados não é realizada nos bancos de dados relacionais, 
nos quais, sempre que se deseja buscar ou comparar um dado sem índice, 
percorremos todo o banco de dados, comparando um a um, reduzindo drasticamente 
o desempenho. 
Assim, quanto mais nós da rede tivermos, mais rápido poderá ser o processamento 
das operações, ficando cada nó com menos trabalho e agilizando o processamento 
global com o paralelismo das operações.
9
A figura a seguir ilustra o resumo dos procedimentos da técnica de map e reduce.
Sumário da técnica de mapeamento e redução
Split 0
Sort
Cópia
Merge
Saída
Entrada
Map
Split 1
Arquivo
de saída 0
Map
Reduce
Merge
Arquivo
de saída 1Reduce
Split 2 Map
Fonte: Elmasri e Navathe (2018, p. 828, adaptada).
#PraCegoVer: Na imagem, há um fluxograma contento o sumário da técnica de 
mapeamento e redução.
Podemos perceber na figura anterior que os dados são divididos (Split) e mapeados 
de forma local em cada nó. Em seguida, eles são classificados em grupos a partir da 
chave e então copiados para os nós que têm a mesma chave. Por fim, é realizada a 
técnica de reduce para juntar as avaliações individuais dos nós em uma informação 
útil ao usuário requisitante.
11
Referências
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 7. ed. São Paulo: 
Pearson, 2018.
HAUGER, W. K.; OLIVIER, M. S. NoSQL databases: forensic attribution implications. 
SAIEE Africa Research Journal, n. 2, p. 119. 2018
RAMAKRISHNAN, R. Sistemas de gerenciamento de banco de dados. Porto Alegre: 
AMGH, 2008.

Continue navegando