Cosa sapere per affrontare la materia Basi di dati

Basi di dati è una materia trattata sia durante il quarto o il quinto anno di un Istituto Tecnico Industriale Statale (ITIS) alle scuole superiori, sia all’università come insegnamento caratterizzante di facoltà come Informatica e Ingegneria Informatica.  Il programma è molto vasto e, nonostante la natura prettamente pratica dell’argomento, spesso nelle scuole e all’università viene approfondito anche negli aspetti più teorici.

Sulle tematiche legate alle basi di dati c’è ampia letteratura, inoltre il crescente interesse per le aziende nell’ambito dell’analisi, ha reso importante e fiorente l’attività di ricerca in questo settore. Di conseguenza spesso i database sono l’argomento centrale anche in elaborati e tesi finali, sia per l’esame di maturità delle scuole superiori e sia all’università.

Il programma di Basi di dati

Generalmente si parte introducendo il modello relazionale, spiegando cos’è una relazione dal punto di vista matematico e come sia possibile rappresentare tali oggetti tramite le usuali tabelle di un DBMS. Negli ultimi anni, alcuni corsi universitari di Basi di dati presentano anche approcci diversi alla modellizzazione dei dati, analizzando ad esempio la struttura documentale di un database non relazionale come MongoDb.

Molto attenzione è posta ai tre stadi di progettazione di un database: concettuale, logica e fisica. Nella progettazione concettuale vengono individuate le entità e le relazioni che saranno descritte dal database, oltre ai relativi attributi. Questa fase è spesso finalizzata con la creazione di un diagramma E-R, a questo link (https://users.dimi.uniud.it/~massimo.franceschet/teatro-sql/diagrammaER.html) trovi degli approfondimenti a riguardo. Il modello Entità-Relazione non è l’unico paradigma possibile per progettare concettualmente un database.

Ultimamente nell’ambito dei Data Warehouse e dell’analisi dei dati sono utilizzati gli Star Schema dove la modellizzazione della base dei dati è guidata dalla descrizione dei “fatti” (o transazioni, in inglese Fact) e delle “dimensioni” (o anagrafiche, in inglese Dimension) che accadono e descrivono il particolare business rappresentato nel database.

Lo scopo della progettazione logica è quello di riportare il disegno concettuale su un DBMS (Data Base Management System) molto spesso di tipo relazionale, dove i dati sono organizzati in tabelle. Tra i DBMS più utilizzati in ambito didattico ricordiamo sicuramente MySql, noto per avere anche delle versioni gratuite ed open source.

Durante la progettazione logica è possibile sfruttare a pieno le potenzialità dei database per strutturare i dati in modo coerente. Ad ogni tabella ed alle sue relative colonne è possibile applicare una serie di regole (constraint) che vincoleranno le tipologie dei dati inseribili nel database. Esistono varie classi di vincoli, tutti fondamentali per garantire che i dati di partenza presenti nel database siano sufficientemente corretti, per poter affrontare e creare in futuro analisi e reportistiche. Esempi di vincoli sono:

  • per ogni colonna è possibile definire un tipo. In questo modo alcune colonne potranno contenere soltanto delle date, altre dei numeri decimali, altre ancora del testo generico, e così via;
  • per ogni colonna si può stabilire se potranno essere o meno inseriti dei null per identificare dei record dove quella colonna ha un valore sconosciuto;
  • per ogni tabella è possibile definire una chiave primaria, cioè una o più colonne che non ammettono valori duplicati.

La progettazione fisica lavora infine sulle strutture interne dei database all’interno delle quali sono salvati i dati. In questo stadio della progettazione viene deciso quali indici creare. Gli indici sono delle strutture dati ausiliari già ordinate che possono migliorare sensibilmente le performance di lettura e ricerca di un database, a patto però di rallentare le operazioni di scrittura, modifica e cancellazione.

Terminato lo studio della progettazione, sarà dedicato ampio spazio al linguaggio SQL, di cui parleremo nel prossimo paragrafo.

Il linguaggio SQL

L’SQL è il linguaggio di programmazione utilizzato per creare, popolare, aggiornare e interrogare un database. L’SQL è differente se confrontato con molti altri linguaggi di programmazione come Java, Python o C++. Si tratta infatti di un linguaggio dichiarativo english like, tramite il quale bisogna descrivere cosa deve essere fatto, senza specificare il come. Per questo da un lato i docenti devono utilizzare delle particolari strategie didattiche, dall’altro gli studenti devono fare attenzione a queste peculiarità e seguire un percorso differente di apprendimento.

Solitamente un corso di SQL non parte dai soliti costrutti if, while, for o dalla dichiarazione di variabili e costanti. L’obiettivo da cui partire deve essere imparare a scrivere le query per interrogare e analizzare i dati all’interno di un database. Per far ciò occorre imparare sette costrutti fondamentali che messi insieme formeranno del codice SQL facilmente interpretabile e comprensibile. I costrutti fondamentali sono: select, from, join, where, group by, having e order by. A questo link trovi ulteriori approfondimenti https://www.yimp.it/come-imparare-a-scrivere-una-query/.

Solo in una seconda fase di studio verranno introdotte le variabili e gli usuali costrutti della programmazione procedurale. Combinando i due approcci è possibile creare del codice molto potente che combina la leggibilità tipica dei linguaggi dichiarativi con la possibilità di parametrizzazione e controllo del flusso propri dell’approccio procedurale.

In questa fase diventa fondamentale fare esercizi direttamente sui database, non solo su fogli di carta. Soltanto sperimentando, provando, facendo debug di errori, si potrà acquisire pian piano consapevolezza di come usare il linguaggio SQL in modo performante e coerente.

Questo sito utilizza cookie tecnici per migliorare la tua navigazione. Clicca su Maggiori informazioni se vuoi saperne di più e su Accetto per dare il tuo consenso. Maggiori informazioni

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi