MongoDB
MongoDB  este o bază de date NoSQL open-source orientată pe documente. Acestă bază de date beneficiază de suport din partea companiei 10gen. MongoDB face parte din familia de sistemelor de baze de date NoSQL. Diferența principală constă în faptul că stocarea datelor nu se face folosind tabele precum într-o bază de date relațională, MongoDB  stochează datele sub formă de documente JSON cu scheme dinamice.

Istorie
Dezvoltarea MongoDB a fost începută de 10gen în 2007, când compania dezvolta un produs platform as a service similar cu Windows Azure sau Google App Engine. În 2009 MongoDB  a fost transformat într-un produs open-source 
În martie 2010, de la versiune 1.4, MongoDB a fost considerat gata pentru mediul de producție.

Caracteristici principale
MongoDB  este o bază de date open-source NoSQL scrisă în C++. Aceasta poate conține mai multe baze de date, colecții și indecși. În unele cazuri (baze de date și colecții ) aceste obiecte pot fi create implicit. Odată create, ele se găsesc în catalogul sistemului db.systems.collection, db.system.indexes. Colecțiile conțin documente (BSON). Aceste documente conțin la rândul lor mai multe câmpuri. În MongoDB nu există câmpuri predefinite spre deosebire de bazele de date relaționale, unde există coloanele care sunt definite în momentul în care tabelele sunt create. Nu există schemă pentru câmpurile dintr-un document, acestea precum și tipurile lor pot varia. Astfel nu există operația de „alter table” pentru adăugare de coloane. În practică este obișnuit ca o colecție să aibă o structură omogenă, deși nu este o cerință, colecțiile putând avea structuri diferite. Această flexibilitate presupune ușurință în migrarea și modificarea imaginii de ansamblu asupra datelor.
Caracteristicile MongoDB

Stocarea datelor sub formă de documente ;
Baza de date MongoDB stochează obiecte (documente). Aceste documente reduc nevoia de join;
Prezintă support pentru indexare 
Indexarea pe fiecare din atribute se face în modul tradițional (RDBMS) asupra cheilor de regăsire ale documentelor;
Disponibilitate - Disponibilitatea datelor este asigurată printr-un proces automat de failover;
Auto-Sharding 
Shardingul sau partiționarea datelor pe orizontală se face automat. Citirile și scrierile sunt distribuite pe partiții. Lipsa joinurilor face ca interogările distribuite să fie rapide;
Limbajul de interogare 
Limbajul de interogare este  îmbunatatit și păstreaza principii SQL si C++;
Modificări rapide 
MongoDB suportă operații de actualizare atomice căt și pe cele tradiționale. Operatiile de mai jos demonstrează flexibilitatea limbajului NoSQL
$inc - { $inc : { camp : valoare } } – incementează câmpul “camp” cu numărul dat ca valoare
$set -{ $set : { camp : valoare } } – câmpul „camp” ia valoarea dată
$push -{ $push : { camp : valoare } } – se adaugă valoarea dată câmpului specificat
$addToSet -{ $addToSet : { camp : valoare } } – adaugarea valorii într-un vector
$pop -{ $pop : { camp : 1  } } –șterge ultimul element dintr-un vector
$pop -{ $pop : { camp : -1  } } –șterge primul element dintr-un vector
$pull -{ $pull : { camp : _valoare } } – șterge toate valorile egale cu “valoare” din câmpul “camp

Map Reduce 
MongoDB folosește map/reduce pentru agregare și procesare batch;
GridFS 
Poate stoca fișiere de dimensiuni mari fără a complica stiva de date;
Suport 
Există o cantitate mare de informații online – tutoriale , carți forumuri ce servesc pentru a asimila rapid lucrul cu MongoDB. 

Paralelă MySQL versus MongoDB

Instalare MongoDB 
  

Instalarea MongoDB este extrem de simplă. Această bază de date poate fi intalată pe sisteme de operare variate, incluzând Windows, Linux, Ubuntu, Debian și OS X. Mediul de dezvoltare în cazul acestui articol a fost reprezentat de MongoDB în Windows 7 Professional 32 bit. Sistemele 32 bit sunt folosite de obicei pentru testare, deoarece instalările MongoDB pe un astfel de sistem permit o capacitate maximă de stocare de 2G. De menționat este faptul că nu se permite instalarea pe sistemele Windows XP. De asemenea distribuția Mongo include fisierul bin/mongo ce reprezintă un shell interactiv scris în JavaScript și folosit în aceeași manieră în care este folosit SQl Plus pentru baze de date Oracle pentru comenzi în linie de comandă. Shellul este folositor pentru verificări teste si pentru funcțiile administrative.

Referințe

Bibliografie

Legături externe

MongoDB Manual
Designing for the Cloud  at MIT Technology Review
A vendor-independent comparison of NoSQL databases: Cassandra, HBase, MongoDB, Riak  (NetworkWorld)
MongoDB Cheat Sheet for Quick Reference
Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Couchbase vs Neo4j vs Hypertable vs ElasticSearch vs Accumulo vs VoltDB vs Scalaris comparison

Sisteme de gestiune a bazelor de date
Unelte de administrare a bazelor de date
MongoDB este o bază de date NoSQL open-source orientată pe documente . Acestă bază de date beneficiază de suport din partea companieien . MongoDB face parte din familia de sistemelor de baze de date NoSQL . Diferența principală constă în faptul că stocarea datelor nu se face folosind tabele precum într- o bază de date relațională , MongoDB stochează datele sub formă de documente JSON cu scheme dinamice . Istorie Dezvoltarea MongoDB a fost începută deen în când compania dezvolta un produs platform as a service similar cu Windows Azure sau Google App Engine . ÎnMongoDB a fost transformat într- un produs open-source În martie de la versiune4 , MongoDB a fost considerat gata pentru mediul de producție . Caracteristici principale MongoDB este o bază de date open-source NoSQL scrisă în C+ + . Aceasta poate conține mai multe baze de date , colecții și indecși . În unele cazuri ( baze de date și colecții ) aceste obiecte pot fi create implicit . Odată create , ele se găsesc în catalogul sistemului db.systems.collection , db.system.indexes . Colecțiile conțin documente ( BSON ) . Aceste documente conțin la rândul lor mai multe câmpuri . În MongoDB nu există câmpuri predefinite spre deosebire de bazele de date relaționale , unde există coloanele care sunt definite în momentul în care tabelele sunt create . Nu există schemă pentru câmpurile dintr- un document , acestea precum și tipurile lor pot varia . Astfel nu există operația de „ alter table ” pentru adăugare de coloane . În practică este obișnuit ca o colecție să aibă o structură omogenă , deși nu este o cerință , colecțiile putând avea structuri diferite . Această flexibilitate presupune ușurință în migrarea și modificarea imaginii de ansamblu asupra datelor . Caracteristicile MongoDB Stocarea datelor sub formă de documente ; Baza de date MongoDB stochează obiecte ( documente ) . Aceste documente reduc nevoia de join ; Prezintă support pentru indexare Indexarea pe fiecare din atribute se face în modul tradițional ( RDBMS ) asupra cheilor de regăsire ale documentelor ; Disponibilitate - Disponibilitatea datelor este asigurată printr- un proces automat de failover ; Auto-Sharding Shardingul sau partiționarea datelor pe orizontală se face automat . Citirile și scrierile sunt distribuite pe partiții . Lipsa joinurilor face ca interogările distribuite să fie rapide ; Limbajul de interogare Limbajul de interogare este îmbunatatit și păstreaza principii SQL si C + + ; Modificări rapide MongoDB suportă operații de actualizare atomice căt și pe cele tradiționale . Operatiile de mai jos demonstrează flexibilitatea limbajului NoSQL $inc - { $inc \ : { camp \ : valoare } } – incementează câmpul “ camp” cu numărul dat ca valoare $set - { $set \ : { camp \ : valoare } } – câmpul „ camp” ia valoarea dată $push - { $push \ : { camp \ : valoare } } – se adaugă valoarea dată câmpului specificat $addToSet - { $addToSet \ : { camp \ : valoare } } – adaugarea valorii într- un vector $pop - { $pop \ : { camp \ : } } –șterge ultimul element dintr- un vector $pop - { $pop \ : { camp \ : } } –șterge primul element dintr- un vector $pull - { $pull \ : { camp \ : _valoare } } – șterge toate valorile egale cu “ valoare ” din câmpul “ camp Map Reduce MongoDB folosește map/reduce pentru agregare și procesare batch ; GridFS Poate stoca fișiere de dimensiuni mari fără a complica stiva de date ; Suport Există o cantitate mare de informații online – tutoriale , carți forumuri ce servesc pentru a asimila rapid lucrul cu MongoDB . Paralelă MySQL versus MongoDB Instalare MongoDB Instalarea MongoDB este extrem de simplă . Această bază de date poate fi intalată pe sisteme de operare variate , incluzând Windows , Linux , Ubuntu , Debian și OS X . Mediul de dezvoltare în cazul acestui articol a fost reprezentat de MongoDB în WindowsProfessionalbit . Sistemelebit sunt folosite de obicei pentru testare , deoarece instalările MongoDB pe un astfel de sistem permit o capacitate maximă de stocare de . De menționat este faptul că nu se permite instalarea pe sistemele Windows XP . De asemenea distribuția Mongo include fisierul bin/mongo ce reprezintă un shell interactiv scris în JavaScript și folosit în aceeași manieră în care este folosit SQl Plus pentru baze de date Oracle pentru comenzi în linie de comandă . Shellul este folositor pentru verificări teste si pentru funcțiile administrative . Referințe Bibliografie Legături externe MongoDB Manual Designing for the Cloud at MIT Technology Review A vendor-independent comparison of NoSQL databases : Cassandra , HBase , MongoDB , Riak ( NetworkWorld ) MongoDB Cheat Sheet for Quick Reference Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Couchbase vs Neo4j vs Hypertable vs ElasticSearch vs Accumulo vs VoltDB vs Scalaris comparison Sisteme de gestiune a bazelor de date Unelte de administrare a bazelor de date