Concetti Fondamentali di Database: SQL, Relazioni e Gestione Dati

Classificato in Informatica

Scritto il in italiano con una dimensione di 5,05 KB

Join Esterno

Il JOIN ESTERNO permette di preservare le informazioni delle righe che andrebbero altrimenti perse con il join interno, riempendo i campi della tabella mancante con valori NULL.

  • Sinistro (LEFT JOIN): mantiene tutte le righe della prima tabella (sinistra). Se per una riga non c'è corrispondenza in quella di destra, i campi di quest'ultima conterranno NULL.
  • Destro (RIGHT JOIN): mantiene tutte le tuple del secondo operando.
  • Completo (FULL JOIN): mantiene tutte le tuple di entrambi gli operandi.

Ridondanza in una Base di Dati

La ridondanza indica la presenza di informazioni ripetute o facilmente ricavabili all'interno del sistema. Sebbene possa migliorare l'efficienza delle prestazioni, comporta spreco di memoria e anomalie di aggiornamento.

Esempio: In una tabella con matricola, nome, cognome, codice corso, voto, se uno studente cambia cognome, è necessario modificare il dato in tutte le occorrenze presenti.

Superchiave, Chiave e Chiave Primaria

  • Superchiave: un insieme di attributi k della relazione r che permette di identificare univocamente le tuple. Non esistono due tuple distinte t1 e t2 tali che t1[k] = t2[k].
  • Chiave: una superchiave minimale, ovvero un insieme di attributi che identifica univocamente le tuple.
  • Chiave Primaria: ne esiste solo una per ciascuna relazione, non ammette valori NULL ed è utilizzata per coordinare i legami tra le tabelle.

Differenze tra SQL e Algebra Relazionale

  • Algebra Relazionale: linguaggio procedurale che specifica come ottenere il risultato. Si basa sulla teoria degli insiemi (non ammette duplicati) e non prevede operatori di aggregazione.
  • SQL: linguaggio dichiarativo che specifica cosa si vuole ottenere. Gestisce multinsiemi (ammette duplicati) e include funzioni di aggregazione (SUM, AVG) e clausole come GROUP BY e HAVING.

Gestione della Concorrenza

Poiché le basi di dati sono condivise, il DBMS utilizza meccanismi di controllo per garantire l'isolamento delle transazioni, la serializzabilità e la trasparenza.

  • Lock: prima di operare su un oggetto, la transazione richiede il permesso al gestore.
  • Protocollo Strict 2PL: la transazione acquisisce i lock necessari, ma nessun lock viene rilasciato fino alla conclusione definitiva della transazione.

Vincoli di Integrità

I vincoli di integrità sono proprietà che ogni istanza corretta deve soddisfare, fungendo da filtro contro inserimenti o modifiche errate.

  • Chiave Primaria: garantisce univocità (nessun duplicato) e obbligatorietà (nessun valore NULL).
  • Check: impone una condizione booleana (es. CHECK (stipendio >= 1 AND stipendio <= 1000)).

Schema Logico, Fisico ed Esterno

  • Schema Esterno: descrizione di una porzione di database per un utente specifico.
  • Schema Logico: descrizione dell'intera base di dati in termini di costrutti del modello.
  • Schema Fisico: descrizione di come i dati sono registrati sui dispositivi di memoria.
  • Indipendenza Fisica: possibilità di modificare la struttura fisica senza alterare il livello logico.
  • Indipendenza Logica: possibilità di modificare il livello logico senza che gli utenti dello schema esterno se ne accorgano.

DBMS: Definizione e Funzioni

Il DBMS è un sistema software che gestisce grandi collezioni di dati in modo sicuro, efficiente e condiviso, fungendo da intermediario tra i dati fisici e gli utenti.

Dipendenza Funzionale

Dati due insiemi di attributi X e Y, si ha dipendenza funzionale X → Y se, quando due righe hanno lo stesso valore su X, devono avere lo stesso valore anche su Y.

Linguaggi SQL

  • DDL (Data Definition Language): per creare, eliminare o modificare oggetti.
  • DML (Data Manipulation Language): per leggere, inserire o modificare i dati.
  • DCL (Data Control Language): per gestire i permessi d'accesso.

Gestione delle Cancellazioni e Integrità Referenziale

  • RESTRICT: impedisce l'operazione se il dato è referenziato altrove.
  • CASCADE: propaga l'eliminazione o l'aggiornamento a catena.
  • SET NULL / SET DEFAULT: assegna un valore nullo o di default all'attributo referenziante.
  • NO ACTION: la modifica non è consentita se viola i vincoli di integrità.

Voci correlate: