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

🎯 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
deptnona tabelaemp - Como usar uma restrição de unicidade (unique constraint) para evitar duplicatas no campo
enamena tabelaemp - Como definir um valor padrão (default value) para o campo
commna tabelaemp - 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
hiredatena tabelaemp
🏆 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:
Inicie o MySQL:
sudo /etc/init.d/mysql startImporte o banco de dados
personnel.sqlpara 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:
Faça login no terminal MySQL:
mysql -urootUse o banco de dados
personnel:USE `personnel`;Adicione uma chave primária composta à tabela
salgrade, com os camposgrade,losalehisalcomo 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.
Use o banco de dados
personnel:USE `personnel`;Especifique uma chave estrangeira no campo
deptnona tabelaemp, referenciando o campodeptnona tabeladept:ALTER TABLE emp ADD FOREIGN KEY (deptno) REFERENCES dept(deptno);Use uma restrição de unicidade para evitar duplicatas no campo
enamena tabelaemp:ALTER TABLE emp ADD UNIQUE (ename);Use uma restrição de valor padrão para definir o valor padrão do campo
commna tabelaempcomo 100:ALTER TABLE emp ALTER COLUMN comm SET DEFAULT 100;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
hiredatena tabelaemp: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:
Mostrar a estrutura da tabela
salgrade:desc salgrade;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.



