Questão FC369460
João está encarregado de projetar um banco de dados PostgreSQL para gerenciar informações sobre casos jurídicos e advogados, considerando as seguintes especificações: \(\bullet\) a
Linguagem SQL
FGV · 2024
João está encarregado de projetar um banco de dados PostgreSQL para gerenciar informações sobre casos jurídicos e advogados, considerando as seguintes especificações:
\(\bullet\) a tabela "Caso" armazena informações sobre os casos, incluindo um identificador único “IDCaso” como chave primária;
\(\bullet\) a tabela "Advogado" armazena informações sobre os advogados, incluindo um identificador único “IDAdvogado” como chave primária;
\(\bullet\) cada caso pode ter vários advogados envolvidos;
\(\bullet\) um advogado pode estar envolvido em vários casos.
Nesse contexto, João precisa modelar um relacionamento “muitos-para-muitos” entre "Caso" e "Advogado". Para isso, ele deverá criar uma tabela de associação, denominada "Participacao", utilizando o script SQL:
- CREATE TABLE Participacao (
IDParticipacao INT PRIMARY KEY,
FOREIGN KEY (IDCaso) REFERENCES Caso (IDCaso),
FOREIGN KEY (IDAdvogado) REFERENCES Advogado
(IDAdvogado));
- CREATE TABLE Participacao (
IDParticipacao INT PRIMARY KEY,
IDCaso INT,
IDAdvogado INT,
FOREIGN KEY (IDCaso) REFERENCES Caso (IDCaso),
FOREIGN KEY (IDAdvogado) REFERENCES Advogado
(IDAdvogado));
- CREATE TABLE Participacao (
IDCaso INT,
IDAdvogado INT,
PRIMARY KEY (IDCaso) REFERENCES Caso (IDCaso),
PRIMARY KEY (IDAdvogado) REFERENCES Advogado
(IDAdvogado),
FOREIGN KEY (IDCaso, IDAdvogado));
- CREATE TABLE Participacao (
IDParticipacao INT PRIMARY KEY,
FOREIGN KEY (IDCaso) REFERENCES Caso (IDCaso),
FOREIGN KEY (IDAdvogado) REFERENCES Advogado
(IDAdvogado),
UNIQUE (IDCaso, IDAdvogado));
- CREATE TABLE Participacao (
IDCaso INT PRIMARY KEY,
IDAdvogado INT PRIMARY KEY,
FOREIGN KEY (IDCaso) REFERENCES Caso (IDCaso),
FOREIGN KEY (IDAdvogado) REFERENCES Advogado
(IDAdvogado));
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
A opção apresentada cria a tabela Participacao com a coluna IDParticipacao como PRIMARY KEY, além de declarar as colunas IDCaso e IDAdvogado. Em seguida, estabelece as restrições de FOREIGN KEY referenciando Caso(IDCaso) e Advogado(IDAdvogado), garantindo a integridade referencial entre as tabelas.
Essa modelagem implementa o relacionamento muitos-para-muitos por meio de uma entidade associativa que possui uma chave primária independente. Assim, cada vínculo entre caso e advogado é identificado por IDParticipacao, o que permite registrar múltiplas ocorrências do mesmo par (por exemplo, histórico ou eventos distintos) porque não há restrição de UNIQUE sobre (IDCaso, IDAdvogado).
Do ponto de vista sintático e semântico, a declaração está correta: as colunas são definidas antes das restrições e as referências usam a sintaxe REFERENCES. Observação prática: assegurar que os tipos de dados das chaves estrangeiras coincidam com os das tabelas referenciadas e, se desejado, usar sequência/IDENTITY para autoincremento de IDParticipacao.
Conteúdo do catálogo FC Concursos · Atualizado em