Artigo Nosql

3.217 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
3.217
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
193
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Artigo Nosql

  1. 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. 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. 3. NoSQL Ademir T S Chagas, Nelson Aragão, Messias Silva Resumo. Este artigo irá abordar as principais características, técnicasde escalabilidade, classificação e arquitetura do NoSQL, que é um banco dedados não relacional que tem um propósito de suprir as necessidades emdemandas onde os bancos de dados tradicionais (relacionais) são ineficazes. ONoSQL é bastante utilizado pelas grandes empresas, como o Twitter,Facebook, Ebay, Google, entre outros. A sua principal característica é aescalabilidade, no qual faz aumentar a capacidade de armazenamento dedados e a velocidade. 1. INTRODUÇÃO O NoSQL surgiu da necessidade de uma performance superior e de umaalta escalabilidade. Os atuais bancos de dados relacionais são muito restritos aisso, sendo necessária a distribuição vertical de servidores, ou seja, quantomais dados, mais memória e mais disco um servidor precisa. O NoSQL temuma grande facilidade na distribuição horizontal, ou seja, mais dados, maisservidores, não necessariamente de alta performance. [1] Um grande utilizador desse conceito é o Google, que usa computadoresde pequeno e médio porte para a distribuição dos dados; essa forma deutilização é muito mais eficiente e econômica. Além disso, os bancos de dadosNoSQL 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 relacionamentoentre várias tabelas para formar uma informação, ela estará em sua totalidadeno 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. 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. 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 deum servidor, provê uma alta disponibilidade e um alto desempenho do sistema.Assim, a organização se beneficia diminuindo o tempo de inoperabilidade do
  6. 6. banco de dados. Esse processo vem como uma solução para reduzir gastoscom 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 bancostem em comum que eles são key-value stores, ou seja, salvam,como o nomesugere, um conjunto de entradas formadas por uma chave associada a umvalor 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 oprocessamento de problemas altamente distribuíveis em grandes conjuntos dedados,usando um grande número de computadores (nós). O MapReducepermite processamento distribuído do mapa e as operações de redução. Desdeque cada operação de mapeamento é independente dos outros, todos osmapas podem ser executadas em paralelo - embora na prática ele é limitadopelo número de fontes de dados independentes e / ou o número de CPUs pertode 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 dedados para escalar tanto nossas leituras como nossas escritas. [9]
  7. 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 acapacidade de recuperar estas informações. O mesmo é subdividido em duasarquiteturas 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 oparticionamento e a replicação dos dados, enquanto outros deixam essa tarefapara o cliente. A maioria das soluções é distribuída, como é caso do AmazonDynamo do CouchDB, do MongoDb, do BigTable e do Cassandra.[4] 5.2 Armazenamento Temos os bancos que mantêm suas informações em memóriarealizando persistências ocasionais; aqueles que mantêm suas informaçõesem disco, como são os casos do CouchDb e do MongoDb; e aquelesconfiguráveis, tais como BigTable e o Cassandra.[4]
  8. 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: Neo4J6. VANTAGENS x DESVANTAGENS6.1 Vantagens: • Escalabilidade Maciça • Alta Disponibilidade • Baixo Custo • Previsível a Elasticidade • Esquema de flexibilidade, dados esparsos e semi-estruturados.
  9. 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, é umprojeto de sistema de banco de dados distribuído, altamente escalável, que foidesenvolvido na plataforma Java.[9] • BigTable Foi desenvolvido pelo Google, para distribuir dados por centenas deservidores e escalar por conjuntos de dados de até 1 petabyte.[9] • Dynamo Desenvolvido pela Amazon em 2007, foi criado para oferecerarmazenamento de valores-chaves de dados de alta disponibilidade, permitindoatualizaçõ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. 10. REFERÊNCIAS[1] NASCIMENTO, Jean - NoSQL - você realmente sabe do que estamosfalando? 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 denovembro 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 em9 de novembro de 2011.[4] BRITO,Ricardo “Bancos de Dados NoSQL x SGBDs Relacionais:AnáliseComparativa* ” Disponível em: http://www.infobrasil.inf.br/userfiles/27-05-S4-1-68840-Bancos%20de%20Dados%20NoSQL.pdf, acessado em 10 denovembro de 2011.[5] FERREIRA, Edmar, “Escolhendo entre escalabilidade horizontal eescalabilidade 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 movimentoNoSQL“ 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 de2011.[9] SOUZA,Talles ROCHA,André, “NoSQL Princípios e Características “Disponível em: http://www.slideshare.net/andrerochajp/artigo-nosql, acessadoem 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/, acessadoem 9 de novembro de 2011.

×