Uno dei concetti più importanti in ambito informatico e sviluppo web, è quello di Database (o più brevemente DB), ossia un insieme organizzato e strutturato di dati che hanno una relazione tra di loro e che devono essere il meno ridondanti possibile.
In una piattaforma web il database ha il compito di memorizzare e fornire, quando richiesto, i dati necessari al nostro software per il suo funzionamento. Il linguaggio con il quale si effettuano le operazioni di inserimento, lettura e modifica dei dati nel Database si chiama Query Language.
Tipi di Database
L’evoluzione dell’IT ha introdotto, nel corso del tempo, vari tipi di database, ognuno dei quali è l’evoluzione e il miglioramento del precedente: gerarchico, reticolare o relazionale, che oggi è il tipo più diffuso ed è chiamato così perché struttura i dati che contiene attraverso le relazioni, meglio conosciute come tabelle.
DBMS
La gestione del Database a livello software è affidata ai DataBase Management System (DBMS), un insieme di servizi grazie ai quali l’utente amministratore accede ai dati e li manipola tramite un’interfaccia grafica, e permette ad altri utenti di accedere allo stesso DB. Nell’ambito della programmazione web, alcuni tra i DBMS più diffusi sono MySQL, Oracle e MongoDB (non relazionale).
Tabelle (SQL)
La relazione, o tabella, è l’elemento fondamentale del database relazionale. È possibile, in teoria, avere infinite tabelle all’interno del proprio DB, l’unico limite è lo spazio fisico a disposizione. Ogni tabella ha un nome che deve essere univoco e contiene un numero di campi (le colonne verticali) specificato alla creazione della tabella stessa. Le righe orizzontali, invece, sono i record, ossia i dati effettivi che noi andiamo a inserire e anch’esse sono potenzialmente infinite. Ogni intersezione tra una riga e una colonna è costituita da una cella, dove il singolo dato risiede.
Collezioni (NoSQL)
Per quanto riguarda i database NoSQL, come MongoDB, possiamo assimilare i concetti fondamentali a quelli delle tabelle SQL, ma con delle differenze. Il concetto principale è quello di collezione che contiene i documenti (possiamo immaginarle come le righe nei DB relazionali), formati a loro volta dai campi, ossia le colonne.
Query language
Tutte le operazioni di lettura e manipolazione dei dati contenuti in un database vengono effettuate tramite un linguaggio specifico che prende il nome di Query language, o più semplicemente, Query. Sostanzialmente, le query servono a:
-
inserire nuovi dati;
-
leggere, modificare e cancellare i dati esistenti;
Il Query language ci permette, attraverso varie funzioni, di effettuare operazioni molto precise e dettagliate in quanto è possibile selezionare ogni singolo dato memorizzato nelle tabelle.
Database in Laravel
Nativamente, alla data in cui vi scriviamo, Laravel supporta i seguenti tipi di Database:
-
MySql
-
Postgres
-
SQLite
-
SQL Server
Ma con l’ausilio di estensioni di sviluppatori terzi è possibile integrare anche altri tipi, compresi i NoSQL.
Grazie all’ORM (ossia il sistema per effettuare le query utilizzando il paradigma orientato agli oggetti) che il nostro framework utilizza, Eloquent, non andremo ad utilizzare il Query Language direttamente, ma una sua versione più semplificata, che comprende di base alcune funzioni comunemente utilizzate, come quella della ricerca di un singolo record tramite il suo id.