Questão nº 64
Questão de Tecnologia da Informação · CESGRANRIO Transpetro PSP-RH-2018.1 (nº 64)
As Tabelas abaixo foram geradas a partir de um modelo E-R de modo que a semântica desse modelo foi integralmente preservada.
```sql
CREATE TABLE E1 (
X1 CHAR(10) NOT NULL,
X2 CHAR(10) NOT NULL,
X3 CHAR(10) NOT NULL,
Y1 CHAR(10) UNIQUE,
Y2 CHAR(10),
CONSTRAINT E1_PK PRIMARY KEY (X1))
CREATE TABLE E2 (
Z1 CHAR(10) NOT NULL,
Z2 CHAR(10) NOT NULL,
CONSTRAINT E2_PK PRIMARY KEY (Z1))
CREATE TABLE S (
X1 CHAR(10) NOT NULL,
Z1 CHAR(10) NOT NULL,
W1 CHAR(10) NOT NULL,
CONSTRAINT S_PK PRIMARY KEY (Z1),
CONSTRAINT S_FK1 FOREIGN KEY (X1)
REFERENCES E1 (X1),
CONSTRAINT S_FK2 FOREIGN KEY (Z1)
REFERENCES E2 (Z1))
```
Qual modelo E-R serviu de base para a geração das Tabelas acima?
- A

- B

- C

- D
(alternativa correta) - E

Resposta comentada
Gabarito Alternativa D
Conceito-chave: A chave primária de uma tabela resultante de um relacionamento é definida pela cardinalidade desse relacionamento. Se um relacionamento N:1 (muitos para um) é transformado em tabela, a chave primária vem da entidade do lado "N" (a que participa com muitos); se for 1:1, a chave primária pode vir de qualquer um dos lados, mas a escolha reflete a semântica original.
- (A) Incorreta: Se o relacionamento fosse N:N (muitos-para-muitos), a tabela
Steria chave primária composta por(X1, Z1), mas aquiStem chave primáriaZ1sozinha, indicando queZ1é o lado "N" (ou "1" obrigatório) eX1é o lado "1" opcional. - (B) Incorreta: Se
E1fosse o lado "N" eE2o lado "1", a chave primária deSseriaX1, nãoZ1. A presença deZ1como PK mostra queE2é o lado "N" (ou o lado "1" com participação total, mas a FKX1emSindica queE1é o lado "1" opcional). - (C) Incorreta: Um relacionamento 1:1 com participação total de ambos os lados geraria uma tabela com chave primária de um dos lados e a FK do outro, mas aqui
X1é apenas FK (não é UNIQUE), o que viola a restrição 1:1 (em 1:1, a FK deve ser UNIQUE). A presença deY1UNIQUE emE1não tem relação com o relacionamento. - (D) Correta: O modelo é um relacionamento N:1 entre
E2(lado N, com participação total, poisZ1é PK e FK) eE1(lado 1, com participação parcial, poisX1é FK sem restrição UNIQUE). A tabelaSrepresenta esse relacionamento, comZ1como PK (vinda deE2) eX1como FK (vinda deE1). A semântica é: cada instância deE2está associada a no máximo uma instância deE1, e cadaE1pode estar associada a váriasE2. - (E) Incorreta: Se
E1tivesse participação total (obrigatória) no relacionamento, a FKX1emSseriaNOT NULL(o que já é), mas a chave primária deSseriaX1(seE1fosse o lado "1" obrigatório) ouZ1(seE2fosse o lado "1" obrigatório). ComoZ1é PK,E2é o lado "1" obrigatório, mas a FKX1não é UNIQUE, o que não caracteriza um relacionamento 1:1, mas sim N:1 comE2no lado N.
Armadilha do distrator mais tentador (B): A banca desenha um relacionamento N:1 com E1 no lado "N" e E2 no lado "1", mas a chave primária de S seria X1 (do lado N), não Z1. O aluno que confunde "lado N" com "lado que tem FK" cai nessa pegadinha, pois vê X1 como FK e assume que E1 é o lado N, quando na verdade o lado N é aquele cuja chave vira PK da tabela associativa.
Fonte: CESGRANRIO Transpetro PSP-RH-2018.1 Analista de Sistemas Júnior - Infraestrutura. Reproduzida para fins de estudo.