AN OVERVIEW NOSQL OF DATABASES FOR BIG DATA
REGISTRO DOI: 10.69849/revistaft/pa10202410171619
Miguel Adrian Carretero1
RESUMO
O crescente volume e variedade de dados gerados na era do Big Data desafiam as capacidades dos bancos de dados relacionais tradicionais. Bancos de dados NoSQL surgem como uma alternativa promissora, oferecendo escalabilidade, flexibilidade e desempenho para lidar com dados não estruturados e semiestruturados. Esta revisão de literatura explora os principais tipos de bancos de dados NoSQL, suas características, vantagens e desvantagens no contexto do Big Data. Abordamos os desafios de modelagem de dados, consistência e gerenciamento, além de apresentar estudos de caso e aplicações em diferentes setores. O objetivo é fornecer uma visão geral abrangente do papel dos bancos de dados NoSQL no cenário atual de Big Data, elucidando seu potencial para lidar com os desafios de armazenamento e processamento de dados em larga escala.
Palavras-chave: Big Data. Banco de Dados NoSQL. Revisão de Literatura. Análise de Dados.
ABSTRACT
The increasing volume and variety of data generated in the Big Data era challenge the capabilities of traditional relational databases. NoSQL databases emerge as a promising alternative, offering scalability, flexibility, and performance to handle unstructured and semi-structured data. This literature review explores the main types of NoSQL databases, their characteristics, advantages, and disadvantages in the context of Big Data. We address the challenges of data modeling, consistency, and management, and present case studies and applications in different sectors. The goal is to provide a comprehensive overview of the role of NoSQL databases in the current Big Data landscape, elucidating their potential to address the challenges of large-scale data storage and processing.
Keywords: Big Data. NoSQL Database. Literature Review. Data Analysis.
1 INTRODUÇÃO
A literatura sobre banco de dados NoSQL tem evoluído significativamente, refletindo a crescente complexidade e volume de dados na era do Big Data. Draheim e Horn (2004) apresentaram um framework para a evolução de tipos e migração de dados, enfatizando a geração de programas de atualização personalizáveis que facilitam a migração de dados. Essa abordagem inicial estabeleceu as bases para a compreensão da flexibilidade necessária em sistemas de gerenciamento de dados. A exploração e adoção de bancos de dados e objetos NoSQL dentro do contexto de Big Data atraiu significativa atenção de organizações em todo o mundo (HASSAN, 2024). À medida que a demanda por soluções de gerenciamento de dados mais flexíveis e escaláveis continua a aumentar, a importância dos bancos de dados NoSQL não pode desprezada. A extensa literatura disponível sobre este assunto apresenta uma série de perspectivas diversas, destacando suas vantagens distintas e desafios inerentes. A literatura ajuda as organizações a obterem uma compreensão abrangente dos benefícios e obstáculos potenciais associados os bancos de dados NoSQL no cenário de Big Data.
1.1. SOBRE BANCO DE DADOS NOSQL
Com o avanço da Internet, dispositivos móveis e tecnologias de sensores, a quantidade de dados gerados globalmente aumentou drasticamente. Segundo estimativas recentes, o volume de dados criados e replicados deve atingir cerca de 180 zettabytes até 2025 (IDC, 2021). Nesse contexto, o termo “Big Data” refere-se não apenas ao grande volume de dados, mas também à complexidade, velocidade e variedade com que esses dados são gerados. As bases de dados tradicionais, principalmente as baseadas no modelo relacional, enfrentam dificuldades ao lidar com as características do Big Data, levando ao surgimento dos bancos de dados NoSQL.
Os bancos de dados NoSQL (Not Only SQL) foram projetados para suportar grandes volumes de dados não estruturados e semiestruturados, fornecendo escalabilidade horizontal e alta disponibilidade. Ao contrário dos bancos de dados relacionais, que seguem o modelo ACID (Atomicidade, Consistência, Isolamento e Durabilidade), muitos sistemas NoSQL seguem o modelo BASE (Basicamente Disponível, Estado Flexível e Consistência Eventual), que é mais adequado para sistemas distribuídos. Este artigo visa discutir os conceitos e tipos básicos de bancos de dados NoSQL, suas vantagens em comparação aos sistemas de gerenciamento de bancos de dados relacionais (SGBDR), bem como casos práticos de sua utilização no cenário de Big Data.
1.2 histórico sobre a literatura
Jan (2015), explorou a convergência entre bancos de dados relacionais e não relacionais, oferecendo uma descrição sistemática dos conceitos transferidos entre esses dois paradigmas. O autor avaliou as forças e fraquezas de sistemas NewSQL, contribuindo para a discussão sobre como as características dos bancos de dados relacionais estão sendo incorporadas aos modelos NoSQL, revelando uma tendência de hibridização que pode impactar a escolha de tecnologias de armazenamento de dados.
Zeng (2016), focou na arquitetura de armazenamento de dados NoSQL em ambientes de nuvem, discutindo as propriedades do teorema CAP e a troca de consistência por disponibilidade e tolerância à partição. O autor categoriza os bancos de dados NoSQL em orientados a um único nó e a múltiplos nós, ressaltando as vantagens e desvantagens de cada abordagem, o que é crucial para entender a escalabilidade e a replicação em sistemas NoSQL.
Truica, Radulescu, et al. (2018), trouxeram uma análise das operações CRUD em bancos de dados orientados a documentos, destacando como esses sistemas evoluíram para lidar com tipos de dados complexos e semiestruturados. A flexibilidade dos bancos de dados orientados a documentos, com sua capacidade de armazenar documentos aninhados e operar com modelos de dados variáveis, foi enfatizada como uma resposta às limitações dos bancos de dados relacionais.
Shakhovska, Olubash e Veres (2019), abordaram a estrutura e a eficiência dos bancos de dados NoSQL, categorizando-os em diferentes tipos, como armazenamento de chave-valor e clones do BigTable. O estudo destacou a importância da escolha do banco de dados adequado para diferentes aplicações, considerando a capacidade de processamento e a complexidade das consultas, o que é essencial na seleção de tecnologias para projetos de Big Data.
Asaad, Baina e Ghogho (2020), discutiram a necessidade de desambiguação dos conceitos relacionados aos bancos de dados NoSQL, dada a falta de um consenso teórico. O trabalho incluiu uma pesquisa abrangente e um benchmark que comparou diferentes bancos de dados NoSQL, contribuindo para uma melhor compreensão das características e classificações desses sistemas, um aspecto vital para a adoção e implementação eficazes em ambientes de dados intensivos.
Hernández, Chillón, Klettke, et al (2022) propuseram uma taxonomia das mudanças de esquema para bancos de dados NoSQL, utilizando um metamodelo específico que suporta tanto esquemas NoSQL quanto relacionais. A pesquisa abordou a evolução do banco de dados NoSQL, um tema que se torna cada vez mais relevante à medida que as aplicações exigem maior flexibilidade e adaptabilidade.
Por fim, Hassan (2024), discutiu as decisões relacionadas à escolha do banco de dados adequado, enfatizando as vantagens dos bancos de dados NoSQL em comparação com os relacionais, especialmente em termos de escalabilidade e flexibilidade. O autor argumentou que, com o aumento das aplicações web e móveis, os bancos de dados NoSQL se tornaram uma solução viável para gerenciar dados estruturados, semiestruturados e não estruturados, destacando a importância da tecnologia NoSQL no cenário atual.
2 DISCUSSÃO SOBRE A LITERATURA
O artigo “A framework for multi-tier type evolution and data migration” de Draheim e Horn (2004), apresenta uma abordagem inovadora para a evolução de tipos em sistemas de banco de dados, especialmente no contexto de bancos de dados NoSQL. A principal contribuição do trabalho reside na geração de programas de atualização personalizáveis para a migração de dados, o que é particularmente relevante em ambientes onde a flexibilidade e a adaptabilidade são cruciais.
Os autores discutem a importância de um mecanismo de migração de dados que não apenas transfira dados de um formato para outro, mas que também considere as diferenças estruturais entre os modelos de dados. A abordagem proposta é baseada em resultados de comparação de modelos, o que permite que a migração de dados seja realizada de maneira mais eficiente e com um mínimo de perda de informações. Essa característica é essencial em bancos de dados NoSQL, onde a estrutura dos dados pode mudar com frequência devido a requisitos de negócios em evolução.
Uma análise crítica do artigo revela que, embora a proposta de Draheim e Horn (2024) ofereça uma solução robusta para a migração de dados, a implementação prática de tais frameworks em ambientes NoSQL pode enfrentar desafios significativos. Por exemplo, a diversidade de modelos de dados e a falta de padrões uniformes entre diferentes sistemas NoSQL podem complicar a aplicação de programas de atualização gerados automaticamente. Além disso, a dependência de resultados de comparação de modelos pode limitar a eficácia da migração em cenários onde as diferenças entre os modelos são complexas ou não lineares.
Outra consideração importante é a escalabilidade da abordagem. Em ambientes de grande escala, onde grandes volumes de dados precisam ser migrados rapidamente, a eficiência dos programas de migração gerados se torna um fator crítico. O artigo não aborda em profundidade como a abordagem se comporta sob essas condições, o que poderia ser uma área frutífera para investigações futuras.
O artigo intitulado “Convergence of relational and non-relational databases”, escrito por Jan (2015), apresenta uma análise abrangente sobre a interseção entre bancos de dados relacionais e não relacionais, destacando tendências contemporâneas que sugerem uma convergência entre esses dois paradigmas de gerenciamento de dados. O autor realiza uma revisão sistemática de sistemas de bancos de dados de código aberto, como PostgreSQL, MariaDB, MySQL, FoundationDB e VoltDB, e examina conceitos que emergiram recentemente nesses sistemas.
A principal contribuição do trabalho reside na descrição metódica dos conceitos transferidos e testados, que são apoiados por exemplos de código e benchmarks. A abordagem qualitativa adotada para avaliar esses conceitos, através da medição do tempo de execução de operações e da demonstração prática de sua aplicação, fornece uma base sólida para entender as implicações da convergência entre bancos de dados relacionais e não relacionais.
O autor destaca que a escolha do sistema de gerenciamento de banco de dados (SGBD) pode impactar significativamente a qualidade das operações de uma empresa. Os sistemas relacionais, com seu suporte a transações ACID e uso de SQL, são reconhecidos como uma tecnologia madura. Em contraste, os sistemas não relacionais oferecem vantagens em termos de acesso rápido, escalabilidade e manipulação de dados não estruturados. Essa dualidade é fundamental para a compreensão das necessidades variadas de gerenciamento de dados nas organizações contemporâneas.
Além disso, a análise de Jan (2015) sobre sistemas NewSQL, que buscam combinar as vantagens dos bancos de dados relacionais e não relacionais, é particularmente relevante para a discussão atual sobre a evolução dos SGBDs. A pesquisa sugere que, embora existam diferenças fundamentais entre os dois tipos de sistemas, as inovações tecnológicas estão promovendo uma integração que pode beneficiar empresas que buscam flexibilidade e eficiência no gerenciamento de dados.
O artigo “Resource Sharing for Multi-Tenant NoSQL Data Store in Cloud”, escrito por Zeng (2016), oferece uma análise abrangente sobre as características dos bancos de dados NoSQL, destacando suas vantagens e desvantagens em comparação com os bancos de dados SQL tradicionais. A principal ideia do artigo gira em torno da estrutura de dados flexível e da capacidade de escalabilidade que os bancos de dados NoSQL oferecem, especialmente em ambientes de nuvem.
Zeng (2016) explica que os bancos de dados NoSQL são projetados com um modelo de dados sem esquema, o que facilita a adaptação a diferentes tipos de dados sem a necessidade de uma estrutura rígida. Esse aspecto é particularmente benéfico em aplicações modernas que requerem agilidade e flexibilidade na manipulação de dados. Além disso, o artigo menciona a importância do suporte à replicação e ao acesso distribuído, que são características essenciais para garantir a disponibilidade e a tolerância a falhas em sistemas de grande escala.
Um ponto crítico abordado é o teorema CAP, que estabelece que, em um sistema de dados distribuídos, é impossível garantir simultaneamente consistência, disponibilidade e tolerância à partição. O autor argumenta que os bancos de dados NoSQL tendem a priorizar a disponibilidade e a tolerância à partição, resultando em propriedades BASE (Basicamente Disponível, Estado Suave, Eventualmente Consistente). Essa abordagem, embora eficaz para muitos casos de uso, pode levar a desafios em situações em que a consistência dos dados é crucial.
O artigo também diferencia os bancos de dados NoSQL em duas categorias: single-node e multi-node. Os bancos de dados single-node operam em um único ambiente, permitindo acesso direto ao sistema de arquivos, o que os torna mais leves e frequentemente mais rápidos. No entanto, essa configuração apresenta limitações significativas em termos de escalabilidade e risco de perda de dados devido ao armazenamento local. Por outro lado, os bancos de dados multi-node são projetados para operar em múltiplos nós ou centros de dados, permitindo a partição e distribuição de dados, além de replicações que garantem armazenamento confiável e acesso escalável.
O artigo “Performance evaluation for CRUD operations in asynchronously replicated document oriented database” de Truica, Radulescu, et al. (2018) oferece uma análise abrangente sobre bancos de dados orientados a documentos, destacando sua evolução a partir de bancos de dados chave-valor e sua consolidação como uma classe própria dentro do universo NoSQL. A principal ideia do artigo gira em torno da capacidade desses bancos de dados de armazenar e gerenciar tipos de dados mais complexos, utilizando um modelo semiestruturado.
Os autores discutem a estrutura fundamental dos bancos de dados orientados a documentos, onde documentos são encapsulados em coleções. Essa característica permite uma flexibilidade significativa, pois um único documento pode conter outros documentos aninhados, o que é uma vantagem em relação aos bancos de dados relacionais tradicionais. O uso de formatos padrão como XML, YAML, JSON e BSON para a encapsulação e criptografia de dados é destacado, com ênfase na importância do BSON, especialmente em MongoDB, que oferece suporte robusto para tipos de dados complexos.
Além disso, o artigo aborda a escalabilidade horizontal das operações CRUD (Create, Read, Update, Delete) e a replicação assíncrona, que são características essenciais para a performance dos bancos de dados orientados a documentos. A arquitetura distribuída, denominada “shared nothing horizontal scaling”, é discutida como uma solução eficaz para a distribuição de dados entre múltiplos servidores. A replicação em MongoDB, baseada em Replica Sets, e a replicação incremental do CouchDB são apresentadas como métodos que garantem a integridade e a disponibilidade dos dados.
A crítica a ser feita ao artigo refere-se à necessidade de uma análise mais aprofundada sobre o impacto da replicação assíncrona na consistência dos dados em ambientes de alta concorrência. Embora os autores mencionem as vantagens da replicação e escalabilidade, uma discussão mais detalhada sobre os desafios associados a esses processos, como latência e complexidade na gestão de versões de documentos, poderia enriquecer a compreensão do leitor sobre as limitações práticas desses sistemas.
O artigo “Big Data Model ‘Entity and Features'” de Shakhovska, Olubash e Veres (2019), apresenta uma análise abrangente sobre a natureza e o funcionamento dos bancos de dados NoSQL, enfatizando a importância da sincronização das informações entre servidores para garantir a atualidade dos dados. A discussão sobre as tabelas de chave-valor destaca a eficiência desses sistemas em processar grandes volumes de informações, embora ressalte suas limitações em relação à linguagem de consulta, o que pode restringir a complexidade das operações realizadas.
Uma das contribuições significativas do artigo é a introdução do conceito de BigTable, uma tabela tridimensional desenvolvida pelo Google. O artigo argumenta que, apesar de sua alta produtividade e escalabilidade, o BigTable não oferece suporte a consultas complexas e operações de junção, o que pode ser uma desvantagem em cenários que exigem interações mais sofisticadas entre dados. Essa análise crítica é fundamental, pois evidencia a necessidade de um equilíbrio entre desempenho e funcionalidade em sistemas de gerenciamento de dados.
Além disso, os bancos de dados orientados a documentos são discutidos como uma alternativa que mantém semelhanças com os bancos de dados de chave-valor, mas que oferecem uma compreensão mais profunda do que constitui o valor, permitindo a modelagem de relações complexas entre objetos. Essa característica é particularmente relevante para aplicações que requerem uma estrutura de dados mais rica e interconectada.
O artigo também menciona a capacidade do NoSQL de proporcionar um alto nível de prontidão operacional e correção, o que é um ponto forte em ambientes dinâmicos e em constante mudança. A escolha do data Warehouse adequado para cada caso específico é enfatizada, sugerindo que, em muitos casos, a utilização de múltiplos bancos de dados podem ser necessária para atender a diferentes requisitos de aplicação. A menção ao uso do MongoDB em aplicações web, em conjunto com o Redis para cache de consultas, ilustra a flexibilidade e a adaptabilidade dos sistemas NoSQL.
O artigo “NoSQL Databases: Yearning for Disambiguation” de Asaad, Baïna e Ghogho (2020), oferecem uma análise abrangente das bases de dados NoSQL, destacando suas características e a necessidade crescente de sistemas de armazenamento flexíveis que possam lidar com grandes volumes de dados não estruturados. Os autores argumentam que, na era do Big Data, as exigências por soluções de armazenamento que se adaptem a necessidades específicas de negócios e indústrias são mais relevantes do que nunca.
Um aspecto crítico abordado no artigo é a falta de um fundamento teórico sólido que permeia o campo das bases de dados NoSQL. Essa lacuna resulta em uma falta de consenso entre especialistas, o que pode dificultar a adoção e a implementação dessas tecnologias em ambientes corporativos. Os autores realizam uma classificação das bases de dados NoSQL com base em diferentes tipos de modelos de dados, o que é essencial para entender as particularidades de cada sistema e suas aplicações práticas.
Além disso, o artigo inclui um benchmark que compara várias bases de dados NoSQL, permitindo a identificação de suas características distintas. Essa análise comparativa é vital, pois fornece aos profissionais e acadêmicos uma visão clara sobre como diferentes soluções se comportam em cenários variados, ajudando na escolha da tecnologia mais adequada para suas necessidades.
Os autores também discutem as áreas principais de ambiguidade e confusão que cercam os conceitos relacionados às bases de dados NoSQL. Essa abordagem crítica é fundamental, pois ilumina os desafios que os desenvolvedores e pesquisadores enfrentam ao trabalhar com essas tecnologias. A identificação dessas incertezas pode servir como um ponto de partida para futuras pesquisas e discussões, contribuindo para uma maior clareza e entendimento no campo.
O artigo “A Taxonomy of Schema Changes for NoSQL Databases”, escrito por Hernández, Chillón, Klettkef, et al. (2022), apresentam uma proposta inovadora para a evolução de esquemas em bancos de dados NoSQL, utilizando um metamodelo genérico e uma abordagem transformacional. Os autores destacam que, embora a evolução de esquemas em sistemas orientados a objetos (OO) seja mais complexa do que em sistemas relacionais, a sua proposta oferece uma solução robusta que incorpora tecnologias de Model-driven Engineering (MDE) dentro do framework EMF/Eclipse.
Um dos aspectos mais significativos do trabalho é a introdução de um metamodelo projetado especificamente para suportar tanto esquemas NoSQL quanto relacionais. Isso é fundamental, pois a diversidade de modelos de dados no ecossistema NoSQL frequentemente resulta em desafios únicos na migração e adaptação de dados. A ferramenta PRISM/PRISM++, mencionada no artigo, automatiza tarefas de migração de dados e reescrita de consultas legadas, o que representa um avanço considerável na gestão de dados em ambientes NoSQL.
Os autores também definem uma taxonomia para bancos de dados NoSQL, onde as operações de mudança são rigorosamente especificadas e seu desempenho é medido. Essa taxonomia é crucial, pois fornece uma estrutura clara para entender as diferentes operações que podem ser realizadas em um banco de dados NoSQL, permitindo que desenvolvedores e engenheiros de dados façam escolhas informadas sobre como gerenciar alterações de esquema. A utilização de uma linguagem de evolução baseada em SMOs (Schema Modification Operations) que preserva informações e é revertível é um ponto forte da proposta, pois garante que as alterações não comprometam a integridade dos dados.
Em uma avaliação crítica, o artigo se destaca pela clareza na apresentação e pela profundidade da análise proposta. No entanto, poderia beneficiar-se de exemplos práticos que demonstrem a aplicação da taxonomia e das ferramentas propostas em cenários reais. Além disso, uma discussão mais detalhada sobre as limitações e desafios da implementação da abordagem em diferentes tipos de bancos de dados NoSQL poderia enriquecer ainda mais o conteúdo.
O artigo intitulado “Big Data, Big Decisions Choosing the Right Database”, escrito por Hassan (2024), apresenta uma análise abrangente sobre as bases de dados NoSQL, destacando suas características e vantagens em relação às bases de dados tradicionais baseadas em SQL. A principal ideia do artigo gira em torno da flexibilidade e escalabilidade oferecidas pelos bancos de dados NoSQL, que se tornam cada vez mais relevantes em um cenário onde as aplicações web e móveis demandam soluções eficazes para o gerenciamento de grandes volumes de dados.
Hassan explica que os bancos de dados NoSQL, que significam “Not Only SQL”, não exigem esquemas de tabelas fixos, permitindo uma abordagem mais dinâmica para o armazenamento de dados. Essa flexibilidade é particularmente vantajosa para dados estruturados, semiestruturados e não estruturados, que são comuns nas aplicações modernas. O autor categoriza os diferentes tipos de bancos de dados NoSQL, incluindo Graph, Key-Value pairs, Columnar e Document, cada um com seu modelo de armazenamento de dados distinto. Essa classificação é essencial para entender como cada tipo pode ser aplicado em cenários específicos, dependendo das necessidades do projeto.
Um ponto crítico abordado no artigo é a escalabilidade horizontal dos bancos de dados NoSQL, que permite a utilização de múltiplos nós em um cluster para gerenciar cargas de trabalho crescentes. Essa característica é fundamental em um ambiente de Big Data, onde a capacidade de lidar com grandes volumes de dados de forma eficiente é imperativa. A escalabilidade horizontal não só melhora o desempenho, mas também proporciona uma solução econômica, pois permite que as organizações expandam sua infraestrutura conforme necessário, sem a necessidade de grandes investimentos iniciais em hardware.
Além disso, o autor argumenta que a não adesão a um esquema rígido é uma vantagem significativa, pois permite que as organizações adaptem suas estruturas de dados de acordo com as exigências em constante mudança. Essa adaptabilidade é crucial em um mundo onde as tecnologias e as necessidades dos usuários evoluem rapidamente.
Na Tabela 1 são apresentadas as vantagens e desvantagens dos sistemas de banco de dados relacionais, não relacionais e NewSQL, conforme discutido neste trabalho.
Tabela 1 – Vantagens e desvantagens dos sistemas de banco de dados
Tipo de Banco de Dados | Prós | Contras |
Relacional (SQL) | Garantia das propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade). | Escalabilidade horizontal limitada. |
Estrutura organizada e familiar em tabelas. | Desempenho ruim com grandes volumes de dados e dados não estruturados. | |
Linguagem SQL amplamente padronizada e utilizada. | Difícil tratamento de dados não estruturados ou semiestruturados. | |
Alta integridade e consistência dos dados. | Complexidade no gerenciamento de grandes clusters e operações distribuídas. | |
Não Relacional (NoSQL) | Alta performance com grandes volumes de dados e dados não estruturados. | Falta de uma linguagem de consulta padronizada (como SQL). |
Flexibilidade para armazenar dados não estruturados (ex: JSON, documentos). | Menor maturidade em comparação aos sistemas relacionais para transações complexas. | |
Suporte a dados distribuídos e a alta disponibilidade. | Não ideal para cenários onde transações ACID são fundamentais. | |
NewSQL | Combina as vantagens dos sistemas relacionais e NoSQL. | Ainda em desenvolvimento e menos maduro que sistemas tradicionais. |
Oferece escalabilidade e alta disponibilidade similar aos sistemas NoSQL. | Suporte limitado e menos adotado em comparação com sistemas SQL e NoSQL tradicionais. | |
Mantém as propriedades ACID em operações distribuídas. | Custos de implementação e manutenção podem ser altos. | |
Desempenho otimizado em sistemas que requerem alta escalabilidade e integridade de dados. | Complexidade maior para configuração e manutenção. |
Na tabela 2 é mostrada algumas aplicações que utilizam as tecnologias de bancos de dados relacionais, não relacionais (NoSQL) e NewSQL, com base nas referências usadas nesse artigo.
Tabela 2 Aplicações em Base de Dados
Tecnologia | Aplicações | Exemplos de Uso |
Relacional (SQL) | Oracle | Grandes empresas utilizam Oracle para gerenciar bancos de dados críticos em transações OLTP e OLAP. |
MySQL | Utilizado por empresas como Facebook e YouTube para gerenciar grandes volumes de dados estruturados. | |
PostgreSQL | Amplamente utilizado em aplicativos web e sistemas de análise de dados, como por empresas de software. | |
SQL Server | Usados em aplicativos de negócios, especialmente em ambientes corporativos que requerem transações ACID. | |
Não Relacional (NoSQL) | MongoDB | Usado por empresas como Uber e eBay para armazenar e consultar dados de maneira flexível e escalável. |
Cassandra | Utilizado por Twitter e Netflix para lidar com grandes volumes de dados distribuídos globalmente. | |
Redis | Usado por empresas como GitHub e Snapchat para caching em tempo real e sessões de usuário. | |
Neo4j | Utilizado em redes sociais, como LinkedIn, para modelar e gerenciar redes complexas de relacionamentos. | |
NewSQL | VoltDB | Usado por empresas financeiras para processar grandes volumes de transações com alta consistência. |
NuoDB | Utilizado por grandes empresas para gerenciar dados em ambientes distribuídos na nuvem. | |
Clustrix | Usado por empresas de comércio eletrônico para gerenciar escalabilidade e integridade em transações. | |
Google Spanner | Usado pelo Google para manter a consistência global em seus serviços distribuídos, como Gmail e YouTube. |
Essa tabela apresenta exemplos concretos de aplicações que utilizam as tecnologias de bancos de dados mencionadas no documento, destacando como essas tecnologias são aplicadas em diferentes setores e para diferentes tipos de requisitos de dados. Porém, para usar essas aplicações em Big Data, é importante escolher a tecnologia de banco de dados com base nas necessidades do projeto:
- Relacional (SQL): Adequado para Big Data estruturado, com requisitos de integridade e consistência, como em sistemas financeiros. Tecnologias como PostgreSQL e MySQL podem ser otimizadas com particionamento e replicação.
- NoSQL: Ideal para Big Data não estruturado ou semiestruturado, com foco em escalabilidade horizontal e alta disponibilidade. MongoDB é ótimo para documentos, enquanto Cassandra lida bem com dados distribuídos globalmente e Redis oferece caching em tempo real.
- NewSQL: Combina a escalabilidade do NoSQL com as garantias transacionais do SQL, sendo útil para grandes volumes de dados que requerem consistência, como em transações financeiras massivas. VoltDB e Google Spanner são exemplos que funcionam bem em ambientes de Big Data distribuídos.
Essas soluções podem ser integradas em arquiteturas de Big Data para manipular grandes volumes, diversidade e velocidade de dados.
3 CONCLUSÃO
A literatura sobre bancos de dados para NoSQL tem demonstrado um crescimento substancial, refletindo a necessidade de gerenciar volumes crescentes e complexos de dados na era do Big Data. A análise dos artigos revisados revela várias abordagens e conceitos fundamentais que moldam a compreensão e a aplicação de tecnologias de banco de dados.
O artigo de Draheim e Horn (2004) introduz um framework para a evolução de tipos e migração de dados, destacando a importância de programas de atualização personalizáveis, essenciais para a flexibilidade em ambientes NoSQL. Essa proposta estabelece uma base para a compreensão da adaptabilidade necessária em sistemas de gerenciamento de dados, abordando a migração eficiente de dados entre diferentes modelos.
A convergência entre bancos de dados relacionais e não relacionais é explorada por Jan (2015), que analisa as forças e fraquezas dos sistemas NewSQL. Essa análise sugere que a hibridização de características entre os dois paradigmas pode influenciar a escolha das tecnologias de armazenamento, revelando um caminho para a integração de soluções que atendem a diferentes necessidades de negócios.
Em relação à arquitetura de armazenamento, Zeng (2016) discute as propriedades do teorema CAP, categorizando bancos de dados NoSQL em orientados a um único nó e a múltiplos nós. Essa categorização é crucial para entender a escalabilidade e a replicação em sistemas NoSQL, onde a escolha entre desempenho e consistência é um fator determinante.
A análise das operações CRUD em bancos de dados orientados a documentos por Truica, Radulescu, et al. (2018) destacam a evolução desses sistemas, que agora lidam com dados complexos e semiestruturados. A flexibilidade em armazenar documentos aninhados é um aspecto que diferencia esses bancos de dados dos tradicionais, oferecendo uma resposta às limitações dos sistemas relacionais.
A categorização dos tipos de bancos de dados NoSQL, abordada por Shakhovska, Olubash e Veres (2019), enfatiza a importância da escolha do banco adequado para diferentes aplicações, considerando a complexidade das consultas e a capacidade de processamento. Essa escolha é vital em projetos de Big Data, onde a eficiência e a adaptabilidade são cruciais.
A necessidade de desambiguação dos conceitos relacionados aos bancos de dados NoSQL é discutida por Asaad, Baïna e Ghogho (2020), que realiza uma pesquisa abrangente e um benchmark comparativo. Essa análise é fundamental para a adoção e implementação eficaz dessas tecnologias em ambientes corporativos, abordando a falta de consenso teórico existente.
A proposta de taxonomia de mudanças de esquema apresentada por (Hernández, Chillón, Klettke, et al. (2022) oferece uma estrutura clara para entender as operações em bancos de dados NoSQL, incorporando um metamodelo que suporta tanto esquemas NoSQL quanto relacionais. Essa abordagem é essencial para a gestão eficaz das alterações de esquema em ambientes dinâmicos.
Por fim, Hassan (2024) discute as decisões na escolha do banco de dados, enfatizando as vantagens dos sistemas NoSQL em termos de escalabilidade e flexibilidade. A capacidade de gerenciar dados estruturados, semiestruturados e não estruturados torna os bancos de dados NoSQL uma solução viável para as necessidades contemporâneas.
Em conclusão, a literatura revisada fornece uma compreensão abrangente sobre os bancos de dados NoSQL, abordando suas características, vantagens e desafios. A flexibilidade, escalabilidade e adaptabilidade emergem como temas centrais, refletindo a evolução contínua dessas tecnologias em resposta às demandas de um ambiente de dados cada vez mais complexo.
4 REFERÊNCIAS
ASAAD, C.; BAÏNA, K.; GHOGHO, M. NoSQL Databases: Yearning for Disambiguation. [S.l.]: [s.n.], 2020.
DRAHEIM, D.; HORN, M. A Framework for Multi-Tier Type Evolution and Data Migration. Ina Schulz, Institute of Computer Science. Berlim. 2004.
HASSAN, M. Big Data, Big Decisions: Choosing the Right Database. College of Engineering and Applied Sciences, University of Colorado. Boulder, CO. 2024.
HERNÁNDEZ CHILLÓN, A. et al. A Taxonomy of Schema Changes for NoSQL Databases. [S.l.]: [s.n.], 2022.
JAN, C. Convergence of relational and non-relational databases. [S.l.]: [s.n.], 2015.
SHAKHOVSKA, N.; OLUBASH, U.; VERES, O. Big Data Model “Entity and Features. [S.l.]: [s.n.], 2019.
TRUICA, C.-O. et al. Performance Evaluation for CRUD Operations in Asynchronously Replicated Document Oriented Database. [S.l.]. 2018.
ZENG, J. RESOURCESHARINGFORMULTI-TENANTNOSQLDATA STOREIN CLOUD. School of Informatics and Computing, Indiana University. [S.l.]. 2016.
1 Tecnologista Sênior II e Mestre em Tecnologia e Engenharia Espacial pelo Instituto Nacional de Pesquisas Espaciais – INPE. e-mail: miguel.carretero@inpe.br