Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

🧠 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

AtributoTipo de DadoRestrição
id_cursoINTPRIMARY KEY, AUTO_INCREMENT
nomeVARCHAR(100)NOT NULL
ano_criacaoINT-

📗 PASSO 2: Criar a Tabela MATRÍCULA (M:N)

AtributoRelacionamentoTipo
aluno_idReferencia ALUNO(id)FK, PK (Composta)
curso_idReferencia 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. 🛡️