Sei sulla pagina 1di 10

Pag.

1/10

A TECNOLOGIA NoSQL APLICADA


Henrique Fernandes Pereira, Helio Rubens Soares Centro Universitrio do Tringulo (UNITRI) Caixa Postal 309 38.411-106 Uberlndia MG Brasil
henrique@uberlandia.com, hrubens@unitri.edu.br

Resumo. Escalabilidade um tema bastante complexo, armazenamento e processamento de grandes volumes de dados so focos de pesquisas que esto bem aquecidas hoje em dia. Um dos mais ativos movimentos nesta linha foi batizado pelo nome de NoSQL. Esse estudo busca mostrar atravs de testes e pesquisas o comportamento do NoSQL Cassandra e do SGDB Firebird, traando um paralelo de semelhanas e diferenas entre as duas tecnologias.

1. Introduo
Este artigo visa abordar as principais caractersticas sobre o NoSQL, que consiste em um banco de dados que utiliza a escalabilidade como seu ponto forte, aumentando assim sua capacidade de armazenamento de dados e velocidade. Consiste em um banco de dados no relacional que atualmente est em grande utilizao e desenvolvimento, grandes empresas mundiais j utilizam esta tecnologia, tais como Google, Twitter, Facebook. No artigo pretende-se demonstrar como o comportamento de um banco de dados que usa a tecnologia NoSQL, sua aplicabilidade, seus pontos fortes, semelhanas e diferenas com um banco relacional. Ambas as tecnologias possuem objetivos diferentes e que no se pode afirmar que o NoSQL rompe o imprio dos bancos de dados relacionais [Brito 2010]. Esse ser, portanto, o enfoque do artigo, apresentar as duas tecnologias, sua utilizao, abrangncia, ficando a cargo de o leitor definir qual das mesmas ir utilizar.

2. A Tecnologia SGDB
O termo base de dados est intimamente associado noo de "uma coleo de informao [Wikipdia 2011]. De um ponto de vista mais terico pode-se afirmar que uma base de dados um conjunto estruturado de informao, ou seja, uma coleo de dados formalmente definida, informatizada, partilhvel e sujeita a um controle central [Wikipdia 2011], sendo tambm definida como uma coleo de dados inter-relacionados com mltiplas utilizaes. Se sua funo fosse simplesmente a de armazenar dados, a sua organizao seria relativamente simples. A complexidade estrutural resulta do fato de que a base de dados deve tambm mostrar as relaes e associaes que existem entre as tabelas, sendo este o ponto forte dos sistemas relacionais [Macoratti 2011]. Uma vantagem importante da tabela resulta do fato de que a mesma pode ter mais do que uma finalidade e dos seus dados poderem ser vistos com diferentes formas e formatos, ao contrrio de um ficheiro.

Pag.2/10

Os sistemas de gesto de bases de dados relacionais (SGBDR) so aplicaes informticas complexas, mas essenciais em muitas reas cientficas, onde grandes quantidades de informao necessitam de ser combinadas ou exploradas, de diversas formas nem todas fceis de prever [Oliveira 2009]. Um banco de dados relacional consiste de trs componentes principais: uma coleo de estruturas de dados, nomeadamente relaes, ou informalmente tabelas; uma coleo dos operadores, a lgebra e o clculo relacionais; e uma coleo de restries da integridade, definindo o conjunto consistente de estados de base de dados e de alteraes de estados. As restries de integridade podem ser de quatro tipos: domnio (tambm conhecidas como type), atributo, varivel relacional e restries [Wikipdia 2011]. O modelo relacional uma teoria matemtica desenvolvida por Edgard Frank Codd, matemtico e pesquisador da IBM, para descrever como as bases de dados devem funcionar. Embora esta teoria seja o ponto de partida para os SGDBR, poucos sistemas de gesto seguem o modelo de forma restrita ou a p da letra, desta forma variando a complexidade e o poder. A discusso se esses bancos de dados merecem ser chamados de relacional ficou esgotada com o tempo e com a evoluo dos bancos existentes.

3. A Tecnologia NoSQL
Com o mundo cada vez mais informatizado e o crescente fluxo de informaes, as novas aplicaes tiveram que buscar novas formas de solues, surgindo assim o banco de dados no relacional, conhecido como NoSQL. NoSQL um sistema de armazenamento diferente que surgiu da necessidades em suprir as demandas onde os bancos de dados tradicionais (relacionais) so ineficazes. Muitas dessas bases apresentam caractersticas muito interessantes como alto desempenho, escalabilidade, replicao, suporte dados estruturados e sub colunas [Souza, Rocha 2010]. Os bancos de dados atuais relacionais so muito restritos a isso, sendo necessria a distribuio vertical de servidores, ou seja, quanto mais dados, mais memria e mais disco um servidor precisa [Brito 2010]. Portanto, o NoSQL tem uma maior 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 muito mais eficiente e econmica. Alm disso, os bancos de dados NoSQL so muito tolerantes a erros [Brito 2010] O NoSQL est sendo tratado como o futuro do grande armazenamento de informaes, geradas todos os dias. A importncia tanta, que as maiores empresas atualmente em tecnologia, j recorrem a este recurso para o tratamento de suas informaes, desenvolvendo a cada dia, novas solues para auxiliar e incrementar o NoSQL [Souza, Rocha 2010]. O Google, por exemplo, investe desde 2004, no BigTable, um banco de dados proprietrio, desenvolvido para suprir as necessidades de armazenamento da empresa, baseando-se na filosofia de alto desempenho, escalabilidade e disponibilidade.

Pag.3/10

J existem vrios Banco de Dados NoSQL no mercado e ocupando uma posio de destaque encontra-se o Cassandra, projetado para ser um sistema de alta disponibilidade e escalabilidade, foi desenvolvido pelo site de relacionamento Facebook, para lidar com seu grande fluxo de informaes. Em 2010, o Cassandra se consolidou de vez, sendo utilizado como alternativa pelo Twitter, ante o MySQL utilizado anteriormente [Brito 2010]. Devido ao grande processo de informatizao dessas empresas o grau de importncia dos dados gerados pelos sistemas e a responsabilidade que o mesmo tem de apresent-los de forma correta, precisa e rpida, exigiram que os SGDBs sejam altamente eficientes. A tecnologia NoSQL, portanto, surge da necessidade encontrada de gerir e processar dados, nesse aspecto pode-se pensar que a maioria das organizaes est em um crescente aumento no volume de dados, relatrios, folhas de clculo, e outras fontes de dados. Essa informao, muitas vezes, fica armazenada em arquivos manuais ou de papel, em sistemas operacionais, em CDs ou dispersos em mltiplos repositrios. Perante a ausncia de uma viso nica e confivel, cliente, produto e informao de contas, as empresas procuram e recriam a mesma informao, surgindo assim mltiplas verses da realidade em relao ao negcio associada a erros e falta de exatido. Os custos com a informao aumentam e a eficcia diminui, tornando-se cada vez mais difcil responder s presses do negcio, como: Melhorar o atendimento ao cliente; Aumentar a agilidade e a competitividade; Aperfeioar as operaes. O que pode ser visto que a informtica tornou-se algo comum dentro das organizaes, e tendo como principal objetivo o de agilizar e controlar os processos dentro da empresa. Desta maneira, as empresas acharam necessria a implementao de sistemas que automatizam alguns destes processos que, por algumas vezes, tambm substituem o trabalho manual de um empregado, mantendo assim a confiabilidade, integridade e capacidade de informao. A tecnologia NoSQL visa dar otimizao s empresas facilitando o gerenciamento e o acesso ao banco de dados contidos na web, esse tipo de produto integra uma nova onda de tecnologia altamente especializada tanto para software quanto para hardware criada para salvar grandes sites como o Facebook e o Google a fim de ajud-los a reduzir dados em pedacinhos minsculos de bits. Assim, pode-se carregar tais pginas da forma mais rpida e barata possvel, mesmo quando os servidores so obrigados a lidar com um volume cada vez maior de informaes.

4. Trabalhos Relacionados
Ao escrever sobre as tecnologias abordadas no artigo, encontra-se vrias bibliografias referentes ao tema, mesmo sendo no caso da tecnologia NoSQl, uma tecnologia recente. Nesta comparao foi utilizada a concluso de dois trabalhos, o primeiro de autoria de Ricardo W. Brito, intitulado Bancos de Dados NoSQL x SGBDs Relacionais:Anlise Comparativa [Brito 2010] em que o autor compara as duas tecnologias, concluindo que para optar sobre uma tecnologia em detrimento outra deve-se levar em considerao as necessidades do problema, importante que se analise questes como escalabilidade, consistncia dos dados e

Pag.4/10

disponibilidade do sistema. As duas tecnologias possuem importante aplicabilidade sendo que a escolha de uma depende exclusivamente de como se quer armazenar dados e do custo que tais tecnologias oferecem empresa considerando rapidez no processamento desses dados, a quantidade dos mesmos e a forma como se deseja apresentar esses dados. Outro artigo foi o de autoria de Maurcio de Diana e Marco Aurlio Gerosa, intitulado: NoSQL na Web 2.0: Um Estudo Comparativo de Bancos No-Relacionais para Armazenamento de Dados na Web 2.0 [UFMG 2010] neste artigo tambm existe a comparao entre NoSQL e SGBDs onde os autores defendem que essas tecnologias so muito recentes, existem poucas recomendaes que indicam em que contexto usar determinado paradigma. Em especial, apesar de haver casos em que bancos de dados NoSQL ajudaram organizaes a escalar seus sistemas, existem poucos estudos comparativos que indiquem os cenrios em que se aplicam e quais so seus limites de desempenho e escalabilidade.

5. Estudo de Caso
O desenvolvimento dos testes foram feitos em um Computador Intel Core I5 com 4GB de memria, divididos em dois Ambientes, no primeiro rodando o SGDB Firebird e no segundo rodando o NoSQL Cassandra, houve uma certa dificuldade em relao ao segundo Ambiente devido a pouca disponibilidade de material sobre como instalar e configurar o NoSQL Cassandra. Passada a fase de instalao e configurao, inicio-se a parte pratica de como inserir, alterar, recuperar e apagar dados em cada um dos Ambientes, perceptvel as diferenas nos comandos para cada uma das operaes mencionadas, no deixando tambm de mencionar que no NoSQL Cassandra no se aplica o conceito de juno de dados entre tabelas muito usado nos SGDBs, os comandos INNER JOIN, OUTER JOIN, LEFT JOIN e RIGHT JOIN no esto disponiveis causando assim um pouco mais de complexidade na hora de recuperar dados em mais de uma tabela.

5.1. Preparao do Ambiente de Teste


O enfoque desse artigo foi estabelecer um paralelo entre duas tecnologias de armazenamento de dados o SGDB Firebird e o NoSQL Cassandra, seguindo experimentos desde como instalar, configurar e utilizar; foram usados as seguintes configuraes:

SGDB Firebird
Verso: Firebird-2.5.0.26074_1_Win32.exe Ambiente: Microsoft Windows XP

NoSQL Cassandra
Verso utilizada: apache-cassandra-0.8.4-bin Ambiente: Microsoft Windows XP Requisitos: Java JDK-1.6 ou superior

Pag.5/10

Na tabela 1 so descritos os principais comandos disponveis para uso no NoSQL Cassandra. Tabela 1. Comandos do NoSQL Cassandra Comando Descrio assume Aplicar a validao do lado cliente Connect Conectar-se a um n de Cassandra consistencylevel Define o nvel de consistncia para o cliente usar count Conta o numero de columns ou super columns create column family Adicionar uma column family ao keyspace existente create keyspace Adicionar um keyspace ao cluster del Excluir uma column, super column ou linha decr Decrementa um contador de coluna describe cluster Descrever a configurao do cluster describe keyspace Descrever um keyspace e suas column families drop column family Remover uma column family e seus dados drop keyspace Remover um keyspace e seus dados drop index Remover um ndice existente de coluna especfica Get Busca os dados de linhas e colunas Incr Incrementos o contador de uma column List Listas as linhas de uma column family set Seta o valor para uma Column show api version Mostrar a verso da Api do servidor show cluster name Mostrar o nome do cluster show keyspaces Mostrar todos os keyspaces e suas column families show schema Mostrar um script para criar cli keyspaces e column families Truncate Soltar os dados em uma column family update column family Atualizar as configuraes para uma column family update keyspace Atualizar as configuraes para um keyspace use Seta o keyspace a ser usado

A tabela 2 descreve as configuraes necessrias para que se possa usar o NoSQL Cassandra. No arquivo: ...\Cassandra\conf\cassandra.yaml localizar e modificar estas linhas conforme a necessidade, para o estudo foi usado esta configurao: Tabela 2. Configurao do Servidor Linha Configurao utilizada rpc_address Localhost rpc_port 9160 data_file_directories - c:/cassandra/data commitlog_directory c:/cassandra/commitlog saved_caches_directory c:/cassandra/saved_caches

Pag.6/10

5.2. Criando os Bancos de Dados


Na figura 1 demonstrada a sintaxe de criao de um Banco de Dados no SGDB Firebird e na figura 2 a do NoSQL Cassandra. Neste ponto j se notam algumas diferenas entre as duas tecnologias.

Figura 1. Criao de um Banco de Dados no SGDB Firebird

Figura 2. Criao de um Banco de Dados no NoSQL Cassandra

5.2.1. Criando Tabelas


O procedimento de criao de tabelas em um SGDB bem mais simples (figura 3), do que no NoSQL Cassandra, conforme pode ser observado na figura 4, por definio no NoSQL Cassandra toda tabela na verdade uma coleo de colunas ou uma Column Family.

Figura 3. Criao de uma Tabela no SGDB Firebird

Figura 4. Criao de uma Tabela no NoSQL Cassandra

Pag.7/10

5.3. Execuo de Comandos


Os comandos de insero, deleo e recuperao de um determinado registro tem grandes diferenas entre as tecnologias SGDB e NoSQL. Enquanto que no SGDB so usados os comandos INSERT, UPDATE, SELECT e DELETE conforme demonstrando nas figuras 5 a 8, no NoSQL so usados os comandos: SET, GET e DEL conforme demonstrado nas figuras 9 a 11.

5.3.1. Execuo de Comandos no SGDB Firebird


Nas figuras 5 a 8 demonstrada a sintaxe e uso dos comandos INSERT, UPDATE, SELECT e DELETE.

Insert into <nome_tabela> (colunas) values (valores);

Figura 5. Comando para insero de um Registro

Update <nome_tabela>

set coluna = valor[,nColuna = nValor...];

Figura 6. Comando para atualizar um Registro

select [colunas] from <nome_tabela> where [condio];

Figura 7. Comando para consultar um Registro

delete from <nome_tabela> where [condio];

Figura 8. Comando para remover um Registro

Pag.8/10

5.3.2. Execuo de Comandos no NoSQL Cassandra


Nas figuras 9 a 11 demonstrado a sintaxe e uso dos comandos SET, GET e DEL. Sendo que no NoSQL Cassandra o comando Set tem dupla funcionalidade podendo ser usado para adicionar um novo registro ou para alterar um registro j existente.
set nomekeyspace [id][nome_da_coluna] = valor;

Figura 9. Comando para inserir ou alterar um Registro

get

nomekeyspace [id];

Figura 10. Comando para consultar um Registro

del

nomekeyspace [id];

Figura 11. Comando para remover um Registro

6. Relacional ou NoSQL
Banco de Dados Relacionais baseiam-se, portanto, no conceito de entidade e relacionamento, no qual, todos os dados so guardados em tabelas. 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. Suas principais caractersticas so: a construo de tabelas, esquema definido, hierarquia, redundncia mnima, entidade e relacionamento, formas normais, transaes ACID (Atomicidade, Consistncia, Isolamento, Durabilidade). So mais utilizados em sistemas locais, sistemas financeiros, sistemas corporativos, segurana da informao, consistncia dos dados. Exemplos de SGBDRs: DB2, Firebird, InterBase, Microsoft SQL Server , MySQL, Oracle, PostgreSQL. Bancos de Dados NoSQL so, portanto, uma soluo alternativa para Bancos de Dados Relacionais. Possuem uma escalabilidade, disponibilidade, desempenho e menor tempo de resposta a consultas. A tabela 3 apresenta as principais caractersticas da tecnologia relacional e

Pag.9/10

tambm da NoSQL. Tabela 3[14] Tecnologia Relacional e NoSQL BD Relacional Escalabilidade BD NoSQL

Devido estruturao do Possui mais flexibilidade na modelo, possvel, mas incluso de dados por no complexo. possuir estrutura. Ponto forte do Modelo Relacional. A regra de consistncia presente garante um maior rigor consistncia das informaes. No garante a consistncia da informao, caso nenhuma informao seja atualizada, retornar a todos os pedintes o mesmo valor.

Consistncia

Disponibilidade

Este modelo no suporta Possui um alto grau de eficientemente grande distribuio de dados, e garante demanda, dado a um maior nmero de solicitaes. dificuldade e distribuio de dados.

7. Concluso
Ao se escrever esse artigo no h como haver uma definio de qual tecnologia a mais acertada ou qual delas a melhor, ambas dependem em muito do objetivo a ser alcanado pelo programador e de qual desses programas ir satisfaz-lo em determinada situao, podendo inclusive utilizar das duas ao mesmo tempo. O que se pde constatar durante a elaborao do artigo que a tecnologia NoSQL muito recente, porm no se pode afirmar que seu futuro no de certa forma promissor, pois se trata de uma tecnologia com pontos favorveis encontrando algumas importantes solues, como por exemplo sua grande flexibilidade em incluir dados em sua estrutura, alm de um alto grau de distribuio dos mesmos. Lembrando que esse banco de dados est sendo testado em ambientes reais de produo agora, e ainda no h como se afirmar que os mesmos desempenham todas as suas caractersticas principalmente no que se refere escalabilidade e ao desempenho. Essa tecnologia recente e est sendo testada nesse momento como o caso do Cassandra usado hoje, no Facebook, Twitter e Digg, e o MongoDB est em uso no Foursquare e SourceForge, para citar dois exemplos. O que se pode afirmar que essa tecnologia no ser facilmente descartada dada a grande utilizao por parte de grandes empresas. Cada opo tem sua aplicabilidade, o importante aproveitar o que cada tecnologia tem de melhor. O artigo teve a finalidade de alm de apontar cada tecnologia, apresentar tambm seus pontos favorveis e desfavorveis, mostrando tambm que apesar de recente a tecnologia NoSQL uma realidade vivel. Claro que as solues NoSQL ainda tem que amadurecer no que se refere aplicabilidade, mas pode-se enxergar nisso uma oportunidade de pioneirismo.

Pag.10/10

8. Referncias
1- ANDERSON, Chirs. 2009. Apache CouchDB: The definitive Guide. Disponvel em: http://couchdb.Apache.org/index.htm Acessado em 13/09/2011. 2- APACHE. HTTP. 2010. Disponivel em: http://wiki.Apache.org/couchdb/HTTP_view_API. Acessado em: 13/09/2011. 3- BRITO Ricardo. Banco de Dados NoSQL x SGBDR. 2010. 4- CASSANDRA. Apache Cassandra. 2010. Disponvel http://cassandra.Apache.org/. Acessado em: 13/09/2011. em:

5- FROSSARD, Afonso Celso Pagano. Modelos para Sistema de Informao: Conceitual, Lgico e Fsico, 2007. Disponvel em: http://www.flf.edu.br/midias/FLF.EDU/v5mono1.pdf. Acessado em 13/09/2011. 6- LENNON, Joe. Begining CouchDB. USA: Apress, 2009. 7- MACORATTI, Jos Carlos. Banco de dados. Disponvel em: http://www.macoratti.net/banco.htm. Acessado em 13/09/2011. 8- OLIVEIRA, Leonardo Eloy. Estado da arte de banco de dados orientados a documento, 2009. Monografia (Concluso do Curso de Graduao em Cincias Tecnolgicas) Universidade de fortaleza UNIFOR, Cera, 2009. 9- PRONSCHINSKE, Mitchell. Apache Cassandra. 2010. Disponivel em: http://css.dzone.com/articles/cassandra-nosql-database. Acessado em: 13/09/2011. 10- RAMALHO, Jos Antnio Alves. Oracle 8i: Berkeley Brasil, 1999. 11- http://pt.wikipedia.org/wiki/NoSQL , acessado em 14/09/2011. 12- SOUZA, Thalles Ramon & ROCHA, Andr Luiz. http://www.slideshare.net/andrerochajp/artigo-nosql, acessado 14/09/2011 13- www.lbd.dcc.ufmg.br/colecoes/wtdbd/2010/sbbd_wtd_12.pdf, em 15/09/2011. acessado

Potrebbero piacerti anche