SlideShare una empresa de Scribd logo
1 de 11
Descargar para leer sin conexión
CENTRO UNIVERSITÁRIO ESTÁCIO DA BAHIA – FIB

         SISTEMAS DE INFORMAÇÃO




            ADEMIR T S CHAGAS

             NELSON ARAGÃO

              MESSIAS SILVA




                 NoSQL




              SALVADOR – BA

                   2011
ADEMIR T S CHAGAS

 NELSON ARAGÃO

  MESSIAS SILVA




    NoSQL




                             Trabalho apresentado ao
                    Centro Universitário Estácio da Bahia,
                    trabalho da av2,da disciplina Banco II ,
                    do curso de Sistema de Informação,
                    sob orientação do Prof         Antônio
                    Cordeiro




 SALVADOR – BA

      2011
NoSQL



             Ademir T S Chagas, Nelson Aragão, Messias Silva



      Resumo. Este artigo irá abordar as principais características, técnicas
de escalabilidade, classificação e arquitetura do NoSQL, que é um banco de
dados não relacional que tem um propósito de suprir as necessidades em
demandas onde os bancos de dados tradicionais (relacionais) são ineficazes. O
NoSQL é bastante utilizado pelas grandes empresas, como o Twitter,
Facebook, Ebay, Google, entre outros. A sua principal característica é a
escalabilidade, no qual faz aumentar a capacidade de armazenamento de
dados e a velocidade.



   1. INTRODUÇÃO



       O NoSQL surgiu da necessidade de uma performance superior e de uma
alta escalabilidade. Os atuais bancos de dados relacionais são muito restritos a
isso, sendo necessária a distribuição vertical de servidores, ou seja, quanto
mais dados, mais memória e mais disco um servidor precisa. O NoSQL tem
uma grande facilidade na distribuição horizontal, ou seja, mais dados, mais
servidores, não necessariamente de alta performance. [1]
        Um grande utilizador desse conceito é o Google, que usa computadores
de pequeno e médio porte para a distribuição dos dados; essa forma de
utilização é muito mais eficiente e econômica. Além disso, os bancos de dados
NoSQL são muito tolerantes a erros. Toda a informação necessária estará
agrupada no mesmo registro, ou seja, em vez de você ter o relacionamento
entre várias tabelas para formar uma informação, ela estará em sua totalidade
no mesmo registro. [1]



   2. COMPARATIVO ENTRE BD RELACIONAL E NÃO RELACIONAL
      (NoSQL)



      Banco de Dados Relacionais

          • O que é: baseia-se em que todos os dados estão guardados em
            tabelas, pelo conceito de entidade e relacionamento. Os dados
            são separados de forma única, tentando diminuir ao máximo a
redundância, pois a informação é criada pelo conjunto dos dados,
     onde são as relações entre as tabelas que fazem esse serviço.

  • Características:   Tabelas,     schema     definido, hierarquia,
    redundância mínima, entidade e relacionamento, formas normais,
    transações ACID (Atomicidade, Consistência, Isolamento,
    Durabilidade).

  • Escalabilidade: Devido à estruturação do modelo é possível, mas
    complexo.

  • Consistência: Ponto forte do Modelo Relacional. A regra de
    consistência presente garante um maior rigor à consistência das
    informações.

  • Disponibilidade: Este modelo não suporta eficientemente grande
    demanda, dado a dificuldade e distribuição de dados.

  • Necessidades: Sistemas locais, financeiros,         corporativos;
    segurança da informação; consistência dos dados.

  • SGBDs: DB2, Firebird, InterBase, Microsoft SQL Server, MySQL,
    Oracle, PostgreSQL

  • Cases: SAP, OpenERP, Previdência          Social,   Caixa,    Itaú,
    Salesforce, Vale.




Banco de Dados Não Relacionais (NoSQL)



  • O que é: Uma solução alternativa para os bancos de dados
    relacionais possuem uma alta escalabilidade e desempenho.

  • Características: Registros, schema-free, tolerância     à    falha,
    escalabilidade, clusterização, mapreduce, sharding.

  • Escalabilidade: É sem dúvida a principal vantagem do NoSQL.
    Possui mais flexibilidade na inclusão de dados por não possuir
    estrutura.

  • Consistência: Não garante a consistência da informação, caso
    nenhuma informação seja atualizada, retornará a todos os
    pedintes o mesmo valor.
• Disponibilidade: Outro ponto forte do BD NoSQL. Possui um alto
           grau de distribuição de dados, e garante um maior numero de
           solicitações.



         • Necessidades: sistemas em nuvem, análises sociais, alta
           escalabilidade, performance na consulta/escrita, replicação.

         • SGBDs: Oracle NoSQL, Cassandra,            BigTable,   MongoDB,
           CouchDB, Dynamo.

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




   3. CARACTERÍSTICAS



   3.1 Escalabilidade Horizontal

     Significa adicionar um novo servidor e um sistema de software que
   permita a distribuição do trabalho entre múltiplas máquinas.[3]




   3.2 Clusterização

   Compreende um banco de dados armazenado e gerenciado por mais de
um servidor, provê uma alta disponibilidade e um alto desempenho do sistema.
Assim, a organização se beneficia diminuindo o tempo de inoperabilidade do
banco de dados. Esse processo vem como uma solução para reduzir gastos
com estrutura de hardware.[6]



   3.3 Schema-Free



    Um dos fatores que contribuem para um banco de dados NoSQL escalar é
por causa da ausência de um schema (schema free). Todos os novos bancos
tem em comum que eles são key-value stores, ou seja, salvam,como o nome
sugere, um conjunto de entradas formadas por uma chave associada a um
valor e o valor poderia ser de qualquer tipo, um binário ou string que está
sendo salvo de forma desnormalizada (schema-free).[9]



   3.4 MapReduce



    É uma estrutura de software introduzido pela Google em 2004 para o
processamento de problemas altamente distribuíveis em grandes conjuntos de
dados,usando um grande número de computadores (nós). O MapReduce
permite processamento distribuído do mapa e as operações de redução. Desde
que cada operação de mapeamento é independente dos outros, todos os
mapas podem ser executadas em paralelo - embora na prática ele é limitado
pelo número de fontes de dados independentes e / ou o número de CPUs perto
de cada fonte.[9]



   4. TÉCNICAS DE ESCALABILIDADE




   4.1 Sharding



   O sharding consiste na divisão dos dados em múltiplas tabelas do banco de
dados para escalar tanto nossas leituras como nossas escritas. [9]
4.2 Replicação – Escalar por duplicação de informações



   As informações são copiadas em mais de um banco para aumentar a
capacidade de recuperar estas informações. O mesmo é subdividido em duas
arquiteturas principais:

      •   Master-Slave:

             Cada escrita em banco resulta em N x escritas onde N é o
          número de slaves. Neste caso temos um banco “Master” que
          propaga cada escrita para os bancos “slaves”. Isto aumenta a nossa
          velocidade de leitura, mas não melhora em nada nossa capacidade
          de escrita.[10]

      •   Multi-Master:

            Aumentamos o número de Masters em nosso sistema e assim
          aumentamos nossa capacidade de escrita. Esta abordagem pode
          gerar conflitos.[10]



   5. CLASSIFICAÇÃO DO BANCO DE DADOS



   5.1 Arquitetura



        Quando à distribuição de dados, certos sistemas promovem o
particionamento e a replicação dos dados, enquanto outros deixam essa tarefa
para o cliente. A maioria das soluções é distribuída, como é caso do Amazon
Dynamo do CouchDB, do MongoDb, do BigTable e do Cassandra.[4]



   5.2 Armazenamento



       Temos os bancos que mantêm suas informações em memória
realizando persistências ocasionais; aqueles que mantêm suas informações
em disco, como são os casos do CouchDb e do MongoDb; e aqueles
configuráveis, tais como BigTable e o Cassandra.[4]
5.3 Modelo de Dados



  •   Chave/Valor:

        Baseia-se numa coleção de chaves únicas e de valores, os quais
      são associados. [4]

          Ex: Dynamo

  •   Documentos

        Os documentos são as unidades básicas de armazenamento e
  estes não utilizam qualquer tipo de estruturação pré-definida, como é o
  caso das tabelas do modelo relacional. [4]

        Ex: CouchDB

  •   Colunas

          Mudou-se de orientação o registro para orientação a colunas
  (tributos). [4]

        Ex: Cassandra, BigTable.

  •   Grafo:

        Os dados são armazenados em nós de um grafo cujas arestas
  representam o tipo de associação entre esses nós. [4]

        Ex: Neo4J



6. VANTAGENS x DESVANTAGENS



6.1 Vantagens:

  •   Escalabilidade Maciça

  •   Alta Disponibilidade

  •   Baixo Custo

  •   Previsível a Elasticidade

  •   Esquema de flexibilidade, dados esparsos e semi-estruturados.
6.2 Desvantagens:

       •   Capacidade Limitada de Consulta

       •   Não existe padronização

       •   Portabilidade pode ser um problema

       •   Insuficiente Controle de Acesso



   7. SGBDs



           • Apache Cassandra

         Desenvolvido inicialmente pelo site de relacionamento Facebook, é um
projeto de sistema de banco de dados distribuído, altamente escalável, que foi
desenvolvido na plataforma Java.[9]

           • BigTable

        Foi desenvolvido pelo Google, para distribuir dados por centenas de
servidores e escalar por conjuntos de dados de até 1 petabyte.[9]

           • Dynamo

          Desenvolvido pela Amazon em 2007, foi criado para oferecer
armazenamento de valores-chaves de dados de alta disponibilidade, permitindo
atualizações para sobreviver às falhas de servidor e rede. [9]




   8. EMPRESAS QUE UTILIZAM O NoSQL



    Facebook, Google, Yahoo, The New York Times, Amazon, Ebay, Twitter,
entre outros.
REFERÊNCIAS



[1] NASCIMENTO, Jean - NoSQL - você realmente sabe do que estamos
falando? Disponível em:
http://imasters.com.br/artigo/17043/bancodedados/nosql_voce_realmente_sabe
_do_que_estamos_falando/, acessado em: 8 de Novembro de 2011.

[2] NASCIMENTO, Jean , aka Suissa - “Introdução ao NoSQL” Disponivel em:
http://www.nosqlbr.com.br/introducao-ao-nosql.html, acessado em: 8 de
novembro de 2011.

[3] FERREIRA, Edmar, “Introdução ao NoSQL parte I” Disponível em:
http://escalabilidade.com/2010/03/08/introducao-ao-nosql-parte-i/, acessado em
9 de novembro de 2011.

[4] BRITO,Ricardo “Bancos de Dados NoSQL x SGBDs Relacionais:Análise
Comparativa* ” Disponível em: http://www.infobrasil.inf.br/userfiles/27-05-S4-
1-68840-Bancos%20de%20Dados%20NoSQL.pdf, acessado em 10 de
novembro de 2011.

[5] FERREIRA, Edmar, “Escolhendo entre escalabilidade horizontal e
escalabilidade vertical“ Disponível em:
http://escalabilidade.com/2010/09/21/escolhendo-entre-escalabilidade-
horizontal-e-escalabilidade-vertical/, acessado em 9 de novembro de 2011.

[6] INFOWESTER “Cluster: Principais Conceitos”, Disponível em:
http://www.infowester.com/cluster.php, acessado em 9 de novembro de 2011.

[7] STEPPAT, Nico, “Bancos de dados não relacionais e o movimento
NoSQL“ Disponível em: http://blog.caelum.com.br/bancos-de-dados-nao-
relacionais-e-o-movimento-nosql/, acessado em 11 de novembro de 2011.

[8] WIKIPEDIA, “MapReduce“ Disponível em:
http://en.wikipedia.org/wiki/MapReduce, acessado em 13 de novembro de
2011.

[9] SOUZA,Talles ROCHA,André, “NoSQL Princípios e Características “
Disponível em: http://www.slideshare.net/andrerochajp/artigo-nosql, acessado
em 13 de novembro de 2011.

[10] FERREIRA, Edmar, “Introdução ao NoSQL parte II” Disponível em:
http://escalabilidade.com/2010/03/08/introducao-ao-nosql-parte-ii/, acessado
em 9 de novembro de 2011.
Artigo Nosql

Más contenido relacionado

La actualidad más candente

Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionaisalexculpado
 
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisNoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisCarlo Pires
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBPaulo Bischof
 
NoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas ApresentaçãoNoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas ApresentaçãoAugusto Giles
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosJoão Helis Bernardo
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Ambiente Livre
 
NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBRodrigo Hjort
 
Modelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaModelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaGlaucio Scheibel
 
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLOrlando Vitali
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Christiano Anderson
 
Comparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLComparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLpichiliani
 
NOSQL uma breve introdução
NOSQL uma breve introduçãoNOSQL uma breve introdução
NOSQL uma breve introduçãoWise Systems
 
RDBMS x NoSQL x NewSQL
RDBMS x NoSQL x NewSQLRDBMS x NoSQL x NewSQL
RDBMS x NoSQL x NewSQLOrlando Vitali
 

La actualidad más candente (20)

Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados RelacionaisBanco de Dados Não Relacionais vs Banco de Dados Relacionais
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
 
Banco de Dados - NoSQL
Banco de Dados - NoSQLBanco de Dados - NoSQL
Banco de Dados - NoSQL
 
O NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma AnáliseO NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma Análise
 
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens ComputacionaisNoSQL x SQL: Bancos de Dados em Nuvens Computacionais
NoSQL x SQL: Bancos de Dados em Nuvens Computacionais
 
O NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma AnáliseO NoSQL e o Relacional: Uma Análise
O NoSQL e o Relacional: Uma Análise
 
Bancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDBBancos de dados NoSQL - Redis e MongoDB
Bancos de dados NoSQL - Redis e MongoDB
 
NoSQL
NoSQLNoSQL
NoSQL
 
NoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas ApresentaçãoNoSQL Familia de Colunas Apresentação
NoSQL Familia de Colunas Apresentação
 
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas DistribuídosBanco de Dados NoSQL - Disciplina: Sistemas Distribuídos
Banco de Dados NoSQL - Disciplina: Sistemas Distribuídos
 
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
Escalabilidade Linear com o Banco de Dados NoSQL Apache Cassandra.
 
NoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDBNoSQL: onde, como e por quê? Cassandra e MongoDB
NoSQL: onde, como e por quê? Cassandra e MongoDB
 
Modelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência PoliglotaModelos NoSQL e a Persistência Poliglota
Modelos NoSQL e a Persistência Poliglota
 
Nosql
NosqlNosql
Nosql
 
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLEstudo comparativo entr bancos RDBMS, NoSQL e NewSQL
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQL
 
Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15Persistência Poliglota, Big Data e NoSQL FISL 15
Persistência Poliglota, Big Data e NoSQL FISL 15
 
Comparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQLComparação de desempenho entre SQL e NoSQL
Comparação de desempenho entre SQL e NoSQL
 
NOSQL uma breve introdução
NOSQL uma breve introduçãoNOSQL uma breve introdução
NOSQL uma breve introdução
 
RDBMS x NoSQL x NewSQL
RDBMS x NoSQL x NewSQLRDBMS x NoSQL x NewSQL
RDBMS x NoSQL x NewSQL
 
Big Data
Big DataBig Data
Big Data
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 

Destacado

No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbfabio perrella
 
Ebay: DB Capacity planning at eBay
Ebay: DB Capacity planning at eBayEbay: DB Capacity planning at eBay
Ebay: DB Capacity planning at eBayDataStax Academy
 
eBay Cloud CMS based on NOSQL
eBay Cloud CMS based on NOSQLeBay Cloud CMS based on NOSQL
eBay Cloud CMS based on NOSQLXu Jiang
 
Social Data and Log Analysis Using MongoDB
Social Data and Log Analysis Using MongoDBSocial Data and Log Analysis Using MongoDB
Social Data and Log Analysis Using MongoDBTakahiro Inoue
 
An Elastic Metadata Store for eBay’s Media Platform
An Elastic Metadata Store for eBay’s Media PlatformAn Elastic Metadata Store for eBay’s Media Platform
An Elastic Metadata Store for eBay’s Media PlatformMongoDB
 
Scaling with MongoDB
Scaling with MongoDBScaling with MongoDB
Scaling with MongoDBMongoDB
 
MongoATL: How Sourceforge is Using MongoDB
MongoATL: How Sourceforge is Using MongoDBMongoATL: How Sourceforge is Using MongoDB
MongoATL: How Sourceforge is Using MongoDBRick Copeland
 
MongoDB San Francisco 2013: Storing eBay's Media Metadata on MongoDB present...
MongoDB San Francisco 2013: Storing eBay's Media Metadata on MongoDB  present...MongoDB San Francisco 2013: Storing eBay's Media Metadata on MongoDB  present...
MongoDB San Francisco 2013: Storing eBay's Media Metadata on MongoDB present...MongoDB
 
Semantic Wiki: Social Semantic Web In Action:
Semantic Wiki: Social Semantic Web In Action: Semantic Wiki: Social Semantic Web In Action:
Semantic Wiki: Social Semantic Web In Action: Jesse Wang
 
NoSQL at Twitter (NoSQL EU 2010)
NoSQL at Twitter (NoSQL EU 2010)NoSQL at Twitter (NoSQL EU 2010)
NoSQL at Twitter (NoSQL EU 2010)Kevin Weil
 
Building LinkedIn's Learning Platform with MongoDB
Building LinkedIn's Learning Platform with MongoDBBuilding LinkedIn's Learning Platform with MongoDB
Building LinkedIn's Learning Platform with MongoDBMongoDB
 
MongoDB at eBay
MongoDB at eBayMongoDB at eBay
MongoDB at eBayMongoDB
 

Destacado (13)

No sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodbNo sql e as vantagens na utilização do mongodb
No sql e as vantagens na utilização do mongodb
 
Ebay: DB Capacity planning at eBay
Ebay: DB Capacity planning at eBayEbay: DB Capacity planning at eBay
Ebay: DB Capacity planning at eBay
 
eBay Cloud CMS based on NOSQL
eBay Cloud CMS based on NOSQLeBay Cloud CMS based on NOSQL
eBay Cloud CMS based on NOSQL
 
Social Data and Log Analysis Using MongoDB
Social Data and Log Analysis Using MongoDBSocial Data and Log Analysis Using MongoDB
Social Data and Log Analysis Using MongoDB
 
An Elastic Metadata Store for eBay’s Media Platform
An Elastic Metadata Store for eBay’s Media PlatformAn Elastic Metadata Store for eBay’s Media Platform
An Elastic Metadata Store for eBay’s Media Platform
 
Scaling with MongoDB
Scaling with MongoDBScaling with MongoDB
Scaling with MongoDB
 
MongoATL: How Sourceforge is Using MongoDB
MongoATL: How Sourceforge is Using MongoDBMongoATL: How Sourceforge is Using MongoDB
MongoATL: How Sourceforge is Using MongoDB
 
MongoDB San Francisco 2013: Storing eBay's Media Metadata on MongoDB present...
MongoDB San Francisco 2013: Storing eBay's Media Metadata on MongoDB  present...MongoDB San Francisco 2013: Storing eBay's Media Metadata on MongoDB  present...
MongoDB San Francisco 2013: Storing eBay's Media Metadata on MongoDB present...
 
ebay
ebayebay
ebay
 
Semantic Wiki: Social Semantic Web In Action:
Semantic Wiki: Social Semantic Web In Action: Semantic Wiki: Social Semantic Web In Action:
Semantic Wiki: Social Semantic Web In Action:
 
NoSQL at Twitter (NoSQL EU 2010)
NoSQL at Twitter (NoSQL EU 2010)NoSQL at Twitter (NoSQL EU 2010)
NoSQL at Twitter (NoSQL EU 2010)
 
Building LinkedIn's Learning Platform with MongoDB
Building LinkedIn's Learning Platform with MongoDBBuilding LinkedIn's Learning Platform with MongoDB
Building LinkedIn's Learning Platform with MongoDB
 
MongoDB at eBay
MongoDB at eBayMongoDB at eBay
MongoDB at eBay
 

Similar a Artigo Nosql

Bancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemBancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemJoão Gabriel Lima
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosMozart Dornelles Claret
 
Apostila NoSql.pdf
Apostila NoSql.pdfApostila NoSql.pdf
Apostila NoSql.pdfEizo Edson
 
Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL
Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQLDesenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL
Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQLOtávio Santana
 
No sql no desenvolvimento de aplicações web colaborativas
No sql no desenvolvimento de aplicações web colaborativasNo sql no desenvolvimento de aplicações web colaborativas
No sql no desenvolvimento de aplicações web colaborativasJoão Gabriel Lima
 
Cassandra com NOSQL parte 2
Cassandra com NOSQL parte 2Cassandra com NOSQL parte 2
Cassandra com NOSQL parte 2Otávio Santana
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Thiago de Azeredo
 

Similar a Artigo Nosql (20)

Introdução ao NoSQL
Introdução ao NoSQLIntrodução ao NoSQL
Introdução ao NoSQL
 
Bancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagemBancos de dados no sql – uma nova abordagem
Bancos de dados no sql – uma nova abordagem
 
Bancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geralBancos de dados NoSQL: uma visão geral
Bancos de dados NoSQL: uma visão geral
 
Artigo couchdb
Artigo couchdbArtigo couchdb
Artigo couchdb
 
Web Scale Data Management
Web Scale Data ManagementWeb Scale Data Management
Web Scale Data Management
 
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas ColaborativosApresentação Modelo de Gestão de dados para sistemas Colaborativos
Apresentação Modelo de Gestão de dados para sistemas Colaborativos
 
C # banco de dados
C # banco de dadosC # banco de dados
C # banco de dados
 
Pesquisa sobre no sql
Pesquisa sobre no sqlPesquisa sobre no sql
Pesquisa sobre no sql
 
No sql std
No sql stdNo sql std
No sql std
 
Apostila NoSql.pdf
Apostila NoSql.pdfApostila NoSql.pdf
Apostila NoSql.pdf
 
NoSQL & SQL
NoSQL & SQLNoSQL & SQL
NoSQL & SQL
 
Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL
Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQLDesenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL
Desenvolvendo com NOSQL ­ Cassandra em Java: Parte 1 ­ Conceito NOSQL
 
No sql no desenvolvimento de aplicações web colaborativas
No sql no desenvolvimento de aplicações web colaborativasNo sql no desenvolvimento de aplicações web colaborativas
No sql no desenvolvimento de aplicações web colaborativas
 
Comparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacionalComparação entre bancos de dados de modelo não relacional
Comparação entre bancos de dados de modelo não relacional
 
Banco de dados
Banco de dadosBanco de dados
Banco de dados
 
Cassandra com NOSQL parte 2
Cassandra com NOSQL parte 2Cassandra com NOSQL parte 2
Cassandra com NOSQL parte 2
 
No sql o_que_e_isso.key
No sql o_que_e_isso.keyNo sql o_que_e_isso.key
No sql o_que_e_isso.key
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Tema3.pptx
Tema3.pptxTema3.pptx
Tema3.pptx
 
Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)Introdução ao MongoDB (NoSQL)
Introdução ao MongoDB (NoSQL)
 

Artigo Nosql

  • 1. CENTRO UNIVERSITÁRIO ESTÁCIO DA BAHIA – FIB SISTEMAS DE INFORMAÇÃO ADEMIR T S CHAGAS NELSON ARAGÃO MESSIAS SILVA NoSQL SALVADOR – BA 2011
  • 2. ADEMIR T S CHAGAS NELSON ARAGÃO MESSIAS SILVA NoSQL Trabalho apresentado ao Centro Universitário Estácio da Bahia, trabalho da av2,da disciplina Banco II , do curso de Sistema de Informação, sob orientação do Prof Antônio Cordeiro SALVADOR – BA 2011
  • 3. NoSQL Ademir T S Chagas, Nelson Aragão, Messias Silva Resumo. Este artigo irá abordar as principais características, técnicas de escalabilidade, classificação e arquitetura do NoSQL, que é um banco de dados não relacional que tem um propósito de suprir as necessidades em demandas onde os bancos de dados tradicionais (relacionais) são ineficazes. O NoSQL é bastante utilizado pelas grandes empresas, como o Twitter, Facebook, Ebay, Google, entre outros. A sua principal característica é a escalabilidade, no qual faz aumentar a capacidade de armazenamento de dados e a velocidade. 1. INTRODUÇÃO O NoSQL surgiu da necessidade de uma performance superior e de uma alta escalabilidade. Os atuais bancos de dados relacionais são muito restritos a isso, sendo necessária a distribuição vertical de servidores, ou seja, quanto mais dados, mais memória e mais disco um servidor precisa. O NoSQL tem uma grande facilidade na distribuição horizontal, ou seja, mais dados, mais servidores, não necessariamente de alta performance. [1] Um grande utilizador desse conceito é o Google, que usa computadores de pequeno e médio porte para a distribuição dos dados; essa forma de utilização é muito mais eficiente e econômica. Além disso, os bancos de dados NoSQL são muito tolerantes a erros. Toda a informação necessária estará agrupada no mesmo registro, ou seja, em vez de você ter o relacionamento entre várias tabelas para formar uma informação, ela estará em sua totalidade no mesmo registro. [1] 2. COMPARATIVO ENTRE BD RELACIONAL E NÃO RELACIONAL (NoSQL) Banco de Dados Relacionais • O que é: baseia-se em que todos os dados estão guardados em tabelas, pelo conceito de entidade e relacionamento. Os dados são separados de forma única, tentando diminuir ao máximo a
  • 4. redundância, pois a informação é criada pelo conjunto dos dados, onde são as relações entre as tabelas que fazem esse serviço. • Características: Tabelas, schema definido, hierarquia, redundância mínima, entidade e relacionamento, formas normais, transações ACID (Atomicidade, Consistência, Isolamento, Durabilidade). • Escalabilidade: Devido à estruturação do modelo é possível, mas complexo. • Consistência: Ponto forte do Modelo Relacional. A regra de consistência presente garante um maior rigor à consistência das informações. • Disponibilidade: Este modelo não suporta eficientemente grande demanda, dado a dificuldade e distribuição de dados. • Necessidades: Sistemas locais, financeiros, corporativos; segurança da informação; consistência dos dados. • SGBDs: DB2, Firebird, InterBase, Microsoft SQL Server, MySQL, Oracle, PostgreSQL • Cases: SAP, OpenERP, Previdência Social, Caixa, Itaú, Salesforce, Vale. Banco de Dados Não Relacionais (NoSQL) • O que é: Uma solução alternativa para os bancos de dados relacionais possuem uma alta escalabilidade e desempenho. • Características: Registros, schema-free, tolerância à falha, escalabilidade, clusterização, mapreduce, sharding. • Escalabilidade: É sem dúvida a principal vantagem do NoSQL. Possui mais flexibilidade na inclusão de dados por não possuir estrutura. • Consistência: Não garante a consistência da informação, caso nenhuma informação seja atualizada, retornará a todos os pedintes o mesmo valor.
  • 5. • Disponibilidade: Outro ponto forte do BD NoSQL. Possui um alto grau de distribuição de dados, e garante um maior numero de solicitações. • Necessidades: sistemas em nuvem, análises sociais, alta escalabilidade, performance na consulta/escrita, replicação. • SGBDs: Oracle NoSQL, Cassandra, BigTable, MongoDB, CouchDB, Dynamo. • Cases: Twitter, Facebook, Digg, Amazon, LinkedIN, Google, Yahoo, The New York Times. 3. CARACTERÍSTICAS 3.1 Escalabilidade Horizontal Significa adicionar um novo servidor e um sistema de software que permita a distribuição do trabalho entre múltiplas máquinas.[3] 3.2 Clusterização Compreende um banco de dados armazenado e gerenciado por mais de um servidor, provê uma alta disponibilidade e um alto desempenho do sistema. Assim, a organização se beneficia diminuindo o tempo de inoperabilidade do
  • 6. banco de dados. Esse processo vem como uma solução para reduzir gastos com estrutura de hardware.[6] 3.3 Schema-Free Um dos fatores que contribuem para um banco de dados NoSQL escalar é por causa da ausência de um schema (schema free). Todos os novos bancos tem em comum que eles são key-value stores, ou seja, salvam,como o nome sugere, um conjunto de entradas formadas por uma chave associada a um valor e o valor poderia ser de qualquer tipo, um binário ou string que está sendo salvo de forma desnormalizada (schema-free).[9] 3.4 MapReduce É uma estrutura de software introduzido pela Google em 2004 para o processamento de problemas altamente distribuíveis em grandes conjuntos de dados,usando um grande número de computadores (nós). O MapReduce permite processamento distribuído do mapa e as operações de redução. Desde que cada operação de mapeamento é independente dos outros, todos os mapas podem ser executadas em paralelo - embora na prática ele é limitado pelo número de fontes de dados independentes e / ou o número de CPUs perto de cada fonte.[9] 4. TÉCNICAS DE ESCALABILIDADE 4.1 Sharding O sharding consiste na divisão dos dados em múltiplas tabelas do banco de dados para escalar tanto nossas leituras como nossas escritas. [9]
  • 7. 4.2 Replicação – Escalar por duplicação de informações As informações são copiadas em mais de um banco para aumentar a capacidade de recuperar estas informações. O mesmo é subdividido em duas arquiteturas principais: • Master-Slave: Cada escrita em banco resulta em N x escritas onde N é o número de slaves. Neste caso temos um banco “Master” que propaga cada escrita para os bancos “slaves”. Isto aumenta a nossa velocidade de leitura, mas não melhora em nada nossa capacidade de escrita.[10] • Multi-Master: Aumentamos o número de Masters em nosso sistema e assim aumentamos nossa capacidade de escrita. Esta abordagem pode gerar conflitos.[10] 5. CLASSIFICAÇÃO DO BANCO DE DADOS 5.1 Arquitetura Quando à distribuição de dados, certos sistemas promovem o particionamento e a replicação dos dados, enquanto outros deixam essa tarefa para o cliente. A maioria das soluções é distribuída, como é caso do Amazon Dynamo do CouchDB, do MongoDb, do BigTable e do Cassandra.[4] 5.2 Armazenamento Temos os bancos que mantêm suas informações em memória realizando persistências ocasionais; aqueles que mantêm suas informações em disco, como são os casos do CouchDb e do MongoDb; e aqueles configuráveis, tais como BigTable e o Cassandra.[4]
  • 8. 5.3 Modelo de Dados • Chave/Valor: Baseia-se numa coleção de chaves únicas e de valores, os quais são associados. [4] Ex: Dynamo • Documentos Os documentos são as unidades básicas de armazenamento e estes não utilizam qualquer tipo de estruturação pré-definida, como é o caso das tabelas do modelo relacional. [4] Ex: CouchDB • Colunas Mudou-se de orientação o registro para orientação a colunas (tributos). [4] Ex: Cassandra, BigTable. • Grafo: Os dados são armazenados em nós de um grafo cujas arestas representam o tipo de associação entre esses nós. [4] Ex: Neo4J 6. VANTAGENS x DESVANTAGENS 6.1 Vantagens: • Escalabilidade Maciça • Alta Disponibilidade • Baixo Custo • Previsível a Elasticidade • Esquema de flexibilidade, dados esparsos e semi-estruturados.
  • 9. 6.2 Desvantagens: • Capacidade Limitada de Consulta • Não existe padronização • Portabilidade pode ser um problema • Insuficiente Controle de Acesso 7. SGBDs • Apache Cassandra Desenvolvido inicialmente pelo site de relacionamento Facebook, é um projeto de sistema de banco de dados distribuído, altamente escalável, que foi desenvolvido na plataforma Java.[9] • BigTable Foi desenvolvido pelo Google, para distribuir dados por centenas de servidores e escalar por conjuntos de dados de até 1 petabyte.[9] • Dynamo Desenvolvido pela Amazon em 2007, foi criado para oferecer armazenamento de valores-chaves de dados de alta disponibilidade, permitindo atualizações para sobreviver às falhas de servidor e rede. [9] 8. EMPRESAS QUE UTILIZAM O NoSQL Facebook, Google, Yahoo, The New York Times, Amazon, Ebay, Twitter, entre outros.
  • 10. REFERÊNCIAS [1] NASCIMENTO, Jean - NoSQL - você realmente sabe do que estamos falando? Disponível em: http://imasters.com.br/artigo/17043/bancodedados/nosql_voce_realmente_sabe _do_que_estamos_falando/, acessado em: 8 de Novembro de 2011. [2] NASCIMENTO, Jean , aka Suissa - “Introdução ao NoSQL” Disponivel em: http://www.nosqlbr.com.br/introducao-ao-nosql.html, acessado em: 8 de novembro de 2011. [3] FERREIRA, Edmar, “Introdução ao NoSQL parte I” Disponível em: http://escalabilidade.com/2010/03/08/introducao-ao-nosql-parte-i/, acessado em 9 de novembro de 2011. [4] BRITO,Ricardo “Bancos de Dados NoSQL x SGBDs Relacionais:Análise Comparativa* ” Disponível em: http://www.infobrasil.inf.br/userfiles/27-05-S4- 1-68840-Bancos%20de%20Dados%20NoSQL.pdf, acessado em 10 de novembro de 2011. [5] FERREIRA, Edmar, “Escolhendo entre escalabilidade horizontal e escalabilidade vertical“ Disponível em: http://escalabilidade.com/2010/09/21/escolhendo-entre-escalabilidade- horizontal-e-escalabilidade-vertical/, acessado em 9 de novembro de 2011. [6] INFOWESTER “Cluster: Principais Conceitos”, Disponível em: http://www.infowester.com/cluster.php, acessado em 9 de novembro de 2011. [7] STEPPAT, Nico, “Bancos de dados não relacionais e o movimento NoSQL“ Disponível em: http://blog.caelum.com.br/bancos-de-dados-nao- relacionais-e-o-movimento-nosql/, acessado em 11 de novembro de 2011. [8] WIKIPEDIA, “MapReduce“ Disponível em: http://en.wikipedia.org/wiki/MapReduce, acessado em 13 de novembro de 2011. [9] SOUZA,Talles ROCHA,André, “NoSQL Princípios e Características “ Disponível em: http://www.slideshare.net/andrerochajp/artigo-nosql, acessado em 13 de novembro de 2011. [10] FERREIRA, Edmar, “Introdução ao NoSQL parte II” Disponível em: http://escalabilidade.com/2010/03/08/introducao-ao-nosql-parte-ii/, acessado em 9 de novembro de 2011.