nosql uma breve introdução
TRANSCRIPT
![Page 1: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/1.jpg)
Por Fernando Cunha
Uma Breve Introdução
![Page 2: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/2.jpg)
Fernando Cunha – [email protected]
• Bacharel em Informática• Pós graduado Engenharia de Software UFPR• Pós graduando em Gestão de TI• ITIL V3 Foundation Certificate• Gerente de Projetos
Contatos:
http://br.linkedin.com/pub/fernando-cunha/26/67a/827/
Palestrante:
![Page 3: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/3.jpg)
![Page 4: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/4.jpg)
NOSQL é um termo genérico que define bancos de dados não-relacionais.
Termo introduzido por Carlos Strozzi em um evento de banco de dados open-source em 1998
Em 2009 Eric Evans reintroduziu o termo em outro evento de banco de dados open-source
Pronuncia-se - noseequel
O que significa?
Quem?
Porque? Suprir as necessidades introduzidas pelo o fenômeno
BIG DATA
![Page 5: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/5.jpg)
Classificação de SGBD NOSQL
Coleção de chaves únicas associada a um valor, que pode ser de qualquer tipo (binário, string)
Exemplo:Key: 1234 Value: “Fernando”Key: 2343 Value: “Name=Fernando, age=29”
KEY VALUE COLUMN GRAPH DOCUMENT
![Page 6: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/6.jpg)
Classificação de SGBD NOSQL
Famílias de colunas (um repositório para colunas, análogo a uma tabela do Modelo Relacional) e super-colunas
(compostas por arrays de colunas)
Exemplo:Column family, Key, Column name e valuePessoas ; 4564 ; nome : Ana ; idade : 30;
KEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENT
![Page 7: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/7.jpg)
Classificação de SGBD NOSQL
Banco 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.
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”
KEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENT
![Page 8: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/8.jpg)
Classificação de SGBD NOSQL
Os documentos são as unidades básicasde armazenamento e estes não utilizam necessariamente
qualquer tipo de estruturação pré-definida São baseados em JSON. (JavaScript Object Notation)
Exemplo:{"user":{
"id": "123","name": "Emmanuel","addresses":[
{"city":"Paris"},{"city":"Sao Paulo"}]}
KEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENT
![Page 9: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/9.jpg)
Classificação de SGBD NOSQL
Key Value
123435
Joao da Silva
334545
Name=Fernando, age=29
Key - Value Column
Graph Document
![Page 10: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/10.jpg)
Classificação de SGBD NOSQL
150 tipos de banco de dados NOSQL
Fonte: http://nosql-database.org/
Dados compilados manualmente
30%
13% 13%
7%
37%
0%
5%
10%
15%
20%
25%
30%
35%
40%
Key Value Document Store Graph Databases Column Não categorizado
![Page 11: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/11.jpg)
Classificação de SGBD NOSQL e quem está utilizando
KEY VALUE COLUMN GRAPH DOCUMENT
![Page 12: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/12.jpg)
Amazon DynamoDB (Key-value)
Desenvolvido em: Java
Quem Usa?
– Washingtonpost.com
– Elsevier (Editora)
Classificação de SGBD NOSQL e quem está utilizando
KEY VALUE COLUMN GRAPH DOCUMENT
![Page 13: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/13.jpg)
Classificação de SGBD NOSQL e quem está utilizando
Cassandra (column)Desenvolvido em: Java
Quem Usa?
– NetFlix
BigTable(column) GoogleDesenvolvido em: C++
Quem Usa:
GmailGoogle Maps,YouTube
KEY VALUE COLUMN GRAPH DOCUMENT
![Page 14: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/14.jpg)
Classificação de SGBD NOSQL e quem está utilizando
Neo4j (graph)
– Desenvolvido em: JavaQuem Usa?
– WalMart
– National Geographic
– Ebay
KEY VALUE COLUMN GRAPH DOCUMENTKEY VALUE COLUMN GRAPH DOCUMENT
![Page 15: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/15.jpg)
Classificação de SGBD NOSQL e quem está utilizando
MongoDB (Document)Desenvolvido em: C
Quem Usa:
– Globo.com
– Apontador
– Forbes
– New York Times
KEY VALUE COLUMN GRAPH DOCUMENT
![Page 16: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/16.jpg)
Dá pra fazer query?
I SQL
![Page 17: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/17.jpg)
Dá pra fazer query?
Amazon DynamoDB– Key-Value
SQL Query
AWS Query
AWS SDK for Java
AWS SDK for .NET
AWS SDK for PHP
JSON Data Format
API Reference
![Page 18: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/18.jpg)
Dá pra fazer query?
MongoDB - Document
SQL Query
Operation Find
![Page 19: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/19.jpg)
Dá pra fazer query?
Neo4j- Graph
SQL Query
Cyber query
![Page 20: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/20.jpg)
Dá pra fazer query?
Cassandra - Column
SQL Query
CQL – Cassandra Query LanguageComandos CRUD
(Create, Read, Update, Delete)
são iguais
![Page 21: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/21.jpg)
Quais linguagens suportam NOSQL?
Amazon Dynamo Neo4j Cassandra MongoDB
C x
C# x
C++ x x
Go x x
Java x x x x
Javascript x x
Node.js x x x x
Perl x x
PHP x x x x
Python x x x
Ruby x x x x
Scala x x x
![Page 22: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/22.jpg)
Os banco de dados relacionais irão morrer?
![Page 23: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/23.jpg)
Posição NOSQL
Fonte: Gartner
![Page 24: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/24.jpg)
Quando e qual utilizar?
Fonte: Martin Fowler
Fonte: http://www.martinfowler.com/bliki/PolyglotPersistence.html
Sessões de usuários
Key - Value
Dados Financeiros
Relacional
Blog ou SociaMedia
Graph
CatálogoProdutos
Document
Relatórios
Relacional
Atividades e logs de usuário
Column
![Page 25: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/25.jpg)
Cases
SGBD:sistema de processamento de faturas mensais
NOSQL:Sistema focado em recomendações de melhores filmes.
![Page 26: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/26.jpg)
Cases
SGBD:Sistemas de processamento de ordem de venda
NOSQL:Sistema de pesquisa, recomendações e adaptações de preços em tempo real
![Page 27: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/27.jpg)
Cases
SGBD:Dados de clientes, produtos e RH
NOSQL:Explorar, analisar e virtualização de dados
![Page 28: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/28.jpg)
Existem oportunidades no mercado?
![Page 29: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/29.jpg)
Tem profissional no mercado?
![Page 30: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/30.jpg)
Perguntas
![Page 31: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/31.jpg)
Referenciashttp://nosql-database.org/
http://neo4j.com/customers/
http://aws.amazon.com/dynamodb/
http://www.nosqlfordummies.com/
http://technorati.com/is-there-a-sequel-to-nosql-bigdata-analytics-scifi-has-already-foreshadowed-it/
NoSQL Now 2013 conference. Tomer Shiran, VP of Product Management at MapR Technologies. Jeff Kelly from Wikibon.
http://www.strozzi.it/cgi-bin/CSA/tw7/I/en_US/NoSQL/Home%20Page
http://blog.parityresearch.com/21-nosql-innovators-to-look-for-in-2020/
http://blogs.the451group.com/information_management/2014/07/01/nosql-linkedin-skills-index-june-2014/
http://www.gartner.com/technology/reprints.do?id=1-1M9YEHW&ct=131028&st=sb
http://www.tomsitpro.com/articles/rdbms-sql-cassandra-dba-developer,2-547-2.html
http://www.slideshare.net/kevinweil/nosql-at-twitter-nosql-eu-2010
http://www.slideshare.net/thobe/nosql-for-dummies
![Page 32: NOSQL uma breve introdução](https://reader033.vdocuments.net/reader033/viewer/2022052316/55aa3a671a28ab1b2a8b465e/html5/thumbnails/32.jpg)
Referenciashttp://www.mongodb.com/events/
http://docs.mongodb.org/manual/core/read-operations-introduction/
http://data.ime.usp.br/sbbd2012/artigos/pdfs/sbbd_min_01.pdf
https://cassandra.apache.org/doc/cql/CQL.html
http://www.indeed.com/jobtrends?q=nosql+developer&l=
http://blog.nahurst.com/visual-guide-to-nosql-systems
http://revistaopara.facape.br/index.php/opara/article/download/121/72
http://stackoverflow.com/questions/12346326/nosql-cap-theorem-availability-and-partition-tolerance
http://www.martinfowler.com/bliki/PolyglotPersistence.html
http://www.infoq.com/br/news/2014/06/oracle-nosql-database-3.0
http://www.infoq.com/br/news/2014/06/splunk-hunk-6.1
http://docs.neo4j.org/chunked/stable/query-predicates.html
http://pt.splunk.com/view/db-connect/SP-CAAAHR6