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 Multi-Master http://escalabilidade.com/wp-content/uploads/2010/03/04.png Schema-free Clusterização Mapreduce Map Reduce Sharding
Classificação Amazon SimpleDB Azure Table Storage Berkeley DB Chordless Dynomite GenieDB GT.M / M.DB HamsterDB Hibari KAI KaTree Kumofs LightCloud KEY/VALUE STORE Membase Memcachedb Mnesia NorthScale Orient Key/Value Server Pincaster PNUTS/Sherpa Project Voldemort Redis Riak Scalaris ScalienDB / Scalien Keyspace Tokyo Cabinet Fonte: http://nosql.mypopescu.com
Classificação WIDE COLUMNS STORE BigTable Cassandra HBase Hypertable DOCUMENT STORE Colayer CouchDB FleetDB Jackrabbit Lotus Notes MongoDB OrientDB Raven DB ThruDB Terrastore Fonte: http://nosql.mypopescu.com
Classificação GRAPH STORE AllegroGraph Bigdata Core Data DEX Filament FlockDB HyperGraphDB InfiniteGraph InfoGrid Neo4j OpenLink Virtuoso Sones VertexDB Trinity Fonte: http://nosql.mypopescu.com
Fonte: http://www.slideshare.net/quipo/nosql-databases-why-what-and-when Classificação
Arquitetura Facebook Exemplo Facebook
Comandos Hbase hbase(main):001:0> create 'test', 'cf' 0 row(s) in 3.8890 seconds Exemplo Comandos 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