Patrocínio, MG, outubro de 2016 ENCONTRO DE PESQUISA & EXTENSÃO, 3., 2016, Patrocínio. Anais... Patrocínio: IFTM, 2016. CASSANDRA: BANCO DE DADOS NÃO RELACIONAL DE ALTO DESEMPENHO Moises Wesley de Souza (IFTM) 1 ; Vitor Mendes de Souza (IFTM) 2 ; Dênis Henrique de Deus Lima (IFTM) 3 Modalidade: Pesquisa Resumo: Devido o avanço das tecnologias surgiu a necessidade de um banco de dados que pudesse trabalhar com uma grande quantidade de dados e ao mesmo tempo conseguir lidar com uma quantidade muito grande de acessos simultâneos, que geralmente são encontrados em sistemas de redes sociais e E-Commerce. Visto essas necessidades surgiu a proposta do banco de dados Cassandra que e uma solução NoSql ou seja e um banco de dados não relacional, nesse artigo foi abordado as principais características desse sistema, onde é indicado seu uso, alguns de seus pontos fortes, alguns conceitos de SQL e NoSql, além de outras características desse tipo de banco de dados. Palavras-Chave: Banco de Dados; Cassandra; NoSQL. INTRODUÇÃO Com o avanço da tecnologia, juntamente com a grande facilidade com que as pessoas têm acesso a mesma, os usuários produzem uma grande quantidade de terabytes e informações por dia, quantidade essa que não é uma tarefa tão simples de ser gerenciada por um banco de relacional. Devido a esse problema surgiu à necessidade de encontrar uma solução para armazenar e gerenciar essa grande quantidade de dados, de forma a ser mais 1 Estudante do Curso Tecnólogo em Análise e Desenvolvimento de Sistemas. moises.wesley.s@gmail.com 2 Estudante do Curso Tecnólogo em Análise e Desenvolvimento de Sistemas. vitu1221@hotmail.com 3 Professor Orientador, Especialista em Engenharia de Software com Métodos Ágeis. denislima@iftm.edu.br
organizada e de acesso mais rápido, surgindo assim a tecnologia de banco de dados não relacional (NoSQL). A proposta do banco de dados Cassandra segundo a The Apache Software Foundation (2016), é obter escalabilidade e alta disponibilidade sem perder desempenho, assim suprindo a necessidade de armazenamento de grandes volumes de informação. O banco de dados Cassandra é do tipo NoSQL. Esses bancos são considerados banco de dados não relacionais, o Cassandra reúne a arquitetura do Dynamo da Amazon e modelo de dados baseado no Bigtable 4 o Google. Esse banco inicialmente foi desenvolvido pelo Facebook e logo após teve o código aberto para a comunidade, sendo que hoje ele e mantido pela Apache com a colaboração de algumas outras empresas. O objetivo deste artigo será mostrar a principais características do Cassandra, seus pontos fortes e em que tipo de aplicação ele e mais adequado. 619 REFERENCIAL TEÓRICO tratado nesse artigo. Nessa seção será exibido os fundamentos teóricos do assunto SQL (Structured Query Language ) De acordo com Furtado (2016), o SQL é uma linguagem para manipulação de banco de dados relacionais. Essa linguagem interage com o SGBD (Sistema Gerenciador de Banco de Dados) para realizar operações no banco de dados. Essa linguagem e dividida em quatro grupos, sendo eles: DML (Data Manipulation Language) que é a linguagem de manipulação do banco que e usada para inserir, atualizar, excluir e recuperar os dados das tabelas, DDL (Data Definition Language) que e usada para criar a estrutura das tabelas do banco, DCL (Data Control Language) usada para controlar o acesso dos usuários aos dados, DTL (Data Transition Language) que serve para controlar as transações no banco de dados. 4 Banco de Dados orientado a colunas.
NoSQL Segundo Porcelli (2016), NoSQL é uma solução de armazenamento para bancos de dados não relacionais, ele não possui o objetivo de substituir os bancos de dados relacionais e sim propor soluções para algumas situações específicas. Complementado, Ianni (2016) diz que, os bancos não relacionais possuem uma escalabilidade mais barata e menos trabalhosa. A manutenção nesse modelo de banco é considerada mais fácil em relação aos bancos relacionais. Algumas das características dos bancos de dados segundo Ianni (2016) não relacionais são a utilização do processamento paralelo para manipular as informações e a distribuição em escala global. Existem vários tipos de banco de dados não relacionais conforme Lanni, sendo que alguns trabalham no esquema chave/valor, outros orientados a documentos e por fim baseado em grafos. 620 Banco de dados Cassandra Para Gonçalves (2016) o banco de dados Cassandra é normalmente utilizado em sistemas que necessitam de uma alta disponibilidade e escalabilidade, além de poder operar com vários processamentos simultâneos. Devido a esses itens ele vem sendo utilizado por empresas como Amazon, Facebook e Twitter, além de estar virando tendência em sistemas que possuem grande quantidade de dados, que aceitam algumas falhas, necessitam de alta disponibilidade e aceitam que alguns dados sejam fornecidos desatualizados. Conforme Gonçalves (2016), o banco de dados Cassandra e um banco não relacional onde não existe normalização, sua hierarquia e composta pelo KeySpace 5, que e uma família de colunas, sendo que essas colunas são compostas por nome do campo, valor e timestamp 6. Neste banco não existem transações, por que ele foi feito para trabalhar com uma taxa muito alta de 5 :Agrupamento de famílias de colunas. 6 : Conteúdo relacionado a data de criação ou alteração.
acessos, o mesmo aceita que se envie vários registros em uma mesma família de coluna ao mesmo tempo. A busca por informações no banco e feita através de chaves devido a questões de desempenho. O único componente que e obrigatório nesse banco de dados é a chave, pois seus campos são criados por demanda, ou seja, caso algum campo não seja preenchido é como se ele não existisse. METODOLOGIA Primeiramente foram divididos assuntos que seriam de maior importância para o artigo como, características e vantagens do banco de dados Cassandra e em quais tipos de sistemas utilizá-los, logo após foram escolhidos outros temas que eram necessários serem esclarecidos para que se tenha um maior entendimento do artigo. 621 Resultados Para Perera (2016) o Cassandra e um sistema distribuído, onde há vários nos que compartilham dados entre si, em um cluster 7 seus dados são distribuídos entre os nos sendo que qualquer no pode resolver solicitações mesmo que os dados solicitados não estejam armazenados nele. O sistema gerencia a criação e gerenciamento de suas réplicas, ele possui um sistema de gravação mais rápido do que o seu sistema de leitura chegando a taxas de 30 a 360MB/s a cada no, já que utiliza técnicas como manter a maior parte dos dados no nó responsável. Caso o tipo de gravação solicitado seja de consistência total os dados são gravados nos nós, resolvendo os problemas de inconsistências nos dados somente na leitura inicial, já que sua arquitetura e facilmente escalável, ele suporta um grande quantidade de nós. Em relação a bancos relacionais o Cassandra não realiza processos de junção de colunas, por isso ele tenta armazenar o máximo de dados possíveis em uma só linha, não possui chaves estrangeiras e suas chaves não podem ser alteradas, caso algum no do cluster apresentar algum problema o cluster continua a funcionar caso exista réplicas, para reparar o problema e 7 Conjunto de um ou mais servidores.
necessário usar a ferramenta de linha de comando de forma manual e o sistema ficará indisponível enquanto ela e executada. CONCLUSÃO Com a gigantesca gama de usuários conectados a internet geram grandes quantidades de informações que na maioria das vezes necessita de uma base de dados complexa para que se possa suprir essa demanda de armazenamento que muitas vezes as estruturas dos bancos de dados relacionais não consegue suportar em contra partida essa nova forma de organização de dados proposta pelo bando de dados cassandra vem para solucionar a maioria desses problemas. De acordo com esse estudo conclui se que a tecnologia do banco de dados Cassandra possui uma eficiência maior em sistemas que necessitam de uma grande quantidade de acessos simultâneos como sistemas de E- Commerce e redes sociais, além de ter que lidar com uma grande quantidade de dados, além de ser escalável, o que não impede que ele também seja empregado em outros tipos de aplicações. Sendo assim o sistema de banco de dados Cassandra e de essencial importância para o contexto de aplicações de grande escala, já sendo usado em diversas aplicações, o que torna o estudo sobre ele de suma importância para os profissionais da área. 622 REFERÊNCIAS FURTADO, Gustavo. Você precisa saber o que é SQL!. Disponível em: <http://www.dicasdeprogramacao.com.br/o-que-e-sql/>. Acesso em: 30 set. 2016. GONÇALVES, Otávio. Introdução ao banco de dados NoSQL Cassandra. Disponível em: <http://www.devmedia.com.br/introducao-ao-banco-de-dadosnosql-cassandra/30533>. Acesso em: 28 set. 2016. IANNI, Vinicius. Introdução aos bancos de dados NoSQL. Disponível em: <http://www.devmedia.com.br/introducao-aos-bancos-de-dados-nosql/26044 >. Acesso em: 28 set. 2016. PERERA, Srinath. Considerações sobre o Banco de Dados Apache Cassandra. Disponível em:
<https://www.ibm.com/developerworks/br/library/os-apache-cassandra/>. Acesso em: 01 out. 2016. PORCELLI, Alexandre. O que é nosql?. Disponível em: <http://www.devmedia.com.br/o-que-e-nosql-java-magazine-86/18777 >. Acesso em: 28 set. 2016. THE APACHE SOFTWARE FOUNDATION. What is Cassandra? Disponível em: <http://cassandra.apache.org/>. Acesso em: 16 set. 2016. 623