FC ConcursosFC Concursos

Questão FC295870

Qual esquema atende a esses requisitos?

Projeto e Modelagem de Dados

CESGRANRIO · 2023

Seja o seguinte modelo E-R:

 

Deverão ser criadas tabelas relacionais que preservem a semântica do modelo E-R apresentado e que atendam à 2a forma normal.


Qual esquema atende a esses requisitos?

  1. CREATE TABLE ALUNO (             MATRICULA INTEGER NOT NULL,             NOME TEXT NOT NULL,             PRIMARY KEY (MATRICULA));

    CREATE TABLE DISCIPLINA (        CODIGO TEXT NOT NULL,         NOME TEXT NOT NULL,         CARGA_HOR INTEGER NOT NULL,         MAT_PROF INTEGER NOT NULL,         NOME_PROF TEXT NOT NULL,         PRIMARY KEY (CODIGO));

    CREATE TABLE CURSOU (         MAT_ALUNO INTEGER NOT NULL,         COD_DISC TEXT NOT NULL,         ANO_PER TEXT NOT NULL,         NOTA NUMERIC (3,1) NOT NULL,         PRIMARY KEY (MAT_ALUNO, COD_DISC, ANO_PER),         FOREIGN KEY (MAT_ALUNO)                     REFERENCES ALUNO (MATRICULA),        FOREIGN KEY (COD_DISC)                   REFERENCES DISCIPLINA (CODIGO));

  2. CREATE TABLE ALUNO (            MATRICULA INTEGER NOT NULL,            NOME TEXT NOT NULL,            PRIMARY KEY (MATRICULA)); CREATE TABLE DISCIPLINA (        CODIGO TEXT NOT NULL,        NOME TEXT NOT NULL,         CARGA_HOR INTEGER NOT NULL,         MAT_PROF INTEGER NOT NULL,         NOME_PROF TEXT NOT NULL,         PRIMARY KEY (CODIGO));

    CREATE TABLE CURSOU (          MAT_ALUNO INTEGER NOT NULL,          COD_DISC TEXT NOT NULL,          ANO_PER TEXT NOT NULL,          NOTA NUMERIC (3,1) NOT NULL,          NOME_DISCIPLINA TEXT NOT NULL,          PRIMARY KEY (MAT_ALUNO, COD_DISC, ANO_PER),         FOREIGN KEY (MAT_ALUNO)                    REFERENCES ALUNO (MATRICULA),         FOREIGN KEY (COD_DISC)                    REFERENCES DISCIPLINA (CODIGO));

  3. CREATE TABLE ALUNO (              MATRICULA INTEGER NOT NULL,             NOME TEXT NOT NULL,             PRIMARY KEY (MATRICULA));

    CREATE TABLE PROFESSOR (         MATRICULA INTEGER NOT NULL,        NOME TEXT NOT NULL,        PRIMARY KEY (MATRICULA));

    CREATE TABLE DISCIPLINA (        CODIGO TEXT NOT NULL,        NOME TEXT NOT NULL,        CARGA_HOR INTEGER NOT NULL,        MAT_PROF INTEGER NOT NULL,        PRIMARY KEY (CODIGO),        FOREIGN KEY (MAT_PROF)

                      REFERENCES PROFESSOR (MATRICULA));

    CREATE TABLE CURSOU (        MAT_ALUNO INTEGER NOT NULL,        COD_DISC TEXT NOT NULL,        ANO_PER TEXT NOT NULL,        NOTA NUMERIC (3,1) NOT NULL,       PRIMARY KEY (MAT_ALUNO, COD_DISC),        FOREIGN KEY (MAT_ALUNO)                   REFERENCES ALUNO (MATRICULA),         FOREIGN KEY (COD_DISC)                     REFERENCES DISCIPLINA (CODIGO));

  4. CREATE TABLE ALUNO (             MATRICULA INTEGER NOT NULL,             NOME TEXT NOT NULL,             PRIMARY KEY (MATRICULA));  

    CREATE TABLE PROFESSOR (       MATRICULA INTEGER NOT NULL,       NOME TEXT NOT NULL,       PRIMARY KEY (MATRICULA)); CREATE TABLE DISCIPLINA (         CODIGO TEXT NOT NULL,         NOME TEXT NOT NULL,         CARGA_HOR INTEGER NOT NULL,        MAT_PROF INTEGER NOT NULL,        PRIMARY KEY (CODIGO),        FOREIGN KEY (MAT_PROF)                   REFERENCES PROFESSOR (MATRICULA)); CREATE TABLE CURSOU (         MAT_ALUNO INTEGER NOT NULL,         COD_DISC TEXT NOT NULL,         ANO_PER TEXT NOT NULL,         NOTA NUMERIC (3,1) NOT NULL,         NOME_DISCIPLINA TEXT NOT NULL,         PRIMARY KEY (MAT_ALUNO, COD_DISC, ANO_PER),         FOREIGN KEY (MAT_ALUNO)                    REFERENCES ALUNO (MATRICULA),          FOREIGN KEY (COD_DISC)                     REFERENCES DISCIPLINA (CODIGO));

  5. CREATE TABLE ALUNO (             MATRICULA INTEGER NOT NULL,             NOME TEXT NOT NULL,            PRIMARY KEY (MATRICULA)); CREATE TABLE PROFESSOR (         MATRICULA INTEGER NOT NULL,         NOME TEXT NOT NULL,         PRIMARY KEY (MATRICULA));

    CREATE TABLE DISCIPLINA (        CODIGO TEXT NOT NULL,        NOME TEXT NOT NULL,        CARGA_HOR INTEGER NOT NULL,        MAT_PROF INTEGER NOT NULL,       PRIMARY KEY (CODIGO),       FOREIGN KEY (MAT_PROF)                   REFERENCES PROFESSOR (MATRICULA)); CREATE TABLE CURSOU (         MAT_ALUNO INTEGER NOT NULL,         COD_DISC TEXT NOT NULL,         ANO_PER TEXT NOT NULL,         NOTA NUMERIC (3,1) NOT NULL,         NOME_DISCIPLINA TEXT NOT NULL,          PRIMARY KEY (MAT_ALUNO, COD_DISC, ANO_PER),          FOREIGN KEY (MAT_ALUNO)                    REFERENCES ALUNO (MATRICULA),          FOREIGN KEY (COD_DISC)                      REFERENCES DISCIPLINA (CODIGO));

Mostrar resposta e comentário

Gabarito

A

Comentário do professor

A alternativa apresenta o mapeamento direto do modelo E‑R em três tabelas: ALUNO, DISCIPLINA e a associativa CURSOU. Cada tabela define claramente sua chave primária (MATRICULA para ALUNO; CODIGO para DISCIPLINA; \(MAT\_ALUNO, COD\_DISC, ANO\_PER\) para CURSOU) e as chaves estrangeiras em CURSOU referenciam ALUNO e DISCIPLINA, preservando a semântica do relacionamento N:N.

O atributo ANO_PER integra a chave composta de CURSOU, de modo que a nota depende da combinação inteira; assim não há dependência parcial em relação à chave composta. Em ALUNO e DISCIPLINA todos os atributos dependem da sua respectiva chave única.

Portanto, o esquema atende à 2ª Forma Normal e mantém os vínculos do diagrama E‑R por meio das chaves e da tabela associativa.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo