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.
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? ● Otermo 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 necessidadesdas 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
Escalabilidade Horizontal A escalabilidadeHorizontal 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 Apresentamausê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 Permitema 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 queo 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 ➔ Bancode dados chave-valor (key-value). ➔ Banco de dados Orientado a Colunas. ➔ Banco de dados Orientado a Documentos. ➔ Banco de dados Orientado a Grafos. 16
Banco de dadoschave-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 Umpouco 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
Orientado a Documento Armazenauma 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
Orientado a Grafo Nestemodelo, 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
Comandos Básicos MongoDB 63 DescriçãoComandos 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ãoColeçõ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 stringPode 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 devalores. 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 eListar Coleção db.createCollection(‘contato’) show collections