Conception et implantation de contraintes de base de données

MySQLBeginner
Pratiquer maintenant

Introduction

Dans ce projet, vous allez apprendre à ajouter diverses contraintes à un schéma de base de données, y compris les clés primaires, les clés étrangères, les contraintes d'unicité, les valeurs par défaut et les contraintes de vérification. À la fin de ce projet, vous aurez une meilleure compréhension de la manière de concevoir et d'appliquer des règles d'intégrité des données dans une base de données relationnelle.

👀 Aperçu

Aperçu des contraintes du schéma de base de données

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment créer une clé primaire composite sur la table salgrade
  • Comment spécifier une clé étrangère sur le champ deptno dans la table emp
  • Comment utiliser une contrainte d'unicité pour empêcher les doublons dans le champ ename de la table emp
  • Comment définir une valeur par défaut pour le champ comm dans la table emp
  • Comment utiliser une contrainte de vérification pour empêcher l'entrée de dates d'embauche postérieures au 28 février 2022 dans le champ hiredate de la table emp

🏆 Réalisations

Après avoir terminé ce projet, vous serez capable de :

  • Comprendre l'importance des contraintes d'intégrité des données dans la conception de bases de données
  • Implémenter divers types de contraintes dans une base de données MySQL
  • Appliquer les meilleures pratiques pour maintenir la qualité et la cohérence des données
  • Dépanner et déboguer les problèmes liés aux contraintes de base de données

Démarrer le serveur MySQL et importer la base de données

Dans cette étape, vous allez apprendre à démarrer le service MySQL et à importer la base de données personnel.sql. Suivez les étapes ci-dessous pour compléter cette étape :

  1. Démarrer MySQL :

    sudo /etc/init.d/mysql start
    
  2. Importer la base de données personnel.sql dans MySQL. Vous pouvez le faire en exécutant la commande suivante dans votre terminal :

    mysql -u root < /home/labex/project/personnel.sql
    

Cette commande importera la base de données personnel.sql dans MySQL en utilisant l'utilisateur root.

Ajouter une clé primaire composée à la table ‘salgrade’

Dans cette étape, vous allez apprendre à ajouter une clé primaire composite à la table salgrade. Suivez les étapes ci-dessous pour compléter cette étape :

  1. Connectez-vous au terminal MySQL :

    mysql -uroot
    
  2. Utilisez la base de données personnel :

    USE `personnel`;
    
  3. Ajoutez une clé primaire composite à la table salgrade, en utilisant les champs grade, losal et hisal comme clé primaire composite :

    ALTER TABLE salgrade
    ADD PRIMARY KEY (grade, losal, hisal);
    

Cela créera une clé primaire composite sur la table salgrade, en utilisant les champs grade, losal et hisal.

Ajouter des contraintes à la table ‘emp’

Dans cette étape, vous allez apprendre :

  • Comment spécifier une clé étrangère sur le champ 'deptno' dans la table 'emp' qui référence le champ 'deptno' dans la table 'dept'.
  • Comment utiliser des contraintes d'unicité pour empêcher la duplication du champ 'name' dans la table 'emp'.
  • Comment utiliser la contrainte de valeur par défaut pour définir la valeur par défaut du champ 'comm' dans la table 'emp' à 100.
  • Comment empêcher l'entrée d'une date d'embauche après le 28 février 2022 dans le champ 'hiredate' de la table 'emp' en utilisant la contrainte de vérification.

Suivez les étapes ci-dessous pour compléter cette étape.

  1. Utilisez la base de données personnel :

    USE `personnel`;
    
  2. Spécifiez une clé étrangère sur le champ deptno dans la table emp, en référenceant le champ deptno dans la table dept :

    ALTER TABLE emp
    ADD FOREIGN KEY (deptno) REFERENCES dept(deptno);
    
  3. Utilisez une contrainte d'unicité pour empêcher les doublons dans le champ ename de la table emp :

    ALTER TABLE emp
    ADD UNIQUE (ename);
    
  4. Utilisez une contrainte de valeur par défaut pour définir la valeur par défaut du champ comm dans la table emp à 100 :

    ALTER TABLE emp
    ALTER COLUMN comm SET DEFAULT 100;
    
  5. Utilisez une contrainte de vérification pour empêcher l'entrée de dates d'embauche postérieures au 28 février 2022 dans le champ hiredate de la table emp :

    ALTER TABLE emp
    ADD CHECK (hiredate <= '2022-02-28');
    

Voir la structure de la table

Dans cette étape, vous utiliserez des commandes pour afficher la structure des tables salgrade et emp :

  1. Affichez la structure de la table salgrade :

    desc salgrade;
    
  2. Affichez la structure de la table emp :

    desc emp;
    

Vous devriez voir la sortie suivante :

MariaDB [personnel]> desc salgrade;
+-------+-------------+------+-----+---------+-------+
| Champ | Type        | Null | Clé | Par défaut | Extra |
+-------+-------------+------+-----+---------+-------+
| grade | int(4)      | NON  | PRI | NULL    |       |
| losal | double(7,2) | NON  | PRI | NULL    |       |
| hisal | double(7,2) | NON  | PRI | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 lignes sélectionnées (0,001 sec)

MariaDB [personnel]> desc emp;
+----------+-------------+------+-----+---------+-------+
| Champ    | Type        | Null | Clé | Par défaut | Extra |
+----------+-------------+------+-----+---------+-------+
| empno    | int(4)      | NON  | PRI | NULL    |       |
| ename    | varchar(20) | OUI  | UNI | NULL    |       |
| job      | varchar(20) | OUI  |     | NULL    |       |
| mgr      | varchar(20) | OUI  |     | NULL    |       |
| hiredate | date        | OUI  |     | NULL    |       |
| sal      | double(7,2) | OUI  |     | NULL    |       |
| comm     | double(7,2) | OUI  |     | 100,00  |       |
| deptno   | int(4)      | OUI  | MUL | NULL    |       |
+----------+-------------+------+-----+---------+-------+
8 lignes sélectionnées (0,001 sec)

Félicitations! Vous avez réussi à compléter le projet.

Résumé

Félicitations! Vous avez terminé ce projet. Vous pouvez pratiquer plus de laboratoires sur LabEx pour améliorer vos compétences.

✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer✨ Vérifier la solution et pratiquer