Nella lezione precedente, abbiamo visto come installare MySQL sul proprio computer. In questa lezione, invece, vediamo cosa sono e come sono strutturati i database.
Immagina di dover creare un sito web che deve gestire i dati di centinaia di utenti. Per ogni utente dovresti salvare informazioni come nome, email, password e altri dati.
Potresti salvare queste informazioni in singoli file, ma con centinaia o migliaia di utenti sarebbe difficile gestire così tanti file: dovresti crearli, modificarli ed eliminarli continuamente.
Per questo esistono i database. Ti permettono di organizzare e gestire grandi quantità di dati in modo semplice ed efficiente. I dati possono essere organizzati in tabelle, un po' come avviene in Excel, dove ogni riga può rappresentare un utente e ogni colonna un'informazione, come nome, email o password.
Un database è un sistema utilizzato per salvare, organizzare e gestire dati in modo strutturato. Puoi immaginarlo come un archivio digitale in cui le informazioni vengono conservate e possono essere recuperate quando servono.
Per esempio, un sito web potrebbe utilizzare un database per memorizzare gli utenti registrati, i loro indirizzi email, gli articoli pubblicati o gli ordini effettuati.
I dati presenti in un database non vengono semplicemente conservati: possono essere aggiunti, modificati, eliminati e cercati in base alle necessità dell'applicazione. In questo modo, un programma può comunicare con il database ogni volta che deve leggere o aggiornare un'informazione.
Nei database relazionali, come quelli gestiti da MySQL, i dati vengono organizzati principalmente all'interno di tabelle. Un database può contenere diverse tabelle, ognuna dedicata a un determinato tipo di informazione, che possono essere collegate tra loro attraverso delle relazioni.
Prendiamo l'esempio visto prima: un database che contiene l'elenco degli utenti di un sito web. Supponiamo ora che ogni utente possa acquistare dei prodotti. In questo caso, i dati degli utenti potrebbero essere organizzati in una tabella come questa:

All'interno di un database, possono essere presenti diverse tabelle.
Per questo motivo, ogni tabella è costituita da:
nome o email.Non tutti i database organizzano i dati nello stesso modo. In base alla loro struttura, possiamo distinguere principalmente tra database relazionali e database non relazionali.
I database non relazionali, chiamati anche NoSQL, non organizzano necessariamente i dati all'interno di tabelle collegate tra loro. Possono utilizzare strutture diverse, come documenti, coppie chiave-valore, grafi o colonne.
Per esempio, un database non relazionale potrebbe memorizzare le informazioni di un utente all'interno di un unico documento:
{
"nome": "Marco",
"email": "[email protected]",
"acquisto": "mouse da gaming"
}I database relazionali, invece, organizzano i dati principalmente attraverso tabelle, formate da righe e colonne. Ogni tabella contiene generalmente un determinato tipo di informazioni e le diverse tabelle possono essere collegate tra loro attraverso delle relazioni.
Per esempio, un database potrebbe avere una tabella utenti per memorizzare gli utenti e una tabella ordini per memorizzare i loro acquisti. Le due tabelle possono essere collegate per sapere quali ordini appartengono a ciascun utente.

Nell'esempio in immagine, acquisto_id corrispondente a 1 si riferisce a mouse da gaming, mentre acquisto_id corrispondente a 2 si riferisce a computer, e così via.
Questo tipo di organizzazione permette di strutturare i dati in modo ordinato e di mettere in relazione informazioni provenienti da tabelle diverse. MySQL, che utilizzerai in questo corso, è un sistema di gestione di database relazionali.
Nella prossima lezione, vedremo la sintassi base di SQL per i database relazionali.