domingo, 13 de dezembro de 2015

MongoDB - O que é?


“MongoDB (do inglês humongous, "gigantesco"). Banco NoSQL open source, de alta performance, sem esquemas e orientado a objetos.”

Algumas características do Mongo são o Schemaless (sem esquemas), o uso de JSON/BSON e a utilização do Memory-Mapped File.

Schemaless?
É um recurso utilizado por bancos NoSQL que permite a armazenagem de dados sem que seja necessário se importar com a normalização, isso faz com que todas as informações sejam armazenadas deixando toda a lógica de tratamento e organização da informação do lado da aplicação, do lado do programador e não do DBA.

JSON/BSON?
JSON (JavaScript Object Notation) é um formato de texto independendo de linguagem, usando convenções familiares às linguagens C, C++, C#, Java, JavaScript e muitas outras. Esse formato de texto é fácil de ler e escrever para nós programadores e para as máquinas é fácil de interpretar e gerar. Já o BSON é uma forma binária do JSON.

Memory-Mapped File?
O Memory-Mapped File, persiste sequencialmente os dados no Hd, fazendo da seguinte forma: ao criar uma database é pré alocado 80mb no disco para ao inserir os dados poder inserir de forma sequencial, o que melhora na performance de busca.

O MongoDB trabalha da seguinte forma: todos os dados persistidos do HD são carregados na memoria RAM onde todo o trabalho do banco será feito. Isso pode causar problemas se ter muitos dados e não caber tudo na memoria. Para isso o Mongo possui duas formas de deixar o banco escalável, a Replica Set e a Sharding.

Replica Set?
Permite você replicar os dados do MongoDB em outros servidores, permitindo maior tolerância a falhas e redundâncias, para caso uma ou mais instâncias (serviço ou mecanismo do banco de dados) parem de funcionar, você tenha replicas como forma de segurança.

Sharding?
Permite que seu banco de dados seja divido em partes menores e distribuindo em servidores, permitindo um crescimento horizontal do banco de dados e sem a necessidade de servidores de alta performace.

No Mongo existe alguns termos parecidos com os usados no modelo relacional, outros não. Por exemplo, temos database, query e index que são os mesmos termos do relacional, mas no Mongo também temos a collection, document json e o shard que em relação ao modelo relacional seriam respectivamente a table, row e o partition.


Não perca os próximos posts sobre MongoDB ;)

0 comentários:

Postar um comentário