I vincoli di integrità sono un insieme di regole che il DBMS applica automaticamente per garantire che i dati siano sempre corretti e coerenti. Si dividono in due categorie.

Vincoli intra-relazionali (su una sola tabella)

Sono vincoli che coinvolgono attributi di una sola tabella.

Vincoli sugli attributi:

Vincolo Descrizione Esempio SQL
NOT NULL Il campo non può essere vuoto nome VARCHAR(50) NOT NULL
UNIQUE Tutti i valori nella colonna devono essere diversi email VARCHAR(100) UNIQUE
CHECK Il valore deve soddisfare una condizione logica CHECK (età >= 0 AND età <= 120)
DEFAULT Valore assegnato automaticamente se non specificato stato VARCHAR(10) DEFAULT 'attivo'
PRIMARY KEY Combina UNIQUE + NOT NULL. Identifica la riga. id INT PRIMARY KEY

Vincoli statici vs. dinamici:

Vincoli inter-relazionali (tra più tabelle)

Riguardano le chiavi esterne (FOREIGN KEY) e definiscono il comportamento quando si inseriscono, modificano o eliminano dati in tabelle collegate.

Si definiscono due ruoli:

Regole di inserimento nel Figlio

Regola Comportamento
Dipendente (standard) Inserimento permesso solo se il valore FK esiste già nel Padre
Automatica Se il Padre non esiste, viene creato automaticamente prima di inserire il Figlio
Nulla Se il Padre non esiste, la FK nel Figlio viene impostata a NULL
Default Se il Padre non esiste, la FK viene impostata al valore di default
Nessun effetto Nessun controllo di esistenza (sconsigliato)

Regole di cancellazione del Padre (ON DELETE)