Universidade Vila Velha

            Iago Binow, Lorran Pegoretti, Luiz Marcon e Pedro Malta

Trabalho realizado para avaliação na disciplina de Banco de Dados II, do curso de
    Ciência da Computação, turno matutino, da Universidade de Vila Velha
                 (UVV), ministrada pelo professor Sandro Tonini.

                                      2012
   História – De onde surgiu o conceito NoSQL
   Definição – O que é NoSQL
   Características
   Classificação – Dados
   Exemplo – Facebook
   Exemplo – Comandos
   Mitos sobre NoSQL
Um pouco
                                                    de História
 Usado pela primeira vez em 1998 – Autor Carlo Strozzi.

 Volta a ser assunto em 2009 por Eric Evans.

 Surge da necessidade de maior performance e alta escalabilidade.

 Facilidade na distribuição horizontal.
Definição
Definição (Wikipédia)
“NoSQL é um termo genérico para uma classe definida de banco de dados não-relacionais que
rompe uma longa história de banco de dados relacionais com propriedades ACID. Outros termos
equivalentes para esta categoria de bancos é NF², N1NF (non first normal form), nested
relational, dimensional, multivalue, free-form, schemaless, document database e MRNN (Modelo
Relacional Não Normalizado).”



 Pra quem não lembra:
 Uma tabela está na primeira forma normal, se e somente
 se, não possuir atributos multivalorados.

 Ou seja, a primeira forma normal não admite repetições ou
 campos que tenha mais que um valor.


                                                      http://blogladob.com.br/wp-content/uploads/2012/07/Esqueceram-de-Mim.jpg
Características
 Escalabilidade Horizontal (scale out)

 Replicação – Escalar por duplicação de informações
   Master-Slave
                                           http://escalabilidade.com/wp-content/uploads/2010/03/04.png
   Multi-Master

 Schema-free

 Clusterização

 Mapreduce
   Map
   Reduce

 Sharding
Classificação
              KEY/VALUE STORE
Amazon SimpleDB                Membase
Azure Table Storage          Memcachedb
   Berkeley DB                   Mnesia
     Chordless                 NorthScale
     Dynomite           Orient Key/Value Server
     GenieDB                    Pincaster
   GT.M / M.DB               PNUTS/Sherpa
    HamsterDB              Project Voldemort
       Hibari                     Redis
        KAI                       Riak
      KaTree                     Scalaris
      Kumofs          ScalienDB / Scalien Keyspace
    LightCloud               Tokyo Cabinet

                                   Fonte: http://nosql.mypopescu.com
Classificação
WIDE COLUMNS STORE
 BigTable     HBase
Cassandra   Hypertable




                            DOCUMENT STORE
                            Colayer          MongoDB
                           CouchDB           OrientDB
                           FleetDB           Raven DB
                          Jackrabbit          ThruDB
                         Lotus Notes         Terrastore



                                   Fonte: http://nosql.mypopescu.com
Classificação

                GRAPH STORE
 AllegroGraph               InfiniteGraph
    Bigdata                    InfoGrid
  Core Data                     Neo4j
      DEX                 OpenLink Virtuoso
   Filament                     Sones
    FlockDB                   VertexDB
HyperGraphDB                    Trinity




                                 Fonte: http://nosql.mypopescu.com
Classificação




Fonte: http://www.slideshare.net/quipo/nosql-databases-why-what-and-when
Exemplo
                         Facebook
• Arquitetura Facebook
Exemplo
                                                                 Comandos
• Comandos Hbase
hbase(main):001:0> create 'test', 'cf'
0 row(s) in 3.8890 seconds


hbase(main):002:0> put 'test', 'row1', 'cf:a', 'value1'
0 row(s) in 0.1840 seconds


hbase(main):003:0> scan 'test‘
ROW       COLUMN+CELL
Row1      column=cf:a, timestamp=1332311427315, value=value1
1 row(s) in 0.1160 seconds

hbase(main):004:0>
Fonte: http://cook.coredump.me/post/19672191046/hbase-client-example
Maiores mitos sobre NoSQL

NoSQL é escalável.

Não precisamos de DBAS.

NoSQL é mais econômico.
Fontes de Pesquisa
 “Introdução ao NoSQL.” - http://www.nosqlbr.com.br

 “Escolhendo entre escalabilidade horizontal e escalabilidade vertical”. -
  http://escalabilidade.com/2010/09/21/escolhendo-entre-escalabilidade-horizontal-e-escalabilidade-vertical/

 “Introdução ao NoSQL parte II” - http://escalabilidade.com/2010/04/06/introducao-ao-nosql-parte-ii/

 InfoWester “Cluster: Principais Conceitos” - http://www.infowester.com/cluster.php

 “NoSQL” - http://nosql.mypopescu.com/kb/nosql

 “Os Maiores mitos sobre NoSQL” - http://escalabilidade.com/2010/10/08/os-maiores-mitos-sobre-nosql/

 “Inside Facebook Messages' Application Server” -
  https://www.facebook.com/note.php?note_id=10150162742108920

 “Hive – The next generation data warehouse” - http://blogs.impetus.com/big_data/hadoop_ecosystem/Hive.do

 Cassandra – A structured storage system on a P2P Network –
  https://www.facebook.com/note.php?note_id=24413138919

Seminário - NoSQL

  • 1.
    Universidade Vila Velha Iago Binow, Lorran Pegoretti, Luiz Marcon e Pedro Malta Trabalho realizado para avaliação na disciplina de Banco de Dados II, do curso de Ciência da Computação, turno matutino, da Universidade de Vila Velha (UVV), ministrada pelo professor Sandro Tonini. 2012
  • 2.
    História – De onde surgiu o conceito NoSQL  Definição – O que é NoSQL  Características  Classificação – Dados  Exemplo – Facebook  Exemplo – Comandos  Mitos sobre NoSQL
  • 3.
    Um pouco de História  Usado pela primeira vez em 1998 – Autor Carlo Strozzi.  Volta a ser assunto em 2009 por Eric Evans.  Surge da necessidade de maior performance e alta escalabilidade.  Facilidade na distribuição horizontal.
  • 4.
    Definição Definição (Wikipédia) “NoSQL éum termo genérico para uma classe definida de banco de dados não-relacionais que rompe uma longa história de banco de dados relacionais com propriedades ACID. Outros termos equivalentes para esta categoria de bancos é NF², N1NF (non first normal form), nested relational, dimensional, multivalue, free-form, schemaless, document database e MRNN (Modelo Relacional Não Normalizado).” Pra quem não lembra: Uma tabela está na primeira forma normal, se e somente se, não possuir atributos multivalorados. Ou seja, a primeira forma normal não admite repetições ou campos que tenha mais que um valor. http://blogladob.com.br/wp-content/uploads/2012/07/Esqueceram-de-Mim.jpg
  • 5.
    Características  Escalabilidade Horizontal(scale out)  Replicação – Escalar por duplicação de informações  Master-Slave http://escalabilidade.com/wp-content/uploads/2010/03/04.png  Multi-Master  Schema-free  Clusterização  Mapreduce  Map  Reduce  Sharding
  • 6.
    Classificação KEY/VALUE STORE Amazon SimpleDB Membase Azure Table Storage Memcachedb Berkeley DB Mnesia Chordless NorthScale Dynomite Orient Key/Value Server GenieDB Pincaster GT.M / M.DB PNUTS/Sherpa HamsterDB Project Voldemort Hibari Redis KAI Riak KaTree Scalaris Kumofs ScalienDB / Scalien Keyspace LightCloud Tokyo Cabinet Fonte: http://nosql.mypopescu.com
  • 7.
    Classificação WIDE COLUMNS STORE BigTable HBase Cassandra Hypertable DOCUMENT STORE Colayer MongoDB CouchDB OrientDB FleetDB Raven DB Jackrabbit ThruDB Lotus Notes Terrastore Fonte: http://nosql.mypopescu.com
  • 8.
    Classificação GRAPH STORE AllegroGraph InfiniteGraph Bigdata InfoGrid Core Data Neo4j DEX OpenLink Virtuoso Filament Sones FlockDB VertexDB HyperGraphDB Trinity Fonte: http://nosql.mypopescu.com
  • 9.
  • 10.
    Exemplo Facebook • Arquitetura Facebook
  • 11.
    Exemplo Comandos • Comandos Hbase hbase(main):001:0> create 'test', 'cf' 0 row(s) in 3.8890 seconds hbase(main):002:0> put 'test', 'row1', 'cf:a', 'value1' 0 row(s) in 0.1840 seconds hbase(main):003:0> scan 'test‘ ROW COLUMN+CELL Row1 column=cf:a, timestamp=1332311427315, value=value1 1 row(s) in 0.1160 seconds hbase(main):004:0> Fonte: http://cook.coredump.me/post/19672191046/hbase-client-example
  • 12.
    Maiores mitos sobreNoSQL NoSQL é escalável. Não precisamos de DBAS. NoSQL é mais econômico.
  • 13.
    Fontes de Pesquisa “Introdução ao NoSQL.” - http://www.nosqlbr.com.br  “Escolhendo entre escalabilidade horizontal e escalabilidade vertical”. - http://escalabilidade.com/2010/09/21/escolhendo-entre-escalabilidade-horizontal-e-escalabilidade-vertical/  “Introdução ao NoSQL parte II” - http://escalabilidade.com/2010/04/06/introducao-ao-nosql-parte-ii/  InfoWester “Cluster: Principais Conceitos” - http://www.infowester.com/cluster.php  “NoSQL” - http://nosql.mypopescu.com/kb/nosql  “Os Maiores mitos sobre NoSQL” - http://escalabilidade.com/2010/10/08/os-maiores-mitos-sobre-nosql/  “Inside Facebook Messages' Application Server” - https://www.facebook.com/note.php?note_id=10150162742108920  “Hive – The next generation data warehouse” - http://blogs.impetus.com/big_data/hadoop_ecosystem/Hive.do  Cassandra – A structured storage system on a P2P Network – https://www.facebook.com/note.php?note_id=24413138919