Nosql
Transcript of Nosql
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.