Introduzione all'utilizzo di MongoDB in PHP

di Giuseppe Maggi - 16 novembre 2012

database MongoDB

Una volta che il server è installato ed avviato è possibile dialogarvi utilizzando il client mongo che offre una console interattiva. Ma prima dobbiamo prendere confidenza con la terminologia adottata da MongoDB.

Mentre in un sistema relazionale l'architettura dell'informazione poggia sulle tabelle che compongono il database, in un sistema orientato ai documenti come MongoDB tutta l'architettura si riduce al documento, che sostituisce il record di un RDBMS tradizionale.

Un documento è un insieme di campi, ciascuno costituito da una coppia chiave -> valore. La chiave è una stringa (ricorda il nome della colonna di una tabella) mentre il valore può essere un tipo semplice (intero, decimale, stringa, ecc.), un array di tipi semplici o un intero documento. Per descrivere questa struttura dati, potenzialmente assai più complessa di quella del record tradizionale, MongoDB utilizza la notazione JSON.

Ogni documento potrà avere un proprio insieme di campi, una propria struttura, ed avere in comune con altri documenti solo l'appartenenza alla medesima collection.

La collection quindi è un insieme di documenti, così come la tabella è un insieme di record. Questa però non svolge più il forte ruolo normativo della tabella relazionale (specifica del numero di campi, tipi di dato, vincoli sui valori accettati) ma serve per lo più da accumulatore di documenti, potenzialmente molto eterogenei tra loro.

I concetti appena espressi portano, da un lato, alla definizione di una struttura dati estremamente flessibile, dall’altro, all’impossibilità di impiegare l’SQL come linguaggio per interagire col database. Al suo posto troveremo JSON e una sintassi in stile Javascript.

Infine in MongoDB un database è un insieme di collection, similmente a quanto accade in un database relazionale, costituito da un insieme di tabelle.

Lo specchietto seguente riassume la corrispondenza che si può individuare tra i concetti che regolano un tradizionale database relazionale e MongoDB:

RDBMS MongoDB
database database
tabella collection
record (tupla o riga della tabella) documento
colonna della tabella campo del documento
indice indice
SQL JSON, Javascipt
Effettua l'accesso o registrati per inserire un commento