Este documento fornece uma introdução ao NoSQL e MongoDB. Resume os principais pontos sobre o que é NoSQL, como surgiu, características e modelos do NoSQL, além de uma breve história do MongoDB e instruções para instalação.
7. O que é NoSQL?
NoSQL é um movimento que promove soluções de
armazenamento de dados não relacionais. Ele é composto por
diversas ferramentas que, de forma particular e específica,
resolvem problemas como tratamento de grandes volumes de
dados, execução de consultas com baixa latência e modelos
flexíveis de armazenamento de dados, como documentos
XML ou JSON.
7
8. Quando surgiu?
● O termo foi usado pela primeira vez em 1998 para um
banco de dados relacional que omitiu o uso de SQL.
● O termo foi usado novamente em 2009 e usado para
conferências de defensores de bancos de dados
não-relacionais.
8
9. SGBD x NoSQL
A - Atomicity (Atomicidade)
C - Consistency (Consistência)
I - Isolation (Isolamento)
D - Durability (Durabilidade)
9
X
B - Basically
A - Available
S - Soft-state (Estado Leve)
E - Eventually Consistency
(Eventualmente
Consistente)
Basicamente
Disponível
10. Objetivo
Atender as necessidades das aplicações, que necessitam de
alta disponibilidade dos seus dados e rápido desempenho do
processamento dos mesmos.
Exemplo: A google consegue processar até 20 petabytes de
dados por dia armazenadas em BigTable.
10
12. Escalabilidade Horizontal
A escalabilidade Horizontal consiste em aumentar
o número de máquinas disponíveis.
A escalabilidade Horizontal em modelos
relacionais seria inviável devido a concorrência.
Como nos modelos NoSQL não existe bloqueios,
esse tipo de escalabilidade é a mais viável.
12
13. Ausência de Esquema
Apresentam ausência de Esquema ou esquema
flexível, isso permite uma fácil aplicação da
escalabilidade e também um aumento na
disponibilidade dos dados.
Mas também devido a essa ausência, não há
garantia da integridade dos dados.
13
14. Suporte a Replicação
Permitem a replicação de uma forma nativa o que
provém uma escalabilidade maior e também uma
diminuição do tempo gasto para a recuperação de
informações.
14
15. API Simples
Para que o acesso ás informações seja feito da
forma mais rápida possível, APIs são
desenvolvidos para que qualquer aplicação possa
ter acesso aos dados do banco de dados.
15
16. Modelos NoSQL
➔ Banco de dados chave-valor (key-value).
➔ Banco de dados Orientado a Colunas.
➔ Banco de dados Orientado a Documentos.
➔ Banco de dados Orientado a Grafos.
16
18. Banco de dados chave-valor
(key-value)
Modelo mais simples.
Permite a visualização do banco como uma grande
tabela.
Todo o banco é composto por um conjunto de
chaves que estão associadas a um único valor.
18
19. Orientado a Coluna
Um pouco mais complexos.
Os dados são indexados por uma tripla (linha,
coluna e timestramp).
As linhas e as colunas são identificadas por chaves
e o timestramp é o que permite identificar as
diferentes versões de um mesmo dado.
19
21. Orientado a Documento
Armazena uma coleção de documentos.
Um documento no geral, é um objeto com um
código único e um conjunto de campos, que podem
ser strings, listas ou documentos aninhados.
Sua estrutura se assemelha com de chave-valor.
21
23. Orientado a Grafo
Neste modelo, o banco pode ser comparado com
um multigrafo rotulado e direcionado, onde cada
nó pode ser conectado por mais de uma aresta.
Possui três componentes básicos: os nós (são os
vértices do grafo), os relacionamentos (são as
arestas) e as propriedades (ou atributos) dos nós e
relacionamentos.
23
63. Comandos Básicos MongoDB
63
Descrição Comandos
Listar todas as base de dados. show dbs
Criar uma nova base. use “Nome da Base”
Verificar em qual base de dados você
está conectado.
db
Ajuda! help
64. O que são Coleções?
Uma coleção pode armazenar vários documentos. A coleção funciona
como uma tabela de um SGBD.
64
65. Valores
65
Data Types Description
string Pode ser uma cadeia vazia ou uma
combinação de caracteres.
integer Digitos.
boolean Os valores lógicos Verdadeiro ou Falso.
double Um tipo de número de ponto flutuante.
null Not zero, not empty.
66. Continuação
66
array Lista de valores.
object Uma entidade que pode ser utilizado na programação. Pode ser um valor,
variável, função ou estrutura de dados.
timestamp Um valor de 64 bits referindo-se a um momento único e em uma única
instância “mongod”. O primeiro de 32 bits deste valor refere-se ao
segundo desde o UTC 1 de janeiro de 1970. E últimos 32 bits referem-se
ao incremento ordinal para operações dentro de um determinado
momento.
Internationalized
Strings
UTF-8 para strings.
Object IDs Cada objeto ou documento MongoDB deve ter um ID do objeto que é
único. Este é uma BSON (Binary JavaScript Object Notation, que é a
interpretação binária de JSON) objeto id, um valor binário de 12 bytes
que tem uma oportunidade muito rara de ser duplicado. Este ID consiste
em uma timestamp de 4 bytes (segundos depois), 3 bytes para o ID de
máquina, um ID de processo de 2 bytes e um contador de 3 bytes.
67. 67
Criar Coleção e Listar Coleção
db.createCollection(‘contato’)
show collections