MongoDB – A base de dados que não é relacional

22 Comentários

Aqui não há registos, mas sim documentos!

Os Sistemas de Gestão de Base de Dados (SGBD) mais populares são sem dúvida o MySQL, SQLServer e Oracle. Todos estes SGBD permitem a criação de bases de dados relacionais mas nem sempre as aplicações têm essa necessidade, especialmente quando falamos em grandes quantidades de dados (big data).

Hoje apresentamos o MongoDB que é um SGBD do tipo NoSQL (Not only Structure Query Language).

mongodb


O MongoBD é um projecto Open Source, do tipo NOSQL e de alta performance, sem esquemas, concebido especialmente para o armazenamento de grandes quantidades de dados. Este projecto foi desenvolvido em C++ e trabalha com documentos com sintaxe JSON (algo equivalente aos registos nas BD SQL).

Por exemplo, vamos criar um documento com 2 atributos (nome e area).

Pplware = {
nome:"Pplware no Comments",
area: "tecnologia"
}

Para executar o documento Pplware na base de dados Pplwaredb bastava correr o seguinte comando:

db.pplwaredb.save(Pplware)

Segundo a xpand-it, esta solução foi projectada para ajudar as organizações a alcançarem maiores níveis de agilidade e escalabilidade. Nesse sentido, pode esperar por benefícios como: compatibilidade com novas aplicações, melhor experiência do cliente, time-to-market e redução de custos bastante significativa.

Principais características

  • Modelo dinâmico de armazenamento orientado ao documento
  • Indexação flexível e suporte de consultas avançadas
  • Escalabilidade horizontal com base em particionamento automático
  • Replicação e alta disponibilidade
  • Procura de documentos
  • Segurança avançada
  • Framework de agregação e suporte de MapReduce
  • Suporte para armazenamento de ficheiros em grande escala com a funcionalidade GridFS

O projecto Mongo DB tem uma comunidade global em expansão, contando com mais de 4 milhões de downloads, 50.000 registos para formação em regime de e-learning, 15000 Membros nos User Groups. A empresa conta com mais de 600 clientes empresariais, incluindo algumas das maiores organizações do mundo, entre as quais: Cisco, eBay, Ericsson, Forbes, SAP ou Telefónica.

Num próximo tutorial vamos aprender a instalar o MongoDB no Linux.

Partilhar:
Tags:

Comentários

22

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Rui Costa
    Rui Costa

    Realmente um excelente suporte de informação para os tempos que se aproximam.

    Ligar sensores a tudo o que “mexe”, irá trazer a necessidade de bases de dados nosql não só para armazenamento mas principalmente para extração de informação e análise.

    Imaginem projetos ligados à saúde ou à agricultura com armazenamento de métricas quase em tempo real para estudos futuros e otimização de processos.

    1. Avatar de Frederico Barracha
      Frederico Barracha

      Tens sistemas de BI (agora só me focando em áreas de saúde) que medem métricas em tempo real, tais como, quedas de doentes, estado da consulta, etc. etc.

      Mas é de facto interessante!

      Talvez falte um artigo sobre Big Data, já que todos falam disso agora..

      1. Avatar de Pedro Pinto

        Sim, Big Data é outro assunto que tenho aqui na lista. Só acabar os tutoriais sobre cloud (IaaS, PaaS e SaaS).

        1. Avatar de Frederico Barracha
          Frederico Barracha

          Fantástico!!

  2. Avatar de Vitor
    Vitor

    Sugiro ainda o REDIS:
    http://redis.io/

    Trabalha em memória (com dumps para disco) e é muito rápido. Muito engraçado para trabalhar com node.js. Quem for por este caminho, dê uma olhadela no https://joeferner.github.io/redis-commander/ pois facilita muito para ver o que está na BD.

    1. Avatar de Pedro Pinto

      Obrigado pela sugestão. Se dominares o REDIS podes mandar um artigo que nós publicamos. Aceitas o desafio?

    2. Avatar de zee
      zee

      Uso como armazenamento de sessões e recomendo. Mais rápido que mongo, apesar do mongo também ser muito bom. E tem suporte pub/sub, e que é uma funcionalidade fantástica.

      1. Avatar de Eduardo Pires

        Porque não usar redis, para leitura e escrita rápida de dados e depois persistir os dado em BD?

        Tens boa performance em ler/escrever dados e ficas com os dados guardados 😉

  3. Avatar de Denis Encarnação
    Denis Encarnação

    Bom artigo.

    Também utilizo o mongoDB como complemento de uma base de dados relacional.

    Já agora uma chamada de atenção. O logo do mongoDB não leva o elefante é só a parte debaixo. O elefante é o logo do Hadoop.

    1. Avatar de Pedro Pinto

      Yups, já troquei. Thanks

  4. Avatar de Mario Pereira
    Mario Pereira

    Porque o simbolo do hadoop por cima? MongoDB =/= hadoop

  5. Avatar de António C
    António C

    Usei durante algum tempo mongoDB. Sinceramente a performance pode ser um problema em certas situações. Apesar de gostar imenso do modo de funcionamento e da API do mongoDB, acabei por voltar a PostgreSQL.

    Desde a versão 9.4 do PostgreSQL que podemos armazenar dados JSON em formato binário (jsonb) o que nos permite excelente performance nas queries a esses objectos. O único senão é mesmo a forma de pesquisar esses objetos que não é tão simples e intuitiva como no mongo.

    1. Avatar de Pedro Pinto

      “Desde a versão 9.4 do PostgreSQL que podemos armazenar dados JSON em formato binário”, obrigado pela info, não sabia 🙂

    2. Avatar de YaBa
      YaBa

      Por curiosidade, já testou o CouchDB?

      1. Avatar de António C
        António C

        Por acaso não. Talvez experimente em breve num novo projeto qualquer. Parece uma alternativa interessante!

  6. Avatar de LG
    LG

    Offtopic mas algo para a Pplware publicar: Ontem saiu a final do PHP7: http://php.net/archive/2015.php#id2015-12-03-1

  7. Avatar de Alberto Soares
    Alberto Soares

    Alguem usa Elastic Search?

  8. Avatar de António C
    António C

    Por acaso não. Talvez experimente em breve num novo projeto qualquer. Parece uma alternativa interessante!

  9. Avatar de André
    André

    Então e esse tutorial já tem RTA?

    1. Avatar de OlaFanboys
      OlaFanboys

      Queres dizer ETA? Não sei, mas no post diz que é para breve