Para que serve um banco de dados NoSQL e para que servem?

Um banco de dados NoSQL é qualquer tipo de banco de dados que se desvie do design SQL tradicional. Bancos de dados NoSQL, como o MongoDB baseado em documentos, tornaram-se mais populares nos últimos anos. Sobre o que é isso?

índice

  1. A limitação do SQL: escalabilidade
  2. NoSQL vs. Estrutura SQL
  3. Para que são usados ​​os bancos de dados NoSQL?

A limitação do SQL: escalabilidade

SQL sempre existiu: 45 anos. É surpreendentemente bem mantido e as implementações SQL modernas são muito rápidas. No entanto, à medida que a web cresceu, também cresceu a necessidade de bancos de dados poderosos para acompanhar a demanda.

A maneira mais fácil de redimensionar um banco de dados SQL é executá-lo em um computador mais poderoso. Os bancos de dados SQL podem ser replicados para reduzir a carga regional em uma única instância, mas dividir uma tabela (geralmente chamada de sliver ) é muito mais difícil para o SQL.

Os bancos de dados NoSQL baseados em documentos resolvem esse problema por design. Cada documento é independente dos outros documentos da coleção, portanto, as coleções podem ser particionadas em vários servidores com muito mais facilidade. Muitos bancos de dados de documentos incluirão ferramentas integradas para compartilhar dados entre vários servidores.

Mas o problema de escalabilidade não é realmente um problema até que você tenha muitos dados. Você pode facilmente executar um banco de dados SQL com centenas de milhares de usuários e não ter problemas, desde que sua estrutura seja sólida e suas consultas sejam rápidas.

Tanto o MySQL quanto o MongoDB provavelmente farão o trabalho para seu aplicativo, portanto, a escolha entre os dois depende de qual estrutura e sintaxe você prefere. A facilidade de desenvolvimento é importante, e você pode descobrir que o modelo MongoDB e a sintaxe de documento muito mais recentes são mais fáceis de trabalhar do que o SQL.

NoSQL vs. Estrutura SQL

Os bancos de dados SQL tradicionais são frequentemente chamados de bancos de dados relacionais devido à forma como são estruturados. Em um banco de dados SQL, você terá várias tabelas, cada uma com várias linhas (chamadas de registro ), que, por sua vez, terão várias colunas ou atributos diferentes. Cada tabela separada é vinculada à outra por uma chave primária, que forma um relacionamento.

Por exemplo, imagine que você tenha uma tabela onde cada registro representa uma postagem criada por um usuário. A chave primária aqui é o nome de usuário, que pode ser usado para vincular a tabela de postagens à tabela de usuários. Se você quiser encontrar o email do remetente, encontre "Jon1996" na tabela de usuários e selecione o campo "Email".

Mas essa estrutura de dados pode não funcionar para todos. Os bancos de dados SQL têm um esquema rigidamente definido, que pode atrapalhar se você precisar fazer alterações ou simplesmente preferir um design diferente. Com conjuntos de dados complexos, as relações entre tudo podem se tornar mais complicadas do que os próprios dados.

O principal tipo de banco de dados NoSQL é um banco de dados de documentos JSON, como o MongoDB. Em vez de armazenar linhas e colunas, todos os dados são armazenados em documentos individuais. Esses documentos são armazenados em coleções (por exemplo, um documento de "usuário" seria armazenado em uma coleção de "todos os usuários") e não precisam ter a mesma estrutura que outros documentos da coleção.

Por exemplo, um documento de "usuário" pode ter esta aparência:

 { "username":"Jon1996", "email":" [email protected] ", "posts": [ {"id":1}, {"id":2}, {"id":3}, ] }

Os campos de nome de usuário e email são apenas pares de valores-chave, semelhantes a colunas no SQL, mas o campo "post" contém uma matriz, que não é algo que você encontrará em bancos de dados SQL. Agora suponha que temos uma coleção de posts com documentos como:

 { "id":1, "title":"Primeira postagem", "content":"Olá, Mundo!", "madeby":"Jon1996" }

Agora, quando alguém visita a página de Jon, seu aplicativo pode pesquisar três postagens com IDs 1, 2 e 3, o que geralmente é uma consulta rápida. Comparado ao SQL, onde você pode precisar recuperar todas as postagens correspondentes ao ID de usuário de Jon. Ainda rápido o suficiente, mas a consulta do MongoDB é mais simples e faz mais sentido.

Para que são usados ​​os bancos de dados NoSQL?

NoSQL é uma categoria ampla e inclui muitos tipos diferentes de bancos de dados criados para diferentes propósitos. Cada banco de dados é uma ferramenta, e seu trabalho pode exigir um tipo específico de ferramenta ou até mesmo várias ferramentas diferentes.

Bancos de dados SQL como MySQL, Oracle e PostgreSQL existem desde antes da Internet. Eles são muito estáveis, têm muito apoio e geralmente podem fazer o trabalho para a maioria das pessoas. Se seus dados são valiosos para você e você deseja uma solução consolidada e consistente, atenha-se ao SQL.

Bancos de dados de documentos JSON, como MongoDB e Couchbase, são populares para aplicativos da Web com modelos de dados variáveis ​​e para arquivamento de documentos complexos. Por exemplo, um site como o Amazon pode ter que alterar o modelo de dados para armazenar produtos no site, portanto, um banco de dados baseado em documentos pode funcionar bem para eles.

Os bancos de dados de documentos destinam-se a ser a substituição genérica do SQL e provavelmente são o que você pensa quando ouve "NoSQL". Eles também são mais intuitivos de aprender do que SQL, já que você não terá que gerenciar relacionamentos entre tabelas ou consultas complexas.

O Rethink DB é um banco de dados de documentos JSON criado para aplicativos em tempo real. Em um banco de dados como o MongoDB, você teria que pesquisar atualizações a cada poucos segundos ou implementar alguma API em cima disso para rastrear atualizações em tempo real, o que rapidamente se torna complicado. O RethinkDB resolve esse problema enviando automaticamente atualizações nas transmissões de websocket às quais os clientes podem se conectar.

O Redis é um banco de dados de valor de chave de alto desempenho que armazena pequenas chaves e strings inteiramente na RAM, o que é muito mais rápido de ler e gravar do que os SSDs mais rápidos. É frequentemente usado em conjunto com outros bancos de dados como um cache na memória para pequenos dados que são frequentemente gravados e lidos. Por exemplo, um aplicativo de mensagens pode querer usar o Redis para arquivar mensagens de usuários (e até mesmo enviar atualizações em tempo real com seus próprios métodos Pub/Sub). Armazenar muitas mensagens pequenas dessa maneira pode causar problemas de desempenho com outros tipos de bancos de dados.

Os bancos de dados gráficos são construídos para armazenar conexões entre dados. Um caso de uso comum são as redes sociais, onde os usuários estão conectados uns aos outros e interagem com outros dados, como as postagens que publicaram.

Neste exemplo, George é amigo de duas pessoas, Jon e Jane. Se outro tipo de banco de dados quisesse descobrir a conexão de George com Sarah, teria que consultar todos os amigos de Jon e todos os amigos de Jane. Mas os bancos de dados gráficos entendem essa conexão intuitivamente; para consultas de amigos de amigos, o popular banco de dados de gráficos Neo4J é 60% mais rápido que o MySQL. Para amigos de amigos de amigos (3 níveis de profundidade) Neo4J é 180 vezes mais rápido .

Bancos de dados de colunas amplas, como Cassandra e Hbase, são usados ​​para armazenar grandes quantidades de dados. Eles são projetados para conjuntos de dados tão grandes que você precisa de vários computadores para armazená-los e são muito mais rápidos do que SQL e outros bancos de dados NoSQL quando distribuídos em vários nós.

  • Facebook lança óculos inteligentes da marca Ray-Ban – Revisão Geek
  • As novas tiras de luz da Philips Hue podem mostrar todas as cores do arco-íris, de uma só vez

descubra mais conteúdo

O que é um amplificador integrado?

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

Deixe uma resposta Cancelar resposta

O que são bancos de dados NoSQL de amostra?

Alguns exemplos desse tipo são Cassandra, BigTable ou HBase. Esse tipo armazena as informações como um documento, geralmente usando uma estrutura simples como JSON ou XML e onde uma chave exclusiva é usada para cada registro.

Quais são os diferentes tipos de banco de dados?

Existem dois tipos de modelos de banco de dados em nuvem: o modelo tradicional e o modelo de banco de dados como serviço (DBaaS). Com o DBaaS, um provedor de serviços executa as tarefas administrativas e de manutenção.

Quais bancos de dados são não relacionais?

Um banco de dados não relacional é aquele que não usa o esquema tabular de linhas e colunas encontrado na maioria dos sistemas de banco de dados mais tradicionais.

Que tipo de banco de dados NoSQL é o MongoDB?

MongoDB é um banco de dados NoSQL orientado a documentos que surgiu em meados dos anos 2000. Ele é usado para armazenar grandes volumes de dados . Ao contrário de um banco de dados relacional SQL tradicional, o MongoDB não é baseado em tabelas e colunas. Os dados são armazenados como coleções e documentos.

Ir arriba