Pular para o conteúdo principal

Questão de Banco de Dados — Modelagem e Mapeamento ER-relacional — Quadrix 2024

Banco de DadosModelagem e Mapeamento ER-relacional
Código
qa630738
Banca
Quadrix
Órgão
CRQ 12 (GO, TO e DF)
Ano
2024
Cargo
Ana (CRQ 12)

1. CREATE TABLE Empresa (
2.     Cod_Empresa INT PRIMARY KEY,
3.     Nome VARCHAR(100) NOT NULL,
4.     Endereco VARCHAR(200),
5.     Telefone INT NOT NULL
6. );
7.
8. CREATE TABLE Produto_Quimico (
9.     Cod_Produto_Quimico INT PRIMARY KEY,
10.    Nome VARCHAR(100) NOT NULL,
11.    Composicao VARCHAR(300)
12. );
13.
14. CREATE TABLE Empresa_Produto_Quimico (
15.     Cod_Empresa INT,
16.     Cod_Produto_Quimico INT,
17.     PRIMARY KEY (Cod_Empresa, Cod_Produto_Quimico),
18.     FOREIGN KEY (Cod_Empresa) REFERENCES Empresa(Cod_Empresa),
19.     FOREIGN KEY (Cod_Produto_Quimico) REFERENCES Produto_Quimico(Cod_Produto_Quimico)
    );

 

Com referência ao código SQL (Structured Query Language) acima, julgue o item.

 

Infere‑se do script que há um relacionamento do tipo n:n (muitos para muitos) entre as tabelas Empresa e Produto_Quimico.

  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Mapeamento ER para relacional: relacionamento n:n

Gabarito: CERTO (letra C). O script cria a tabela associativa Empresa_Produto_Quimico com chave primária composta por Cod_Empresa e Cod_Produto_Quimico, cada um referenciando, via chave estrangeira, as tabelas Empresa e Produto_Quimico — exatamente o padrão de mapeamento de um relacionamento muitos-para-muitos (n:n) do modelo entidade-relacionamento para o modelo relacional.

O relacionamento n:n (muitos para muitos) ocorre quando uma entidade pode se relacionar com várias ocorrências de outra e vice-versa. No modelo relacional, esse tipo de relacionamento não pode ser representado diretamente com uma simples chave estrangeira em uma das tabelas, pois isso criaria redundância e violaria a integridade. A solução clássica é criar uma tabela associativa (também chamada de tabela de junção, tabela de ligação ou tabela relacional) que armazena as chaves primárias das duas entidades envolvidas, formando uma chave primária composta.

No script apresentado, a tabela Empresa_Produto_Quimico cumpre exatamente esse papel:

  • Possui os atributos Cod_Empresa e Cod_Produto_Quimico, que são as chaves primárias das tabelas Empresa e Produto_Quimico, respectivamente.

  • Define a chave primária composta (Cod_Empresa, Cod_Produto_Quimico), garantindo que cada par (empresa, produto químico) seja único.

  • Declara duas chaves estrangeiras: uma referenciando Empresa(Cod_Empresa) e outra referenciando Produto_Quimico(Cod_Produto_Quimico), assegurando a integridade referencial.

Essa estrutura permite que uma empresa se associe a vários produtos químicos e que um produto químico seja associado a várias empresas, caracterizando o relacionamento n:n. Se o relacionamento fosse 1:n (um para muitos), a chave estrangeira estaria diretamente na tabela do lado "muitos", sem necessidade de tabela intermediária. Se fosse 1:1, a chave estrangeira poderia estar em qualquer uma das tabelas, também sem tabela auxiliar.

A pegadinha que a banca poderia explorar é confundir a tabela associativa com uma simples tabela de dados, mas a presença da chave primária composta e das duas chaves estrangeiras é o sinal inequívoco de um relacionamento n:n. O candidato que conhece o padrão de mapeamento reconhece imediatamente a estrutura.

Critério

Relacionamento n:n (tabela associativa)

Relacionamento 1:n (chave estrangeira direta)

Estrutura

Tabela intermediária com chave primária composta pelas FKs das duas entidades

Chave estrangeira na tabela do lado "muitos" referenciando a tabela do lado "1"

Exemplo no script

Empresa_Produto_Quimico com PK (Cod_Empresa, Cod_Produto_Quimico) e duas FKs

Não presente no script; seria, por exemplo, Produto_Quimico com FK para Empresa

Cardinalidade representada

Muitos-para-muitos (uma empresa ↔ vários produtos; um produto ↔ várias empresas)

Um-para-muitos (uma empresa ↔ vários produtos, mas cada produto pertence a uma única empresa)

Integridade referencial

Duas FKs, cada uma apontando para uma tabela distinta

Uma única FK apontando para a tabela referenciada

Necessidade de tabela auxiliar

Obrigatória para evitar redundância e violação de integridade

Desnecessária; a FK direta já resolve

Item — ✅ Correto ⟵ GABARITO

A afirmação está correta. A tabela Empresa_Produto_Quimico é a materialização relacional do relacionamento n:n entre Empresa e Produto_Quimico. A chave primária composta (Cod_Empresa, Cod_Produto_Quimico) e as duas chaves estrangeiras são a assinatura clássica desse tipo de relacionamento. Sem essa tabela intermediária, seria impossível representar corretamente a cardinalidade muitos-para-muitos no modelo relacional sem violar a integridade dos dados.

Gabarito: letra C (CERTO).

Link permanente: /questoes/qa630738