Aula 2 - O Que É NoSQL
Aula 2 - O Que É NoSQL
3
O QUE E NOSQL
4
O QUE E NOSQL
5
PARA QUE E USADO UM BANCO DE DADOS NOSQL?
6
PARA QUE E USADO UM BANCO DE DADOS NOSQL?
7
PARA QUE E USADO UM BANCO DE DADOS NOSQL?
8
PARA QUE E USADO UM BANCO DE DADOS NOSQL?
9
SQL VERSUS NOSQL
10
SQL VERSUS NOSQL
11
SQL VERSUS NOSQL
12
SQL VERSUS NOSQL
13
BANCO DE DADOS RELACIONAL VERSUS BANCO DE
DADOS NOSQL
14
BANCO DE DADOS RELACIONAL VERSUS BANCO DE
DADOS NOSQL
► Para entender os bancos de dados NoSQL, é importante
saber qual é a diferença entre banco de dados relacional e
tipos não relacionais de bancos de dados.
15
BANCO DE DADOS RELACIONAL VERSUS BANCO DE
DADOS NOSQL
► Os dados são armazenados em objetos de banco de dados
que são chamados de tabelas.
► Uma tabela é uma coleção de entradas de dados
relacionadas e consiste em colunas e linhas.
16
BANCO DE DADOS RELACIONAL VERSUS BANCO DE
DADOS NOSQL
► Esses bancos de dados requerem a definição do esquema
com antecedência, ou seja, todas as colunas e seus tipos de
dados associados devem ser conhecidos de antemão para
que os aplicativos possam gravar dados no banco de dados.
17
BANCO DE DADOS RELACIONAL VERSUS BANCO DE
DADOS NOSQL
► Eles também armazenam informações vinculando várias
tabelas por meio do uso de chaves, criando assim um
relacionamento entre várias tabelas.
► No caso mais simples, uma chave é usada para recuperar
uma linha específica para que ela possa ser examinada ou
modificada.
18
QUANDO ESCOLHER UM BANCO DE DADOS NOSQL?
19
QUANDO ESCOLHER UM BANCO DE DADOS NOSQL?
20
QUANDO NÃO ESCOLHER UM BANCO DE DADOS
NOSQL?
21
QUANDO NÃO ESCOLHER UM BANCO DE DADOS
NOSQL?
► Os bancos de dados NoSQL normalmente dependem de
dados desnormalizados, suportando os tipos de aplicativos
que usam menos tabelas (ou contêineres) e cujos
relacionamentos de dados não são modelados usando
referências, mas sim como registros (ou documentos)
incorporados.
22
QUANDO NÃO ESCOLHER UM BANCO DE DADOS
NOSQL?
► Muitos aplicativos de negócios de back-office clássicos em
finanças, contabilidade e planejamento de recursos
corporativos contam com dados altamente normalizados para
evitar anomalias de dados, bem como a duplicação de
dados.
► Esses são os tipos típicos de aplicativos que não são
adequados para um Banco de Dados NoSQL.
23
QUANDO NÃO ESCOLHER UM BANCO DE DADOS
NOSQL?
► Outra distinção dos bancos de dados NoSQL é a
complexidade da consulta.
► Os bancos de dados NoSQL funcionam incrivelmente bem
com consultas em uma única tabela.
24
QUANDO NÃO ESCOLHER UM BANCO DE DADOS
NOSQL?
► Conforme a complexidade das consultas aumenta, os bancos
de dados relacionais são uma escolha melhor.
► O banco de dados NoSQL normalmente não oferece junções
complexas, subconsultas e aninhamento de consultas em
uma cláusula WHERE (onde).
25
QUANDO NÃO ESCOLHER UM BANCO DE DADOS
NOSQL?
► Não é necessário escolher entre bancos de dados relacionais
e não relacionais.
► Em muitas ocasiões, as empresas optaram por bancos de
dados que oferecem um modelo convergente, no qual podem
empregar uma combinação de modelos de dados relacionais
e não relacionais.
26
QUANDO NÃO ESCOLHER UM BANCO DE DADOS
NOSQL?
► Essa abordagem híbrida oferece maior flexibilidade no
tratamento de diferentes tipos de dados, ao mesmo tempo
que garante a consistência de leitura e gravação sem
degradar o desempenho.
27
O QUE O NOSQL OFERECE QUE OUTROS BANCOS DE
DADOS NÃO OFERECEM?
28
O QUE O NOSQL OFERECE QUE OUTROS BANCOS DE
DADOS NÃO OFERECEM?
► Um dos principais diferenciais entre os bancos de dados
NoSQL e outros tipos de bancos de dados é que os bancos
de dados NoSQL geralmente usam armazenamento não
estruturado.
29
O QUE O NOSQL OFERECE QUE OUTROS BANCOS DE
DADOS NÃO OFERECEM?
► Desenvolvidos nas últimas duas décadas, os bancos de
dados NoSQL foram projetados para consultas rápidas e
simples, vastos dados e mudanças frequentes de aplicativos.
► Além disso, esses bancos de dados também tornam a
programação muito mais simples para os desenvolvedores.
30
O QUE O NOSQL OFERECE QUE OUTROS BANCOS DE
DADOS NÃO OFERECEM?
► Diferenciador importante é que os bancos de dados NoSQL
dependem de um processo chamado "fragmentação" para
escalar horizontalmente, o que significa que mais máquinas
podem ser adicionadas para lidar com dados em vários
servidores.
31
O QUE O NOSQL OFERECE QUE OUTROS BANCOS DE
DADOS NÃO OFERECEM?
► A escala vertical encontrada em outros bancos de dados SQL
requer a adição de mais potência e memória à máquina
existente, o que pode ser insustentável à medida que mais e
mais armazenamento é necessário.
32
O QUE O NOSQL OFERECE QUE OUTROS BANCOS DE
DADOS NÃO OFERECEM?
► A natureza do escalonamento horizontal com bancos de
dados NoSQL significa que eles podem lidar com
quantidades extremamente grandes de dados e mesmo
enquanto os dados estão crescendo de maneira mais
eficiente.
► Na escala vertical como adicionar um novo andar à sua casa,
enquanto a escala horizontal é como construir outra casa ao
lado da original.
33
BENEFÍCIOS DE UM BANCO DE DADOS NOSQL
34
BENEFÍCIOS DE UM BANCO DE DADOS NOSQL
► A velocidade e escala sem precedentes da interação digital e
do consumo de dados observada nas últimas duas décadas
exigiram que as empresas adotassem uma abordagem mais
moderna e fluida de como armazenam dados e como os
acessam.
35
BENEFÍCIOS DE UM BANCO DE DADOS NOSQL
► Com usuários em todo o mundo exigindo um fluxo
ininterrupto de conteúdo e funções, não é de se admirar que
os bancos de dados tenham que adaptar-se rapidamente.
36
BENEFÍCIOS DE UM BANCO DE DADOS NOSQL
► Flexibilidade:
► Com os bancos de dados SQL, os dados são armazenados
em uma estrutura predefinida muito mais rígida.
► Mas com o NoSQL, os dados podem ser armazenados de
uma forma mais livre, sem aqueles esquemas rígidos.
37
BENEFÍCIOS DE UM BANCO DE DADOS NOSQL
► Flexibilidade:
► Este design permite inovação e rápido desenvolvimento de
aplicativos.
► Os desenvolvedores podem se concentrar na criação de
sistemas para melhor atender seus clientes, sem preocupar-
se com os esquemas.
38
BENEFÍCIOS DE UM BANCO DE DADOS NOSQL
► Flexibilidade:
► Os bancos de dados NoSQL podem lidar facilmente com
qualquer formato de dados, como dados estruturados,
semiestruturados e não estruturados em um único
armazenamento de dados.
39
BENEFÍCIOS DE UM BANCO DE DADOS NOSQL
► Escalabilidade: Em vez de escalar adicionando mais
servidores, os bancos de dados NoSQL podem escalar
usando hardware comum.
► Ao expandir, os bancos de dados NoSQL podem se tornar
maiores e mais poderosos, e é por isso que eles se tornaram
a opção preferida para conjuntos de dados em evolução.
40
BENEFÍCIOS DE UM BANCO DE DADOS NOSQL
► Alto Desempenho:
► A arquitetura de expansão de um banco de dados NoSQL
pode ser particularmente valiosa quando o volume de dados
ou o tráfego aumenta.
41
BENEFÍCIOS DE UM BANCO DE DADOS NOSQL
► Alto Desempenho:
► Essa arquitetura garante tempos de resposta rápidos e
previsíveis em milissegundos de um dígito.
► Os bancos de dados NoSQL também podem ingerir dados e
entregá-los de forma rápida e confiável, e é por isso que os
bancos de dados NoSQL são usados em aplicativos que
coletam terabytes de dados todos os dias, ao mesmo tempo
que exigem uma experiência de usuário altamente interativa.
42
BENEFÍCIOS DE UM BANCO DE DADOS NOSQL
► Disponibilidade: Os bancos de dados NoSQL replicam
dados automaticamente em vários servidores, data centers
ou recursos de nuvem.
► Por sua vez, isso minimiza a latência para os usuários, não
importa onde eles estejam localizados.
► Esse recurso também reduz a carga de gerenciamento do
banco de dados, o que libera tempo para concentrar-se em
outras prioridades.
43
BENEFÍCIOS DE UM BANCO DE DADOS NOSQL
► Altamente Funcional: Os bancos de dados NoSQL são
projetados para armazenamentos de dados distribuídos que
têm necessidades de armazenamento de dados
extremamente grandes.
► Isso é o que torna o NoSQL a escolha ideal para big data,
aplicativos da web em tempo real, cliente 360, compras
online, jogos online, IoT Internet of things, redes sociais e
aplicativos de publicidade online.
44
TIPOS DE BANCOS DE DADOS NOSQL
45
TIPOS DE BANCOS DE DADOS NOSQL
► Valor-chave: Este é o tipo mais flexível de banco de dados
NoSQL porque o aplicativo tem controle total sobre o que é
armazenado no campo de valor sem quaisquer restrições.
46
TIPOS DE BANCOS DE DADOS NOSQL
47
TIPOS DE BANCOS DE DADOS NOSQL
► Documento:
► Também conhecidos como armazenamento de documentos
ou bancos de dados orientados a documentos, esses bancos
de dados são usados para armazenar, recuperar e gerenciar
dados semiestruturados.
► Não há necessidade de especificar quais campos um
documento conterá.
48
TIPOS DE BANCOS DE DADOS NOSQL
► Documento:
► Cada documento é uma coleção de pares chave-valor
usualmente baseado nos formatos XML, CSV ou JSON.
► Permite a realização de consultas mais elaboradas,
envolvendo filtros por atributos e a possibilidade de uso de
índices
49
TIPOS DE BANCOS DE DADOS NOSQL
Documento
50
TIPOS DE BANCOS DE DADOS NOSQL
CSV
51
TIPOS DE BANCOS DE DADOS NOSQL
JSON
52
TIPOS DE BANCOS DE DADOS NOSQL
XML
53
TIPOS DE BANCOS DE DADOS NOSQL
► Coluna larga: Esses bancos de dados armazenam e
gerenciam dados na forma de tabelas, linhas e colunas.
► Eles são amplamente implantados em aplicativos que
requerem um formato de coluna para capturar dados sem
esquema.
54
TIPOS DE BANCOS DE DADOS NOSQL
55
TIPOS DE BANCOS DE DADOS NOSQL
► Grafos: Este banco de dados organiza os dados como nós e
relacionamentos, que mostram as conexões entre os nós.
► Isso oferece suporte a uma representação de dados mais
rica e completa.
► Bancos de dados grafos são aplicados em redes sociais,
sistemas de reserva e detecção de fraudes.
56
TIPOS DE BANCOS DE DADOS NOSQL
57
TIPOS DE BANCOS DE DADOS NOSQL
► Nem todo banco NoSQL trabalho com essa características.
► NoSQL, muitas vezes tem uma tabela de documentos sem
formatação.
58
Obrigado
Qualquer dúvida entrar em contato via e-mail:
E-mail jeferson.dias5@fatec.sp.gov.br
59