Corso di Access: concetti fondamentali

In questa lezione impareremo qualche concetto fondamentale utile per la piena comprensione degli argomenti del corso. Si tratta di una sorta di glossario ampliato che riporta anche qualche esempio pratico.

Definizione di base di dati relazionale

Una base di dati relazionale viene anche denominata con la sigla RDBMS, acronimo derivante dall’espressione inglese Relational Data Base Management System. L’idea che sta alla base di questo modello operativo è che i singoli dati possono essere messi in relazione tra di loro per formare dati più significativi.

Per esempio, immaginiamo di essere degli informatori scientifici e di avere un quaderno dove poter scrivere i dati anagrafici dei medici che incontriamo. L’idea è di raggruppare tutti i dati in maniera organica in una tabella che funga da elenco telefonico. Con questa operazione di raggruppamento abbiamo messo in relazione i dati raccolti in maniera più o meno casuale per iscritto sul quaderno. Se definiamo a parte un elenco con tutti i farmaci di nostra competenza e che presentiamo ai vari medici, potremmo mettere in relazione l’elenco dei medici con quello dei farmaci per collegare i vari medici con tutti i farmaci che sono stati loro presentati; questa operazione potrebbe servire per capire quali sono i farmaci che abbiamo già presentato a un determinato medico.

Consiglio di leggere i seguenti due articoli:

Differenze tra Microsoft Office Access e Microsoft Office Excel

Sia Microsoft Office Access sia Microsoft Office Excel sono progettati per archiviare e gestire dati e informazioni con la possibilità di organizzarli in tabelle. La principale differenza che salta subito all’occhio è la difficoltà nel gestire grosse quantità di dati con Excel, difficoltà che può in molti casi essere ovviata con Access. La seconda differenza è la possibilità differenziare l’accessibilità dei dati in base alle tipologie di utente che vi effettuano l’accesso. Per esempio, se stiamo costruendo un registro elettronico con Access, abbiamo la possibilità di rendere accessibili i dati sul pagamento del costo di un corso soltanto ai dipendenti che compongono la segreteria della scuola oppure solo agli insegnanti le informazioni sull’andamento scolastico dei singoli studenti.

Introduzione a SQL

SQL, acronimo di Structured Query Language, è un linguaggio dichiarativo che permette di strutturare e manipolare i dati all’interno di un sistema di gestione dei dati (RDBMS). Si compone di tre gruppi di istruzioni e cioè

  • Data Definition Language, o DDL, in grado di definire come sono strutturati i dati
  • Data Query Language, o DQL, che permette di recuperare e leggere i dati
  • Data Manipulation Language, o DML, che permette di manipolare i dati, ovvero di aggiungerli, modificarli, aggiornarli ed eliminali.

Come precedentemente scritto SQL è un linguaggio dichiarativo e, cioè, fornisce tutte le istruzioni necessarie per indicare al DBMS cosa deve fare senza preoccuparsi dell’algoritmo specifico che sarà utilizzato per produrre il risultato desiderato. Per esempio, SQL comprende l’istruzione CREATE TABLE per comunicare al DBMS che dovrà creare una tabella; il DBMS conosce già le operazioni necessarie per poter creare una tabella quindi non sarà necessario fornire l’elenco di istruzioni necessario per arrivare a tale risultato.

Concetti base delle basi di dati relazionali

Di seguito, in ordine di difficoltà, riporto un elenco di concetti fondamentali con le relative spiegazioni.

  • Dato: è una qualsiasi rappresentazione di un’informazione all’interno della memoria di un computer.
  • Tipo di dato: è l’insieme dei valori che può assumere un dato. Per esempio, il tipo di dato “intero” indica l’insieme di tutti i numeri naturali interi sia positivi sia negativi, quindi non decimali.
  • Prodotto cartesiano: presi n tipi di dati, quindi insiemi di valori, è l’insieme di tutte le n-uple che posso scrivere attingendo i valori da tali insiemi. Per esempio, dato un insieme di interi chiamato A e un insieme di lettere chiamato B, il prodotto cartesiano l’insieme di tutte le coppie che posso scrivere prendendo un intero dall’insieme A e una lettera dall’insieme B.
  • Cardinalità: è il numero totale delle n-uple di un prodotto cartesiano.
  • Tabella: sottoinsieme di un prodotto cartesiano. Per esempio, una tabella che riporta i nomi e le date di nascita degli studenti iscritti a un corso è un sottoinsieme del prodotto cartesiano tra l’insieme di tutte le possibili stringhe e l’insieme di tutte le possibili date.
  • Dato: riprendiamo il concetto già definito ridefinendolo come una n-upla, o riga, di dati contenuti in una tabella. Un dato potrebbe essere composto da altri dati che, per capirci, potremmo chiamare “sottodati” oppure, in maniera più tecnica e precisa, attributo: per esempio, uno studente potrebbe essere composto da un nome (stringa) e una data di nascita (data). Ogni sottodato è, quindi, una caratteristica che definisce il dato composto. Se i sottodati appartengono tutti allo stesso tipo si dicono omogenei altrimenti, come nell’esempio dello studente composto da una stringa e una data, eterogenei.
  • Indice: è un attributo di una tabella che permette di cercare facilmente le righe di una tabella. Per esempio, in un libro gli indici corrispondono ai titoli e permettono appunto di costruire la pagina dell’indice che fa corrispondere ogni titolo al numero di pagina corrispondente.
  • Chiave primaria: si tratta della caratteristica, o attributo, o indice, in grado di identificare univocamente un dato (o riga) di una tabella. Per esempio, in una scuola il numero di matricola potrebbe essere un buon esempio di chiave primaria in quanto identifica univocamente uno studente.
  • Chiave esterna: si stratta della caratteristica, o attributo, o indice, in grado di collegare dati inseriti in due tabelle differenti. Per esempio, nel disegno sottostante, volendo rappresentare l’attività di una pasticceria, abbiamo una tabella con un elenco di fornitori e una tabella con un elenco di ingredienti. Per capire quale fornitore distribuisce un determinato ingrediente nella tabella ingredienti c’è un attributo denominato fornitore_ID che replica il valore ID, che costituisce la chiave primaria della tabella Fornitori e che permette a ogni fornitore di essere identificato univocamente. In questa maniera, per capire il fornitore di un determinato ingrediente è sufficiente fare un collegamento tra le due tabelle cercando nella colonna ID della tabella fornitore il corrispondente valore indicato nella colonna fornitore_ID della tabella Ingredienti.
Diagramma ER 01 database gestionale pasticceria
Il diagramma ER delle prime due tabelle del gestionale di esempio per una pasticceria.