Corso Mysql: Introduzione ai RDBMS

Iniziamo questa guida a MySql introducendo il concetto di database relazionale e, prima ancora, quello di database. Un Data Base (traducibile in italiano come “base di dati”) non è un altro che un insieme di dati logicamente correlati fra loro.

I Data Base Management System (DBMS) sono quindi i prodotti software in grado di gestire i database; le loro caratteristiche sono:

  • capacità di gestire grandi quantità di dati
  • condivisione dei dati fra più utenti e applicazioni
  • utilizzo di sistemi di protezione e autorizzazione per l’accesso ai dati stessi

Possiamo identificare diversi tipi di database, in base alla loro struttura logica:

  • database gerarchici
  • database reticolari
  • database relazionali
  • database ad oggetti

Il modello gerarchico, basato su strutture ad albero nelle quali ogni dato che non sia a livello radice ha uno e un solo padre, è quello che ha conosciuto il maggior utilizzo fino agli anni ’80.

Il modello reticolare deriva da quello gerarchico, rispetto al quale supera la rigidità della struttura ad albero nell’interdipendenza dei dati, ma la cui complessità ne ha impedito una larga diffusione.

Il modello relazionale organizza i dati in tabelle, basandosi sulle relazioni fra essi.

Il modello ad oggetti infine, il più recente, estende i concetti del modello relazionale adattandoli alla programmazione ad oggetti.

I database di tipo relazionale sono, attualmente, di gran lunga i più diffusi.

Il modello relazionale è stato introdotto nel 1970 dal britannico Edgar F. Codd col documento “A Relational Model of Data for Large Shared Data Banks” (modello di dati relazionale per grandi banche dati condivise), consultabile in originale a questo indirizzo.

Questo modello si basa sulle relazioni fra i dati, i quali vengono presentati in forma tabulare, cioè come un insieme di tabelle ciascuna composta da righe e colonne. Possiamo affermare che:

  • ogni tabella contiene i dati relativi ad una entità;
  • le colonne della tabella rappresentano i campi, ovvero le proprietà o attributi dell’entità;
  • le righe della tabella esprimono le ricorrenze dell’entità.

Insieme al modello relazionale è stato introdotto il linguaggio SQL (Structured Query Language), che consente di operare sui dati tramite frasi che contengono parole chiave prese dal linguaggio corrente (ovviamente della lingua inglese!). Del linguaggio SQL sono stati pubblicati tre standard, l’ultimo dei quali risale al 1999.

Naturalmente, visto l’ampio successo dei database relazionali, sono molti gli RDBMS presenti sul mercato: tra i principali, citiamo IBM DB2, Oracle, Microsoft SQL Server, Sybase, Filemaker Pro, Microsoft Access, Informix, PostgreSQL, SQLite, oltre naturalmente a MySql, sviluppato dalla compagnia svedese MySQL AB. Alcuni di questi sono software proprietari, mentre altri fanno parte della categoria open source: questi ultimi, fra quelli citati, sono MySql, PostgreSQL ed SQLite.

Ovviamente ogni software ha le sue caratteristiche, e la grande diffusione dei DB relazionali portò l’inventore del modello a definire, nel 1985, una serie di regole (“le 12 regole” di Codd, che potete leggere qui in inglese e qui in italiano) alle quali un DBMS dovrebbe attenersi per potersi considerare Relazionale.

Interpretando rigidamente queste regole, sono ben pochi (o forse nessuno?!) i sistemi che potrebbero propriamente fregiarsi di questo titolo. Anche a MySql, soprattutto nelle versioni non recentissime, mancano alcune funzionalità come le viste e l’integrità referenziale, a causa delle quali si può sostenere che non sia del tutto corretto considerare MySql come un RDBMS; qualcuno infatti preferisce definirlo “un DBMS con supporto SQL”.

Tuttavia la versione 5.0 di MySql, finalmente resa disponibile come stabile il 24 ottobre 2005, introduce nuove funzionalità che vanno a colmare (anche se non ancora completamente) le lacune cui abbiamo accennato, e soprattutto mettono MySql sullo stesso piano dei DBMS concorrenti relativamente a caratteristiche avanzate come i triggers, le viste, le stored procedures, i cursori.

In sostanza, quello che già era il più diffuso database open source diventa un vero e proprio DBMS di livello enterprise.

In questa guida faremo una vasta carrellata sulle caratteristiche e il funzionamento di MySQL; tuttavia, ovvie esigenze di sintesi ci costringeranno a trascurare alcuni aspetti, per cui vi anticipiamo che non troverete qui documentazione riguardo a caratteristiche avanzate come replication e clustering. È chiaro che per qualsiasi informazione non troviate in questa guida potrete rivolgervi alla documentazione ufficiale di MySQL.

The following two tabs change content below.

Lorenzo Lanzarone

Administrator
Software Engineer presso Open Data, Gruppo Zucchetti. Administrator di TechEarthBlog e ViewSoftware. Dottore Magistrale in Informatica. Sito web: www.lorenzolanzarone.it