Aller au contenu

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

  1. 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.

  2. Il est aussi possible de composer cette clef primaire en utilisant plusieurs attributs (un couple, un triplet, ...).

  3. Une clef primaire rend les doublons d’enregistrement impossibles.

Exemples

  1. Quel attribut de la relation Confitures peut servir de clef primaire ? Relation confiture

    Une réponse

    Le numéro de référence ref.

  2. Pour concevoir une base de données de bibliothèque, les attributs suivants peuvent-ils servir de clef primaire dans la relation Abonné ? Justifier.

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

    2. 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

  1. 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.

  2. 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. Relation confiture ventes

  1. 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 : Relation confiture ventes

  2. 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.

  3. 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

  1. Un film ne peut pas avoir été réalisé avant 1895.
  2. Une adresse e-mail doit comporter un symbole @.