Introduzione
Un database è un'applicazione a sè stante che memorizza un insieme di dati. Ogni database dispone di una o più API (Application Program Interface) per la creazione, l'accesso, la gestione, la ricerca e la replica dei dati in suo possesso.
In alternativa possono essere utilizzati altri tipi di archivi di dati, ad esempio i classici file o grandi tabelle hash in memoria, ma il prelievo dei dati, la loro selezione e la loro scrittura non sarebbero altrettanto facili.
Così oggi risulta molto frequente utilizzare dei sistemi di gestione di database relazionali (RDBMS) per memorizzare e gestire enormi quantità di dati. Si chiamano database relazionali perché tutti i dati vengono memorizzati in tabelle diverse legate tra loro da precise relazioni fissate in base a chiavi primarie o altre chiavi note come chiavi esterne.
Prima di procedere oltre si tenga presente che questi appunti si basano su MySQL in un ambiente PHP, è quindi evidente che il lettore dovrebbe avere già delle conoscenze pregresse di PHP e HTML.
Un database relazionale, formalmente chiamato RDBMS (Relational DataBase Management System), è un software che:
Consente la costruzione di un database con tabelle, colonne e indici.
Garantisce l'integrità referenziale tra le righe delle varie tabelle.
Aggiorna automaticamente gli indici.
Interpreta una richiesta SQL (query) e combina le informazioni prelevandole dalle varie tabelle.
Terminologia RDBMS
Prima di procedere con il sistema MySQL è opportuno rivedere alcune definizioni correlate con la gestione dei database.
Database: un database è un insieme di tabelle, con i relativi dati.
Tabella: una tabella è una matrice con i dati, assomiglia ad un semplice foglio di calcolo.
Colonna: una colonna (elemento dato) contiene dati di uno stesso tipo, ad esempio il codice postale.
Riga: una riga (record, input, tupla) è un gruppo di dati correlati, ad esempio gli elementi di un abbonamento.
Ridondanza: memorizzazione ripetuta dei dati, può appesantire il database, ma rendere il sistema più veloce; da usarsi con cognizione di causa.
Chiave primaria: una chiave primaria è unica. Una detereminata chiave non può trovarsi due volte in una tabella. Con una chiave primaria è possibile individuare al massimo una riga.
Chiave esterna: una chiave esterna è l'elemento di collegamento tra due tabelle.
Chiave composta: una chiave composta è una chiave formata su più colonne quando una colonna non è sufficientemente univoca.
Indice: un indice in un database è l'equivalente dell'indice di un libro.
Integrità referenziale: per integrità referenziale si intende la caratteristica per cui un determinato valore della chiave esterna punta sempre alla stessa riga esistente.
Database MySQL
MySQL è un veloce RDBMS, facile da usare e in uso in molte piccole e grandi imprese. Il codice sorgente di MySQL era inizialmente di proprietà della società MySQL AB, una società svedese che distribuiva il prodotto anche con licenza GPL. Nel 2008 Sun Microsystems ha acquistato la società, e l'anno successivo l'ha ceduta a Oracle. A partire dalla versione 5.5 vengono incluse delle estensioni non Open Source, disponibili solo nella versione Enterprise (a pagamento). Per questo motivo, a partire dal 2012, diverse distribuzioni Linux e alcuni utenti importanti (come Wikipedia) hanno iniziato a sostituire MySQL con il fork MariaDB.
MySQL è diventato così popolare per molte buone ragioni:
MariaDB è rilasciato sotto una licenza open-source, quindi non si paga nulla per usarlo.
MySQL è un potente e completo programma, gestisce un grande sottoinsieme di funzionalità tipiche dei database più costosi e potenti.
MySQL utilizza le modalità standard del noto linguaggio dati SQL.
MySQL lavora su diversi sistemi operativi e con molti linguaggi di programmazione: PHP, PERL, C, C++, JAVA, etc.
MySQL è molto veloce anche con grandi moli di dati.
MySQL lavora molto facilmente con il PHP, il più apprezzato linguaggio per lo sviluppo di applicazioni web.
MySQL supporta database di grandi dimensioni, fino a 50 milioni di righe o più in una tabella. Il limite di dimensione del file di default per una tabella è di 4 GB, ma è possibile aumentare questo limite (se il sistema operativo è in grado di gestirlo) fino a 8 milioni di terabyte (TB).
MariaDB è personalizzabile, la licenza GPL open source consente ai programmatori di modificare il software per soddisfare i propri ambienti specifici.
Il corpo è pensiero, la vita è pensiero, il sesso è pensiero. Voi siete pensiero e pensiero è quello che voi siete. Se non ci fosse il pensiero, voi non ci sareste. Se il pensiero non ci fosse, non ci sarebbe il mondo.
Jiddu Krishnamurti (1895-1986)