APS EstudodeCaso - NoSQL

Embed Size (px)

Citation preview

  • 8/17/2019 APS EstudodeCaso - NoSQL

    1/14

     

    1

    ESTUDO DE CASO – BANCO DE DADOS NOSQL 

    Davi Pistorello1 

    Fábio Giordani2 

    Kaie Guex3 

    Resumo: Os bancos de dados relacionais são amplamente utilizados como solução de

    armazenagem em diversos tipos de sistemas, mas devido ao crescimento das empresas e daquantidade de dados que movimentam as novas aplicações da web 2.0, novas abordagens

    estão sendo desenvolvidas e empregadas, como é o caso dos bancos de dados NoSQL. São

    soluções que vem sendo adotadas e consolidadas por grandes empresas de tecnologia para

    solucionar os novos desafios que estão surgindo com o grande volume de dados movimentado

    pelos sistemas da atualidade. Neste artigo será feita uma análise do que é um banco de dados

    NoSQL e serão demonstradas quais as necessidades que este modelo de banco de dados veio

    atender no atual mercado de TI, conceituando-o junto a outros modelos existentes,

    procurando saber qual sua real vantagem e desvantagem em relação a estes.

    Palavras Chave: NoSQL, Escalabilidade, Banco de dados, web 2.0.

    1 Introdução

    O setor de tecnologia da informação, TI, sempre procurou atender as

    demandas conforme a necessidade do seu tempo, demandas que ficam cada vez mais

    complexas devido ao crescimento do uso da internet  e as rápidas mudanças e inovações deste

    mercado. O ritmo da inovação no armazenamento de dados acelerou significativamente na

    última década, e com isso as ferramentas para gerenciamento também precisaram ser

    repensadas sobre o desempenho do armazenamento e controle sobre o acesso aos dados. A

    1 Aluno do Curso de Tecnólogo em Análise e Desenvolvimento de Sistemas  2 Aluno do Curso de Tecnólogo em Análise e Desenvolvimento de Sistemas  3 Aluno do Curso de Tecnólogo em Segurança da Informação 

  • 8/17/2019 APS EstudodeCaso - NoSQL

    2/14

     

    2

    abordagem mais inteligente no gerenciamento de armazenamento de grandes dados inclui

    um conjunto de ferramentas, serviços, software e hardware. Grandes empresas como o

    Twitter   já relataram problemas em administrar sua grande quantidade de dados e a seu

    constante crescimento. Para lidar com este problema a solução adotada em foi migrar seu

    banco dados relacional para um banco de dados não-relacional, o NoSQL (Not Only SQL), no

    caso do Twitter  foi selecionado o banco de dados Cassandra, que promete escalabilidade, alta

    disponibilidade, sem comprometer o desempenho. O Cassandra inicialmente foi criado pelo

    Facebook , que abriu seu código-fonte para a comunidade em 2008, e de acordo com o

    engenheiro Avinash Lakshman [1] tem o poder de escrever 2500 vezes mais rápido em um

    grande banco de dados de 50 Gb do que o MySQL.

    O NoSQL aparece como uma solução para atender esta necessidade iminente de

    processamento de grandes montantes de dados que as empresas estão achando custosas

    realizar com um banco de dados relacional. As grandes preocupações com os dados criaram

    uma oportunidade para que as pessoas pensem na hora sobre as suas necessidades de

    armazenamento de dados, e algumas equipes de desenvolvimento podem ver que o uso deum banco de dados NoSQL ajudam na sua produtividade, simplificando o acesso do banco de

    dados, mesmo que eles não tenham a necessidade de escalar além de uma única máquina.

    2 Referencial Teórico

    2.1 NoSQL

    Apesar de estar em maior evidência hoje, segundo Sadalage e Fowler o termo

    NoSQL foi utilizado pela primeira vez em 1998 referenciado a um banco de dados de código

    aberto que não utilizava a linguagem SQL. Mais tarde em 2009 este termo ganhou mais força

    quando utilizado em uma conferência de defensores de banco de dados não-relacionais em

    San Francisco. A principal vantagem de um tipo de banco de dados não relacional é que,

    diferente da abordagem tradicional, eles lidam bem com dados desestruturados, tais como e-

    mails, dados multimídia e dados provenientes de mídias sociais (Leavit, 2010). 

  • 8/17/2019 APS EstudodeCaso - NoSQL

    3/14

     

    3

    Os bancos de dados, antes o hierárquico e o de rede, até chegarmos ao banco de

    dados mantido pelas relações entre as tabelas o modelo relacional, não foram projetados para

    funcionar de forma eficiente em clusters. Desta maneira, procurando atender à necessidade

    das grandes empresas, desenvolvedores de bancos de dados passaram a pensar novas

    estratégias de armazenamento, estratégias essas que os desprenderiam de trabalhar nas

    regras que o modelo relacional impunha.

    O desenvolvimento próprio começa, segundo Levitt, principalmente em empresas

    da web 2.0, gigantes como a Google  e  Amazon  foram pioneiras, criando bancos de dados

    NoSQL para trabalharem com sua enorme quantidade de dados, chamados de BigTable  e

    DynamoDB. NoSQL, não se define a um tipo banco de dados de fato, mas a uma característica

    comum, segundo Fowler 2012:

    a) Não utilizam o modelo relacional nem a linguagem SQL;

    b) São de código aberto (Open source);

    c) Desenhados para utilização em grandes cluster;

    d) Baseados nas necessidades da web 2.0;e) Não existe um esquema, permitindo que campos possam ser adicionados a

    qualquer registro. Ausência de esquema ou esquema flexível;

    f) Suporte à replicação nativo;

    g) Acesso via APIs simples.

    2.2 Tipos NoSQL

    As categorias nas quais o NoSQL pode ser agrupado são definidas como chave-

    valor, orientado a colunas, orientado a documentos e orientado a grafos.

    2.2.1 Chave-valor

    Podendo também ser definida como key-value ou tabela de hash, essa categoria

    é conhecida como sendo um modelo de fácil implementação, uma vez que os dados serão

  • 8/17/2019 APS EstudodeCaso - NoSQL

    4/14

     

    4

    armazenados e consultados utilizando-se de chaves hash, como definido no conceito

    dicionário ou mapa de dados (DE DIANA e GEROSA, 2010).

    Esse modelo permite visualizar o banco de dados em tabelas hash. Utilizando-se

    da sua característica, simplicidade, o banco acaba por ser composto por inúmeras chaves,

    onde cada uma delas está associada a um valor único.

    Como exemplo de banco de dados desta categoria de NoSQL o DynamoDB acaba

    sendo o mais difundido, pois além de ser fornecido como alternativa de armazenamento de

    dados pela Amazon, esse foi utilizado com base para o desenvolvimento do Cassandra.

    Segundo afirma Strauch (2011), o DynamoDB foi criado para ser um sistema de

    consistência eventual, ou seja, quando uma operação for executada, o retorno da operação

    acontece antes de todos os nós serem atualizados, ocasionando que leituras posteriores

    possam retornar versões diferentes dos dados.

    2.2.2 Orientado a colunas

    Comumentemente relacionado ao tipo de armazenamento definido por Chang

    (2006) em "BigTable: A distributed Storage System for Structured data", vários projetos além

    do próprio BigTable utilizam este conceito de bancos de dados, que suportam um grande

    número de colunas por linha e permitem buscas mais ágeis nos valores das colunas. Estas por

    sua vez, podem possuir valores baseados em listas, sub colunas ou outras linhas com colunas.

    Nesse modelo, a indexação dos dados é efetuada pela tripla formada pela linha,

    coluna e data/hora. Para identificação, tanto a linha quanto a coluna são identificadas por

    chaves e o timestamp, é um diferenciador entre as versões dos dados, segundo Lóscio, De

    Oliveira e Pontes (2011).

    Criado pela Google em 2004, o BigTable, foi uma das implementações pioneiras

    de um sistema não relacional objetivando a promoção de uma maior escalabilidade e

    disponibilidade (BRITO, 2010), contudo este modelo não suporta uniões, fazendo-se

    necessária a tratativa de relacionamentos na aplicação e não em nível de banco de dados

    como ocorre nos sistemas relacionais.

  • 8/17/2019 APS EstudodeCaso - NoSQL

    5/14

     

    5

    2.2.3 Orientado a documentos

    Na categoria de NoSQL orientado a documentos, cada documento é

    implementado como um objeto com um identificador único e possui um conjunto de campos.

    Os documentos têm como característica a flexibilidade de seu esquema (definição),

    permitindo assim que cada documento possa possuir seu próprio conjunto de campos sem

    que seja seguido rigidamente um padrão de tabelas estruturadas (LÓSCIO, DE OLIVEIRA e

    PONTES, 2011). Com esta abordagem, os desenvolvedores podem adicionar quantos campos

    se fizerem necessários e de quaisquer tipos disponíveis, sem restrições estruturais.

    O CouchDB, que desde 2008 pertence à Apache Software Foundation, é um dos

    exemplos de banco de dados desta categoria. Uma característica interessante é que o controle

    de concorrência dos dados é feito utilizando identificadores de sequência para cada uma das

    versões do documento. Quando este é alterado por outro usuário desde a sua última leitura,

    a aplicação é notificada e por sua vez combina ou descarta as alterações e por fim, após as

    alterações serem confirmadas os dados são gravados.

    2.2.4 Orientado a grafos

    O modelo de grafos possui três elementos básicos: os vértices dos grafos (nós), as

    arestas (relacionamentos) e os atributos (propriedades dos nós e dos relacionamentos)

    (LÓSCIO, DE OLIVEIRA e PONTES, 2011).

    A vantagem da utilização deste modelo se dá ao aplicá-lo em consultas mais

    complexas na extração de dados por parte do usuário. Ao se comparar esse com o modelo

    conceitual onde estas pesquisas exigiriam, em grande parte, uma melhor implementação da

    aplicação que poderia ocasionar perda de desempenho, a orientação a grafos resultaria em

    melhores resultados com relação ao tempo de retorno dessas informações.

    OrientDB  é um dos principais bancos de dados de NoSQL desta categoria.

    Conforme definido pela própria Orient Technologies LTD: é um banco open source, escrito em

    Java e mistura funcionalidade dos modelos orientados a documento e orientados a grafos e

  • 8/17/2019 APS EstudodeCaso - NoSQL

    6/14

     

    6

    permite a utilização com schema rígido quanto flexível, dando também suporte a SQL, que

    permite a migração de programadores acostumados com o modelo relacional [2].

    Na figura encontram-se exemplos de bancos de dados conforme os modeles descritos: 

    2.3 NoSQL x Relacionais

    De acordo com Elmasri e Navathe (2006), bancos de dados Relacionais baseiam-

    se no conceito de entidade e relacionamento, onde todos os dados são armazenados em

    tabelas e separados de forma única tentando diminuir ao máximo a redundância. A

    informação é criada pelo conjunto dos dados e é aí que entram as relações entre as tabelas.

    As características mais marcantes deste modelo são: Tabelas, hierarquia, esquema definido,

    mínima redundância, entidades, relacionamentos e transações ACID ( Atomicity, C onsistency,

    I solation e Durability em inglês).

  • 8/17/2019 APS EstudodeCaso - NoSQL

    7/14

     

    7

    a)  A – Atomicidade: Garante que as transações sejam atômicas (indivisíveis). A

    transação será executada totalmente ou não será executada.

    b)  C – Consistência: Garante que o banco de dados passará de uma forma consistente

    para outra forma consistente.

    c)  I – Isolamento: A propriedade de isolamento garante que a transação não será

    interferida por nenhuma outra transação concorrente.

    d)  D – Durabilidade: A propriedade de durabilidade garante que o que foi salvo, não

    será mais perdido.

    Bancos de dados NoSQL abrem mão destas propriedades, ganhando em

    flexibilidade, disponibilidade, desempenho e menor tempo de resposta a consultas, valendo-

    se da abordagem BASE (Basically Available, Soft state e Eventual consistency  em inglês) [3].

    a)  BA – (Basically Available) Basicamente Disponível – Prioridade na disponibilidade

    dos dados.

    b)  S - (Soft-State) Estado leve – Não precisa ser consistente o tempo todo.

    c)  E – (Eventually Consistent) Eventualmente Consistente - torna-se consistente no

    momento devido.

    Ippolito (apud STRAUCH, 2011, p. 32) resume a propriedade em: “uma aplicação

    funciona basicamente todo o tempo (disponibilidade básica), não necessita ser consistente

    todo o tempo (estado leve), mas terá um estado consistente eventual (consistência

    eventual)”.

    Tal ideia se baseia no Teorema de Eric Brewer conhecido como Teorema CAP

    (Consistency ,  Availability e Partition Tolerance), o qual afirma que é impossível para um

    sistema computacional distribuído garantir, de forma simultânea, consistência,

    disponibilidade e tolerância ao particionamento. Segundo esse teorema, um sistema

    distribuído pode garantir apenas duas dessas três características simultaneamente. (Leite,

    2010)

  • 8/17/2019 APS EstudodeCaso - NoSQL

    8/14

     

    8

    O teorema CAP em português significa: consistência, disponibilidade e tolerância

    ao particionamento (no quadro representado pelo escalonamento) em uma comparação com

    o banco de dados relacional (Brito, 2010 p.5):

    Segundo Padalage e Fowler, diferentes aplicações têm diferentes necessidades

    estruturais e de desempenho, por isso, sabendo que nem todos os dados podem ser

    estruturados, os tipos de banco de dados NoSQL cresceram nos últimos anos.

    Na Tabela 1 encontram-se comparações complementares entre os modelos. 

    BANCOS DE DADOS SQL  BANCOS DE DADOS NOSQL Tipos Um tipo (banco de dados SQL) com

    pequenas variações

    Muitos tipos diferentes,

    incluindo chave-

    valor, orientados a documentos,

    orientado a grafos e etc.

    História de

    Desenvolvimento

    Desenvolvido em 1970 para lidar

    com a primeira onda de aplicações

    de armazenamento de dados

    Desenvolvido em 2000 para

    lidar com as limitações dos

    bancos de dados SQL,

    particularmente em matéria de

  • 8/17/2019 APS EstudodeCaso - NoSQL

    9/14

     

    9

    escala, replicação e

    armazenamento de dados não

    estruturados.

    Exemplos MySQL, Postgres, Oracle Database MongoDB, Cassandra, HBase,

    Neo4j

    Modelo de

    Armazenamento

    de Dados

    Os registros individuais (Ex:

    “empregados”) são armazenados

    como linhas em tabelas, com cadacoluna armazenando uma parte

    específica de dados sobre esse

    registro (Ex: “gerente”, “setor”,

    etc.), bem como uma

    planilha. Tipos de dados separados

    são armazenadas em tabelas

    separadas, e depois juntaram-se

    quando as consultas mais

    complexas são executadas. Por

    exemplo, "escritórios" pode ser

    armazenado em uma tabela, e

    "empregados" em outra. Quando

    um usuário quer encontrar o

    endereço de trabalho de um

    empregado, o motor de banco de

    dados se junta ao "empregado" e

    "escritório" mesas em conjunto

    para obter todas as informações

    necessárias.

    Varia com base no tipo de banco

    de dados. Por exemplo,

    armazenagens chave-valorfuncionam de forma semelhante

    aos bancos de dados SQL, mas

    tem apenas duas colunas (“key ”  

    e “value”), com informações

    mais complexas, por vezes,

    armazenados dentro das

    colunas "valor". Bancos de

    dados documentais acabam

    com o modelo de tabela-e-linha

    por completo, armazenam todos

    os dados relevantes juntos em

    um único "documento" em

     JSON, XML ou outro formato,

    que pode agrupar valores

    hierarquicamente.

  • 8/17/2019 APS EstudodeCaso - NoSQL

    10/14

     

    10

    Esquemas Estrutura e tipos de dados são

    determinados com

    antecedência. Para armazenar

    informações sobre um novo item

    de dado, toda a base de dados tem

    de ser alterada, tempo durante o

    qual a base de dados tem de ser

    colocada no modo offline.

    Tipicamente dinâmica. Os

    registros podem adicionar novas

    informações em tempo real, e

    ao contrário de linhas da tabela

    SQL, dados diferentes podem

    ser armazenados juntos

    conforme necessário. Para

    alguns bancos de dados (por

    exemplo, column-family ), é um

    pouco mais desafiador para

    adicionar novos campos

    dinamicamente.

    Escalabilidade Vertical, ou seja, um único servidor

    deve ficar mais poderoso, a fim de

    lidar com o aumento da

    demanda. É possível espalhar

    bancos de dados SQL ao longo de

    muitos servidores, mas geralmente

    uma significativa engenharia

    adicional é necessária.

    Horizontal, significa que um

    administrador de banco de

    dados pode simplesmente

    adicionar mais servidores ou

    instâncias de nuvem. O banco

    de dados espalha

    automaticamente dados entre

    servidores conforme se faz

    necessário.

    Modelo de

    Desenvolvimento

    Mix de código-fonte aberto (por

    exemplo, Postgres, MySQL) e de

    código fechado (por exemplo,

    banco de dados Oracle)

    Open source

    Suporta

    Transações

    Sim, as atualizações podem ser

    configuradas para completar

    totalmente ou não

    Em determinadas circunstâncias

    e em determinados níveis (por

    exemplo, nível de documento

    vs. nível de banco de dados)

  • 8/17/2019 APS EstudodeCaso - NoSQL

    11/14

     

    11

    Manipulação de

    Dados

    Linguagem específica utilizando

    SELECT , INSERT  e UPDATE . Ex:

    SELECT  campos FROM tabela

    WHERE  ...

    Através de APIs orientadas a

    objeto

    Consistência Pode ser configurado para uma

    forte consistência

    Depende do produto. Alguns

    fornecem consistência forte (por

    exemplo, MongoDB), enquanto

    outros oferecem consistênciaeventual (por exemplo,

    Cassandra)

    Tabela 1

    2.4 Principais aplicações (cases)

    Os principais utilizadores do NoSQL são empresas que processam uma enormequantidade de dados e esses dados devem estar acessíveis de forma rápida. Como exemplo

    disso, pode ser citado o caso do Twitter . Em 2008, enquanto ainda utilizava o PostgreSQL, o

    site que funciona como rede social ficou 84 horas for do ar. Em 2009, após a utilização do

    Cassandra, esse tempo foi sensivelmente reduzido para 23 horas e 45 minutos [4].

    Outros, exemplos de empresas que adotaram o modelo NoSQL são:

    Empresa Banco de Dados

    Bigtable Google

    Dynamo Amazon

    Hadoop Yahoo

    Cassandra Facebook, Digg, Twitter, IBM, Netflix

    Voldemort LinkedIn

    MongoDB Engine Yard

  • 8/17/2019 APS EstudodeCaso - NoSQL

    12/14

     

    12

    3 Metodologia

    O desenvolvimento deste artigo foi realizado através coleta de dados em livros,

    pesquisas acadêmicas e visitas em portais de tecnologia em busca de dados que mostrassem

    a real utilização e os detalhes de como o NoSQL está presente nas empresas de web 2.0,

    detalhes de onde e como estão sendo utilizados nessas organizações. Após a coleta destes

    dados buscamos identificar quais as características e vantagens que esse novo conceito de

    armazenamento de dados em larga escala tem proporcionado para empresas como Google,

     Amazon, Twitter  e outras grandes da tecnologia atual.

    4 Considerações Finais

    De acordo com os apontamentos anteriores, percebe-se que as soluções NoSQL,

    mesmo que empregadas por gigantes da tecnologia como a Google, não vieram substituir as

    relacionais, que permanecem como principal opção para aplicações consideradas críticas, e

    sim suprir novas demandas que surgiram com as inovações da Web 2.0.

    Aplicações que movimentam uma massa de dados gigantesca, onde em alguns

    casos pode passar de 15 Terabytes gerados diariamente, como é o caso do Facebook   [3],

    clamavam por alternativas que viabilizassem a escalabilidade, esquema flexível, alto

    desempenho e alta disponibilidade, tornando o gerenciamento de seus dados muito mais

    eficiente, mesmo que para isso tenham de se submeter a possiblidade de nem sempre ser

    possível garantir que os dados estejam consistentes e de que haja um controle na

    concorrência, dentre outras características dos banco de dados tradicionais.

    Entre perdas e ganhos, conclui-se que são soluções diferentes para problemas

    específicos, cabe aos desenvolvedores e projetistas mensurarem os pros e contras de cada

    solução para cada tipo de problema.

  • 8/17/2019 APS EstudodeCaso - NoSQL

    13/14

     

    13

    5 Referencial Teórico

    Pramod J Sadalage, Martin Fowler, NoSQL distilled : a brief guide to the emerging world of

    polyglot persistence / Crawfordsville, Indiana. August 2012

    Leavit, N. Will NoSQL Databases Live Up to Their Promise?  2010. Computer, 12. ISSN 0018-

    9162

    BRITO, R. W. Bancos de Dados NoSQL x SGBDs Relacionais:Análise Comparativa. InfoBrasil,2010. Disponível em: http://www.infobrasil.inf.br/userfiles/27-05-S4-1-68840-Bancos%20de%20Dados%20NoSQL.pdf  . Acessado em: 15 out. 2014

    LEITE, Gleidson Sobreira. Análise Comparativa do Teorema CAP Entre Bancos de Dados

    NoSQL e Bancos de Dados Relacionais. 2010. 49 p. Monografia (Bacharel em Ciências da

    Computação) – Faculdade Farias Brito, Fortaleza.

    ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 5ª. ed. [S.l.]: Addison Wesley, 2006.Acesso em: 21 maio 2012.

    CHANG, F; Dean, J; GHEMAWATT, S; HSIEH, W. C. B;, DEBORAH A. W. M; CHANDRA, T; FIKES,A GRUBER, R. E. Bigtable: A Distributed Storage System for Structured Data, 2006 - OSDI '06

    Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation- Volume 7

    DE DIANA, M.; GEROSA, M. A. NOSQL na Web 2.0: Um Estudo Comparativo de Bancos Não-Relacionais para Armazenamento de Dados na Web 2.0 . Workshop de Teses e Dissertaçõesem Banco de Dados. Belo Horizonte: [s.n.]. 2010.

    LÓSCIO, B. F.; DE OLIVEIRA, H. R.; PONTES, J. C. D. S. NoSQL no desenvolvimento de aplicaçõesWeb colaborativas. Simpósio Brasileiro de Sistemas Colaborativos, Paraty, ago. 2011.Disponível em: http://www.addlabs.uff.br/sbsc_site/SBSC2011_NoSQL.pdf   Acessado em: 17out 2014.

    STRAUCH, C. NoSQL Databases. iiWAS '11 Proceedings of the 13th International Conferenceon Information Integration and Web-based Applications and Services, Nova Iorque, dez.2011. 278-283. Disponível em: http://dl.acm.org/citation.cfm?id=2095583 Acessado em: 10out. 2014.

    [1] http://www.computerworld.com/article/2526317/database-administration/no-to-sql--

    anti-database-movement-gains-steam.html

    [2] ORIENTDB.Disponível em: https://github.com/orientechnologies/orientdb/  Acesso em:05 out. 2014.

    [3] FHH: Facebook, Hadoop, and Hive. 2009. http://www.dbms2.com/2009/05/11/facebook-

    hadoop-and-hive/ 

    http://www.infobrasil.inf.br/userfiles/27-05-S4-1-68840-Bancos%20de%20Dados%20NoSQL.pdfhttp://www.infobrasil.inf.br/userfiles/27-05-S4-1-68840-Bancos%20de%20Dados%20NoSQL.pdfhttp://www.infobrasil.inf.br/userfiles/27-05-S4-1-68840-Bancos%20de%20Dados%20NoSQL.pdfhttp://www.addlabs.uff.br/sbsc_site/SBSC2011_NoSQL.pdfhttp://www.addlabs.uff.br/sbsc_site/SBSC2011_NoSQL.pdfhttp://www.addlabs.uff.br/sbsc_site/SBSC2011_NoSQL.pdfhttp://dl.acm.org/citation.cfm?id=2095583http://dl.acm.org/citation.cfm?id=2095583http://dl.acm.org/citation.cfm?id=2095583http://www.computerworld.com/article/2526317/database-administration/no-to-sql--anti-database-movement-gains-steam.htmlhttp://www.computerworld.com/article/2526317/database-administration/no-to-sql--anti-database-movement-gains-steam.htmlhttp://www.computerworld.com/article/2526317/database-administration/no-to-sql--anti-database-movement-gains-steam.htmlhttps://github.com/orientechnologies/orientdb/https://github.com/orientechnologies/orientdb/https://github.com/orientechnologies/orientdb/http://www.dbms2.com/2009/05/11/facebook-hadoop-and-hive/http://www.dbms2.com/2009/05/11/facebook-hadoop-and-hive/http://www.dbms2.com/2009/05/11/facebook-hadoop-and-hive/http://www.dbms2.com/2009/05/11/facebook-hadoop-and-hive/http://www.dbms2.com/2009/05/11/facebook-hadoop-and-hive/http://www.dbms2.com/2009/05/11/facebook-hadoop-and-hive/https://github.com/orientechnologies/orientdb/http://www.computerworld.com/article/2526317/database-administration/no-to-sql--anti-database-movement-gains-steam.htmlhttp://www.computerworld.com/article/2526317/database-administration/no-to-sql--anti-database-movement-gains-steam.htmlhttp://dl.acm.org/citation.cfm?id=2095583http://www.addlabs.uff.br/sbsc_site/SBSC2011_NoSQL.pdfhttp://www.infobrasil.inf.br/userfiles/27-05-S4-1-68840-Bancos%20de%20Dados%20NoSQL.pdfhttp://www.infobrasil.inf.br/userfiles/27-05-S4-1-68840-Bancos%20de%20Dados%20NoSQL.pdf

  • 8/17/2019 APS EstudodeCaso - NoSQL

    14/14

     

    14

    [4] “Twitter growth prompts switch from MySQL to 'NoSQL' database”.

    http://www.computerworld.com/s/article/9161078/Twitter_growth_prompts_switch_from _MySQL_to_NoSQL_database. Acessado em 14/05/2010.