Diseño e implementación de restricciones de base de datos

MySQLBeginner
Practicar Ahora

Introducción

En este proyecto, aprenderá cómo agregar diversas restricciones a un esquema de base de datos, incluyendo claves primarias, claves foráneas, restricciones únicas, valores predeterminados y restricciones de chequeo. Al final de este proyecto, tendrá una mejor comprensión de cómo diseñar y aplicar reglas de integridad de datos en una base de datos relacional.

👀 Vista previa

Vista previa de las restricciones del esquema de base de datos

🎯 Tareas

En este proyecto, aprenderá:

  • Cómo crear una clave primaria compuesta en la tabla salgrade
  • Cómo especificar una clave foránea en el campo deptno de la tabla emp
  • Cómo usar una restricción única para evitar duplicados en el campo ename de la tabla emp
  • Cómo establecer un valor predeterminado para el campo comm de la tabla emp
  • Cómo usar una restricción de chequeo para evitar la entrada de fechas de contratación posteriores a 28 de febrero de 2022 en el campo hiredate de la tabla emp

🏆 Logros

Después de completar este proyecto, podrá:

  • Comprender la importancia de las restricciones de integridad de datos en el diseño de bases de datos
  • Implementar varios tipos de restricciones en una base de datos MySQL
  • Aplicar las mejores prácticas para mantener la calidad y la consistencia de los datos
  • Solucionar y depurar problemas relacionados con las restricciones de base de datos

Iniciar el servidor MySQL e importar la base de datos

En este paso, aprenderá cómo iniciar el servicio MySQL e importar la base de datos personnel.sql. Siga los pasos siguientes para completar este paso:

  1. Iniciar MySQL:

    sudo /etc/init.d/mysql start
    
  2. Importar la base de datos personnel.sql en MySQL. Puede hacer esto ejecutando el siguiente comando en su terminal:

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

Este comando importará la base de datos personnel.sql en MySQL utilizando el usuario root.

Agregar una clave primaria compuesta a la tabla ‘salgrade’

En este paso, aprenderá cómo agregar una clave primaria compuesta a la tabla salgrade. Siga los pasos siguientes para completar este paso:

  1. Inicie sesión en la terminal de MySQL:

    mysql -uroot
    
  2. Utilice la base de datos personnel:

    USE `personnel`;
    
  3. Agregue una clave primaria compuesta a la tabla salgrade, con los campos grade, losal y hisal como clave primaria compuesta:

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

Esto creará una clave primaria compuesta en la tabla salgrade, utilizando los campos grade, losal y hisal.

Agregar restricciones a la tabla ‘emp’

En este paso, aprenderá:

  • Cómo especificar una clave foránea en el campo 'deptno' de la tabla 'emp' que hace referencia al campo 'deptno' de la tabla 'dept'.
  • Cómo usar restricciones únicas para evitar la duplicación del campo 'name' en la tabla 'emp'.
  • Cómo usar la restricción de valor predeterminado para establecer el valor predeterminado del campo 'comm' en la tabla 'emp' en 100.
  • Cómo evitar la entrada de una fecha de contratación posterior a 28 de febrero de 2022 en el campo 'hiredate' de la tabla 'emp' utilizando la restricción de chequeo.

Siga los pasos siguientes para completar este paso.

  1. Utilice la base de datos personnel:

    USE `personnel`;
    
  2. Especifique una clave foránea en el campo deptno de la tabla emp, haciendo referencia al campo deptno de la tabla dept:

    ALTER TABLE emp
    ADD FOREIGN KEY (deptno) REFERENCES dept(deptno);
    
  3. Use una restricción única para evitar duplicados en el campo ename de la tabla emp:

    ALTER TABLE emp
    ADD UNIQUE (ename);
    
  4. Use una restricción de valor predeterminado para establecer el valor predeterminado del campo comm en la tabla emp en 100:

    ALTER TABLE emp
    ALTER COLUMN comm SET DEFAULT 100;
    
  5. Use una restricción de chequeo para evitar la entrada de fechas de contratación posteriores a 28 de febrero de 2022 en el campo hiredate de la tabla emp:

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

Ver la estructura de la tabla

En este paso, utilizará comandos para mostrar la estructura de las tablas salgrade y emp:

  1. Muestre la estructura de la tabla salgrade:

    desc salgrade;
    
  2. Muestre la estructura de la tabla emp:

    desc emp;
    

Debería ver la siguiente salida:

MariaDB [personnel]> desc salgrade;
+-------+-------------+------+-----+---------+-------+
| Campo | Tipo        | Nulo | Clave | Predeterminado | Extra |
+-------+-------------+------+-----+---------+-------+
| grade | int(4)      | NO   | PRI | NULL    |       |
| losal | double(7,2) | NO   | PRI | NULL    |       |
| hisal | double(7,2) | NO   | PRI | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 filas en el conjunto (0.001 segundos)

MariaDB [personnel]> desc emp;
+----------+-------------+------+-----+---------+-------+
| Campo    | Tipo        | Nulo | Clave | Predeterminado | Extra |
+----------+-------------+------+-----+---------+-------+
| empno    | int(4)      | NO   | PRI | NULL    |       |
| ename    | varchar(20) | SI   | UNI | NULL    |       |
| trabajo  | varchar(20) | SI   |     | NULL    |       |
| mgr      | varchar(20) | SI   |     | NULL    |       |
| hiredate | date        | SI   |     | NULL    |       |
| sal      | double(7,2) | SI   |     | NULL    |       |
| comm     | double(7,2) | SI   |     | 100.00  |       |
| deptno   | int(4)      | SI   | MUL | NULL    |       |
+----------+-------------+------+-----+---------+-------+
8 filas en el conjunto (0.001 segundos)

¡Felicitaciones! Ha completado con éxito el proyecto.

Resumen

¡Felicitaciones! Ha completado este proyecto. Puede practicar más laboratorios en LabEx para mejorar sus habilidades.

✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar