Nosql

  • Upload
    suissa

  • View
    2.220

  • Download
    0

Embed Size (px)

Citation preview

eae guri

O termo NoSQL foi usado pela primeira vez em 1998 como o nome de um banco de dados relacional de cdigo aberto que no possua um interface SQL. Seu autor, Carlo Strozzi, alega que o movimento NoSQL " completamente distinto do modelo relacional e portanto deveria ser mais apropriadamente chamado "NoREL" ou algo que produzisse o mesmo efeito". Porm o termos voltou a ser assunto em 2009 por um funcionrio do Rackspace, Eric Evans, quando Johan Oskarsson da Last.fm queria organizar um evento para discutir bancos de dados open source distribudos. NoSQL so diferentes sistemas de armazenamento que vieram para suprir necessidades que os bancos de dados tradicionais(Relacionais) so ineficazes. Muitas dessas bases apresentam caractersticas muito interessantes como alta performance, escalabilidade, replicao, suporte dados estruturados e sub colunas. O NoSQL surgiu da necessidade de uma performance superior e de uma alta escalabilidade. Os atuais bancos de dados relacionais so muito restritos a isso, sendo necessrio a distribuio vertical de servidores, ou seja, quanto mais dados, mais memria e mais disco um servidor precisa. O NoSQL tem uma grande facilidade na distribuio horizontal, ou seja, mais dados, mais servidores, no necessariamente de alta performance. Um grande utilizador desse conceito o google, que usa computadores de pequeno e mdio porte, para a distribuio dos dados, essa forma de utilizao e muito mais eficiente e econmica. Alem disso, os bancos de dados NoSQL so muito tolerantes a erros. No caso dos bancos NoSQL toda a a informao necessria estar agrupada no mesmo registro, ou seja, em vez de voc ter o relacionamento entre vrias tabelas para formar uma informao ela estar em sua totalidade no mesmo registro. Os bancos NoSQL so subdivididos pelo seu ncleo, ou seja, como ele trabalha com os dados. Que so: Wide Column Store/Column Families, Document Store, Key Value/Tuple Store, Eventually Consistent Key Value Store, Graph Databases, Object Databases, Grid Database Solutions, XML Databases. Lista retirada dehttp://nosql-database.org/ Key/Value Store
Esse o tipo de banco de dados NoSQL mais simples o conceito dele uma chave e um valor para essa chave, mas ele o que aguenta mais carga de dados. Esses tipos de bancos de dados, so o que tem a maior escalabilidade. Berkeley DB

Tokyo Cabinet

Project Voldermort

MemcacheDB

SimpleBD


Wide Columns Store
Fortemente inspirados pelo BigTable do google eles suportam vrias linhas e colunas, alem disso ele permite subcolunas. Alem do BigTable do google outros que usam essa tecnologia so: HBase(Apache)

HiperTable

Cassandra(Apache)


Document Store
Baseado em documentos XML ou JSON, podem ser localizados pelo seu id unico ou por qualquer registro que tenha no documento. CouchDB(Apache)

MongoDB

Riak

RavenDB


Graph Store
Com uma complexibilidade maior esses bancos de dados guardam objetos e no registros como os outros tipos de NoSQL. A busca destes itens so feitas pela navegao destes objetos. Neo4J

InfoGrid

HyperGraphDB

BigData


Column Oriented Store
Esses so bancos de dados relacionais, porem eles tem caracteristicas do NoSQL a principal diferena deles que os dados so armazenados em colunas, ajudando na escalabilidade. Vertica

MonetDB

LucidDB

Infobright

Ingres/Vectorwise


Como apresentado no grfico, os key-value aguentam maior quantidade de registros, enquanto os grafos so mais complexos. Pensar numa concluso.

Em um projeto, no necessariamente voc precisa usar s um banco de dados nosql, voc pode usar ele com qualquer outro banco de dados. Os bancos nosql so indicados para grandes cargas de dados, exigncia de velocidade na consulta e escrita em grandes volumes de dados. Ainda segundo o grfico 90% dos sites atualmente podem usar sem problemas algum os bancos de dados tradicionais, pois o ganho de performance no seria to siguinificativo, para os 10% restantes aconselhavel o uso do NoSQL. A idia que o conceito NOSQL nos passa que ele no pode ser generalizado como a resposta de todos seus problemas, mas sim para problemas especficos. Banco de dados Relacionais O que : Baseia-se em que todos os dados esto guardados em tabelas, pelo conceito de entidade e relacionamento. Os dados so separados de forma nica tentando diminuir ao mximo a redundncia. Pois a informao criada pelo conjunto dos dados, onde so as relaes entre as tabelas que fazem esse servio. Caractersticas: tabelas, schema definido,hierarquia, redundncia mnima, entidade e relacionamento, formas normais, transaes ACID(Atomicidade, Consistncia, Isolamento, Durabilidade). Necessidades: Sistemas locais, sistemas financeiros, sistemas corporativos,segurana da informao, consistncia dos dados. Marcas: DB2, Firebird, InterBase, Microsoft SQL Server, MySQL, Oracle, PostgreSQL Cases: SAP, OpenERP,Previdncia Social, Caixa, Ita, Salesforce, Vale.


Banco de Dados NOSQL
O que : Uma soluo alternativa para os bancos de dados relacionais, possuem uma alta escalabilidade e desempenho

Caractersticas:registros, schema-free, tolerncia a falha, escalabilidade, clusterizao, mapreduce, sharding.

Necessidades: Sistemas em nuvem, anlises sociais, alta escalabilidade, performance na consulta/escrita, replicao.

Cases:Twitter, Facebook, Digg, Amazon, LinkedIN, Google, Yahoo, The New York Times, Bit.ly.