Design e Implementação de Restrições em Banco de Dados

MySQLBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como adicionar várias restrições a um esquema de banco de dados, incluindo chaves primárias (primary keys), chaves estrangeiras (foreign keys), restrições de unicidade (unique constraints), valores padrão (default values) e restrições de verificação (check constraints). Ao final deste projeto, você terá uma melhor compreensão de como projetar e impor regras de integridade de dados em um banco de dados relacional.

👀 Pré-visualização

Pré-visualização das restrições do esquema do banco de dados

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como criar uma chave primária composta (composite primary key) na tabela salgrade
  • Como especificar uma chave estrangeira (foreign key) no campo deptno na tabela emp
  • Como usar uma restrição de unicidade (unique constraint) para evitar duplicatas no campo ename na tabela emp
  • Como definir um valor padrão (default value) para o campo comm na tabela emp
  • Como usar uma restrição de verificação (check constraint) para impedir a entrada de datas de contratação posteriores a 28 de fevereiro de 2022 no campo hiredate na tabela emp

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Compreender a importância das restrições de integridade de dados no projeto de banco de dados
  • Implementar vários tipos de restrições em um banco de dados MySQL
  • Aplicar as melhores práticas para manter a qualidade e consistência dos dados
  • Solucionar problemas e depurar questões relacionadas às restrições do banco de dados

Iniciar o Servidor MySQL e Importar o Banco de Dados

Nesta etapa, você aprenderá como iniciar o serviço MySQL e importar o banco de dados personnel.sql. Siga os passos abaixo para completar esta etapa:

  1. Inicie o MySQL:

    sudo /etc/init.d/mysql start
    
  2. Importe o banco de dados personnel.sql para o MySQL. Você pode fazer isso executando o seguinte comando em seu terminal:

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

Este comando importará o banco de dados personnel.sql para o MySQL usando o usuário root.

Adicionar uma Chave Primária Composta à Tabela ‘salgrade’

Nesta etapa, você aprenderá como adicionar uma chave primária composta (composite primary key) à tabela salgrade. Siga os passos abaixo para completar esta etapa:

  1. Faça login no terminal MySQL:

    mysql -uroot
    
  2. Use o banco de dados personnel:

    USE `personnel`;
    
  3. Adicione uma chave primária composta à tabela salgrade, com os campos grade, losal e hisal como a chave primária composta:

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

Isso criará uma chave primária composta na tabela salgrade, usando os campos grade, losal e hisal.

Adicionar Restrições à Tabela ‘emp’

Nesta etapa, você aprenderá:

  • Como especificar uma chave estrangeira (foreign key) no campo 'deptno' na tabela 'emp' que referencia o campo 'deptno' na tabela 'dept'.
  • Como usar restrições de unicidade (unique constraints) para evitar a duplicação do campo 'name' na tabela 'emp'.
  • Como usar a restrição de valor padrão (default value constraint) para definir o valor padrão do campo 'comm' na tabela 'emp' como 100.
  • Como impedir a inserção de uma data de contratação posterior a 28 de fevereiro de 2022 no campo 'hiredate' da tabela 'emp' usando a restrição de verificação (check constraint).

Siga os passos abaixo para completar esta etapa.

  1. Use o banco de dados personnel:

    USE `personnel`;
    
  2. Especifique uma chave estrangeira no campo deptno na tabela emp, referenciando o campo deptno na tabela dept:

    ALTER TABLE emp
    ADD FOREIGN KEY (deptno) REFERENCES dept(deptno);
    
  3. Use uma restrição de unicidade para evitar duplicatas no campo ename na tabela emp:

    ALTER TABLE emp
    ADD UNIQUE (ename);
    
  4. Use uma restrição de valor padrão para definir o valor padrão do campo comm na tabela emp como 100:

    ALTER TABLE emp
    ALTER COLUMN comm SET DEFAULT 100;
    
  5. Use uma restrição de verificação para impedir a entrada de datas de contratação posteriores a 28 de fevereiro de 2022 no campo hiredate na tabela emp:

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

Visualizar a Estrutura da Tabela

Nesta etapa, você usará comandos para exibir a estrutura das tabelas salgrade e emp:

  1. Mostrar a estrutura da tabela salgrade:

    desc salgrade;
    
  2. Mostrar a estrutura da tabela emp:

    desc emp;
    

Você deve ver a seguinte saída:

MariaDB [personnel]> desc salgrade;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| grade | int(4)      | NO   | PRI | NULL    |       |
| losal | double(7,2) | NO   | PRI | NULL    |       |
| hisal | double(7,2) | NO   | PRI | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.001 sec)

MariaDB [personnel]> desc emp;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| empno    | int(4)      | NO   | PRI | NULL    |       |
| ename    | varchar(20) | YES  | UNI | NULL    |       |
| job      | varchar(20) | YES  |     | NULL    |       |
| mgr      | varchar(20) | YES  |     | NULL    |       |
| hiredate | date        | YES  |     | NULL    |       |
| sal      | double(7,2) | YES  |     | NULL    |       |
| comm     | double(7,2) | YES  |     | 100.00  |       |
| deptno   | int(4)      | YES  | MUL | NULL    |       |
+----------+-------------+------+-----+---------+-------+
8 rows in set (0.001 sec)

Parabéns! Você concluiu o projeto com sucesso.

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.

✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar