Contraintes d'intégrité
Fondamental :
PRIMARY KEY (<liste d'attibuts>)
UNIQUE (<liste d'attibuts>)
FOREIGN KEY (<liste d'attibuts>) REFERENCES <nom table>(<nom colonnes>)
CHECK (<condition>)
Une contrainte d'intégrité est une règle qui définit la cohérence d'une donnée ou d'un ensemble de données de la BD[1].
Il existe deux types de contraintes :
sur une colonne unique,
ou sur une table lorsque la contrainte porte sur une ou plusieurs colonnes.
Les contraintes sont définies au moment de la création des tables.
Définition : Contraintes d'intégrité sur une colonne
Les contraintes d'intégrité sur une colonne sont :
PRIMARY KEY : définit l'attribut comme la clé primaire
UNIQUE : interdit que deux tuples de la relation aient la même valeur pour l'attribut.
REFERENCES <nom table> (<nom colonnes>) : contrôle l'intégrité référentielle entre l'attribut et la table et ses colonnes spécifiées
CHECK (<condition>) : contrôle la validité de la valeur de l'attribut spécifié dans la condition dans le cadre d'une restriction de domaine
Définition : Contraintes d'intégrité sur une table
Les contraintes d'intégrité sur une table sont :
PRIMARY KEY (<liste d'attibuts>) : définit les attributs de la liste comme la clé primaire
UNIQUE (<liste d'attibuts>) : interdit que deux tuples de la relation aient les mêmes valeurs pour l'ensemble des attributs de la liste.
FOREIGN KEY (<liste d'attibuts>) REFERENCES <nom table>(<nom colonnes>) : contrôle l'intégrité référentielle entre les attributs de la liste et la table et ses colonnes spécifiées
CHECK (<condition>) : contrôle la validité de la valeur des attributs spécifiés dans la condition dans le cadre d'une restriction de domaine
Syntaxe :
CREATE TABLE nom de table (
CREATE TABLE nom_table (
nom_colonne1 domaine1 <contraintes colonne1>,
nom_colonne2 domaine2 <contraintes colonne2>,
...
nom_colonneN domaineN <contraintes colonneN>,
<contraintes de table>
);
Exemple :
CREATE TABLE Personne (
N°SS CHAR(13) PRIMARY KEY,
Nom VARCHAR(25) NOT NULL,
Prenom VARCHAR(25) NOT NULL,
Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65),
Mariage CHAR(13) REFERENCES Personne(N°SS),
UNIQUE (Nom, Prenom)
);
Remarque : Clé candidate
La clause UNIQUE NOT NULL sur un attribut ou un groupe d'attributs définit une clé candidate non primaire.
Remarque :
Les contraintes sur une colonne et sur une table peuvent être combinées dans la définition d'un même schéma de relation.
Remarque :
Une contrainte sur une colonne peut toujours être remplacée par une contrainte sur une table.