Uploaded by Diblaze CS

Banco de dados NoSql

advertisement
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
Download