Questão nº 58

Questão de Tecnologia da Informação · CESGRANRIO BASA 02/2021 (nº 58)

CESGRANRIO2021Técnico Científico - Tecnologia da InformaçãoTecnologia da Informação
Gabarito: Cver comentário ↓

Um banco de dados relacional é composto pelas seguintes tabelas:

```sql
CREATE TABLE A (
a1 TEXT NOT NULL,
a2 TEXT NOT NULL,
a3 TEXT NOT NULL,
PRIMARY KEY (a1,a2));

CREATE TABLE B (
b1 TEXT NOT NULL,
b2 TEXT NOT NULL,
b3 TEXT NOT NULL,
PRIMARY KEY (b1));

CREATE TABLE R (
a1 TEXT NOT NULL,
a2 TEXT NOT NULL,
b1 TEXT NOT NULL,
PRIMARY KEY (a1,a2),
FOREIGN KEY (a1,a2)
REFERENCES A (a1,a2),
FOREIGN KEY (b1)
REFERENCES B (b1));
```

Com o intuito de simplificar, considere que todas as colunas de todas as tabelas são do tipo TEXT.

O modelo relacional acima foi obtido por meio da aplicação de regras de transformação sobre um modelo E-R, de modo a
preservar a semântica deste.

Qual modelo E-R deu origem a essas tabelas?

Resposta comentada

Gabarito Alternativa C

Conceito-chave: A tabela R é uma tabela de relacionamento (ou tabela associativa) que liga as entidades A e B. Como a chave primária de R é (a1, a2) — exatamente a chave de A — isso indica que o relacionamento é 1:N (um registro de B pode estar associado a vários registros de A, mas cada registro de A se relaciona com no máximo um B). A chave estrangeira b1 em R é apenas uma chave estrangeira comum, não parte da chave primária, confirmando que B está no lado "1" e A no lado "N".

  • (A) Incorreta: Mostra um relacionamento N:N (muitos-para-muitos), o que exigiria que a chave primária de R fosse composta por (a1, a2, b1) — mas no SQL a PK de R é só (a1, a2), então não pode ser N:N.
  • (B) Incorreta: Inverte a cardinalidade, colocando B como o lado "N" e A como o lado "1". Isso faria a chave primária de R ser (b1) ou incluir b1 como parte da PK, o que não ocorre.
  • (C) Correta: Representa exatamente o modelo: A é entidade forte com chave (a1, a2), B é entidade forte com chave (b1), e o relacionamento R é 1:N de B para A, com a chave estrangeira b1 em R apontando para B e a PK de R herdada de A. A cardinalidade "1" do lado de B e "N" do lado de A é a única que produz a tabela R com PK (a1, a2) e FK b1 sem ser parte da PK.
  • (D) Incorreta: Representa um relacionamento 1:1 (um-para-um), o que normalmente fundiria as tabelas ou faria a PK de R ser igual à PK de A e também igual à PK de B — mas aqui b1 não é chave única em R (pode haver vários registros com o mesmo b1), então não é 1:1.
  • (E) Incorreta: Mostra A e B como entidades fracas (com identificação parcial), mas ambas têm chaves primárias próprias (a1,a2 e b1) e não dependem de outra entidade para existir, então não são fracas.

Armadilha do distrator mais tentador (B): A banca inverte a direção da seta ou coloca o "1" do lado errado. O aluno vê que R tem FK para B e pensa que B é o lado "N", mas a chave primária de R é a chave de A, o que prova que A é o lado "N" (cada A aparece uma vez em R, mas vários A podem apontar para o mesmo B). A pegadinha é confundir "quem tem a FK" com "quem é o lado N" — o correto é olhar para a PK da tabela associativa.

Fonte: CESGRANRIO BASA 02/2021 Técnico Científico - Tecnologia da Informação. Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho