Glossario Database
Glossario verificato
Basi di dati relazionali e NoSQL: modello, transazioni, indici, query, integrità e scalabilità.
-
A
-
Algebra relazionale
Linguaggio formale procedurale che descrive le interrogazioni come sequenze di operatori su relazioni (selezione, proiezione, unione, differenza, prodotto cartesiano, join), restituendo sempre nuove relazioni. -
Anomalie di aggiornamento
Incoerenze che si manifestano in schemi non normalizzati per effetto della ridondanza: anomalie di inserimento, di cancellazione e di modifica, in cui operare su una tupla lascia i dati in stato incoerente. -
Associazione (relationship)
Nel modello ER, legame logico fra due o più entità che ne descrive l'interazione (ad esempio «studente sostiene esame»); è caratterizzata da grado e cardinalità e può possedere attributi propri. -
Atomicità
Proprietà transazionale (la A di ACID) per cui una transazione è indivisibile: le sue operazioni vengono eseguite tutte con successo oppure nessuna, ripristinando lo stato iniziale in caso di interruzione. -
Attributo (colonna)
Colonna di una relazione, cioè una proprietà denominata che assume valori entro un dominio prestabilito; l'insieme degli attributi definisce lo schema della relazione e ne determina il grado. -
B
-
BASE
Modello di coerenza dei sistemi distribuiti alternativo ad ACID, acronimo di Basically Available, Soft state, Eventually consistent: privilegia disponibilità e tolleranza alle partizioni accettando coerenza solo a regime. -
Blocco a due fasi (2PL)
Protocollo di controllo della concorrenza in cui ogni transazione acquisisce tutti i blocchi necessari (fase di espansione) prima di iniziare a rilasciarli (fase di contrazione); garantisce la serializzabilità dei conflitti. -
C
-
Cardinalità di un'associazione
Vincolo che specifica quante istanze di un'entità possono essere collegate a istanze di un'altra in un'associazione, secondo i rapporti uno-a-uno (1:1), uno-a-molti (1:N) o molti-a-molti (N:M). -
Cardinalità di una relazione
Numero di tuple (righe) contenute in una relazione in un dato istante; a differenza del grado, che riguarda le colonne dello schema, varia continuamente nel tempo per effetto delle operazioni di inserimento e cancellazione. -
Chiave candidata
Superchiave minimale, cioè insieme di attributi che identifica univocamente le tuple e da cui non si può togliere alcun attributo mantenendo l'unicità; fra le chiavi candidate se ne elegge una come chiave primaria. -
Chiave esterna (foreign key)
Attributo o gruppo di attributi di una tabella che referenzia la chiave primaria (o una chiave candidata) di un'altra tabella, stabilendo un legame fra relazioni e imponendo il vincolo di integrità referenziale. -
Chiave primaria
Attributo o insieme minimale di attributi scelto per identificare univocamente ogni tupla di una relazione; non ammette valori NULL né duplicati e realizza il vincolo di integrità di entità. -
Commit (transazione)
Operazione che conclude con successo una transazione rendendone permanenti e visibili tutte le modifiche; dopo il commit gli effetti sono durevoli e non più annullabili con un rollback. -
Controllo della concorrenza
Insieme di tecniche (blocchi, timestamp, MVCC) con cui un DBMS coordina l'esecuzione simultanea di più transazioni preservando l'isolamento e la coerenza dei dati ed evitando anomalie e interferenze. -
D
-
Data warehouse
Base di dati integrata, orientata ai soggetti e non volatile, che raccoglie dati storici da più sorgenti operative per supportare analisi e reportistica decisionale; è ottimizzata per interrogazioni analitiche (OLAP). -
Database a grafo
Modello NoSQL che rappresenta i dati come nodi collegati da archi dotati di proprietà, ottimizzato per interrogare relazioni complesse e percorsi; esempi sono Neo4j e Amazon Neptune. -
Database chiave-valore
Modello NoSQL che archivia i dati come coppie di una chiave univoca e un valore opaco, offrendo accessi molto rapidi per chiave; adatto a cache e sessioni, come in Redis o Amazon DynamoDB. -
Database colonnare (wide-column)
Modello NoSQL che organizza i dati per famiglie di colonne anziché per righe, con righe che possono avere colonne diverse; è ottimizzato per grandi volumi e scritture distribuite, come Cassandra o HBase. -
Database documentale
Tipo di database NoSQL che memorizza i dati come documenti semi-strutturati e auto-descrittivi (tipicamente JSON o BSON), raggruppati in collezioni prive di schema rigido; sistema di riferimento è MongoDB. -
DDL (Data Definition Language)
Sottoinsieme di SQL dedicato alla definizione e modifica della struttura degli oggetti del database, con comandi come CREATE, ALTER e DROP applicati a tabelle, viste, indici e vincoli. -
Denormalizzazione
Introduzione controllata di ridondanza in uno schema già normalizzato per ridurre il numero di join e velocizzare le letture, accettando in cambio un maggior rischio di anomalie e costi di aggiornamento. -
Diagramma ER
Rappresentazione grafica del modello entità-relazione che raffigura entità, attributi e associazioni con una notazione simbolica (rettangoli, ovali, rombi o notazione a piedi di gallina), usata come schema concettuale. -
Dipendenza funzionale
Vincolo semantico fra attributi per cui il valore di un insieme X determina univocamente il valore di un insieme Y (X→Y); è il concetto cardine su cui si fondano le forme normali e l'analisi della ridondanza in fase di progettazione. -
Dipendenza funzionale transitiva
Dipendenza indiretta in cui un attributo non chiave dipende dalla chiave attraverso un altro attributo non chiave (se A→B e B→C allora A→C); la sua eliminazione è richiesta dalla terza forma normale. -
DML (Data Manipulation Language)
Sottoinsieme di SQL per la manipolazione dei dati contenuti nelle tabelle, con i comandi INSERT, UPDATE e DELETE che aggiungono, modificano o rimuovono tuple; opera sul contenuto senza alterare la struttura degli oggetti. -
Dominio
Insieme dei valori atomici ammissibili per un attributo, con il relativo tipo di dato (interi, stringhe, date); definisce i valori legali che una colonna può contenere e sta alla base dei vincoli di tipo. -
DQL (Data Query Language)
Parte di SQL dedicata all'interrogazione dei dati, imperniata sul comando SELECT, che estrae e combina tuple dalle tabelle senza alterarne il contenuto; talvolta considerata parte del DML. -
Durabilità
Proprietà transazionale (la D di ACID) che garantisce la persistenza permanente delle modifiche di una transazione confermata anche in caso di guasto o interruzione dell'alimentazione, tipicamente tramite log. -
E
-
Entità
Nel modello ER, oggetto o concetto del dominio distinguibile e dotato di esistenza autonoma (persona, prodotto, ordine), descritto da attributi e tipicamente tradotto in una tabella nello schema relazionale. -
ETL (Extract, Transform, Load)
Processo che estrae dati da sorgenti eterogenee, li trasforma (pulizia, normalizzazione, integrazione) e li carica in un data warehouse o data store analitico; è una fase preparatoria fondamentale della business intelligence. -
F
-
Forma normale di Boyce-Codd (BCNF)
Versione più restrittiva della 3NF in cui, per ogni dipendenza funzionale non banale X→Y, il determinante X deve essere una superchiave; elimina anomalie residue legate a chiavi candidate sovrapposte. -
Funzione di aggregazione
Funzione SQL che riduce un insieme di righe a un unico valore riepilogativo, come COUNT, SUM, AVG, MIN e MAX; usata tipicamente insieme alla clausola GROUP BY, calcola un risultato per ciascun gruppo oppure sull'intera tabella. -
G
-
Grado (arietà)
Numero di attributi (colonne) di una relazione; una relazione con n attributi si dice di grado n. È una proprietà dello schema, indipendente dal numero di tuple contenute, e va distinto dalla cardinalità che conta invece le righe. -
GROUP BY
Clausola SQL che raggruppa le righe con valori uguali in una o più colonne, così da applicare a ciascun gruppo le funzioni di aggregazione; la clausola HAVING filtra i gruppi risultanti. -
I
-
Indice
Struttura dati ausiliaria associata a una tabella che velocizza la ricerca e l'ordinamento sui valori di una o più colonne, evitando la scansione completa; accelera le letture ma rallenta le scritture. -
Indice B-tree
Indice basato su un albero di ricerca bilanciato che mantiene le chiavi ordinate e garantisce ricerche, inserimenti e cancellazioni in tempo logaritmico; è il tipo di indice predefinito nei principali DBMS relazionali. -
Indice composto
Indice costruito su due o più colonne, efficace per le interrogazioni che filtrano sul prefisso sinistro delle colonne indicizzate; l'ordine delle colonne ne determina l'utilizzabilità. -
Inner join
Tipo di join che restituisce solo le coppie di righe delle tabelle coinvolte che soddisfano la condizione di correlazione, escludendo del tutto le righe prive di corrispondenza nell'altra tabella; è la forma di join predefinita. -
Integrità dei dati
Correttezza, coerenza e affidabilità dei dati lungo il loro ciclo di vita, garantita dai vincoli di integrità (di dominio, di entità, referenziale e definiti dall'utente) applicati dal DBMS. -
Integrità di entità
Vincolo del modello relazionale secondo cui nessun attributo che compone la chiave primaria di una relazione può assumere valore NULL, così da garantire che ogni tupla sia identificabile in modo univoco. -
Isolamento
Proprietà transazionale (la I di ACID) che regola quanto gli effetti di una transazione in corso siano visibili alle altre eseguite in concorrenza, così da far apparire l'esecuzione come se fosse seriale. -
J
-
JOIN
Operazione SQL che combina le righe di due o più tabelle in base a una condizione di correlazione, tipicamente l'uguaglianza fra una chiave esterna e la chiave primaria referenziata. -
L
-
Lettura fantasma (phantom read)
Anomalia in cui una transazione riesegue una query con condizione di ricerca e ottiene un insieme di righe diverso perché un'altra transazione ha inserito o eliminato tuple corrispondenti; è prevenuta dal livello Serializable. -
Lettura sporca (dirty read)
Anomalia di concorrenza in cui una transazione legge dati modificati da un'altra transazione non ancora confermata; se quest'ultima subisce rollback, il valore letto risulta inesistente. È evitata dal livello Read Committed. -
Livelli di isolamento
Gradi standard con cui SQL bilancia coerenza e concorrenza (Read Uncommitted, Read Committed, Repeatable Read, Serializable); i livelli più bassi tollerano anomalie come letture sporche o fantasma in cambio di più parallelismo. -
Lock (blocco)
Meccanismo di controllo della concorrenza che riserva a una transazione l'accesso a una risorsa (riga, pagina, tabella), impedendo ad altre operazioni conflittuali di procedere finché il blocco non viene rilasciato. -
Lock condiviso ed esclusivo
Due modalità di blocco: quello condiviso (S, in lettura) è compatibile con altri blocchi condivisi; quello esclusivo (X, in scrittura) esclude ogni altro blocco sulla stessa risorsa, serializzando le modifiche. -
M
-
Modello entità-relazione (ER)
Modello concettuale, ideato da Peter Chen, che rappresenta i dati mediante entità, i loro attributi e le associazioni fra entità; è indipendente dal DBMS e precede la traduzione nello schema logico. -
Modello relazionale
Modello logico dei dati proposto da Edgar F. Codd nel 1970 in cui l'informazione è organizzata in relazioni (tabelle) composte da tuple e attributi, e le interrogazioni si esprimono tramite l'algebra o il calcolo relazionale. -
MVCC (controllo della concorrenza multiversione)
Tecnica che mantiene più versioni di ogni riga così che le letture accedano a uno snapshot coerente senza bloccare le scritture e viceversa; è adottata da PostgreSQL, Oracle e altri DBMS. -
N
-
Normalizzazione
Processo di progettazione che scompone le relazioni in base alle dipendenze funzionali per ridurre la ridondanza ed eliminare le anomalie di inserimento, aggiornamento e cancellazione, attraverso una scala di forme normali. -
NoSQL
Famiglia di sistemi di gestione dati non relazionali, nati per la scalabilità orizzontale e schemi flessibili; comprende i modelli documentale, chiave-valore, colonnare e a grafo, spesso con garanzie di coerenza attenuate (BASE). -
O
-
OLAP
Online Analytical Processing: classe di sistemi orientati all'analisi di grandi volumi di dati storici mediante interrogazioni complesse e aggregazioni multidimensionali, tipicamente su data warehouse e schemi denormalizzati. -
OLTP
Online Transaction Processing: classe di sistemi che gestiscono numerose transazioni brevi e concorrenti di lettura e scrittura tipiche delle applicazioni operative, con schemi normalizzati e forte attenzione all'integrità. -
Ottimizzatore di query (query optimizer)
Componente del DBMS che, per una data interrogazione, genera piani di esecuzione alternativi e sceglie quello di costo stimato minimo, sfruttando statistiche su dati e indici; è determinante per le prestazioni delle query complesse. -
Ottimizzazione basata sui costi (cost-based)
Strategia dell'ottimizzatore che assegna un costo stimato a ogni piano candidato in base a statistiche su cardinalità, selettività e distribuzione dei dati, scegliendo il piano meno oneroso; alternativa all'approccio basato su regole. -
Outer join
Join che, oltre alle righe corrispondenti, conserva anche quelle senza corrispondenza in una tabella (LEFT), nell'altra (RIGHT) o in entrambe (FULL), completando con NULL i valori mancanti. -
P
-
Partizionamento
Suddivisione di una tabella o di un indice di grandi dimensioni in porzioni più piccole e gestibili; può essere orizzontale (per righe) o verticale (per colonne) e migliora prestazioni e manutenibilità. -
Piano di esecuzione (query plan)
Sequenza ordinata di operazioni fisiche (scansioni, accessi a indice, join, ordinamenti) che il DBMS sceglie per eseguire un'interrogazione; è ispezionabile con comandi come EXPLAIN per l'analisi delle prestazioni. -
Prima forma normale (1NF)
Livello di base della normalizzazione in cui ogni attributo di una relazione contiene solo valori atomici e indivisibili, senza gruppi ripetuti né attributi multivalore o annidati; è il presupposto di tutte le forme normali superiori. -
Q
-
Query planner
Modulo del motore di interrogazione che traduce l'istruzione SQL nell'insieme dei possibili piani di esecuzione e, in stretta collaborazione con l'ottimizzatore, produce il piano da eseguire; in molti DBMS i due termini coincidono. -
Quorum
Numero minimo di nodi replica che devono confermare un'operazione perché sia considerata valida; con la regola W+R>N sui quorum di scrittura e lettura si garantisce che ogni lettura veda l'ultimo dato scritto. -
R
-
Replica
Mantenimento di copie sincronizzate degli stessi dati su più nodi per aumentare disponibilità, tolleranza ai guasti e capacità di lettura; può essere sincrona o asincrona secondo i requisiti di coerenza. -
Replica master-slave
Schema di replica in cui un nodo primario (master) riceve tutte le scritture e le propaga a nodi secondari (slave) di sola lettura; distribuisce il carico di lettura, ma il primario resta punto singolo per le scritture. -
Rollback (transazione)
Operazione che annulla una transazione riportando la base di dati allo stato precedente al suo avvio; può essere richiesta esplicitamente o innescata automaticamente da un errore o da una violazione di vincoli. -
S
-
Schema a fiocco di neve (snowflake schema)
Variante dello schema a stella in cui le tabelle dimensionali sono normalizzate in ulteriori sotto-tabelle collegate, riducendo la ridondanza a costo di join aggiuntivi e di una maggiore complessità delle interrogazioni. -
Schema a stella (star schema)
Modello dimensionale di data warehouse con una tabella dei fatti centrale collegata a più tabelle dimensionali denormalizzate disposte a raggiera; minimizza i join e velocizza le interrogazioni analitiche. -
Schema di relazione
Descrizione della struttura di una tabella: nome della relazione e insieme dei suoi attributi con i rispettivi domini; è distinto dall'istanza, cioè dall'insieme delle tuple presenti in un dato momento. -
Seconda forma normale (2NF)
Forma normale che presuppone la 1NF ed elimina le dipendenze parziali: ogni attributo non chiave deve dipendere dall'intera chiave primaria e non solo da una sua parte, condizione rilevante con chiavi composte. -
SELECT
Comando SQL fondamentale per interrogare le tabelle: proietta le colonne desiderate, filtra le righe con la clausola WHERE e può ordinare, raggruppare e combinare dati provenienti da più relazioni. -
Serializzabilità
Criterio di correttezza dell'esecuzione concorrente per cui il risultato di un insieme di transazioni intrecciate equivale a quello di una loro esecuzione seriale; è il livello di isolamento più forte. -
Sharding
Partizionamento orizzontale dei dati distribuito su più server (shard) in base a una chiave di sharding, così da scalare oltre i limiti di una singola macchina; ogni shard contiene un sottoinsieme distinto delle righe. -
Sottoquery (subquery)
Interrogazione SELECT annidata all'interno di un'altra istruzione SQL, nelle clausole WHERE, FROM o SELECT; può restituire un valore scalare, una colonna o una tabella e può essere correlata alla query esterna. -
SQL (Structured Query Language)
Linguaggio dichiarativo standard (ISO/IEC 9075) per definire, interrogare e manipolare basi di dati relazionali; comprende sottolinguaggi per la definizione (DDL), la manipolazione (DML) e l'interrogazione (DQL) dei dati. -
Superchiave
Insieme di attributi di una relazione i cui valori identificano univocamente ogni tupla; a differenza della chiave candidata può contenere attributi ridondanti non necessari all'unicità. -
T
-
Tabella (relazione)
Struttura fondamentale del modello relazionale che rappresenta un insieme di righe (tuple) con la stessa struttura di colonne (attributi); formalmente corrisponde a una relazione definita su un insieme di domini. -
Tabella dei fatti (fact table)
Tabella centrale di uno schema dimensionale che contiene le misure quantitative di un processo di business (importi, quantità) insieme alle chiavi esterne verso le tabelle dimensionali. -
Tabella dimensionale (dimension table)
Tabella di uno schema dimensionale che contiene gli attributi descrittivi (il contesto) con cui filtrare e aggregare le misure della tabella dei fatti, come tempo, prodotto, cliente o luogo. -
Teorema CAP
Principio formulato da Eric Brewer secondo cui un sistema di dati distribuito non può garantire simultaneamente coerenza (C), disponibilità (A) e tolleranza alle partizioni di rete (P), ma solo due delle tre proprietà. -
Terza forma normale (3NF)
Forma normale che, oltre alla 2NF, elimina le dipendenze transitive: nessun attributo non chiave deve dipendere da un altro attributo non chiave, ma solo direttamente dalle chiavi candidate. -
Trigger
Procedura memorizzata nel database che si attiva automaticamente in risposta a eventi DML (INSERT, UPDATE, DELETE) su una tabella, usata per applicare regole di integrità, calcoli derivati o tracciamento delle modifiche. -
Tupla (riga)
Singola riga di una tabella relazionale: insieme di valori, uno per ciascun attributo dello schema, che descrive una specifica istanza di entità o associazione; in algebra relazionale è un elemento della relazione. -
V
-
Valore NULL
Marcatore speciale che indica l'assenza o l'inapplicabilità di un valore in un attributo; non equivale a zero né alla stringa vuota e richiede una logica a tre valori (vero, falso, sconosciuto) nelle condizioni. -
Vincolo (constraint)
Regola dichiarativa che limita i valori ammissibili in una o più colonne per preservare l'integrità dei dati; comprende chiave primaria, chiave esterna, UNIQUE, NOT NULL e CHECK, verificati automaticamente dal DBMS. -
Vincolo CHECK
Vincolo che impone a ogni riga il soddisfacimento di una condizione booleana su uno o più attributi (ad esempio prezzo maggiore di zero), rifiutando gli inserimenti o gli aggiornamenti che la violano. -
Vincolo di integrità referenziale
Regola che impone a ogni valore di una chiave esterna di corrispondere a una tupla esistente nella tabella referenziata (oppure di essere NULL), impedendo riferimenti pendenti; gestita con azioni come CASCADE o RESTRICT. -
Vincolo UNIQUE
Vincolo che impedisce valori duplicati in una colonna o in una combinazione di colonne, garantendone l'unicità pur ammettendo di norma (a differenza della chiave primaria) un valore NULL. -
Vista (view)
Tabella virtuale definita da una query memorizzata: non conserva dati propri ma ne calcola il contenuto a ogni accesso, semplificando le interrogazioni complesse e controllando la visibilità dei dati. -
Vista materializzata
Vista il cui risultato è fisicamente memorizzato e periodicamente aggiornato (rinfrescato), così da accelerare interrogazioni onerose a scapito di un possibile disallineamento dai dati sorgente. -
W
-
Write-ahead log (WAL)
Tecnica di registrazione in cui ogni modifica viene scritta in un file di log sequenziale prima di essere applicata ai dati veri e propri, così da garantire la durabilità e permettere il ripristino dopo un guasto.