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 Azure Table Storage Berkeley DB Chordless Dynomite GenieDB GT.M / M.DB HamsterDB Hibari KAI KaTree Kumofs LightCloud 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 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