MongoDB

Da Wikipedia, l'enciclopedia libera.
MongoDB
Sviluppatore 10gen
Ultima versione 2.4.7 (21 ottobre 2013)
Sistema operativo Multipiattaforma
Linguaggio C++
Genere Database management system
Licenza GNU AGPL v3.0 (drivers: Apache license)
(Licenza libera)
Lingua Inglese
Sito web http://www.mongodb.org/

MongoDB è un sistema gestionale di basi di dati non relazionale, orientato ai documenti, di tipo NoSQL. Il linguaggio utilizzato per la gestione dei dati è JavaScript, del quale sfrutta in particolare la notazione BSON (JSON).

Licenza[modifica | modifica sorgente]

MongoDB è un software libero rilasciato con licenza GNU Affero General Public License versione 3. Questa licenza è simile alla GNU GPL versione 3, ma impone che eventuali modifiche al codice vengano rese pubbliche principalmente in due casi: un servizio di hosting che mettesse a disposizione dei clienti una versione modificata di MongoDB; un sito web che usasse una versione modificata di MongoDB.

I driver sono invece rilasciati con Licenza Apache.

La documentazione presente sul sito è rilasciata con licenza Creative Commons Attribution Non-Commercial Share-Alike (BY-NC-SA) versione 3.

Storia[modifica | modifica sorgente]

La società 10gen ha iniziato lo sviluppo di MongoDB il 9 ottobre 2007. La prima versione pubblica è stata rilasciata nel febbraio 2009.[1]

Tools[modifica | modifica sorgente]

Nucleon Database Master

Caratteristiche[modifica | modifica sorgente]

MongoDB è un gestore di database schemaless, il che significa che i dati, anche all'interno di una stessa tabella, possono essere strutturati in qualsiasi modo e non devono rispettare alcuna regola. Per questa ragione rientra nella famiglia NoSQL e utilizza JavaScript come linguaggio di interrogazione.

MongoDB raggiunge prestazioni estremamente elevate anche con grandi quantità di dati, ma naturalmente per farlo rinuncia ad altre caratteristiche che sono tipiche dei database relazionali. Ad esempio non supporta alcun tipo di vincolo di integrità né le transazioni, e la gestione della concorrenza ha grossi limiti. Inoltre la durabilità dei dati è garantita solo a intervalli relativamente lunghi: i dati sono conservati nella memoria, e a intervalli scritti su disco attraverso il logging e il journaling.

Va anche notato che, come la maggior parte dei software dello stesso tipo, soffre un notevole degrado delle prestazioni se la memoria non è sufficiente a contenere tutti i dati. Questo limite però è mitigato da buone capacità di frammentazione dei dati, o sharding, che consiste nel federare tra loro più server per suddividere il carico di lavoro.

È possibile utilizzare MongoDB per implementare il pattern map/reduce.

TokuMX[modifica | modifica sorgente]

Il 19 giugno 2013, Tokutek ha rilasciato[2] la versione 1.0 di TokuMX. Si tratta di un fork di MongoDB, che combina le caratteristiche generali di questo prodotto MongoDB con le tecniche di storage di TokuDB, lo Storage Engine per MariaDB e MySQL. La novità principale consiste nell'uso degli alberi frattali, che aumentano notevolmente le prestazioni degli indici e la compressione. Sono state introdotte anche le transazioni, gli indici clusterizzati ed è stata migliorata la concorrenza.

Applicazioni con interfaccia grafica per Desktop e Web[modifica | modifica sorgente]

La comunità di sviluppatori di MongoDB ha creato diverse GUI per facilitare la visualizzazione dei dati. Le più famose sono:

  • RockMongo: PHP-based MongoDB administration GUI tool
  • phpMoAdmin: another PHP GUI that runs entirely from a single 95kb self-configuring file
  • UMongo: a desktop application for all platforms.
  • Mongo3: a Ruby-based interface.
  • Meclipse: Eclipse plugin for interacting with MongoDB
  • MonjaDB: Eclipse another plugin for interacting with MongoDB
  • MongoHub: a freeware native Mac OS X application for managing MongoDB. Version for other operating systems is built on Titanium Desktop.
  • mViewer: A simple web-based Administration and Management Tool for MongoDB written in Java.
  • MongoDBPumper: a commercial high-performance data transfer solution to provide export and import functionality between Oracle and MongoDB databases.

Altre applicazioni sono elencate qui: MongoDB Administrator Manual

Note[modifica | modifica sorgente]

  1. ^ MongoDB Blog - March 2010
  2. ^ Announcing TokuMX v1.0: Toku+Mongo = You Can Have It All

Voci correlate[modifica | modifica sorgente]

Clienti Principali[modifica | modifica sorgente]

Collegamenti esterni[modifica | modifica sorgente]

Software libero Portale Software libero: accedi alle voci di Wikipedia che trattano di Software libero