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éfinitionContraintes 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éfinitionContraintes 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

1
CREATE TABLE nom de table (
2
CREATE TABLE nom_table (
3
 nom_colonne1 domaine1 <contraintes colonne1>,
4
 nom_colonne2 domaine2 <contraintes colonne2>,
5
 ...
6
 nom_colonneN domaineN <contraintes colonneN>,
7
 <contraintes de table>
8
);

Exemple

1
CREATE TABLE Personne (
2
 N°SS CHAR(13) PRIMARY KEY,
3
 Nom VARCHAR(25) NOT NULL,
4
 Prenom VARCHAR(25) NOT NULL,
5
 Age INTEGER(3) CHECK (Age BETWEEN 18 AND 65),
6
 Mariage CHAR(13) REFERENCES Personne(N°SS),
7
 UNIQUE (Nom, Prenom)
8
);

RemarqueClé 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.