Vincolo di integrità

Da Wikipedia, l'enciclopedia libera.

Un vincolo di integrità dei dati è una proprietà che deve essere soddisfatta dalle istanze di una base di dati. Ogni vincolo può essere visto come un predicato che può assumere il valore vero o falso: l'istanza soddisfa il vincolo, se il predicato assume il valore vero, viceversa se assume valore falso. In generale a uno schema di base di dati si associa un insieme di vincoli e si considerano corrette (lecite o ammissibili) solo le istanze che soddisfano tutti i vincoli predefiniti.

Esistono due grandi tipologie di vincoli: quelli intrarelazionali che interessano una sola tabella e quelli interrelazionali che definiscono legami tra due o più tabelle.

Descrizione[modifica | modifica sorgente]

Vincoli intrarelazionali[modifica | modifica sorgente]

Fanno parte dei vincoli intrarelazionali tutti quei vincoli il cui soddisfacimento è definito per singole relazioni, ovvero tutte le istanze di una relazione devono soddisfare tutti i vincoli che sono definiti sulla relazione stessa.

Chiave primaria[modifica | modifica sorgente]

Una chiave primaria (primary key) serve a identificare univocamente le righe della tabella ove essa è definita. Può essere specificato una sola volta per tabella, dichiarando uno o più attributi o campi dato come chiave primaria. Due righe distinte non possono avere lo stesso valore sui campi scelti come primary key.

Chiave univoca[modifica | modifica sorgente]

Una chiave univoca (unique key) implementa una caratteristica simile alla chiave primaria, con la particolarità che gli attributi coinvolti possono assumere il valore nullo. Si può definire il vincolo su uno o più attributi della tabella.

Vincoli di tupla[modifica | modifica sorgente]

Un vincolo di tupla o record è un vincolo che può essere valutato su ciascuna tupla indipendentemente dalle altre. Un vincolo definito con riferimento a singoli valori viene detto vincolo su valori o vincolo di dominio in quanto impone una restrizione sul dominio dell'attributo.

Un esempio è il vincolo not NULL, usato per dichiarare che un dato attributo non può assumere il valore nullo. Solitamente questo attributo viene corredato da un valore di default, che viene assegnato automaticamente all'atto della creazione di una nuova tupla.

Vincoli interrelazionali (o extrarelazionali)[modifica | modifica sorgente]

Il vincolo interrelazionale più utilizzato è il vincolo di integrità referenziale: gli attributi di una data tabella (slave) possono assumere soltanto dei valori specificati in un'altra tabella (master). I vari linguaggi per basi dati solitamente implementano appositi costrutti per questo vincolo (ad esempio la foreign key o chiave esterna in SQL).

Voci correlate[modifica | modifica sorgente]

informatica Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica