Pular para o conteúdo principal

Questão de Banco de Dados — Modelagem e Mapeamento ER-relacional — CESGRANRIO 2023

Banco de DadosModelagem e Mapeamento ER-relacional
Código
cg057508
Banca
CESGRANRIO
Órgão
TRANSPETRO
Ano
2023
Cargo
PTNS ( )
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?Imagem associada para resolução da questão
  1. ACREATE 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. BCREATE 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. CCREATE 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. DCREATE 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. ECREATE 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));
Revelar gabarito e comentário

GabaritoA — 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));

Link permanente: /questoes/cg057508