Pubblicità

Corso Database – Operazioni relazionali – Lezione 2

Argomenti

Il Modello Relazionale e l’Algebra Relazionale

Il modello relazionale rappresenta uno dei pilastri fondamentali dei database moderni. Introdotto per garantire ordine, coerenza e affidabilità nella gestione dei dati, esso si basa su concetti matematici ben definiti e su un insieme di regole che assicurano l’integrità e l’indipendenza delle informazioni rispetto alle applicazioni che le utilizzano.

Le regole del modello relazionale

Nel modello relazionale, i dati sono organizzati in tabelle (o relazioni) composte da righe e colonne. Ogni tabella rappresenta un insieme di dati omogenei e ogni valore deve essere accessibile senza ambiguità. Questo è garantito dalla chiave primaria, che identifica in modo univoco ogni riga della tabella.

Un aspetto cruciale è il trattamento sistematico del valore NULL. Il DBMS deve gestire correttamente le informazioni mancanti o non applicabili, distinguendole chiaramente da qualsiasi altro valore possibile e trattandole sempre in modo uniforme.

Un’altra caratteristica fondamentale è la presenza di un dizionario dei dati (o dizionario del modello relazionale), che descrive la struttura del database e i suoi oggetti a livello logico. Questo dizionario è accessibile con le stesse modalità utilizzate per interrogare i dati, garantendo trasparenza e coerenza.

Il modello relazionale prevede inoltre:

  • Accessibilità dei dati tramite almeno un linguaggio relazionale (come SQL), utilizzabile sia in modo interattivo sia all’interno delle applicazioni.
  • Aggiornabilità delle viste, ovvero la possibilità di modificare i dati attraverso viste quando ciò è concettualmente possibile.
  • Manipolazione dei dati ad alto livello, che consente di operare su insiemi di dati e non solo su singoli record.
  • Indipendenza fisica e logica, che separa la struttura logica del database dalle modalità di memorizzazione fisica e dalle applicazioni.
  • Gestione dei vincoli di integrità nel database, e non nel codice applicativo.
  • Indipendenza di localizzazione, che rende trasparente la distribuzione dei dati su più sistemi.
  • Regola di non sovversione, che impedisce agli strumenti di accesso di aggirare i vincoli e le regole di sicurezza.

Esempi di SQL nel modello relazionale

Per rendere più concreti i concetti del modello relazionale e dell’algebra relazionale, vediamo alcuni esempi in SQL, il linguaggio relazionale più utilizzato nei DBMS.

Creazione di una tabella e chiave primaria

CREATE TABLE Studente (
    Matricola INT AUTO_INCREMENT PRIMARY KEY,
    Nome VARCHAR(50) NOT NULL,
    Cognome VARCHAR(50) NOT NULL,
    Corso VARCHAR(50)
);

In questo esempio la colonna Matricola è la chiave primaria e garantisce l’accesso univoco a ogni riga della tabella.

Inserimento di dati e valore NULL

INSERT INTO Studente (Matricola, Nome, Cognome, Corso)
VALUES ( 'Mario', 'Rossi', 'Informatica');

INSERT INTO Studente (Matricola, Nome, Cognome, Corso)
VALUES ('Luisa', 'Bianchi', NULL);

Il valore NULL indica che l’informazione non è disponibile o non applicabile, e viene gestito in modo uniforme dal DBMS.

Selezione (σ) – filtro delle righe

SELECT *
FROM Studente
WHERE Corso = 'Informatica';

Questa query corrisponde all’operazione di selezione dell’algebra relazionale: restituisce solo le righe che soddisfano la condizione.

Proiezione (π) – selezione delle colonne

SELECT Nome, Cognome
FROM Studente;

Qui viene applicata una proiezione, poiché si estraggono solo alcune colonne della relazione.

Join tra tabelle

Supponiamo di avere una seconda tabella:

CREATE TABLE Esame (
    ID INT AUTO_INCREMENT PRIMARY KEY,
    Matricola INT NOT NULL,
    Materia VARCHAR(50) NOT NULL,
    Voto INT NOT NULL,
    DATA_ESAME DATE NOT NULL,
    FOREIGN KEY (Matricola) REFERENCES Studente(Matricola))
);

Inner join

SELECT Studente.Nome, Studente.Cognome, Esame.Materia, Esame.Voto
FROM Studente
INNER JOIN Esame
ON Studente.Matricola = Esame.Matricola;

L’inner join restituisce solo i record per cui esiste una corrispondenza tra le due tabelle.

Left join

SELECT Studente.Nome, Studente.Cognome, Esame.Materia, Esame.Voto
FROM Studente
LEFT JOIN Esame
ON Studente.Matricola = Esame.Matricola;

Il left join include tutti gli studenti, anche quelli che non hanno ancora sostenuto esami.


L’algebra relazionale

Accanto al modello relazionale troviamo l’algebra relazionale, un insieme di operazioni formali che permettono di manipolare e interrogare i dati. In questo contesto:

  • una relazione è un insieme di righe (record) e colonne (attributi);
  • il numero di righe prende il nome di cardinalità;
  • il numero di colonne è detto grado.

L’algebra relazionale definisce diverse operazioni che consentono di ottenere nuove relazioni a partire da quelle esistenti.

Operazioni fondamentali

  • Proiezione (π): consente di selezionare solo alcune colonne di una relazione, riducendone il grado.
  • Selezione (σ): permette di estrarre solo le righe che soddisfano una determinata condizione, riducendo la cardinalità.
  • Prodotto cartesiano: combina tutte le righe di una relazione con tutte quelle di un’altra, generando una nuova relazione con cardinalità pari al prodotto delle cardinalità di partenza.

Operazioni di join

Le operazioni di join permettono di combinare dati provenienti da più relazioni sulla base di attributi comuni:

  • Inner join (o equal join): restituisce solo le righe con valori corrispondenti negli attributi comuni.
  • Left join: include tutte le righe della relazione di sinistra, anche se non esistono corrispondenze nella relazione di destra.
  • Right join: include tutte le righe della relazione di destra, anche se non esistono corrispondenze nella relazione di sinistra.

Grazie a queste operazioni, l’algebra relazionale fornisce le basi teoriche per i linguaggi di interrogazione dei database, come l’SQL.


Quiz di autovalutazione

10. Perché i vincoli di integrità devono essere definiti nel database?
A. Per aumentare la complessità del codice
B. Per separarli dalle applicazioni
C. Per impedirne la modifica
D. Per rendere il database inutilizzabile

Video della lezione – 2

Pubblicità