Chiunque abbia mai lavorato con database che organizzano dati in tabelle, chiamati anche database relazionali, può probabilmente parlare a lungo dei suoi difetti. Per quanto possa essere un sistema per archiviare i dati, non è privo di problemi e non è progettato per l'interpretazione da parte delle persone, rendendo l'organizzazione con essa contorta, ridondante e con una curva di apprendimento ripida.
Quindi, il movimento NoSQL. SQL è l'acronimo di Structured Query Language e viene utilizzato per comunicare con i database. Ma non è così grande su una scala più ampia. Quando, ad esempio, le app diventano virali, è necessario supporto per consentire agli utenti di utilizzare l'app senza problemi. Ma SQL si complica a questa scala, molto più di quanto possano fare molti sviluppatori.
NoSQL semplifica la memorizzazione e l'organizzazione dei dati, perché i fautori della scuola di pensiero NoSQL cercavano di creare un database che lavorasse con insiemi di dati di grandi dimensioni, ridimensionato e organizzato come il modo in cui la gente pensa, e potrebbe essere facilmente letto dagli umani. MongoDB è uno di questi database e sta cambiando il modo in cui gli sviluppatori costruiscono siti web.
Cos'è MongoDB?
MongoDB (da "humongous") è un database orientato ai documenti multipiattaforma utilizzato come alternativa a MySQL. Ma cosa significa? Bene, un database è un insieme strutturato di dati Quindi cos'è un database, comunque? [MakeUseOf Explains] Quindi, che cos'è un database, comunque? [MakeUseOf Explains] Per un programmatore o un appassionato di tecnologia, il concetto di un database è qualcosa che può essere dato per scontato. Tuttavia, per molte persone il concetto di un database stesso è un po 'estraneo .... Per saperne di più, tuttavia MongoDB differisce in quanto tende ad essere meno rigido su come questi dati sono strutturati. Le informazioni sono raggruppate, piuttosto che suddivise in documenti e tabelle correlati come MySQL, un RDBMS popolare o sistema di gestione di database relazionali, che utilizza SQL.
Molti database che utilizzano dati di archiviazione SQL in tabelle su pagine. Pensa a qualcosa di simile a un foglio di calcolo Excel con bit di codice. Queste pagine sono le più piccole porzioni di dati su un server e ogni pagina è dedicata a una tabella. Ciò viene complicato su larga scala, mentre con MongoDB lo sviluppatore può decidere come strutturare le informazioni per qualsiasi cosa si adatti alle loro esigenze.
MongoDB usa BSON per memorizzare le informazioni. BSON (una combinazione di "binario" e "JSON" o notazione oggetto JavaScript) può essere considerata una rappresentazione binaria o numerica di documenti JSON. JSON Che cos'è JSON? Panoramica di un Layman Cos'è JSON? Panoramica di un Layman Sia che tu abbia intenzione di diventare uno sviluppatore web o no, è una buona idea sapere almeno cosa è JSON, perché è importante e perché è usato in tutto il web. Leggi altro è un formato standard aperto (come open-source) per l'organizzazione dei dati.
Aggiunge anche il supporto per determinati tipi di dati che non sono supportati in JSON, come il tipo di dati 'data', che normalmente non sarebbero supportati e quindi non potevano essere usati dallo sviluppatore. Lo sviluppatore, in questo caso, non sarebbe in grado di includere alcun tipo di data come parte di dati.
In genere, questi dati sono organizzati in documenti. JSON trasmette i dati utilizzando documenti che possono essere facilmente letti dagli esseri umani, tuttavia questo non è il caso di BSON. JSON viene anche comunemente utilizzato per trasmettere dati tra un server e un'applicazione, nonché un supporto di archiviazione di dati generale.
I documenti non hanno bisogno di essere strutturati in un modo specifico in base alla collezione, o un gruppo di oggetti correlati in cui sono organizzati, rendendo molto facile per uno sviluppatore di essere installato e in esecuzione con MongoDB. Questo ha portato ad essere uno dei database NoSQL più popolari là fuori.
Cosa lo rende diverso da MySQL?
Essendo MySQL forse il RDBMS più diffuso là fuori, anche se imperfetto come potrebbe essere, è naturale che le alternative emergano. Essendo NoSQL un'alternativa a SQL, MongoDB è considerato un'alternativa a MySQL. MySQL utilizza le tabelle per organizzare i dati e si basa sul classico modello di dati relazionali del XX secolo, sebbene, come MongoDB, possa essere modificato per migliorare le funzionalità.
Tuttavia, i due differiscono notevolmente. Sono destinati a scopi diversi, per uno. MongoDB è destinato più per la scala più grande (molto grande) mentre c'è solo così tanto che MySQL può gestire. Come accennato in precedenza, MySQL utilizza le tabelle per organizzare i dati che possono finire molto contorti. Tuttavia, sono entrambi ottimi sistemi e, di fatto, gli ibridi vengono implementati su determinati siti Web. Craigslist è noto per essere uno dei siti web di maggior successo nell'implementazione di un ibrido MongoDB / MySQL.
Come funziona?
MongoDB funziona memorizzando i dati in documenti simili a JSON. Questi documenti hanno uno o più campi (oggetti o valori contenuti in una classe o struttura) che includono array (una serie di oggetti tutti della stessa dimensione e tipo) e sotto-documenti (un documento che fa parte di un documento più grande). Questi campi possono essere impostati come lo sviluppatore lo desidera, in base alle loro esigenze.
Mentre organizzare questo sarebbe normalmente un affare complicato, BSON lo rende facile semplicemente raggruppando i documenti insieme in base al tipo e alle dimensioni piuttosto che suddividendoli in piccolissimi pezzi di dati come SQL e organizzando i dati in base ad altre informazioni. Grazie a questa flessibilità, gli sviluppatori sono in grado di evolvere la raccolta di dati, chiamata anche modello di dati, in base alle loro esigenze.
Gli sviluppatori possono accedere ai documenti tramite driver che sono in grado di leggere e comprendere e i documenti sono disponibili nei linguaggi di programmazione più popolari e moderni. Con MongoDB, i documenti vengono mappati naturalmente agli oggetti, quindi non è necessario un layer ORM (object-relational mapping) che mappa manualmente i documenti nei rispettivi oggetti. In parole semplici, i documenti sono collegati agli oggetti in modo naturale, quindi non è necessario un comando o un programma separato per collegarli.
MongoDB utilizza una shell basata su JavaScript e supporta gli sviluppatori che scrivono codice personalizzato utilizzando le funzioni JavaScript e probabilmente diventerà più diffusa mentre JavaScript continua a espandersi. Che cos'è JavaScript e che Internet esiste senza di esso? Che cos'è JavaScript e Internet può esistere senza di esso? JavaScript è una di quelle che molti danno per scontato. Tutti lo usano. Leggi di più in popolarità.
Chi lo usa?
Sebbene sia ancora relativamente giovane, MongoDB viene utilizzato in numerosi siti Web popolari. Questi includono Business Journal Forbes e Gif-Tastic Buzzfeed.
Forbes ha approfittato di MongoDB per sviluppare rapidamente un nuovo portafoglio web e mobile. La velocità e la potenza di MongoDB hanno permesso loro di creare un sito web in due mesi e un'app mobile in un mese. Ciò ha avuto un drastico effetto sul coinvolgimento del lettore e sul traffico. Secondo gli sviluppatori di MongoDB:
Durante la notte, il traffico dei dispositivi mobili è passato dal 5% al 15% del traffico totale di Forbes.com e rapidamente salito al 50%.
Buzzfeed soffre delle sfide che deve affrontare qualsiasi organizzazione multimediale di grandi dimensioni. Il loro staff di scrittura distribuito pubblica una tale quantità prodigiosa di contenuti 5 siti Web per controllare gli ultimi video Buzz e Viral 5 siti Web per scoprire gli ultimi video Buzz e Virali Leggi di più, per un vasto pubblico. MongoDB consente a Buzzfeed di scalare rapidamente in base al traffico che ricevono, oltre a determinare quali tipi di contenuti entrano in risonanza con i loro lettori.
Come lo usi?
MongoDB è un ottimo strumento per sviluppatori di giochi, web e software. Sappiamo che è veloce e scalabile. E sappiamo che è facile da leggere e da imparare. Ma come lo usi effettivamente?
Il sito web ufficiale di MongoDB offre agli utenti l'opportunità di provare una shell MongoDB nei loro browser. TutorialsPoint offre diversi tutorial molto dettagliati per l'utilizzo di MongoDB, che vanno dal principiante all'avanzato. Ci sono anche progetti su GitHub e non solo per i programmatori: 9 modi per utilizzare GitHub per il lavoro creativo e non solo per i programmatori: 9 modi per utilizzare GitHub per il lavoro creativo GitHub è noto per le grandi funzionalità che può offrire ai programmatori, ma non è solo per loro . Ci sono molti altri usi creativi per GitHub. Qui ci sono nove che puoi esplorare. Per saperne di più relativi a MongoDB, tra cui The Little MongoDB Book di Karl Seguin, per tutto ciò che devi sapere su MongoDB.
Se vuoi solo imparare come installare MongoDB, assicurati di dare un'occhiata a questo tutorial dal sito web ufficiale di MongoDB.
Dovresti usarlo?
Dipende dalla tua situazione individuale.
Per quanto MongoDB sia, non è privo di difetti. Non è compatibile con ACID. ACID, acronimo di Atomicity, Consistency, Isolation e Durability, è un insieme di proprietà che assicurano che le transazioni del database, o il lavoro svolto all'interno di un database, siano elaborati e completati correttamente. I database NoSQL a volte non sono compatibili con ACID, il che limita la loro produttività e affidabilità.
MongoDB utilizza anche tutta la memoria disponibile come cache di sistema. Di conseguenza, ci sono problemi di prestazioni su computer che funzionano su sistemi a 32 bit, che possono gestire solo un massimo di 4 GB di memoria. Per saperne di più su come utilizzare la RAM sul tuo computer, assicurati di dare un'occhiata a questo articolo di Brad Jones. Quanta RAM hai davvero bisogno? Quanta RAM hai davvero bisogno? La RAM è come una memoria a breve termine. Più fai il multitasking, più ne hai bisogno. Scopri quanto il tuo computer ha, come ottenere il massimo da esso o come ottenerne di più. Leggi di più .
Poiché non c'è bisogno di tabelle con questo database, c'è un alto rischio che gli sviluppatori siano pigri e scrivano codice sciatto, tuttavia il rischio si applica a quasi tutto. Si finisce con dati duplicati, perché non vi è alcuna possibilità per i join all'interno del sistema.
Tuttavia, MongoDB è un sistema incredibilmente rapido ed efficiente che può assolutamente aiutare ad aumentare la produttività degli sviluppatori
MongoDB è anche user-friendly in quanto non richiede una struttura dati unificata per tutti gli oggetti, anche se è consigliabile impostarne uno per facilità d'uso. La struttura dei dati non deve essere la stessa in tutto il sistema, quindi una voce singolare non è completamente necessaria.
Infine, secondo lo scrittore MakeUseOf Matthew Hughes, la tua startup dovrebbe avere un blog. Ecco perché la tua startup dovrebbe avere un blog. Ecco perché Ecco alcuni motivi più convincenti per cui la tua startup non può vivere senza un blog. Per saperne di più, il team MongoDB gestisce un blog eccellente, con contenuti tecnici di alta qualità e ben scritti rivolti a un pubblico tecnico.
Conclusione
Se non si dispone di un sistema con una buona quantità di RAM che non supporta un database di grandi dimensioni, o se non si sta davvero cercando un database di grandi dimensioni, MongoDB non fa per voi. Tende a vendersi solo quando su larga scala. Per i progetti più piccoli, l'utilizzo di RDBMS è probabilmente più semplice. Se, tuttavia, hai bisogno di velocità e facilità e puoi supportare il sistema, forse vale la pena esaminarlo.
Hai qualche esperienza con MongoDB? Sei curioso di provarlo? Lascia un commento qui sotto e parleremo!
Crediti immagine: "Connessione alla shell MongoDB" di Ularugeanina tramite Wikimedia Commons, "Mysql-screenshot" di Stephantom tramite Wikimedia Commons