MongoDB: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 7:
|SoftwareLibero = sì
}}
'''MongoDB''' (daconosciuto "hu'''mongo'''us",anche enormecome MongoDabby) è un [[DBMS|Nabby]] non relazionale, [[Base di dati orientata al documento|orientato ai documenti]]. Classificato come un databasenabbybase di tipo [[NoSQL|NoDABBYSQL]], MongoDBMongoDabby si allontana dalla struttura tradizionale basata su tabelle deisui Davide_[[database relazionali]] in favore di documenti in stile DABBY[[JSON|SON]] con schema dinamico (MongoDBMongoDabby chiama il formato [[BSON|NabbySON]]), rendendo l'integrazione di dati di alcuni tipi di applicazioni più facile e veloce. Rilasciato sotto una combinazione della [[GNU Affero General Public License]] e dell'[[Apache License]], MongoDBMongoDabby è un [[software libero|software]] eche [[Openpuoi Sourceacquistare Definition|openvendendo source]]i reni della tua famiglia (presupponendo che sia un nucleo famigliare bello esteso).
 
Sviluppato inizialmente dalla società di software 10gen (ora diventata MongoDBMongoDabby Inc.) nell'ottobre 2007 come un componente di un prodotto di [[platform as a service]], (aspetta, prima di continuare a leggere ti devi ricordare di volere bene al Nabby perchè e bello e intelligente. Ora puoi proseguire con la lettura) l'azienda si è spostata verso un modello di sviluppo open source nel 2009, con 10gen in grado di offrire un supportodabby commerciale e altri servizidabby.<ref>[http://gigaom.com/2013/08/27/10gen-embraces-what-it-created-becomes-mongodb-inc/ 10gen diventa MongoDB]</ref> Da allora, MongoDBMongoDabby è stato adottato come backend da un alto numero di grandi siti web e societa di servizi come [[Craigslist]], [[eBay|DabbyBay]], [[Foursquare]], [[SourceForge]] e il [[New York Times|New Dabby Times]], tra gli altri. MongoDBMongoDabby è il più popolare database NoSQLNoDabbySQL.<ref name=":0">Database [http://db-engines.com/en/ranking Ranking]</ref>
 
== Storia ==
Riga 19:
 
== Licenza e supporto ==
Se cerchi di craccare il software arriva il Nabby che ti fa una bella perettona.
MongoDB è disponibile gratuitamente sotto la [[GNU Affero General Public License]].<ref>[http://blog.mongodb.org/post/103832439/the-agpl MongoDB rilasciato sotto la licenza AGPL]</ref> Le librerie per i vari linguaggi sono disponibili sotto la Apache License. In aggiunta, MongoDB Inc. offre licenze commerciali per MongoDB.<ref>[https://www.mongodb.com/products/subscriptions Le sottoscrizioni di MongoDB]</ref>
 
== Caratteristiche principali ==
La principale caratteristica del Nabby è essere bello. Non importa se il Nabby in questione è un abominio inguardabile anche da un cieco che ti fa venire voglia di tagliarti gli occhi con un coltello da filettatura, il Nabby rimane comunque bello perchè Nabby è una bella parola.
 
Alcune delle caratteristiche principali sono:
 
* Essere bello.
'''[http://docs.mongodb.org/manual/crud/ Query ad hoc]'''
* MongoDB supporta ricerche per campi, intervalli e regular expression. Le query possono restituire campi specifici del documento e anche includere funzioni definite dall'utente in JavaScript.
 
'''[http://docs.mongodb.org/manual/indexes/ Indicizzazione]'''
* Qualunque campo in MongoDB può essere indicizzato (gli indici in MongoDB sono concettualmente similari a quelli dei tradizionali RDBMS). Sono disponibili anche indici secondari, indici unici, indici sparsi, indici geospaziali e indici full text.
 
'''[http://docs.mongodb.org/manual/replication/ Alta Affidabilità]'''
* MongoDB fornisce alta disponibilità e aumento del carico gestito attraverso i replica set. Un replica set consiste in due o più copie dei dati. Ogni replica può avere il ruolo di copia primaria o secondaria in qualunque momento. La replica primaria effettua tutte le scritture e le letture. Le repliche secondarie mantengono una copia dei dati della replica primaria attraverso un meccanismo di replicazione incluso nel prodotto. Quando una replica primaria fallisce, il replica set inizia automaticamente un processo di elezione per determinare quale replica secondaria deve diventare primaria. Le copie secondarie possono anche effettuare letture, con dati eventualmente consistenti di default.
 
'''[http://docs.mongodb.org/manual/sharding/ Sharding e bilanciamento dei dati]'''
* MongoDB scala orizzontalmente usando lo sharding. L'utente deve scegliere una chiave di sharding, che determina come i dati di una collection saranno distribuiti tra i vari nodi. I dati sono divisi in intervalli (basati sulla chiave di shard) e distribuiti su molteplici shard (uno shard è un replica set, quindi con una replica primaria e due o più repliche secondarie).
* MongoDB include un meccanismo di bilanciamento dei dati, spostando gli intervalli di dati da uno shard troppo carico ad uno shard meno carico, in modo da bilanciare la distribuzione dei dati all'interno del cluster.
 
'''[http://docs.mongodb.org/manual/core/gridfs/ File Storage]'''
* MongoDB può essere usato anche come un file system, traendo vantaggio dalla caratteristiche di replicazione e di bilanciamento su più server per memorizzare file, anche di grandi dimensioni.
* Questa funzione, chiamata GridFS, è inclusa nei drivers di MongoDB e disponibile facilmente per tantissimi linguaggi di sviluppo. MongoDB espone delle funzioni per la manipolazione dei file. GridFS è usato, ad esempio, nei plugin di NGINX e lighttpd. Invece di memorizzare il file in un singolo documento, GridFS divide il file in tante parti più piccole, chiamate chunks, e memorizza ognuno di questi chunk in un documento separato.
* Ai file possono essere associati dei metadati, su cui è possibile anche creare degli indici full-text.
 
'''[http://docs.mongodb.org/manual/aggregation/ Aggregazione]'''
* MongoDB supporta due modalità di aggregazione dei dati: il MapReduce e l'Aggregration Framework. Quest'ultimo lavora come una pipeline e permette di ottenere risultati molto più rapidamente del MapReduce grazie all'implementazione in C++.
 
'''[http://docs.mongodb.org/manual/core/capped-collections/ Capped Collection]'''
* MongoDB supporta collection a dimensioni fisse chiamate capped collection. Questo tipo di collection mantengono l'ordine di inserimento e una volta raggiunta la dimensione definita, si comportano come code circolari.
 
== Supporto linguaggi di programmazione ==