🧠 ATIVIDADE DE FIXAÇÃO: UNIDADE III (PARTE 1)
Nesta atividade, vamos exercitar a transição do modelo lógico para o modelo físico, focando na criação de tabelas e chaves. 🛡️🧩
Objetivo: Implementar a estrutura física de um banco acadêmico, configurando chaves primárias, estrangeiras e relacionamentos M:N.
🎭 Cenário: Sistema de Matrícula Acadêmica
O sistema gerencia quais alunos estão em quais cursos. Como um aluno pode cursar várias disciplinas e um curso possui vários alunos, usamos a tabela MATRICULA.
📊 Diagrama de Relacionamento (ER)
erDiagram
ALUNO ||--o{ MATRICULA : "realiza"
CURSO ||--o{ MATRICULA : "possui"
ALUNO {
int id PK
string nome
}
CURSO {
int id PK
string nome
}
MATRICULA {
int aluno_id FK
int curso_id FK
}
🛠️ Tarefas de Implementação
📗 PASSO 1: Criar a Tabela CURSO
| Atributo | Tipo de Dado | Restrição |
|---|---|---|
| id_curso | INT | PRIMARY KEY, AUTO_INCREMENT |
| nome | VARCHAR(100) | NOT NULL |
| ano_criacao | INT | - |
📗 PASSO 2: Criar a Tabela MATRÍCULA (M:N)
| Atributo | Relacionamento | Tipo |
|---|---|---|
| aluno_id | Referencia ALUNO(id) | FK, PK (Composta) |
| curso_id | Referencia CURSO(id_curso) | FK, PK (Composta) |
🚀 Desafio SQL: Script de Criação
Tente escrever o código SQL. Se precisar de uma base, veja o modelo abaixo:
-- Criando a tabela de Cursos
CREATE TABLE CURSO (
ID_CURSO INT PRIMARY KEY AUTO_INCREMENT,
NOME VARCHAR(100) NOT NULL,
ANO_CRIACAO INT
);
-- Criando a tabela de Matrícula (M:N)
CREATE TABLE MATRICULA (
ALUNO_ID INT,
CURSO_ID INT,
PRIMARY KEY (ALUNO_ID, CURSO_ID), -- CHAVE COMPOSTA
FOREIGN KEY (ALUNO_ID) REFERENCES ALUNO(ID),
FOREIGN KEY (CURSO_ID) REFERENCES CURSO(ID_CURSO)
);
💡 Insight Profissional: Ao definir
(ALUNO_ID, CURSO_ID)como PK, evitamos que o mesmo aluno se matricule duas vezes no mesmo curso, garantindo a integridade sem IDs extras. 🛡️