Questão nº 69
Questão de Tecnologia da Informação · CESGRANRIO BB 01/2022 (nº 69)
Considere o seguinte diagrama E-R:

Foi criado um conjunto de tabelas relacionais, a partir do modelo E-R acima. Uma vez que as regras de transformações de entidades e relações para tabelas relacionais independem dos tipos de dados dos atributos, todos os atributos do modelo E-R acima foram tratados como itens de dados do tipo cadeia de caracteres (TEXT).
As tabelas resultantes são as seguintes:
CREATE TABLE TX (
X1
TEXT
NOT NULL,
X2
TEXT
NOT NULL,
X3
TEXT
NOT NULL,
PRIMARY KEY (X1));
CREATE TABLE EY (
Y1
TEXT
NOT NULL,
Y2
TEXT
NOT NULL,
PRIMARY KEY (Y1));
Qual transformação da relação Rel irá preservar a semântica do diagrama E-R apresentado?
- A```sql
CREATE TABLE REL (
X1
TEXT
NOT NULL,
Y1
TEXT
NOT NULL,
R1
TEXT
NOT NULL,
R2
TEXT
NOT NULL,
PRIMARY KEY (X1, Y1),
FOREIGN KEY (X1)
REFERENCES TX (X1),
FOREIGN KEY (Y1)
REFERENCES EY (Y1));
``` - B```sql
CREATE TABLE REL (
X1
TEXT
NOT NULL,
Y1
TEXT
NOT NULL,
R1
TEXT
NOT NULL,
R2
TEXT
NOT NULL,
PRIMARY KEY (X1, R1),
FOREIGN KEY (X1)
REFERENCES TX (X1),
FOREIGN KEY (Y1)
REFERENCES EY (Y1));
``` - C```sql
CREATE TABLE REL (
X1
TEXT
NOT NULL,
Y1
TEXT
NOT NULL,
R1
TEXT
NOT NULL,
R2
TEXT
NOT NULL,
PRIMARY KEY (Y1, R1),
FOREIGN KEY (X1)
REFERENCES TX (X1),
FOREIGN KEY (Y1)
REFERENCES EY (Y1));
``` - D```sql
CREATE TABLE REL (
X1
TEXT
NOT NULL,
Y1
TEXT
NOT NULL,
R1
TEXT
NOT NULL,
R2
TEXT
NOT NULL,
PRIMARY KEY (X1, Y1, R1),
FOREIGN KEY (X1)
REFERENCES TX (X1),
FOREIGN KEY (Y1)
REFERENCES EY (Y1));
``` (alternativa correta) - E```sql
CREATE TABLE REL (
X1
TEXT
NOT NULL,
Y1
TEXT
NOT NULL,
R1
TEXT
NOT NULL,
R2
TEXT
NOT NULL,
PRIMARY KEY (R1),
FOREIGN KEY (X1)
REFERENCES TX (X1),
FOREIGN KEY (Y1)
REFERENCES EY (Y1));
```
Resposta comentada
Gabarito Alternativa D
Conceito-chave: Em um relacionamento, a chave primária da tabela que o representa deve ser formada pelas chaves das entidades participantes mais os atributos próprios do relacionamento, pois só assim cada ocorrência do relacionamento fica única e sem ambiguidade.
- (A) Incorreta: A chave
(X1, Y1)não incluiR1eR2, então se houver duas relações entre os mesmosX1eY1com valores diferentes deR1, a segunda tentativa de inserção violaria a chave primária, perdendo dados. - (B) Incorreta: Usar
(X1, R1)como chave ignoraY1, permitindo que um mesmoX1eR1se liguem a váriosY1diferentes, o que não é a semântica do relacionamento (que é entre paresX1-Y1). - (C) Incorreta: Usar
(Y1, R1)como chave ignoraX1, permitindo que um mesmoY1eR1se liguem a váriosX1, quebrando a identificação única do par. - (D) Correta: A chave
(X1, Y1, R1)inclui as chaves das duas entidades e o atributo próprioR1, garantindo que cada combinação de entidade e atributo seja única, preservando a semântica do diagrama E-R (ondeR1eR2são atributos do relacionamento). - (E) Incorreta: Usar apenas
R1como chave é um erro grave, poisR1não é necessariamente único no banco (dois relacionamentos diferentes podem ter o mesmoR1), e isso também não identifica quais entidades participam da relação.
Fonte: CESGRANRIO BB 01/2022 Escriturário - Agente de Tecnologia (Caderno Gabarito 1). Reproduzida para fins de estudo.