Contraintes d'intégrité☘
On appelles contraintes l’ensemble des propriétés que les données doivent vérifier à tout moment.
Contrainte de domaine☘
Les données qui correspondent à chaque attribut ont une nature spécifique (numéro d’identification, nom, date, heure, prix, ...). Leur domaine est donc la combinaison entre un type (TEXT, INT, BOOL, FLOAT, DATE, TIME, NULL, …) et un ensemble (éventuellement infini) de valeurs de ce type.
Contrainte d’entité☘
Pour éviter la présence de deux enregistrements identiques dans une relation, on identifie une clef primaire, c’est-à-dire un attribut dont chaque valeur est unique dans l’ensemble de la relation (et le restera au fur et à mesure de l’ajout de nouveaux enregistrements). Cette clef primaire permet d'identifier de manière unique chaque enregistrement de la relation.
Remarque
-
Si aucun attribut ne convient comme clef primaire, il est possible d’ajouter un attribut d’identification, de valeur entière et auto-incrémentée.
-
Il est aussi possible de composer cette clef primaire en utilisant plusieurs attributs (un couple, un triplet, ...).
-
Une clef primaire rend les doublons d’enregistrement impossibles.
Exemples☘
-
Quel attribut de la relation Confitures peut servir de clef primaire ?
Une réponse
Le numéro de référence
ref
. -
Pour concevoir une base de données de bibliothèque, les attributs suivants peuvent-ils servir de clef primaire dans la relation Abonné ? Justifier.
-
Le numéro d’abonné
num_abonne
Une réponse
Unique et obligatoire pour chaque abonné, ce numéro peut servir de clé primaire puisqu’il identifie automatiquement cet abonné.
-
L’adresse de courrier électronique
mail
Une réponse
Une adresse e-mail est unique. Mais :
- Chaque personne souhaitant s’abonner possède-t-elle une adresse e-mail ?
- Comment faire pour les enfants ?
-
Contrainte de référence☘
Dans une base de données, il faut éviter au maximum la redondance (répétition) d’informations. Pour cela, on établit généralement une relation par entité (objet, personne, action) que l’on souhaite manipuler. Afin d’associer les relations entre elles, les clefs primaires peuvent servir de référence dans une autre relation : on les appelle alors clef étrangère de l’autre relation.
Remarque
-
Cette contrainte garantit qu’une valeur de clef étrangère dans une relation B doit être une valeur de la clé primaire correspondante de la relation A.
-
Cette contrainte empêche les anomalies de suppression et/ou d’insertion.
Exemple☘
On complète la base avec la relation Ventes qui récapitule les ventes de confiture.
-
Donner un enregistrement de la relation Confitures et un enregistrement de la relation Ventes qui peuvent être mis en relation.
Une réponse
Ces deux enregistrements ont le même numéro de référence pour la confiture :
-
Quel attribut de la relation Ventes peut servir de clef primaire ?
Une réponse
L’attribut
id
, qui est unique et permet de distinguer chaque enregistrement. -
Quel attribut de la relation Ventes est une clef étrangère, c’est-à-dire fait référence à la clef primaire de la relation Confitures ?
Une réponse
ref_conf
est une clé étrangère de Ventes, liée àref
, clé primaire de Confitures.
Contrainte utilisateur☘
Cette contrainte restreint encore plus les valeurs possibles pour un attribut. Elle se réfère à tout ce qu’on ne peut pas exprimer par les autres contraintes.
Exemples
- Un film ne peut pas avoir été réalisé avant 1895.
- Une adresse e-mail doit comporter un symbole @.