Como um banco de dados MongoDB pode organizar melhor seus dados

O MongoDB (do humongous) é um banco de dados orientado a documentos de plataforma cruzada usado como uma alternativa ao MySQL. Mas o que isso significa?

O MongoDB (do humongous) é um banco de dados orientado a documentos de plataforma cruzada usado como uma alternativa ao MySQL.  Mas o que isso significa?
Propaganda

Qualquer pessoa que tenha trabalhado com bancos de dados que organizam dados em tabelas, também chamados de bancos de dados relacionais, provavelmente pode falar longamente sobre suas falhas. Como um sistema de armazenamento de dados pode ser grande, não é isento de problemas e não é projetado para interpretação por pessoas, tornando a organização com ele complicada, redundante e com uma curva de aprendizado acentuada.

Assim, o movimento NoSQL. SQL significa Structured Query Language e é usado para se comunicar com bancos de dados. Mas não é tão bom em escala maior. Quando, por exemplo, os aplicativos se tornam virais, o suporte é necessário para que os usuários possam usar o aplicativo sem problemas. Mas o SQL fica complicado nessa escala, mais do que muitos desenvolvedores podem manipular.

O NoSQL facilita o armazenamento e a organização dos dados, porque os proponentes da escola de pensamento NoSQL se esforçaram para criar um banco de dados que trabalhasse com grandes conjuntos de dados, dimensionasse e organizasse da maneira como as pessoas pensam e pudessem ser lidos por humanos. O MongoDB é um desses bancos de dados e está mudando a forma como os desenvolvedores criam sites.

O que é o MongoDB?

Conexão_para_o_MongoDB_Shell

O MongoDB (do “humongous”) é um banco de dados orientado a documentos de plataforma cruzada usado como uma alternativa ao MySQL. Mas o que isso significa? Bem, um banco de dados é um conjunto estruturado de dados Então, o que é um banco de dados, afinal? [MakeUseOf Explains] Então, o que é um banco de dados, afinal? [MakeUseOf Explains] Para um programador ou um entusiasta de tecnologia, o conceito de banco de dados é algo que pode realmente ser considerado como garantido. No entanto, para muitas pessoas, o conceito de um banco de dados em si é um pouco estranho .... Leia mais, no entanto, o MongoDB difere na medida em que tende a ser menos rigoroso sobre como esses dados são estruturados. As informações são agrupadas, em vez de divididas em documentos e tabelas relacionados, como o MySQL, um popular RDBMS, ou sistema de gerenciamento de banco de dados relacional, que usa SQL.

Muitos bancos de dados que usam o SQL armazenam dados em tabelas nas páginas. Pense em algo como uma planilha do Excel com pedaços de código. Essas páginas são as menores partes de dados em um servidor e cada página é dedicada a uma tabela. Isso é complicado em grande escala, enquanto no MongoDB, o desenvolvedor pode decidir como estruturar as informações para o que for adequado às suas necessidades.

O MongoDB usa o BSON para armazenar informações. BSON (uma combinação de “binário” e “JSON” ou JavaScript Object Notation) pode ser pensado como uma representação numérica ou binária de documentos JSON. JSON O que é o JSON? Visão geral de um leigo O que é o JSON? Visão geral de um leigo Se você planeja ser um desenvolvedor da Web ou não, é uma boa ideia pelo menos saber o que é JSON, por que é importante e por que ele é usado em toda a web. Leia mais é um formato de padrão aberto (como código aberto) para organizar dados.

Ele também adiciona suporte para certos tipos de dados que não são suportados no JSON, como o tipo de dados 'date', que normalmente não seria suportado e, portanto, não poderia ser usado pelo desenvolvedor. O desenvolvedor, nesse caso, não poderia incluir qualquer tipo de data como um dado.

Normalmente, esses dados são organizados em documentos. O JSON transmite dados usando documentos que podem ser facilmente lidos por humanos, no entanto, este não é o caso do BSON. O JSON também é comumente usado para transmitir dados entre um servidor e um aplicativo, bem como um meio de armazenamento de dados geral.

Os documentos não precisam ser estruturados de maneira específica de acordo com a coleção ou com um grupo de objetos relacionados nos quais eles estão organizados, o que facilita muito o desenvolvimento de um desenvolvedor com o MongoDB. Isto levou a ser um dos bancos de dados NoSQL mais populares por aí.

O que faz diferente do MySQL?

Mysql: captura de tela

Com o MySQL sendo talvez o RDBMS mais amplamente utilizado por aí, apesar de ter falhas, é natural que surjam alternativas. Com o NoSQL sendo uma alternativa ao SQL, o MongoDB é considerado uma alternativa ao MySQL. O MySQL utiliza tabelas para organizar seus dados e é baseado no modelo clássico de dados relacionais do século XX, embora, como o MongoDB, possa ser modificado para melhorar a funcionalidade.

No entanto, os dois diferem muito. Eles são destinados a diferentes propósitos, por exemplo. O MongoDB destina-se mais à escala maior (muito grande), enquanto há muito o que o MySQL pode suportar. Como foi mencionado anteriormente, o MySQL usa tabelas para organizar dados que podem ser muito complicados. No entanto, ambos são sistemas muito bons e, de fato, os híbridos estão sendo implementados em determinados sites da web. Craigslist é conhecido por ser um dos sites mais bem sucedidos que implementam um híbrido MongoDB / MySQL.

Como funciona?

documento mongodb

O MongoDB funciona armazenando dados em documentos semelhantes ao JSON. Esses documentos têm um ou mais campos (objetos ou valores contidos em uma classe ou estrutura) que incluem matrizes (uma série de objetos do mesmo tamanho e tipo) e sub-documentos (um documento que faz parte de um documento maior). Esses campos podem ser definidos como o desenvolvedor deseja, de acordo com suas necessidades.

Embora a organização desse processo seja normalmente complicada, o BSON simplifica simplesmente agrupando os documentos de acordo com o tipo e o tamanho, em vez de dividi-los em dados muito pequenos, como o SQL, e organizando os dados com base em outras informações. Devido a essa flexibilidade, os desenvolvedores podem evoluir a coleta de dados, também chamada de modelo de dados, para atender às suas necessidades.

Os desenvolvedores podem acessar os documentos por meio de drivers que eles são capazes de ler e entender, e os documentos estão disponíveis nas linguagens de programação mais populares e modernas. Com o MongoDB, os documentos são mapeados naturalmente para os objetos, portanto não há necessidade de uma camada ORM (mapeamento relacional de objeto) que mapeie manualmente os documentos para seus respectivos objetos. Simplificando, os documentos são conectados aos objetos naturalmente, portanto não há necessidade de um comando ou programa separado para conectá-los.

O MongoDB usa um shell baseado em JavaScript e suporta desenvolvedores que escrevem códigos personalizados usando funções JavaScript, e provavelmente se tornará mais difundido à medida que o JavaScript continua crescendo. O que é JavaScript, e a Internet pode existir sem ela? O que é JavaScript e a Internet pode existir sem ela? JavaScript é uma daquelas coisas que muitos tomam como garantidas. Todo mundo usa isso. Leia mais em popularidade.

Quem usa isso?

Embora ainda relativamente jovem, o MongoDB é usado em vários sites populares. Estes incluem a revista de negócios Forbes, assim como o Buzzfeed.

A Forbes aproveitou o MongoDB para desenvolver rapidamente um novo portfólio para web e celular. A velocidade e o poder do MongoDB permitiram que eles montassem um site em dois meses e um aplicativo móvel em um mês. Isso teve um efeito drástico no engajamento do leitor e no tráfego. De acordo com os desenvolvedores do MongoDB:

Durante a noite, o tráfego móvel saltou de 5% para 15% do tráfego total da Forbes.com, e rapidamente subiu para 50%.

O Buzzfeed sofre com os desafios enfrentados por qualquer grande organização de mídia. Sua equipe de redação distribuída publica uma quantidade tão prodigiosa de conteúdo. 5 Websites para conferir os vídeos mais recentes de buzz e viral 5 sites para conferir os vídeos mais recentes sobre Buzz e Virais Leia mais, para um grande público. O MongoDB permite que o Buzzfeed seja escalado rapidamente de acordo com o tráfego recebido, além de determinar quais tipos de conteúdo ressoam com seus leitores.

Como você usa isso?

O MongoDB é uma ótima ferramenta para web, jogos e desenvolvedores de software. Sabemos que é rápido e escalável. E sabemos que é fácil ler e aprender. Mas como você realmente usa isso?

escudo mongodb no navegador

O site oficial do MongoDB oferece aos usuários a oportunidade de experimentar um shell do MongoDB em seus navegadores. O TutorialsPoint oferece vários tutoriais muito detalhados para usar o MongoDB, desde o iniciante ao avançado. Há também projetos no GitHub não apenas para codificadores: 9 maneiras de usar o GitHub para trabalhos criativos não apenas para codificadores: 9 maneiras de usar o GitHub para trabalhos criativos O GitHub é conhecido pelos ótimos recursos que pode oferecer aos programadores, mas não apenas para eles . Há muitos outros usos criativos para o GitHub. Aqui estão nove que você pode explorar. Leia Mais sobre MongoDB, incluindo O Pequeno Livro MongoDB de Karl Seguin, para quase tudo que você precisa saber sobre o MongoDB.

Se você quer apenas aprender a instalar o MongoDB, confira este tutorial no site oficial do MongoDB.

Você deve usá-lo?

Isso depende da sua situação individual.

Tão grande quanto o MongoDB é, não é sem suas falhas. Não é compatível com ACID. O ACID, que significa Atomicity, Consistency, Isolation e Durability, é um conjunto de propriedades que garante que as transações do banco de dados, ou o trabalho executado em um banco de dados, sejam processadas e concluídas corretamente. Os bancos de dados NoSQL às vezes não são compatíveis com ACID, o que limita sua produtividade e confiabilidade.

O MongoDB também usa toda a memória disponível como um cache do sistema. Como resultado, há problemas de desempenho em computadores executados em sistemas de 32 bits, que podem endereçar apenas um máximo de 4 GB de memória. Para saber mais sobre como fazer uso da memória RAM em seu computador, certifique-se de verificar este artigo por Brad Jones Quanto RAM você realmente precisa? Quanto RAM você realmente precisa? RAM é como memória de curto prazo. Quanto mais você multitarefa, mais você precisa. Descubra quanto seu computador tem, como tirar o máximo proveito dele ou como obter mais. Consulte Mais informação .

Como não há necessidade de tabelas com esse banco de dados, há um alto risco de os desenvolvedores serem preguiçosos e escreverem códigos desleixados, mas esse risco se aplica a quase tudo. Você acaba com dados duplicados, porque não há possibilidade de junções dentro do sistema.

No entanto, o MongoDB é um sistema incrivelmente rápido e eficiente que pode absolutamente ajudar no aumento da produtividade do desenvolvedor

O MongoDB também é amigável ao usuário, pois não requer uma estrutura de dados unificada para todos os objetos, embora seja recomendado configurar um para facilidade de uso. A estrutura dos dados não precisa ser a mesma em todo o sistema, portanto, uma voz singular não é completamente necessária.

Finalmente, de acordo com o escritor de MakeUseOf, Matthew Hughes, seu Startup deve ter um blog. Veja por que sua inicialização deve ter um blog. Aqui está o porquê Aqui estão algumas razões mais convincentes porque sua startup não pode viver sem um blog. Read More, a equipe do MongoDB mantém um excelente blog, com conteúdo técnico de alta qualidade e bem escrito voltado para um público técnico.

Conclusão

Se você não tem um sistema com uma boa quantidade de RAM que não suporte uma grande base de dados, ou você não está realmente querendo ter um grande banco de dados, o MongoDB não é para você. Ele tende a se vender apenas quando em larga escala. Para projetos menores, o uso do RDBMS é provavelmente mais fácil. Se, no entanto, você precisar de velocidade e facilidade e puder dar suporte ao sistema, talvez valha a pena investigar.

Você tem alguma experiência com o MongoDB? Curioso sobre experimentar? Deixe um comentário abaixo e vamos conversar!

Créditos da imagem: “Conexão ao Shell MongoDB” por Ularugeanina via Wikimedia Commons, “Mysql-screenshot” por Stephantom via Wikimedia Commons

In this article