ESTUDO SOBRE A TECNOLOGIA DE BANCO DE DADOS NoSQL



Documentos relacionados
Pollyanna Gonçalves. Seminário da disciplina Banco de Dados II

Introdução aos Bancos de Dados Não-Relacionais. Mauricio De Diana (mestrando) Marco Aurélio Gerosa (orientador)

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro

NoSQL: UMA RELAÇÃO, NÃO RELACIONAL *

Análise comparativa sobre bases de dados para armazenamento e consulta de dados não estruturados no formato JSON.

NoSQL. Cintia Freitas de Moura. BCC 441 Banco de Dados II / 2014

Bancos de dados NOSQL (Not Only SQL)

Chaves. Chaves. O modelo relacional implementa dois conhecidos conceitos de chaves, como veremos a seguir:

Engenharia de software 2011A. Trabalho sobre

c. Técnica de Estrutura de Controle Teste do Caminho Básico

OBTENDO CONHECIMENTO A PARTIR DOS TWITTES PESSOAIS. FRANTZ, Miguel Airton 1 ; FROZZA, Angelo Augusto 2 Instituto Federal Catarinense, Camboriú/SC

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

Interoperabilidade entre Bancos de Dados Relacionais e Bancos de Dados NoSQL

Shermila Guerra Santa Cruz Orientador: Ricardo Rodrigues Ciferri

Universidade Federal de Goiás Ciências da Computação Sistemas Operacionais 2

Sumário. Administração de Banco de dados Módulo 12. Ilustração Backup-Recovery. Recuperação (Recovery) - Definição

Banco de Dados Orientado a Objetos

AULA 16 - Sistema de Arquivos

SISTEMAS DE INFORMAÇÃO GERENCIAIS

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 13

VISÃO GERAL DE BANCO DE DADOS

Neo4j Aprendendo conceitos por trás do Neo4j. Sem SQL? Apresentação. Por que grafos, por que agora? Por que grafos, por que agora?

O planejamento do projeto. Tecnologia em Gestão Pública Desenvolvimento de Projetos Aula 8 Prof. Rafael Roesler

3 Qualidade de Software

Bases de Dados Relacional/Objeto e NoSQL. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

GBD PROF. ANDREZA S. AREÃO

Introdução a Banco de Dados Aula 03. Prof. Silvestri

COMO VAI A CÂMARA? Uma proposta de uso de dados abertos

Prof. Bruno Calegaro

2 METODOLOGIA DA PESQUISA

DESENVOLVIMENTO DE UM REPOSITÓRIO DE DADOS DO FUTEBOL BRASILEIRO

TÉCNICAS DE PROGRAMAÇÃO

3 Estratégia para o enriquecimento de informações

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: Arquitetura de Software Aula 03

4- PROJETO DE BANCO DE DADOS

2. Conceitos e Arquitetura de Bancos de Dados

Guia de utilização da notação BPMN

Estudo de Caso Bicicletada Curitiba

VI Congresso Brasileiro de Software: Teoria e Prática

Uma Breve Introdução. Andréa Bordin

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Serviços Web: Arquitetura

Sistemas de Informação

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE CIÊNCIAS DA EDUCAÇÃO CENTRO DE CIÊNCIAS DA EDUCAÇÃO CURSO DE BIBLIOTECONOMIA

perspectivas e abordagens típicas de campos de investigação (Senra & Camargo, 2010).

CENTRO UNIVERSITÁRIO DE ENSINO SUPERIOR DO AMAZONAS - CIESA CENTRO DE PROCESSAMENTO DE DADOS CPD MANUAL DE UTILIZAÇÃO DO MOODLE 2.

Densímetro de posto de gasolina

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura Exemplo de um grafo linear.

Organização em Enfermagem

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

Modelagem de Dados UNIDADE DE REVISÃO E RECUPERAÇÃO

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

Em FORMATO E-LEARNING PQ A Página 1 de 6

Medição tridimensional

Instruções ao Usuário

Sistemas Operacionais Arquivos. Carlos Ferraz Jorge Cavalcanti Fonsêca

UMA ANÁLISE DA REDE SOCIAL EDUCACIONAL SCHOOLING COMO FERRAMENTA NO PROCESSO DE ENSINO-APRENDIZAGEM

COORDENAÇÃO DE EAD MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO. Versão 1.0

CAPÍTULO 2. Grafos e Redes

Motivos para você ter um servidor

O Que é Internet? Internet - é a maior interconexão de redes de computadores que permite a estes conexão e comunicação direta;

Transformação sobrenome + nome em nome completo utilizando Máquina de Turing

Conectar diferentes pesquisas na internet por um menu

P4-MPS.BR - Prova de Conhecimento do Processo de Aquisição do MPS.BR

Planejamento Semanal

A IMPORTÂNCIA DO TREINAMENTO. Quem nunca ouviu aquela velha frase O maior capital de nossa empresa é o capital

Atendimento Virtual Ampla

5 Considerações finais

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

PROJETO PILOTO. Setembro 2015

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery

Planejamento Estratégico de TI. Prof.: Fernando Ascani

Arquitetura de Banco de Dados

18º Congresso de Iniciação Científica IMPLEMENTAÇÃO DE UM MODELO DE TESTE DE APLICAÇÕES WEB

GABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios

As respostas devem ser assinadalas na Folha de Resposta, a qual deverá ser entregue ao Fiscal de Sala Itapetininga, 04 de Dezembro de 2015

RELATÓRIO REFERENTE AO SUPORTE DO MÊS JUNHO/2013.

Prof. Daniela Barreiro Claro

ELABORAÇÃO DE PROJETOS

Pró-Reitoria de Administração - PRAd Assessoria de Informática - AI SISTEMA DE PUBLICAÇÃO DE LICITAÇÕES. Manual de Procedimentos

SAD. Paulo Silva, Rodolfo Ribeiro, Vinicius Tavares

SOP - TADS Sistemas de Arquivos Cap 4 Tanenmbaum

DESENVOLVENDO O SISTEMA

Folha de Cálculo TECNOLOGIAS DA T IINF CO RM 1 A 0 ÇÃO E COMUNICAÇÃO TIC 10

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

UNIVERSIDADE FEDERAL DA PARAÍBA

1Ò&/(2'(('8&$d 2$',67Æ1&,$1($' PROCEDIMENTOS PARA DISCIPLINAS A DISTÂNCIA MANUAL DO ALUNO

UTILIZAÇÃO DE SOFTWARES NA RESOLUÇÃO DE UM PROBLEMA DE PROGRAMAÇÃO LINEAR. Cintia da Silva Araújo, Tiago de Souza Marçal, Magda Aparecida Nogueira

DISCIPLINAS SEMIPRESENCIAIS

GRÁFICO DE GANTT alocação de carga. existem diversos centros aos quais as operações podem ser alocadas, os problemas se avolumam.

FUNDAMENTOS DA ORIENTAÇÃO A OBJETOS- REVISÃO

Utilização da Classe de Banco de Dados NOSQL como Solução para Manipulação de Diversas Estruturas de Dados

4.1. UML Diagramas de casos de uso

Gerenciamento de Mensagens e Tarefas / NT Editora. -- Brasília: p. : il. ; 21,0 X 29,7 cm.

Transcrição:

ESTUDO SOBRE A TECNOLOGIA DE BANCO DE DADOS NoSQL Autores: Nicolas Ignácio RYBERG 1,2 ;; Angelo Augusto FROZZA 3 Identificação autores: 1 Bolsista PIBIC-EM/CNPq;; 2 Aluno do curso Técnico em Informática do IFC-Camboriú;; 3 Professor do IFC-Camboriú. Introdução Durante décadas, foram utilizadas bases de dados relacionais para armazenar dados estruturados, organizados em grupos denominados de tabelas. Nessas tabelas, os dados são agrupados por linhas e colunas. Porém, com o avanço da Internet, tem-se lidado com quantidades de dados nunca antes trabalhadas (Big Data), além destes estarem cada vez menos estruturados. São exemplos, os dados contidos em sites como Facebook, Google e Amazon. Desta forma, estes sites tiveram que desenvolver meios eficientes e baratos para processar seus dados. Uma solução encontrada foi a escalabilidade horizontal, que significa aumentar o número de máquinas, ao invés de aumentar o poder de processamento e armazenamento de uma só máquina (escalabilidade vertical). Os bancos de dados NoSQL chegaram como outra solução para este problema, já que permitem o gerenciamento em larga escala de dados distribuídos. Entre suas características, destacam-se: não-relacional, distribuído, de código aberto, escalável horizontalmente, ausência de esquema ou esquema flexível, suporte à replicação nativo e acesso via APIs simples [NOSQL 2010]. Material e Métodos Este projeto tem caráter bibliográfico e exploratório, pelo qual se propõe fazer um estudo aprofundado sobre essa a nova tecnologia de banco de dados, chamada NoSQL. O objetivo é fornecer o conteúdo pesquisado à comunidade do Campus Camboriú através de materiais de apoio, bem como, identificar linhas de pesquisa ligadas aos bancos de dados NoSQL. Conforme Malheiros (2010), uma pesquisa bibliográfica busca pelo conhecimento disponível na área, possibilitando que o pesquisador conheça as teorias até então produzidas, analisando-as e avaliando sua contribuição para compreender ou explicar o seu problema objeto de investigação. Para Gil (2008), a pesquisa exploratória visa familiarizar sobre um assunto ainda pouco conhecido e pouco explorado. Para atingir os objetivos propostos, primeiro foram feitas pesquisas para entender os conceitos relacionados aos BDs NoSQL, seus diferentes paradigmas e que dados são tratados em cada paradigma. Identificar em que caso um BD NoSQL é melhor que um BD relacional, apresentar os principais produtos (nomes) de banco de dados NoSQL existentes, classificando-os de acordo com o paradigma suportado e apresentar as características de cada BD NoSQL identificado durante a pesquisa. Como trabalhos futuros, serão escolhidos dois ou três produtos para estudar de forma prática e desenvolver materiais de apoio à aprendizagem dos mesmos. Entre os produtos a serem disponibilizados ao final desta pesquisa, destaca-se a criação de uma página web para registrar todo o conhecimento adquirido, bem como, publicar os materiais produzidos no decorrer da pesquisa.

Resultados e discussão Através da pesquisa bibliográfica, foram identificadas as cinco características principais do modelo NoSQL: Escalabilidade horizontal (Scale Out): A escalabilidade horizontal tende a ser a opção mais viável para o problema da escalabilidade. Porém, requer que diversos processos de uma única tarefa sejam criados e distribuídos. Isto torna inviável a utilização de um banco de dados relacional, uma vez que todos estes processos conectados geram grande concorrência, aumentando consequentemente o tempo de acesso às tabelas desejadas. A escalabilidade horizontal somente é permitida nos BDs NoSQL por causa da ausência de bloqueios. Uma alternativa muito usada para alcançar esta escalabilidade é o Sharding, que consiste em dividir os dados em várias tabelas, que são armazenadas ao longo de múltiplos nós de uma rede. A aplicação desta técnica traz o grande problema de quebrar a lógica de relacionamentos, que é o grande forte dos bancos relacionais. Neste caso, as aplicações têm que resolver a complexidade gerada pela partição de informações, como, por exemplo, a execução de joins e outros comandos (LÓSCIO, RODRIGUES e PONTES, 2011). Ausência de esquema ou esquema flexível: O esquema flexível define a estrutura dos dados modelados ou a ausência deste, facilita a escalabilidade, além de aumentar a disponibilidade. Porém, não há garantia da integridade dos dados (LÓSCIO, RODRIGUES e PONTES, 2011). Suporte nativo à replicação: O suporte nativo à replicação diminui o tempo gasto para recuperar informações, além da replicação ser um dos meios de prover escalabilidade. Existem duas abordagens principais para replicação: Master-Slave (Mestre-Escravo) e Multi-Master (LÓSCIO, RODRIGUES e PONTES, 2011). API simples para acesso aos dados: Para atingir o objetivo da solução NoSQL (alta disponibilidade e escalabilidade), APIs foram desenvolvidas para facilitar o acesso aos dados, de modo que qualquer aplicação possa utilizar o banco de forma rápida e eficiente (LÓSCIO, RODRIGUES e PONTES, 2011). Consistência eventual: O teorema CAP (Consistency, Availability e Partition tolerence) diz que, em determinado momento, apenas são garantidas duas das três propriedades: Consistência, Disponibilidade ou Tolerância à partição. No contexto da Web, por exemplo, geralmente são privilegiadas a disponibilidade e a tolerância à partição (LÓSCIO, RODRIGUES e PONTES, 2011). Portanto, a consistência dos dados nem sempre é mantida entre os diversos pontos de uma distribuição. Paradigmas de Bancos de Dados NoSQL A seguir são descritos os paradigmas de BD NoSQL e o Quadro 1 relaciona cada paradigma e os principais BD NoSQL disponíveis no mercado. Orientado a documentos (BDOD)

Os documentos de BDODs são coleções de atributos e valores, nas quais um atributo pode ser multivalorado (DIANA e GEROSA, 2012) (Figura 1). Segundo Anderson et al. (2009), BDODs utilizam o conceito de dados e documentos autocontidos e autodescritivos. Logo, o próprio documento já implica em como ele está estruturado e deve ser apresentado. O que faz com que estes bancos de dados não precisem de uma estrutura comum, tornando-os altamente eficientes para o armazenamento de dados semiestruturados. Este paradigma de organização dos dados usa um formato que permite que um documento seja embutido em outro, como o JSON, que é um padrão leve de intercambio de dados, baseado em especificações do JavaScript. Ele visa facilitar a leitura e a escrita, sendo de fácil interpretação para as máquinas. Embutir um documento em outro, geralmente leva à duplicação de dados que, eventualmente, gera inconsistência, causada por anomalias de atualização e deleção. Porém, como em todos os BDs NoSQL, esta duplicação não é um problema, mas sim, facilita a leitura, pois a quantidade de nós consultados é muito menor. Os principais bancos de dados nessa categoria são o MongoDB e o CouchDB. Armazém Chave-Valor (key-value) FIGURA 1 - Exemplo de documento. O modelo Chave-Valor é considerado bastante simples (Figura 2) e permite a visualização do banco de dados em uma grande tabela hash (LÓSCIO, RODRIGUES e PONTES, 2011). O banco tem várias chaves, para cada qual é atribuída apenas um valor, este podendo ser uma string ou um binário. Por esta simplicidade, permite que dados sejam acessados rapidamente pela chave, através de consultas simples como get() e set(), que permitem retornar e capturar valores, respectivamente. Uma desvantagem deste modelo, é que não permite recuperar objetos através de consultas mais complexas. Os principais bancos de dados nessa categoria são o Dynamo, RYAK, Redis, MemCacheDB e o GeniaDB. Orientado a colunas FIGURA 2 - Exemplo de uma hash. Em um BD relacional, os dados de um registro são armazenados contiguamente no disco. Por exemplo, caso se queira guardar id, nome e telefone de usuários, em um sistema de agenda telefônica, os registros seriam: id1, nome1, telefone1;; id2, nome2, telefone2. Essa estrutura torna a escrita muito rápida, já que todos os dados de um registro são colocados em apenas um bloco do disco. Essa

estrutura também é eficiente quando deseja-se ler registros por inteiro. Porém, caso queira-se ler poucas colunas de muitos registros, este modelo torna-se lento, já que vários blocos do disco têm que ser acessados. Para os casos em que se pretende otimizar a leitura de um banco, a orientação a colunas tende a ser mais interessante. Seguindo a ideia do exemplo anterior, fica: id1, id2;; nome1, nome2;; telefone1, telefone2. Uma das dificuldades deste modelo é a escrita de um novo registro. Assim, em um primeiro momento, os bancos tradicionais são mais adequados a processamento de transações on-line (OLTP), enquanto os bancos de dados de colunas são mais interessantes para processamento analítico on-line (OLAP) (DIANA e GEROSA, 2012). Os principais bancos de dados nessa categoria são o Cassandra, HBase e Hypertable. Orientado a grafos O banco de dados orientado a grafos (Figura 3) está diretamente relacionado a um modelo de dados já existente, o modelo de grafos. Este possui nós relacionados por arestas, em que cada um destes elementos possui um atributo. A ideia deste modelo é representar os dados e o esquema como grafos dirigidos, ou estruturas que generalizam a noção dos grafos. Assim, cada operação sobre os dados são transformações no grafo e fazem uso de conceitos de grafos, como caminhos, vizinhos e sub-grafos. Como exemplo de uso tem-se o Twitter, que tem relações entre pessoas (como seguir), ou entre pessoas e tweets (como retweetar, favoritar, entre outros). O modelo de grafos torna-se interessante quando não apenas o atributo em si é importante, mas, também, deve-se considerar as relações deste. Alguns bancos de dados nessa categoria são o Neo4j, InfoGrid, AllegroGraph e Oracle Spatial. QUADRO 1 - Paradigmas X BD NoSQL PARADIGMA Orientado a Documentos PRODUTO Armazéns Chave-Valor Orientado a Colunas Orientado a Grafos

Considerações finais FIGURA 3 - Exemplo de modelo de grafo. Várias empresas que trabalham com grandes quantidades de dados compartilhados em tempo real já aderiram aos BDs NoSQL, como Facebook, Google e Amazon. Porém, é importante ressaltar que a solução NoSQL não veio com intuito de substituir o modelo relacional e, sim, ser uma opção em casos que se necessite alta disponibilidade, escalabilidade e um sistema flexível e mais eficiente, o que não seria possível com o modelo relacional. Logo, conclui-se que existem diversas situações em que cada modelo se destaca, tendo seus pós e contras. Referências bibliográficas DIANA, M. de;; GEROSA, M. A. NOSQL na Web 2.0: Um estudo comparativo de bancos não-relacionais para armazenamento de dados web 2.0. In: Workshop de Teses e Dissertações em BD - WTDB, 9., 2010, Belo Horizonte. Anais... Belo Horizonte: SBC, 2010. LI, Y.;; MANOHARAN, S. A performance comparison of SQL and NoSQL databases. In: IEEE Pacific Rim Conference on Communications, Computers and Signal Processing - PACRIM, 14., 2013, Victoria, B.C., Canadá. Proceedings... IEEE, 2013. LÓSCIO, B. F.;; OLIVEIRA, H. R. de;; PONTES, J. C. de S. NoSQL no desenvolvimento de aplicações web colaborativas. In: Simpósio Brasileiro de Sistemas Colaborativos SBSC, 8., 2011, Paraty (RJ). Anais... Paraty: SBC, 2011. MARTINS, A.;; SOUZA, L. de. NoSQL Orientado a documento. Disponível em: <http://pt.slideshare.net/alexmartinsbezerra/no-sql-orientado-a-documento>. Acesso em: 14 set. 2015. VIEIRA, M. R. et al. Bancos de Dados NoSQL: conceitos, ferramentas, linguagens e estudos de casos no contexto de Big Data. In: Simpósio Brasileiro de Bancos de Dados, 27., 2012, São Paulo. Anais... São Paulo: SBC, 2012.