FC ConcursosFC Concursos

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:

  1. CREATE TABLE Participacao (

            IDParticipacao INT PRIMARY KEY,

            FOREIGN KEY (IDCaso) REFERENCES Caso (IDCaso),

            FOREIGN KEY (IDAdvogado) REFERENCES Advogado

         (IDAdvogado));

  2. CREATE TABLE Participacao (

            IDParticipacao INT PRIMARY KEY,

            IDCaso INT,

            IDAdvogado INT,

            FOREIGN KEY (IDCaso) REFERENCES Caso (IDCaso),

            FOREIGN KEY (IDAdvogado) REFERENCES Advogado

         (IDAdvogado));

  3. CREATE TABLE Participacao (

            IDCaso INT,

            IDAdvogado INT,

            PRIMARY KEY (IDCaso) REFERENCES Caso (IDCaso),

            PRIMARY KEY (IDAdvogado) REFERENCES Advogado

         (IDAdvogado),

            FOREIGN KEY (IDCaso, IDAdvogado));

  4. CREATE TABLE Participacao (

             IDParticipacao INT PRIMARY KEY,

             FOREIGN KEY (IDCaso) REFERENCES Caso (IDCaso),

             FOREIGN KEY (IDAdvogado) REFERENCES Advogado

         (IDAdvogado),

             UNIQUE (IDCaso, IDAdvogado));

  5. 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

Continue aprendendo