Questão FC295829
Qual esquema relacional preserva a semântica do modelo E-R acima?
Projeto e Modelagem de Dados
CESGRANRIO · 2018
A Figura abaixo exibe um modelo E-R.

Os identificadores das entidades A, B e C são, respectivamente, (a1,a2), b1 e c1.
Considere que, na transformação desse modelo para um conjunto de Tabelas relacionais, todos os atributos serão tratados como strings com exatamente 10 caracteres.
Qual esquema relacional preserva a semântica do modelo E-R acima?
- CREATE TABLE A ( A1 CHAR(10) NOT NULL, A2 CHAR(10) NOT NULL, A3 CHAR(10) NOT NULL, B1 CHAR(10), CONSTRAINT A_PK PRIMARY KEY (A1,A2), CONSTRAINT A_FK FOREIGN KEY (B1) REFERENCES B(B1))
CREATE TABLE B ( B1 CHAR(10) NOT NULL, B2 CHAR(10) NOT NULL, CONSTRAINT B_PK PRIMARY KEY (B1))
CREATE TABLE C ( C1 CHAR(10) NOT NULL, C2 CHAR(10) NOT NULL, C3 CHAR(10) NOT NULL, CONSTRAINT C_PK PRIMARY KEY (C1))
CREATE TABLE RB ( C1 CHAR(10) NOT NULL, B1 CHAR(10) NOT NULL UNIQUE, CONSTRAINT RB_PK PRIMARY KEY (C1), CONSTRAINT R1_FK FOREIGN KEY (C1) REFERENCES C(C1), CONSTRAINT R2_FK FOREIGN KEY (B1) REFERENCES B(B1))
- CREATE TABLE A ( A1 CHAR(10) NOT NULL, A2 CHAR(10) NOT NULL, A3 CHAR(10) NOT NULL, CONSTRAINT A_PK PRIMARY KEY (A1,A2))
CREATE TABLE B ( B1 CHAR(10) NOT NULL, B2 CHAR(10) NOT NULL, A1 CHAR(10), A2 CHAR(10), CONSTRAINT B_PK PRIMARY KEY (B1), CONSTRAINT B1_FK FOREIGN KEY (A1,A2) REFERENCES A(A1,A2))
CREATE TABLE C ( C1 CHAR(10) NOT NULL, C2 CHAR(10) NOT NULL, C3 CHAR(10) NOT NULL, CONSTRAINT C_PK PRIMARY KEY (C1))
CREATE TABLE RB ( C1 CHAR(10) NOT NULL, B1 CHAR(10) NOT NULL UNIQUE, CONSTRAINT RB_PK PRIMARY KEY (C1), CONSTRAINT R1_FK FOREIGN KEY (C1) REFERENCES C(C1), CONSTRAINT R2_FK FOREIGN KEY (B1) REFERENCES B(B1))
- CREATE TABLE A ( A1 CHAR(10) NOT NULL, A2 CHAR(10) NOT NULL, A3 CHAR(10) NOT NULL, CONSTRAINT A_PK PRIMARY KEY (A1,A2)),
CREATE TABLE B ( B1 CHAR(10) NOT NULL, B2 CHAR(10) NOT NULL, CONSTRAINT B_PK PRIMARY KEY (B1))
CREATE TABLE RA ( A1 CHAR(10) NOT NULL, A2 CHAR(10) NOT NULL, B1 CHAR(10) NOT NULL, CONSTRAINT RA_PK PRIMARY KEY (A1,A2,B1), CONSTRAINT RX_FK FOREIGN KEY (A1,A2) REFERENCES A(A1,A2), CONSTRAINT RY_FK FOREIGN KEY (B1) REFERENCES B(B1))
CREATE TABLE C ( C1 CHAR(10) NOT NULL, C2 CHAR(10) NOT NULL, C3 CHAR(10) NOT NULL, B1 CHAR(10) UNIQUE, CONSTRAINT C_PK PRIMARY KEY (C1), CONSTRAINT C1_FK FOREIGN KEY (B1) REFERENCES B(B1))
- CREATE TABLE A ( A1 CHAR(10) NOT NULL, A2 CHAR(10) NOT NULL, A3 CHAR(10) NOT NULL, CONSTRAINT A_PK PRIMARY KEY (A1,A2)),
CREATE TABLE B ( B1 CHAR(10) NOT NULL, B2 CHAR(10) NOT NULL, C1 CHAR(10) UNIQUE, CONSTRAINT B_PK PRIMARY KEY (B1), CONSTRAINT B1_FK FOREIGN KEY (C1) REFERENCES C(C1))
CREATE TABLE RA ( A1 CHAR(10) NOT NULL, A2 CHAR(10) NOT NULL, B1 CHAR(10) NOT NULL, CONSTRAINT RA_PK PRIMARY KEY (B1), CONSTRAINT RX_FK FOREIGN KEY (A1,A2) REFERENCES A(A1,A2), CONSTRAINT RY_FK FOREIGN KEY (B1) REFERENCES B(B1))
CREATE TABLE C ( C1 CHAR(10) NOT NULL, C2 CHAR(10) NOT NULL, C3 CHAR(10) NOT NULL, CONSTRAINT C_PK PRIMARY KEY (C1))
- CREATE TABLE A ( A1 CHAR(10) NOT NULL, A2 CHAR(10) NOT NULL, A3 CHAR(10) NOT NULL, B1 CHAR(10) NOT NULL, CONSTRAINT A_PK PRIMARY KEY (A1,A2), CONSTRAINT A_FK FOREIGN KEY (B1) REFERENCES B(B1))
CREATE TABLE B ( B1 CHAR(10) NOT NULL, B2 CHAR(10) NOT NULL, C1 CHAR(10) NOT NULL UNIQUE, CONSTRAINT B_PK PRIMARY KEY (B1), CONSTRAINT B1_FK FOREIGN KEY (C1) REFERENCES C(C1))
CREATE TABLE C ( C1 CHAR(10) NOT NULL, C2 CHAR(10) NOT NULL, C3 CHAR(10) NOT NULL, CONSTRAINT C_PK PRIMARY KEY (C1))
Mostrar resposta e comentário
Gabarito
A
Comentário do professor
A alternativa escolhe corretamente duas estratégias de mapeamento. Para o relacionamento entre A e B foi usada a referência por chave estrangeira: a tabela A traz B1 como FOREIGN KEY opcional (sem NOT NULL), o que garante que cada ocorrência de A pode ligar-se a no máximo uma B e também pode não ter ligação — exatamente a cardinalidade 0..1 do lado de A; a chave primária de A é a composição (A1,A2), preservando identificadores originais.
Para o relacionamento entre B e C optou‑se por tabela associativa RB com C1 como PRIMARY KEY e B1 como UNIQUE e NOT NULL, além das duas FOREIGN KEY. Essa estrutura assegura que, quando o relacionamento existe, cada C relaciona‑se com no máximo uma B e cada B com no máximo uma C, ao mesmo tempo em que permite que B e C existam isoladamente (relacionamento opcional). Todos os atributos são CHAR(10) conforme enunciado, mantendo integridade e semântica do modelo E‑R.
Conteúdo do catálogo FC Concursos · Atualizado em