SUMÁRIO 1 PROJETO .........................................................................................03 1 GLOSSÁRIO .....................................................................................07 3 BIBLIOGRAFIA ................................................................................08 INFORMAÇÕES DO PROJETO: 1 O que são bancos de dados NoSQL? Projetados para lidar com grandes volumes de dados, baixa latência e maior flexibilidade, os bancos de dados NoSQL flexibilizam algumas restrições de consistência de dados. O termo ‘NoSQL – Not Only SQL’ foi desenvolvido para bancos não-relacionais que armazenam dados de forma diferente das tabelas tradicionais. Esses bancos foram elaborados com foco na escalabilidade fácil e costumam ser mais econômicos para diversas empresas. Foram, também, otimizados para oferecer um desempenho superior, já que não é requerido o agrupamento de dados. O movimento NoSQL foi utilizado pela primeira vez em 1998, porém, foi em 2009 que o tema foi se popularizando, para promover soluções que atendessem às necessidades específicas de cada aplicação, como performance, flexibilidade e disponibilidade. O que são bancos de dados orientados a documentos? Um banco de dados orientado a documento lida com os próprios documentos, e não com tabelas fixas como SQL. O orientado a documento é capaz de acessar diferentes tipos de estrutura de documentos e acessá-los de forma organizada e pesquisável. Como funciona uma estrutura de um documento? Um documento em um banco de dados orientado a documentos é uma estrutura de dados que armazena informações. O tipo de documento mais utilizado é o JSON, mas suporta outros tipos de arquivos como XML e YAML. Os principais elementos são: Campos: São pares de chave-valor representados por atributos e valores. Tipos de dados: São formatos dos valores dos campos, como strings, números, booleanos, etc. Arrays: São coleções ordenadas de valores de tipos diferentes. Objetos: São coleções não ordenadas de campos que podem ser aninhados. 2 Exemplo 1. Estrutura no formato JSON: Fonte: VsCode, 2023. Tecnologias Populares: MongoDB: É um sistema de gerenciamento de banco de dados que se enquadra na categoria de bancos de dados NoSQL, orientados a documentos. Foi desenvolvido pela MongoDB Inc. e se destaca por sua flexibilidade e capacidade de escalonamento. Os dados são armazenados em documentos que utilizam um formato similar ao JSON. Isso permite uma estrutura mais flexível, já que os campos podem 3 variar de um documento para outro. Tal flexibilidade torna o MongoDB particularmente útil para projetos que podem evoluir rapidamente. Embora seja muito utilizado em aplicações JavaScript, o MongoDB oferece suporte a diversas outras linguagens de programação, tornando-se uma opção versátil para diferentes tipos de projetos. O programa é gratuito e oferece a versão Atlas para uso pessoal em nuvem e uma versão para servidor local, voltada para empresas. CouchDB: O Apache CouchDB é um banco de dados NoSQL que armazena dados em formato JSON. Sua flexibilidade permite a gestão de registros em uma variedade de dispositivos sem a necessidade de um esquema fixo. O projeto foi inicialmente desenvolvido por Damien Katz, um exdesenvolvedor da IBM. Em 2008, tornou-se um projeto de código aberto sob a chancela da Apache Software Foundation. O CouchDB é um software totalmente gratuito. Além disso, ele pode ser facilmente integrado a sistemas de gerenciamento de dados já em uso. A replicação bidirecional, um dos recursos do CouchDB, é uma funcionalidade que sincroniza dados entre diversos servidores e dispositivos, mantendo todas as versões do banco de dados atualizadas. Para quem serve? O NoSQL foi criado para ter melhor desempenho e maior escalabilidade horizontal para a ineficácia dos bancos de dados relacionais. Pode ser utilizado em vários momentos, desde o gerenciamento de dados do Recursos Humanos de uma empresa, até o armazenamento das informações de sites e blogs. Os bancos de dados NoSQL são ideais para muitos aplicativos modernos, que exigem bancos de dados flexíveis, e de alta performance, para proporcionar ótimas experiências aos usuários. Também são a principal escolha de desenvolvedores, pois aceitam um paradigma de desenvolvimento ágil, permitindo, assim, que os dados sejam armazenados de maneiras mais intuitivas e fáceis. Exemplos de empresas que usam: Entre as empresas que já utilizam o MongoDB destacam-se: 4 Globo.com SourceForge FourSquare MailBox (serviço de e-mail do Dropbox) LinkedIn SAP MTV Pearson Education Empresas que já utilizam o MongoDB destacam-se Apple BBC Vantagens e desvantagens banco de dados NoSQL: Orientado a documentos. O grande diferencial do NoSQL está na flexibilização das restrições ao formato e na consistência dos dados registrados no database, permitindo usar a mesma lógica de armazenamento, consolidação e análise sem a necessidade de alterar seus parâmetros Vantagens: 1. Escalabilidade: os bancos de dados NoSQL geralmente são projetados para serem escalados horizontalmente usando clusters distribuídos de hardware, em vez de escalá-los verticalmente adicionando servidores caros e robustos. Alguns provedores de nuvem lidam com essas operações nos bastidores como um serviço totalmente gerenciado. 2. Flexibilidade: os bancos de dados NoSQL geralmente fornecem esquemas flexíveis que permitem um desenvolvimento mais rápido e iterativo. O modelo de dados flexível torna os bancos de dados NoSQL ideais para dados semiestruturados e não estruturados. 3. Alta performance: o banco de dados NoSQL é otimizado para modelos de dados específicos e padrões de acesso que permitem maior performance do que quando se tenta realizar uma funcionalidade semelhante com bancos de dados relacionais. 5 4. Altamente funcional: os bancos de dados NoSQL fornecem APIs e tipos de dados altamente funcionais criados especificamente para cada um de seus respectivos modelos de dados. Desvantagens: 1. Falta de transações ACID: Muitos bancos de dados NoSQL orientados a documentos sacrificam a consistência transacional ACID em favor da escalabilidade e do desempenho. Isso pode ser um problema em aplicativos que requerem garantias estritas de integridade de dados e atomicidade em operações. 2. Menos suporte a consultas complexas: Os bancos de dados NoSQL orientados a documentos geralmente não são tão poderosos quanto os bancos de dados relacionais quando se trata de consultas complexas que envolvem várias tabelas ou operações de junção. Isso pode ser uma limitação em cenários onde consultas sofisticadas são necessárias. 3. Complexidade: Embora os Bancos NoSLQ sejam fáceis de usar para tarefas simples, podem ser bastante complexos para tarefas mais avançadas, como modelagem de dados e agregação de dados. Isso pode ser um desafio para desenvolvedores inexperientes. 4. Falta de padronização: Diferentes bancos de dados NoSQL orientados a documentos podem ter modelos de dados, consultas e APIs diferentes, o que pode tornar a migração de um sistema para outro mais complicada. A falta de um padrão amplamente aceito pode dificultar a escolha e a troca de fornecedores. Vantagens do MongoDB: 1 Fácil de usar: O MongoDB tem uma interface amigável e fácil de usar que simplifica a criação, configuração e gerenciamento do banco de dados. Ele também tem uma grande comunidade de usuários e desenvolvedores, o que significa que há muitos recursos disponíveis online para ajudá-lo a aprender e resolver problemas. 6 2 Compatibilidade: O MongoDB é compatível com várias linguagens de programação, incluindo Java, Python, Ruby e Node.js. Isso torna mais fácil integrar o MongoDB em suas aplicações existentes. Desvantagens do MongoDB: 1 Consumo de recursos: O MongoDB é conhecido por ser um pouco exigente em termos de recursos, especialmente em comparação com outros bancos de dados NoSQL. Isso significa que você pode precisar de um servidor poderoso para executá-lo efetivamente. 2 Dados duplicados: Como o MongoDB não tem um esquema fixo, pode haver casos em que os dados são duplicados em diferentes coleções. Isso pode levar a problemas de integridade de dados e tornar mais difícil para os desenvolvedores manter a consistência dos dados. 2 GLOSSÁRIO Latência – [Tecnologia] Tempo decorrido entre o comando dado e a sua execução. Requerido – Que foi pedido e/ou solicitado através de requerimento. JSON – JavaScript Object Notation, é uma formatação utilizada para estruturar dados em formato de texto. XML – Extensible Markup Language, é uma linguagem de marcação que fornece regras para definir quaisquer dados. YAML – Yet Another Markup Language, é uma linguagem legível de serialização de dados muito usada na escrita de arquivos de configuração. Chave-valor – Consiste em dois elementos de dados relacionados: uma chave, que é uma constante que define o conjunto de dados, e um valor, que é uma variável que pertence ao conjunto. String – Sequência ordenada de caracteres. Booleanos – Tipo de dado lógico que pode ter apenas um de dois valores possíveis: verdadeiro ou falso. Arrays – Conjunto de dados utilizado para armazenar mais de um valor em uma única variável. Escalonamento – Separação em partes ou seções menores. 7 3 JavaScript – Linguagem de programação que permite a você implementar itens complexos em páginas web. Chancela – Aprovação; representação de reconhecimento, de concordância. Database - Um banco de dados: uma coleção organizada de informações ou dados, estruturadas, normalmente armazenadas eletronicamente em um sistema de computador. REFERÊNCIAS IMPACTA. Diferenças entre SQL e NoSQL: Comparando Bancos de Dados Relacionais e Não-Relacionais. Impacta, 2021. Disponível em: link. DEFINIRTEC. Banco de Dados Orientado a Documentos. DefinirTec, 2021. Disponível em: link. DEVMEDIA. O que é NoSQL? Java Magazine, 2021. Disponível em: link. AMAZON WEB SERVICES. Documentação sobre NoSQL. AWS, 2021. Disponível em: link. MONGODB. O que é MongoDB?. MongoDB Inc., 2021. Disponível em: link. IBM. Tópicos sobre CouchDB. IBM, 2021. Disponível em: link. ORACLE. O que é NoSQL?. Oracle, 2021. Disponível em: link. BLOG SAPHIR. Conheça os principais bancos de dados NoSQL (nãorelacionais). Saphir, 2021. Disponível em: link. BLOG DO EDIVALDO. Empresas que utilizam o CouchDB. Edivaldo, 2021. Disponível em: link. 8 DEVMEDIA. Empresas que utilizam o MongoDB. Edivaldo, 2021. Disponível em: link. link. DO HOST, G. MongoDB: uma análise das vantagens e desvantagens desse banco de dados NoSQL. Disponível em: link. 9