Buscar

TCC Banco de Dados - Jeffinho


Prévia do material em texto

3
BANCO DE DADOS NÃO RELACIONAIS
 
Nome: Jefferson 
Orientador: XXXXXX
Resumo:
No mercado atual que está cada vez mais conectado à rede mundial de computadores, as organizações vêm se readequando a fim de aproveitar essa nova modalidade de negócio, migrando assim para sites na internet. Com o objetivo de atender às demandas atuais, novas tecnologias de bancos de dados vêm sendo requisitadas para permitir a manipulação de grandes volumes de dados. Por meio deste estudo buscou-se explicar as principais características e funcionamento dos bancos de dados NoSQL. Esses sistemas possuem em geral diversos pontos positivos, sendo o mais importante a possibilidade de escalonamento, disponibilidade e pela simplicidade de seu modelo, onde não há esquemas pré-definidos. É importante observar que a escalabilidade em alto grau somente se faz necessária em bancos de dados de grande volume de informações, nos quais a alta disponibilidade e desempenho são imprescindíveis. Apesar do termo NoSQL não descrever esses bancos de dados perfeitamente existem indícios que demonstram um futuro promissor, justificando a realização de mais estudos para desenvolver, aprimorar os conhecimentos sobre o tema e divulgar os resultados obtidos a fim de tornar este tão importante tema de conhecimento geral para os desenvolvedores de software.
Palavras-chave: Engenharia de software, bancos de dados não relacionais, NoSQL.
Abstract:
In today's increasingly Internet-connected world, companies have been adapting to take advantage of this new business opportunity, thus migrating to websites. In order to meet today's demands, new database technologies are being required to enable the handling of large volumes of data. Through this study we sought to explain the main characteristics and operation of NoSQL databases. These systems have in general several positive points, being the most important the possibility of escalation, availability and for the simplicity of its model, where there are no pre-defined schemes. It is important to keep in mind that the scalability in high degree is necessary only in large databases, where the high availability is essential. Although the term NoSQL does not describe these databases perfectly, there are signs that demonstrate a promising future, justifying further studies to develop, improve knowledge on the subject, and disseminate the results obtained in order to make this such an important subject of general knowledge for software developers.
Keyword: Software engineering, Non-relational databases, NoSQL.
1. INTRODUÇÃO
No mercado atual que está cada vez mais conectado à rede mundial de computadores, as organizações vêm se readequando a fim de aproveitar essa nova modalidade de negócio, migrando assim para sites na internet. Em vista disto, o volume de dados vem crescendo exponencialmente, demandando um alto armazenamento dessas informações em um banco de dados, geralmente usados com essa finalidade. No entanto, devido ao número de novos sites serem elevados, ele não se torna tão eficiente sendo necessária a busca de novas alternativas (GARCIA, SOTTO, 2019).
Com o objetivo de atender às demandas atuais, novas tecnologias de bancos de dados vêm sendo requisitadas para permitir a manipulação de grandes volumes de dados não estruturados e semiestruturados, assim como novas necessidades de disponibilidade e escalabilidade, tendo o NoSQL (Not only SQL) como uma proposta para a solução de gerenciamento de dados (LÓSCIO et al., 2011 apud GARCIA, SOTTO 2019).
O termo NoSQL não define precisamente esses bancos de dados, porém eles apresentam características de modo geral semelhantes como: “não relacional, distribuído, de código aberto e escalável horizontalmente, ausência de esquema ou esquema flexível, suporte à replicação nativo e acesso via APIs simples” (NOSQL, 2010, p.4).
	É um equívoco dizer que os bancos de dados não relacionais não armazenam bem dados de relacionamento, pois eles podem armazenar dados de relacionamento, entretanto os armazenam de maneira diferente dos bancos de dados relacionais nos quais os dados são armazenados em estruturas hierárquicas ou de navegação para a organização de dados em tabelas, contendo linhas e colunas. São exemplos os bancos MySQL, PostgresSQL, Microsoft Access (FERNANDES, 2020).
“Com o passar do tempo foram ocorrendo mudanças com o objetivo de propor alternativas ao uso do Modelo Relacional o que levou os desenvolvedores a pensarem em um modo alternativo de se modelar as bases de dados” (BRITO, 2015, p. 256). A busca de soluções era no sentido de eliminar ou minimizar a antiga estruturação que era pouco flexível 
Uma vantagem dos bancos de dados NoSQL em relação aos bancos de dados SQL, é que o NoSQL possui maior facilidade na modelagem de relacionamentos porque os dados relacionados não precisam ser divididos entre as tabelas. (FERNADES, 2020). 	 
2. FUNDAMENTAÇÃO TEÓRICA
2.1. BANCOS DE DADOS NOSQL
Fernandes (2020) destaca: “os bancos de dados NoSQL surgiram no final dos anos 2000, à medida que o custo do armazenamento diminuía drasticamente. Já se foram os dias em que era necessário criar um modelo de dados complexo e difícil de gerenciar, simplesmente com o objetivo de reduzir a duplicação de dados.” 
O termo NoSQL passou a representar soluções que promoviam uma alternativa ao Modelo Relacional, sua utilização era principalmente em casos em que o Modelo Relacional não era adequado. “As soluções NoSQL não possuíam o objetivo de substituir o Modelo Relacional como um todo, mas apenas em casos nos quais seja necessária uma maior flexibilidade da estruturação do banco” (BRITO, 2015,).
“Os bancos de danos NOSQL não possuem tabelas que se tenham relacionamento de cardinalidade com outras tabelas, no entanto possuem coleções de dados com atributos dinâmicos”. Nesse caso, consulta e inserção de resultados podem se tornar mais simples e eficiente para um número grande de registros que podem não possuir os mesmos atributos (ZIMER, et al, 2017).
2.2. CLASSIFICAÇÃO DOS BANCOS DADOS NOSQL
Os tipos mais comuns de bancos de dados NOSQL são: bancos de dados orientados a documentos, armazéns de chave-valor, bancos de dados de famílias de colunas e bancos de dados de grafos (DIANA & GEROSA, 2010).
“Quanto ao modelo de dados, existem quatro categorias básicas: os sistemas baseados em armazenamento chave-valor, como é o caso do Amazon Dynamo; os sistemas orientados a documentos, como o CouchDB e o MongoDB;” (Britto, 2015, p.3). E acrescenta: “os sistemas orientados a coluna, Cassandra e o BigTable; e os sistemas baseados em grafos, como o Neo4j e do InfoGrid.”
O Banco de Documentos armazena os dados em documentos semelhantes aos objetos JSON (JavaScript Object Notation). Possuem em geral poderosas linguagens de consulta, ideias para usos gerais. “Podem ser facilmente escalados horizontalmente para acomodar grandes volumes de dados.” (FERNADES, 2020, p. 37). O MongoDB é classificado como o banco de dados NoSQL mais popular no mundo. Normalmente devido a não possuírem esquema os documentos não precisam ter estrutura em comum, sendo assim boas opções para o armazenamento de dados semiestruturados (FERNADES, 2020).
Figura 1: “Exemplo de uma collection (“tabela”) do MongoDB”
Fonte: “Banco de Dados Relacional (SQL) e Não Relacional” (NoSQL). FERNADES: 2020
Ainda segundo Fernandes (2020) Chave-Valor é um tipo mais “simples” de banco de dados, em que cada item contém chaves e valores. Os valores podem ser qualquer tipo de dado, textos, números, um JSON e podem ser recuperados fazendo referência a sua chave, tornando sua consulta muito mais simples. Ideal para armazenar grandes volumes de dados quando não é necessário fazer consultas complexas neles. São mais usados ​​para armazenamento de dados em cache. Os mais populares são o Redis e DynanoDB.
Figura 2: “Exemplo de uma tabela de armazenamento Redis.”.
Fonte: “Banco de Dados Relacional (SQL) e Não Relacional (NoSQL)”. FERNADES: 2020.
2.3. VANTAGENS DOS BANCOS DADOS NOSQL
As principais vantagens identificadas nessesistema são a maior disponibilidade, paralelismo de atualização de dados, tempo de resposta à consultas reduzido e elevado grau de concorrência. Os bancos de dados NoSQL são projetados para atender a essas características naturalmente.
Fernandes (2020) ainda aponta outras vantagens importantes como:
· Armazenamento de grandes volumes de dados sem estrutura definida, pois os bancos NOSQL não limitam os campos, diferente das colunas no SQL. 
· Possibilidade de adicionar novas propriedades conforme as necessidades dos negócios mudam, sem se preocupar com o impacto nas demais informações armazenadas.
· Possibilidade do uso de computação e armazenamento em nuvem, pois devido o avanço e barateamento dos serviços clouds, é possível usar bancos de dados NoSQL inicialmente pequenos, podendo-se facilmente escalá-los conforme a necessidade aumenta.
· Desenvolvimento rápido, pois não requer o nível de preparação normalmente necessário para bancos de dados relacionais.
2.4. CARACTERÍSTICAS PRINCIPAIS NOSQL
Segundo LÓSCIO et al. (2011) apud GARCIA, SOTTO (2019), os bancos de dados NoSQL apresentam características fundamentais que os distinguem dos tradicionais sistemas de bancos de dados relacionais, o que os torna mais indicados para grandes volumes de dados não-estruturados ou semiestruturados, dentre elas pode-se destacar:
· A ausência de bloqueios permitindo a escalabilidade horizontal e tornando esta tecnologia ideal para solucionar os problemas de gerenciamento de volumes de dados crescentes.
· Ausência completa ou quase integral do esquema de definição a estrutura dos dados modelados. Esta ausência de esquema favorece a escalabilidade e o aumento da disponibilidade. Entretanto não há garantia da integridade dos dados como nos bancos relacionais.
· Permite a replicação de forma nativa e diminui o tempo gasto para recuperar informações. As principais abordagens são o Master-Slave (Mestre-Escravo) e Multi-Master.
· API simples para acesso aos dados. Foca na recuperação de dados de forma eficiente e não em como os dados são armazenados permitindo utilização dos dados de forma rápida e eficiente. 
· O consistent hashing comporta procedimentos e ferramentas de armazenamento e recuperação em bancos de dados distribuídos, no qual o número de sites está em contínua modificação. Sendo assim evita que haja muita migração de dados entre esses sites, podendo ser alocados e deslocados para a distribuição dos dados.
3. CONSIDERAÇÕES FINAIS
Por meio deste estudo buscou-se explicar as principais características e funcionamento dos bancos de dados NoSQL. Esses sistemas possuem em geral diversos pontos positivos, sendo o mais importante a possibilidade de escalonamento, disponibilidade e pela simplicidade de seu modelo, onde não há esquemas pré-definidos.
É importante observar que a escalabilidade em alto grau somente se faz necessária em bancos de dados de grande volume de informações, nos quais a alta disponibilidade e desempenho são imprescindíveis. Apesar do termo NoSQL não descrever esses bancos de dados perfeitamente existem indícios que demonstram um futuro promissor, justificando a realização de mais estudos para desenvolver, aprimorar os conhecimentos sobre o tema e divulgar os resultados obtidos a fim de tornar este tão importante tema de conhecimento geral para os desenvolvedores de software.
6. REFERÊNCIAS BIBLIOGRÁFICAS
BRITTO, R.W. Bancos de Dados NoSQL x SGBDs Relacionais:Análise Comparativa. Fortaleza, CE. 2015. 
DIANA, M. de; GEROSA, M.A. NOSQL na Web 2.0: Um Estudo Comparativo de Bancos Não-Relacionais para Armazenamento de Dados na Web 2.0. São Paulo, SP, 2010.
FERNANDES, Henrique Marques. Banco de Dados Relacional (SQL) e Não Relacional (NoSQL) – O que são, para que servem e qual a diferença? Tech. 01 abr. 2020. Disponível em: < https://marquesfernandes.com/banco-de-dados-relacional-sql-e-nao-relacional-nosql-o-que-sao-para-que-servem-e-qual-a-diferenca/>. Acesso em: 03 jul. 2020.
GARCIA, V.S; SOTTO, E.C.S. Comparativo entre os modelos de banco de dados relacional e não-relacional. São Paulo, SP. Interface Tecnológica, vol.16, 2019.
LÓSCIO B.F.; OLIVEIRA, H.R.; PONTES, J.C.S.; NoSql no desenvolvimento de aplicações Web colaborativas. Disponível em: <https://www.researchgate.net/profile/Bernadette_Loscio/publication/268201466_NoSQL_no_desenvolvimento_de_aplicacoes_Web_colaborativas/links/576aa72008aef2a864d1ef8c/NoSQL-no-desenvolvimento-de-aplicacoes-Web-colaborativas.pdf>. Acesso em: 19 de abr. de 2019. 
NOSQL. NOSQL Databases. Disponível em: http://nosql-database.org/. 2010. Acesso em: 11 de maio de 2017.
ZIMMER, R.B. Comparativo entre bancos de dados não relacionais - NOSQL. Vol. 4. Rio do Sul, SC, 2017.