Esistono istanze di basi di dati nel modello relazionale che, pur sintatticamente corrette, non rappresentano informazioni possibili per l’applicazione di interesse.
Allo scopo di evitare che questo accada è stato introdotto il concetto di vincolo di integrità.
Ogni vincolo può essere visto come un predicato che associa ad ogni istanza il valore vero o falso.
Se il predicato assume valore vero diciamo che l’istanza soddisfa il vincolo.
In generale ad uno schema di base di dati associamo un insieme di vincoli, e consideriamo corrette solo quelle istanze che soddisfano tutti i vincoli.
Possiamo distinguere due categorie di vincoli.
Vincolo intrarelazionale: se il suo soddisfacimento è definito rispetto a singole relazioni della base di dati.
Può essere quindi un vincolo su una tupla , ovvero un vincolo che può essere valutato su ciascuna tupla indipendentemente dalle altre, o un vincolo su valori, in quanto impone una restrizione sul dominio dell’ attributo.
Per esempio un vincolo su una tupla è (Voto =30) OR NOT (Lode = “e lode”) che sta ad indicare che nella relazione ESAMI, non posso avere una tupla in cui mi compare “e lode” associato a un voto diverso da 30.
Mentre un vincolo su valori può essere (Voto >=18) AND (Voto<=30) in quanto impone una restrizione sul dominio dell’ attributo voto.
Vincolo interrelazionale se coinvolge più relazioni. La terza tupla della relazione ESAMI, presenta per l’ attributo Studente, un valore che non compare tra i numeri di matricola della relazione STUDENTI. Questa situazione indesiderata può essere vietata richiedendo che un numero di matricola compaia nella relazione ESAMI solo se compare nella relazione STUDENTI.
I vincoli interrelazionali più importanti sono:
Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.