SlideShare uma empresa Scribd logo
BIG DATA,
NoSQL e
MONGODB
©Marco Lima
INTRODUÇÃO
BIG DATA
©Marco Lima
uMas o que é Big Data?
uO que é um grande
volume de dados?
uGigabytes?
uTerabytes?
uPetabytes?
INTRODUÇÃO
BIG DATA
©Marco Lima
u 90% dos dados no mundo de hoje foram
criados nos últimos dois anos
u O universo global de dados irá dobrar a
cada dois anos, chegando a 40 mil
exabytes ou 40 trilhões de GB até 2020
u Internet Archive tem em torno de 2
petabytes de dados, e está crescendo a
uma taxa de 20 terabytes por mês.
u 30 bilhões de conteúdos foram
adicionados ao Facebook
u 2 bilhões de videos são vistos no Youtube
u 2,5 quintilhões de bytes de dados são
criados
INTRODUÇÃO
BIG DATA
©Marco Lima
BIG DATA
©Marco Lima
u Big Data é um processo de análise e
interpretação de um grande volume de
dados armazenados remotamente.
u Tudo que está disponível de forma
online, de modo não sigiloso, por
maior que seja a quantidade de
informações, está ao alcance do Big
Data, podendo ser agrupado conforme
o interesse.
BIG DATA
©Marco Lima
u O Big Data pode integrar qualquer
dado coletado sobre um assunto ou
uma empresa, como os registros de
compra e venda e mesmo os canais de
interação não digital (telemarketing e
call center).
BIG DATA
©Marco Lima
u Através do Big Data, é possível fazer a
interpretação e a análise desses dados
para variados usos.
u definir as estratégias de marketing
de uma empresa
u reduzir custos
u aumentar a produtividade
u Big Data é visto como uma ferramenta
de apoio estratégico.
Os 5 V’s do big data:
u Volume
u Velocidade
u Variedade
u Veracidade
u Valor
©Marco Lima
VOLUME
©Marco Lima
u Atualmente produzimos mais dados por
dia do que se produziu em todos os
tempo até alguns poucos anos atrás.
Assim, torna-se necessário tratar esse
grande volume de forma diferenciada do
que a forma atual.
u Bases de dados relacionais não suportam
mais esses grandes volumes de forma
satisfatória.
u O Big Data agrupa uma enorme
quantidade de dados que são gerados a
cada segundo.
u É só imaginar todos os e-mails, vídeos,
fotos e mensagens que circulam nas
redes diariamente.
VELOCIDADE
©Marco Lima
u É a agilidade com a qual os dados são
produzidos e manipulados.
u O Big Data vai analisar os dados no
instante em que são criados sem precisar
armazená-los.
u Isso acontece com as transações de
cartão de crédito, viralização de
mensagens em redes sociais, publicações
em sites e blogs, entre outras.
u Analisar dados históricos não é mais
suficiente para alguns tipos de tomadas
de decisão.
u Analisar dados em tempo real já é uma
realidade.
VARIEDADE
©Marco Lima
u Os dados podem ser gerados em vários
formatos estruturados (numéricos) ou
não-estruturados.
u 80% dos dados do mundo são não-
estruturados (texto, imagens,video, voz,
etc) com grande tecnologia de dados,
Podemos agora analisar e reunir dados de
diferentes tipos, tais como mensagens,
conversas de redes sociais, fotos, dados
do sensor ,video ou gravações de voz.
VERACIDADE
©Marco Lima
u Veracidade refere-se a confiabilidade dos
dados.
u Nem seria preciso lembrar quanto à
importância de as informações reunidas
serem verdadeiras.
u Dados devem ser autênticos e devem
fazer sentido no contexto de sua análise.
u Mas em tempos de fake news, parece
impossível controlar a geração e
disseminação desse tipo de conteúdo,
além do seu aproveitamento como se
real fosse.
VALOR
©Marco Lima
u É necessário que a implementação de um
projeto dessa natureza retorne o
investimento realizado, ou seja,
informação tem valor e esse valor deve
saltar aos olhos em retorno de um
projeto Big Data.
Aplicabilidade
do big data
©Marco Lima
u Pode ser aplicada em setores diversos,
como:
u E-commerce
u Entretenimento
u Marketing digital
u Redes sociais
u Serviços financeiros
u Energia
u Saúde
u Astronomia
u Segurança da Informação.
Big Data
Analytics
©Marco Lima
u Ele é importante dentro de uma empresa
para a realização de negócios mais
atraentes e inteligentes, com operações
mais eficientes, capazes de gerar mais
lucro e deixar os clientes mais
satisfeitos.
u Permite realizar tarefas tais como:
u Identificar fraudes antes que afetem o
andamento da empresa
u Descobrir a causa de falhas, defeitos e
problemas praticamente em tempo real
u Recalcular os riscos em minutos
u Criar cupões no ponto de venda baseados
nos hábitos de compra do consumidor.
Big Data
Analytics
©Marco Lima
u o Big Data Analytics tem grande
impacto sobre a redução de custos,
criação de novos produtos ou serviços,
tomada de decisões mais rápidas e
assertivas e reduções de tempo.
INTRODUÇÃO
NoSQL
©Marco Lima
u Ora, com o advento da Internet (e não
só), novas necessidades de
representação e armazenamento de
dados foram sentidas pela comunidade
ligada às tecnologias de informação,
tanto do ponto de vista técnico, como
do ponto de vista dos requisitos dos
utilizadores.
u Estas necessidades levaram a novos
desenvolvimentos e também à adoção
de novas infraestruturas.
u É, então, neste contexto que surgem
as denominadas bases de dados NoSQL.
INTRODUÇÃO
NoSQL
©Marco Lima
u As bases de dados NoSOL (inicialmente
denominadas bases de dados "non SQL"
ou "não relacionais") fornecem
mecanismos de armazenamento e
recuperação de dados que não são
baseados em relações entre tabelas,
tal como definido pelo modelo
relacional.
INTRODUÇÃO
NoSQL
©Marco Lima
u Os SGBDR apresentam, quase sempre,
o mesmo conjunto de características
baseadas nas especificações do modelo
relacional.
u O mesmo já não acontece com as
arquiteturas associadas às bases de
dados NoSQL, havendo por isso vários
modelos distintos que servem de base
a cada necessidade específica.
ARQUITETURAS
NoSQL
©Marco Lima
u As arquiteturas de bases de dados NoSOL
mais populares nesta altura são:
u MongoDB;
u Cassandra;
u Redis;
u HBase
u Neo4j
u Hadoop
Bases de Dados
NoSQL
©Marco Lima
u Eis alguns dos tipos de bases de dados NoSQL
u Document store (ex.: MongoDB, CouchDB, IBM
Domino);
u Key-value store (ex.: Redis, Oracle NoSOL
Database, dbm);
u Graph (ex.: Neo4j, AllegroGraph, Stardog);
u Object database (ex.: db4o, ObjectDB, ZODB);
u Tabular (ex.: HBase, Hypertable, BigTable);
u Tuple store (ex.: TIBCO, Apache River, Openlink
Virtuoso);
u Triple/quad store (RDF) database (ex.:
AllegroGraph, JENA, Stardog);
u Hosted (ex.: Amazon DimpleDB, Datastore on
Google Appengine, Microsoft Azure Tables);
u Multivalue databases (ex.: D3 Pick Database,
lnfinityDB, OpenOM);
u Multimodel database (ex.: OrientDB,
FoundationDB, Marklogic).
150 tipos de base
de dados NOSQL
©Marco Lima
Fonte: http://nosql-database.org/
KEY VALUE
©Marco Lima
u Coleção de chaves únicas associada a um
valor, que pode ser de qualquer tipo
(binário, string)
u Amazon DynamoDB (Key-value)
u Desenvolvido em: Java
u Quem Usa?
u Washingtonpost.com
u Elsevier (Editora)
Exemplo:
Key: 1234 Value: “Fernando”
Key: 2343 Value: “Name=Fernando, age=29”
COLUMN
©Marco Lima
u Famílias de colunas (um repositório para
colunas,
u análogo a uma tabela do Modelo
Relacional) e super-colunas (compostas
por arrays de colunas)
u BigTable(column) Google
u Desenvolvido em: C++
u Quem Usa:
u Gmail
u Google Maps,
u YouTube
Exemplo:
Column family, Key, Column name e value
Pessoas ; 4564 ; nome : Ana ; idade : 30;
u Cassandra (column)
u Desenvolvido em: Java
u Quem Usa?
u Twitter
u NetFlix
u Facebook
GRAFH
©Marco Lima
u Base de dados baseado em grafos, nele temos as
entidades chamadas de vértices (ou node) que são
ligadas entre elas pelas arestas (ou relationships)
cada um podendo guardar dados entre os
relacionamentos e cada relacionamento pode ter
uma direção.
u Neo4j (graph)
u Desenvolvido em: Java
u Quem Usa?
u WalMart
u National Geographic
u Ebay
Exemplo:
-Vértice: Chave->Valor representa entidade.Nome:Priscila
-Aresta: relacionamentos
Ex: Vertice “Priscila” segue o vertice “Lucas” desde 2012,
o relacionamento é igual a “segue”
DOCUMENT
©Marco Lima
u Os documentos são as unidades básicas de
armazenamento e estes não utilizam
necessariamente qualquer tipo de estruturação
pré-definida
u São baseados em JSON. (JavaScript Object
Notation)
u MongoDB (Document)
u Desenvolvido em: C
u Quem Usa:
u Globo.com
u Apontador
u Forbes
u New York Times
Exemplo:
{"user":{
"id": "123",
"name": ”José",
"addresses":[
{"city":"Paris"},
{"city":”Lisboa"}]
}
MONGODB
©Marco Lima
u MongoDB é uma base de dados de código
aberto, gratuito, de alta performance,
sem esquemas e orientado a documentos
lançado em fevereiro de 2009 pela
empresa 10gen.
u Foi escrito na linguagem de programação
C++ (o que o torna portável para
diferentes sistemas operacionais) e seu
desenvolvimento durou quase 2 anos,
tendo iniciado em 2007.
u Trata-se da base de dados NoSQL com
maior sucesso e faz parte das bases de
dados que têm o documento como
elemento base de trabalho.
Orientado a
documentos
©Marco Lima
u Por ser orientado a documentos JSON
(armazenados em modo binário,
apelidado de BSON), muitas aplicações
podem modelar informações de modo
muito mais natural, pois os dados podem
ser aninhados em hierarquias complexas
e continuar a ser indexáveis e fáceis de
buscar, igual ao que já é feito em
JavaScript.
u Existem várias BD’s NOSQL atualmente no
mercado porque existem dezenas de
problemas de persistência de dados que o
SQL tradicional não resolve.
u BD’s não-relacionais document-based
(que armazenam seus dados em
documentos) são os mais comuns e mais
proeminentes de todos
Bases de Dados
©Marco Lima
Dados StackOverflow em 2017
Quando usar?
©Marco Lima
u MongoDB foi criada com Big Data em
mente.
u Suporta tanto escalonamento horizontal
quanto vertical usando replica sets
(instâncias espelhadas) e sharding (dados
distribuídos), tornando-o uma opção
muito interessante para grandes volumes
de dados, especialmente os não-
estruturados.
u Cenários altamente recomendados e
utilizados atualmente são em catálogos
de produtos de e-commerces.
Quando não usar?
©Marco Lima
u Não deve utilizar MongoDB quando
relacionamentos entre diversas entidades
são importantes para o sistema.
u Caso tenha de usar muitas “chaves
estrangeiras” e “JOINs”.
u Por norma entidades de pagamento não
homologam sistemas cujos dados
financeiros dos clientes não estejam em
bases de dados relacionais tradicionais.
Dicas e
commandos
mongodb
©Marco Lima
• mostra as bd’s existentes nesse servidor:
show databases
• O comando use cria a base de dados,
caso esta não exista. Se já existir, abre-a
e fica a referenciá-la. A linha em itálico é
a resposta que o sistema envia após a
execução do comando.
use myDatabase
switched to db myDatabase
• Verificar quais coleções existem
atualmente nesta bd
show collections
• Cria nova coleção nesta bd em uso
db.createCollection("empDetails")
Dicas e
commandos
mongodb
©Marco Lima
• Listar dados de uma coleção semelhante ao SELECT das
relacionais
db.customers.find()
• Apresentação mais elegante dos dados
db.customers.find().pretty()
• Obter apenas os 3 primeiros registos sem a coluna id
db.departamento.find(“”,(_ id:0} ).limit(3)
• Ignorar os 5 primeiros registos sem a coluna id
db.departamento.find(“”,(_ id:0} ).skip(5)
• Contar os registos db.departamento.find().count()
• Listar todos os documentos cujo o código seja igual ou
superior a 40, ordenado por departamento
db.departamento.find({codigo:{$gte:40}}).sort({'dep
artamento':1})
$gte - operador: maior ou igual
$gt - operador: maior
$ eq – operador : igual
$lte - operador: menor ou igual.
$lt - operador: menor
Dicas e
commandos
mongodb
©Marco Lima
• Inserir um registo numa coleção
db.customers.insertOne({ nome: ”José", idade: 35 })
• Inserir vários registos numa coleção
db.customers.insertMany([
{ nome: ”José", idade: 35 },
{ nome: ”António", idade: 36 }
])
• Alterar um registo numa coleção
db.customers.updateOne({ id: {$eq:2}},
{ $set: { idade: 33 })
• Alterar vários registos numa coleção
db.customers.updateMany({ id: {$lte:2}},
{ $set: { status: ‘ativo’ } }
)
• Remover um registo numa coleção
db.customers.deleteOne({ id: 2})
• Remover vários registos numa coleção
db.customers.deleteMany({ status:’ativo’})
Dicas e
commandos
mongodb
©Marco Lima
• Remover uma coleção
db.customers.drop()
• Remover base dados
db.dropDatabase()

Mais conteúdo relacionado

PPS
Apresentação
PPTX
Big Data, NoSQL e In Memory Databases
PPTX
Big Data e NoSQL
PPTX
Introdução ao NoSQL e modelagem de dados com MongoDB
PDF
Pesquisa sobre no sql
PDF
Bigdata - Leandro Wanderley
PPT
Bancos de dados NoSQL (Not only sql)
Apresentação
Big Data, NoSQL e In Memory Databases
Big Data e NoSQL
Introdução ao NoSQL e modelagem de dados com MongoDB
Pesquisa sobre no sql
Bigdata - Leandro Wanderley
Bancos de dados NoSQL (Not only sql)

Semelhante a Sobre o Big data, nosql e o mongo db e sua aplicabilidade (20)

PDF
Big data
PDF
PostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
PPTX
Aula BigData.pptx
PDF
Bancos de dados no sql – uma nova abordagem
PDF
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
PDF
MAC5855 - NoSQL
PDF
Cobo, Cristiane Brandão. Especialização Banco de Dados
PDF
Material Seminário NoSQL
PPTX
Big data
PDF
Bancos de dados NoSQL
PDF
Artigo Nosql
PPTX
Introdução ao NoSQL
ODP
No sql std
PDF
No sql o_que_e_isso.key
PDF
Cientista de Dados – Dominando o Big Data com Software Livre
PDF
NoSQL na Globo.com - RioInfo 2014
PDF
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
PDF
MongoDB e OpenShift - JUDCon2014
PDF
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmica
ODT
Nosql
Big data
PostgreSQL em projetos de Business Analytics e Big Data Analytics com Pentaho
Aula BigData.pptx
Bancos de dados no sql – uma nova abordagem
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
MAC5855 - NoSQL
Cobo, Cristiane Brandão. Especialização Banco de Dados
Material Seminário NoSQL
Big data
Bancos de dados NoSQL
Artigo Nosql
Introdução ao NoSQL
No sql std
No sql o_que_e_isso.key
Cientista de Dados – Dominando o Big Data com Software Livre
NoSQL na Globo.com - RioInfo 2014
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
MongoDB e OpenShift - JUDCon2014
Pepe Legal Python e Babalu MongoDB, uma dupla dinâmica
Nosql
Anúncio

Último (8)

PDF
PROJETO DE PESQUISA PRONTO FONOAUDIOLOGIA 2025 ABNT.pdf
PPTX
slide preparativo para lingua portuguesa
DOCX
Cópia de ACOMPANHAMENTO PARA A RECOMPOSIÇÃO DA APRENDIZAGEM 8 ano História.docx
PPT
Aula_15.pptssssssssssssssssssssssssssssssssssssss
PPTX
SLIDE 1 PARTE 2 Fund da Informatica .pptx
PPTX
SLIDE 1 PARTE 1 Fund da Informatica .pptx
PDF
PROJETO DE PESQUISA PRONTO ESTÉTICA 2025 ABNT.pdf
PPTX
AULA_12_BASQUETE CAPACIDADE FÍSICA_171023.pptx
PROJETO DE PESQUISA PRONTO FONOAUDIOLOGIA 2025 ABNT.pdf
slide preparativo para lingua portuguesa
Cópia de ACOMPANHAMENTO PARA A RECOMPOSIÇÃO DA APRENDIZAGEM 8 ano História.docx
Aula_15.pptssssssssssssssssssssssssssssssssssssss
SLIDE 1 PARTE 2 Fund da Informatica .pptx
SLIDE 1 PARTE 1 Fund da Informatica .pptx
PROJETO DE PESQUISA PRONTO ESTÉTICA 2025 ABNT.pdf
AULA_12_BASQUETE CAPACIDADE FÍSICA_171023.pptx
Anúncio

Sobre o Big data, nosql e o mongo db e sua aplicabilidade

  • 2. INTRODUÇÃO BIG DATA ©Marco Lima uMas o que é Big Data? uO que é um grande volume de dados? uGigabytes? uTerabytes? uPetabytes?
  • 3. INTRODUÇÃO BIG DATA ©Marco Lima u 90% dos dados no mundo de hoje foram criados nos últimos dois anos u O universo global de dados irá dobrar a cada dois anos, chegando a 40 mil exabytes ou 40 trilhões de GB até 2020 u Internet Archive tem em torno de 2 petabytes de dados, e está crescendo a uma taxa de 20 terabytes por mês. u 30 bilhões de conteúdos foram adicionados ao Facebook u 2 bilhões de videos são vistos no Youtube u 2,5 quintilhões de bytes de dados são criados
  • 5. BIG DATA ©Marco Lima u Big Data é um processo de análise e interpretação de um grande volume de dados armazenados remotamente. u Tudo que está disponível de forma online, de modo não sigiloso, por maior que seja a quantidade de informações, está ao alcance do Big Data, podendo ser agrupado conforme o interesse.
  • 6. BIG DATA ©Marco Lima u O Big Data pode integrar qualquer dado coletado sobre um assunto ou uma empresa, como os registros de compra e venda e mesmo os canais de interação não digital (telemarketing e call center).
  • 7. BIG DATA ©Marco Lima u Através do Big Data, é possível fazer a interpretação e a análise desses dados para variados usos. u definir as estratégias de marketing de uma empresa u reduzir custos u aumentar a produtividade u Big Data é visto como uma ferramenta de apoio estratégico.
  • 8. Os 5 V’s do big data: u Volume u Velocidade u Variedade u Veracidade u Valor ©Marco Lima
  • 9. VOLUME ©Marco Lima u Atualmente produzimos mais dados por dia do que se produziu em todos os tempo até alguns poucos anos atrás. Assim, torna-se necessário tratar esse grande volume de forma diferenciada do que a forma atual. u Bases de dados relacionais não suportam mais esses grandes volumes de forma satisfatória. u O Big Data agrupa uma enorme quantidade de dados que são gerados a cada segundo. u É só imaginar todos os e-mails, vídeos, fotos e mensagens que circulam nas redes diariamente.
  • 10. VELOCIDADE ©Marco Lima u É a agilidade com a qual os dados são produzidos e manipulados. u O Big Data vai analisar os dados no instante em que são criados sem precisar armazená-los. u Isso acontece com as transações de cartão de crédito, viralização de mensagens em redes sociais, publicações em sites e blogs, entre outras. u Analisar dados históricos não é mais suficiente para alguns tipos de tomadas de decisão. u Analisar dados em tempo real já é uma realidade.
  • 11. VARIEDADE ©Marco Lima u Os dados podem ser gerados em vários formatos estruturados (numéricos) ou não-estruturados. u 80% dos dados do mundo são não- estruturados (texto, imagens,video, voz, etc) com grande tecnologia de dados, Podemos agora analisar e reunir dados de diferentes tipos, tais como mensagens, conversas de redes sociais, fotos, dados do sensor ,video ou gravações de voz.
  • 12. VERACIDADE ©Marco Lima u Veracidade refere-se a confiabilidade dos dados. u Nem seria preciso lembrar quanto à importância de as informações reunidas serem verdadeiras. u Dados devem ser autênticos e devem fazer sentido no contexto de sua análise. u Mas em tempos de fake news, parece impossível controlar a geração e disseminação desse tipo de conteúdo, além do seu aproveitamento como se real fosse.
  • 13. VALOR ©Marco Lima u É necessário que a implementação de um projeto dessa natureza retorne o investimento realizado, ou seja, informação tem valor e esse valor deve saltar aos olhos em retorno de um projeto Big Data.
  • 14. Aplicabilidade do big data ©Marco Lima u Pode ser aplicada em setores diversos, como: u E-commerce u Entretenimento u Marketing digital u Redes sociais u Serviços financeiros u Energia u Saúde u Astronomia u Segurança da Informação.
  • 15. Big Data Analytics ©Marco Lima u Ele é importante dentro de uma empresa para a realização de negócios mais atraentes e inteligentes, com operações mais eficientes, capazes de gerar mais lucro e deixar os clientes mais satisfeitos. u Permite realizar tarefas tais como: u Identificar fraudes antes que afetem o andamento da empresa u Descobrir a causa de falhas, defeitos e problemas praticamente em tempo real u Recalcular os riscos em minutos u Criar cupões no ponto de venda baseados nos hábitos de compra do consumidor.
  • 16. Big Data Analytics ©Marco Lima u o Big Data Analytics tem grande impacto sobre a redução de custos, criação de novos produtos ou serviços, tomada de decisões mais rápidas e assertivas e reduções de tempo.
  • 17. INTRODUÇÃO NoSQL ©Marco Lima u Ora, com o advento da Internet (e não só), novas necessidades de representação e armazenamento de dados foram sentidas pela comunidade ligada às tecnologias de informação, tanto do ponto de vista técnico, como do ponto de vista dos requisitos dos utilizadores. u Estas necessidades levaram a novos desenvolvimentos e também à adoção de novas infraestruturas. u É, então, neste contexto que surgem as denominadas bases de dados NoSQL.
  • 18. INTRODUÇÃO NoSQL ©Marco Lima u As bases de dados NoSOL (inicialmente denominadas bases de dados "non SQL" ou "não relacionais") fornecem mecanismos de armazenamento e recuperação de dados que não são baseados em relações entre tabelas, tal como definido pelo modelo relacional.
  • 19. INTRODUÇÃO NoSQL ©Marco Lima u Os SGBDR apresentam, quase sempre, o mesmo conjunto de características baseadas nas especificações do modelo relacional. u O mesmo já não acontece com as arquiteturas associadas às bases de dados NoSQL, havendo por isso vários modelos distintos que servem de base a cada necessidade específica.
  • 20. ARQUITETURAS NoSQL ©Marco Lima u As arquiteturas de bases de dados NoSOL mais populares nesta altura são: u MongoDB; u Cassandra; u Redis; u HBase u Neo4j u Hadoop
  • 21. Bases de Dados NoSQL ©Marco Lima u Eis alguns dos tipos de bases de dados NoSQL u Document store (ex.: MongoDB, CouchDB, IBM Domino); u Key-value store (ex.: Redis, Oracle NoSOL Database, dbm); u Graph (ex.: Neo4j, AllegroGraph, Stardog); u Object database (ex.: db4o, ObjectDB, ZODB); u Tabular (ex.: HBase, Hypertable, BigTable); u Tuple store (ex.: TIBCO, Apache River, Openlink Virtuoso); u Triple/quad store (RDF) database (ex.: AllegroGraph, JENA, Stardog); u Hosted (ex.: Amazon DimpleDB, Datastore on Google Appengine, Microsoft Azure Tables); u Multivalue databases (ex.: D3 Pick Database, lnfinityDB, OpenOM); u Multimodel database (ex.: OrientDB, FoundationDB, Marklogic).
  • 22. 150 tipos de base de dados NOSQL ©Marco Lima Fonte: http://nosql-database.org/
  • 23. KEY VALUE ©Marco Lima u Coleção de chaves únicas associada a um valor, que pode ser de qualquer tipo (binário, string) u Amazon DynamoDB (Key-value) u Desenvolvido em: Java u Quem Usa? u Washingtonpost.com u Elsevier (Editora) Exemplo: Key: 1234 Value: “Fernando” Key: 2343 Value: “Name=Fernando, age=29”
  • 24. COLUMN ©Marco Lima u Famílias de colunas (um repositório para colunas, u análogo a uma tabela do Modelo Relacional) e super-colunas (compostas por arrays de colunas) u BigTable(column) Google u Desenvolvido em: C++ u Quem Usa: u Gmail u Google Maps, u YouTube Exemplo: Column family, Key, Column name e value Pessoas ; 4564 ; nome : Ana ; idade : 30; u Cassandra (column) u Desenvolvido em: Java u Quem Usa? u Twitter u NetFlix u Facebook
  • 25. GRAFH ©Marco Lima u Base de dados baseado em grafos, nele temos as entidades chamadas de vértices (ou node) que são ligadas entre elas pelas arestas (ou relationships) cada um podendo guardar dados entre os relacionamentos e cada relacionamento pode ter uma direção. u Neo4j (graph) u Desenvolvido em: Java u Quem Usa? u WalMart u National Geographic u Ebay Exemplo: -Vértice: Chave->Valor representa entidade.Nome:Priscila -Aresta: relacionamentos Ex: Vertice “Priscila” segue o vertice “Lucas” desde 2012, o relacionamento é igual a “segue”
  • 26. DOCUMENT ©Marco Lima u Os documentos são as unidades básicas de armazenamento e estes não utilizam necessariamente qualquer tipo de estruturação pré-definida u São baseados em JSON. (JavaScript Object Notation) u MongoDB (Document) u Desenvolvido em: C u Quem Usa: u Globo.com u Apontador u Forbes u New York Times Exemplo: {"user":{ "id": "123", "name": ”José", "addresses":[ {"city":"Paris"}, {"city":”Lisboa"}] }
  • 27. MONGODB ©Marco Lima u MongoDB é uma base de dados de código aberto, gratuito, de alta performance, sem esquemas e orientado a documentos lançado em fevereiro de 2009 pela empresa 10gen. u Foi escrito na linguagem de programação C++ (o que o torna portável para diferentes sistemas operacionais) e seu desenvolvimento durou quase 2 anos, tendo iniciado em 2007. u Trata-se da base de dados NoSQL com maior sucesso e faz parte das bases de dados que têm o documento como elemento base de trabalho.
  • 28. Orientado a documentos ©Marco Lima u Por ser orientado a documentos JSON (armazenados em modo binário, apelidado de BSON), muitas aplicações podem modelar informações de modo muito mais natural, pois os dados podem ser aninhados em hierarquias complexas e continuar a ser indexáveis e fáceis de buscar, igual ao que já é feito em JavaScript. u Existem várias BD’s NOSQL atualmente no mercado porque existem dezenas de problemas de persistência de dados que o SQL tradicional não resolve. u BD’s não-relacionais document-based (que armazenam seus dados em documentos) são os mais comuns e mais proeminentes de todos
  • 29. Bases de Dados ©Marco Lima Dados StackOverflow em 2017
  • 30. Quando usar? ©Marco Lima u MongoDB foi criada com Big Data em mente. u Suporta tanto escalonamento horizontal quanto vertical usando replica sets (instâncias espelhadas) e sharding (dados distribuídos), tornando-o uma opção muito interessante para grandes volumes de dados, especialmente os não- estruturados. u Cenários altamente recomendados e utilizados atualmente são em catálogos de produtos de e-commerces.
  • 31. Quando não usar? ©Marco Lima u Não deve utilizar MongoDB quando relacionamentos entre diversas entidades são importantes para o sistema. u Caso tenha de usar muitas “chaves estrangeiras” e “JOINs”. u Por norma entidades de pagamento não homologam sistemas cujos dados financeiros dos clientes não estejam em bases de dados relacionais tradicionais.
  • 32. Dicas e commandos mongodb ©Marco Lima • mostra as bd’s existentes nesse servidor: show databases • O comando use cria a base de dados, caso esta não exista. Se já existir, abre-a e fica a referenciá-la. A linha em itálico é a resposta que o sistema envia após a execução do comando. use myDatabase switched to db myDatabase • Verificar quais coleções existem atualmente nesta bd show collections • Cria nova coleção nesta bd em uso db.createCollection("empDetails")
  • 33. Dicas e commandos mongodb ©Marco Lima • Listar dados de uma coleção semelhante ao SELECT das relacionais db.customers.find() • Apresentação mais elegante dos dados db.customers.find().pretty() • Obter apenas os 3 primeiros registos sem a coluna id db.departamento.find(“”,(_ id:0} ).limit(3) • Ignorar os 5 primeiros registos sem a coluna id db.departamento.find(“”,(_ id:0} ).skip(5) • Contar os registos db.departamento.find().count() • Listar todos os documentos cujo o código seja igual ou superior a 40, ordenado por departamento db.departamento.find({codigo:{$gte:40}}).sort({'dep artamento':1}) $gte - operador: maior ou igual $gt - operador: maior $ eq – operador : igual $lte - operador: menor ou igual. $lt - operador: menor
  • 34. Dicas e commandos mongodb ©Marco Lima • Inserir um registo numa coleção db.customers.insertOne({ nome: ”José", idade: 35 }) • Inserir vários registos numa coleção db.customers.insertMany([ { nome: ”José", idade: 35 }, { nome: ”António", idade: 36 } ]) • Alterar um registo numa coleção db.customers.updateOne({ id: {$eq:2}}, { $set: { idade: 33 }) • Alterar vários registos numa coleção db.customers.updateMany({ id: {$lte:2}}, { $set: { status: ‘ativo’ } } ) • Remover um registo numa coleção db.customers.deleteOne({ id: 2}) • Remover vários registos numa coleção db.customers.deleteMany({ status:’ativo’})
  • 35. Dicas e commandos mongodb ©Marco Lima • Remover uma coleção db.customers.drop() • Remover base dados db.dropDatabase()