Numérique et Sciences Informatiques1ère

Contraintes d'intégrité
Exercices corrigés

Maîtrisez les contraintes d'intégrité : clés primaires, étrangères, domaines, unicités, référentielles grâce à ces 5 exercices détaillés.

Concepts & Exercices
Intégrité = Contraintes + Validation + Cohérence
Principe fondamental

Types de contraintes

Clé primaire
Unicité + Non nullité
Clé étrangère
Référence à une PK
Domaine
Plage de valeurs
Unicité
Valeurs distinctes
ETUDIANTS
id_etudiant (PK, NOT NULL)
nom (NOT NULL)
email (UNIQUE)
age (CHECK age > 0)
Exercice 1
Identifier les contraintes de clé primaire
Exercice 2
Reconnaître les contraintes de clé étrangère
Exercice 3
Appliquer les contraintes de domaine
Exercice 4
Mettre en place des contraintes d'unicité
Exercice 5
Valider un ensemble de contraintes
Corrigé : Exercices 1 à 3
1 Contraintes de clé primaire
Définition :

Contrainte de clé primaire : Contrainte qui impose que la valeur d'une colonne (ou d'un ensemble de colonnes) soit unique et non nulle dans une table.

Propriétés de la clé primaire :
  1. Doit être unique pour chaque enregistrement
  2. Ne peut jamais être nulle (NOT NULL)
  3. Identifie de manière unique chaque ligne
  4. Ne doit pas changer fréquemment
  5. Doit être aussi simple que possible
PRODUITS
id_produit (PK)
nom_produit
prix
Étape 1 : Analyse des attributs

Examiner chaque colonne pour déterminer si elle peut identifier de manière unique un enregistrement

Étape 2 : Vérification de l'unicité

Confirmer que la valeur de l'attribut est unique pour chaque enregistrement

Étape 3 : Vérification de la non-nullité

S'assurer que l'attribut ne peut jamais être nul

Étape 4 : Validation de la stabilité

Vérifier que la clé ne change pas fréquemment

Étape 5 : Documentation

Marquer clairement l'attribut comme clé primaire dans le schéma

Réponse finale :

Une contrainte de clé primaire impose unicité et non-nullité

Règles appliquées :

Unicité : Chaque valeur de clé primaire doit être unique

Non nullité : La clé primaire ne peut jamais être nulle

Immutabilité : La clé primaire ne devrait pas changer

2 Contraintes de clé étrangère
Définition :

Contrainte de clé étrangère : Contrainte qui impose qu'une valeur d'une colonne (ou d'un ensemble de colonnes) dans une table existe dans la clé primaire d'une autre table.

COMMANDES
id_commande (PK)
id_client (FK)
date_commande
CLIENTS
id_client (PK)
nom
email
Étape 1 : Identification des relations

Rechercher les attributs qui font référence à des clés primaires d'autres tables

Étape 2 : Vérification de la référence

Confirmer que la clé étrangère pointe vers une clé primaire existante

Étape 3 : Analyse de la cardinalité

Déterminer combien d'enregistrements peuvent être liés

Étape 4 : Validation des contraintes

Vérifier que les règles d'intégrité référentielle sont respectées

Étape 5 : Documentation

Indiquer clairement la relation dans le schéma de la base de données

Contrainte FK = Référence à une PK existante
Réponse finale :

Une contrainte de clé étrangère impose l'existence d'une référence dans une autre table

Règles appliquées :

Référence valide : La clé étrangère doit pointer vers une clé primaire existante

Intégrité référentielle : Empêche les enregistrements orphelins

Valeur nulle permise : Sauf si explicitement contrainte

3 Contraintes de domaine
Définition :

Contrainte de domaine : Contrainte qui limite les valeurs possibles pour une colonne à un ensemble prédéfini de valeurs ou à un type de données spécifique.

Exemples de contraintes de domaine

CHECK age > 0
Age positif
CHECK sexe IN ('M', 'F')
Genre binaire
NOT NULL
Valeur obligatoire
TYPE VARCHAR(50)
Type et longueur
Étape 1 : Identification des types de données

Déterminer le type approprié pour chaque colonne

Étape 2 : Définition des plages de valeurs

Spécifier les bornes acceptables pour les données numériques

Étape 3 : Établissement des listes de valeurs

Créer des ensembles de valeurs autorisées pour certains champs

Étape 4 : Application des contraintes

Implémenter les contraintes dans la structure de la base de données

Étape 5 : Validation des entrées

Vérifier que les données respectent les contraintes avant insertion

Contrainte domaine = Type + Plage + Validation
Réponse finale :

Une contrainte de domaine limite les valeurs possibles dans une colonne

Règles appliquées :

Type de données : Chaque colonne a un type spécifique

Plages autorisées : Limites numériques ou alphabétiques

Validation automatique : Le SGBD vérifie les contraintes à chaque opération

Corrigé : Exercices 4 à 5
4 Contraintes d'unicité
Définition :

Contrainte d'unicité : Contrainte qui impose que toutes les valeurs d'une colonne (ou d'un ensemble de colonnes) soient différentes dans une table.

UNIQUE : Toutes les valeurs doivent être distinctes
NULL autorisé : Une seule valeur NULL autorisée
Multi-colonnes : Peut s'appliquer à plusieurs colonnes
Étape 1 : Identification des colonnes critiques

Déterminer les colonnes qui doivent contenir des valeurs uniques

Étape 2 : Analyse des besoins métier

Comprendre pourquoi l'unicité est nécessaire pour cette colonne

Étape 3 : Application de la contrainte

Implémenter la contrainte UNIQUE dans la structure de la base

Étape 4 : Gestion des doublons existants

Résoudre les conflits avant d'appliquer la contrainte

Étape 5 : Surveillance continue

Surveiller les tentatives d'insertion de valeurs dupliquées

Contrainte UNIQUE = Valeurs distinctes + Validation
Réponse finale :

Une contrainte d'unicité empêche les doublons dans une colonne

Règles appliquées :

Distinctivité : Toutes les valeurs doivent être uniques

NULL unique : Une seule valeur NULL est autorisée

Performance : Crée implicitement un index pour optimisation

5 Validation ensemble contraintes
Définition :

Validation des contraintes : Processus de vérification que toutes les contraintes d'intégrité sont correctement appliquées et fonctionnent comme prévu.

Étape 1 : Inventaire des contraintes

Lister toutes les contraintes existantes dans la base de données

Étape 2 : Analyse des dépendances

Identifier les relations entre différentes contraintes

Étape 3 : Test des violations

Essayer d'insérer des données qui violent les contraintes

Étape 4 : Vérification des erreurs

Confirmer que les erreurs sont correctement levées

Étape 5 : Validation des données existantes

Vérifier que les données actuelles respectent toutes les contraintes

Étape 6 : Documentation

Documenter toutes les contraintes avec leur justification

Validation = Inventaire + Test + Correction
Réponse finale :

La validation des contraintes garantit la cohérence des données

Règles appliquées :

Complétude : Toutes les contraintes doivent être vérifiées

Hiérarchie : Les contraintes doivent être validées dans le bon ordre

Maintenance : Les contraintes doivent être régulièrement revues

Cours bien détaillé
Intégrité = Σ(Contraintesᵢ)
Somme des contraintes
🔒
Clé primaire : Unicité + Non nullité, identifie chaque enregistrement.
🔗
Clé étrangère : Référence à une clé primaire, assure l'intégrité référentielle.
📊
Domaine : Limite les valeurs possibles selon le type et les règles.
Unicité : Empêche les doublons dans une colonne ou un ensemble de colonnes.
💡
Conseil : Appliquer les contraintes dès la conception de la base
🔍
Attention : Ne pas surcharger avec trop de contraintes complexes
Astuce : Utiliser des noms explicites pour les contraintes
📋
Méthode : Valider les contraintes avec des cas limites
Vérification : Tester les contraintes avec des données réelles
Types de contraintes :
  • NOT NULL : Empêche les valeurs nulles
  • UNIQUE : Assure l'unicité des valeurs
  • CHECK : Valide les expressions logiques
  • DEFAULT : Fournit une valeur par défaut
  • PRIMARY KEY : Clé primaire (UNIQUE + NOT NULL)
  • FOREIGN KEY : Clé étrangère
Règles importantes :
  • Les contraintes d'intégrité garantissent la qualité des données
  • Elles sont automatiquement vérifiées par le SGBD à chaque opération
  • Les violations de contraintes génèrent des erreurs
  • Elles assurent la cohérence logique des données
  • Elles facilitent la maintenance de la base de données
Contraintes d’intégrité Concepts fondamentaux