In generale i Vincoli sono dei controlli specifici che vengono implementati in una o più colonne di una tabella.
I vincoli intra-relazionali coinvolgono una o più tuple di una singola relazione operano quindi sugli attributi di una tabella essi sono:
Nel caso in cui il vincolo coinvolge una singolo valore di una singola tupla si parla di:
-vincolo di dominio= ė il vincolo di base infatti va specificato per ogni attributo.
-vincolo NOT null = viene inserito all interno delle tuple o righe.
Il vincolo potrebbe coinvolgere più valori di una singola tupla come ad esempio:
ESAMI(STUDENTE,MATERIA,DATA,VOTO,LODE) la LODE può essere assegnata solo se il VOTO è 30
Nel caso in cui il vincolo coinvolge più tuple di una singola relazione si parla di :
-vincoli di chiave =vengono specificate le chiavi candidate( chiave primaria ,chiave univoca, super chiave)
I vincoli inter-relazionali coinvolgono tuple appartenenti a relazioni diverse.
Esistono due tipi di vincoli inter-relazionali :
-vincolo di integrità referenziale , genera dei legami tra i valori dell'attributo di una tabella e i valori dell'attributo di un'altra tabella. REFERENCES specifica i vincoli di colonna e FOREIGN KEY specifica i vincoli di riga.
-vincolo di tupla=I vincoli di tupla esprimono condizioni che devono essere soddisfatte da ciascuna tupla.
Esempio
Esami(Matricola, Corso,Voto, Lode)
Il Voto deve essere compreso tra 18 e 30:
(Voto ≥ 18) AND (Voto ≤ 30)