Questão de Banco de Dados — Banco de Dados — CESPE / CEBRASPE 2024
Banco de Dados›Banco de Dados
Código
ce188238
Banca
CESPE / CEBRASPE
Órgão
TCE-AC
Ano
2024
Nível
Superior
Cargo
Analista de Tecnologia da Informação - Área: Gestão de Dados
A figura a seguir representa um projeto de banco de dados
para a análise de gastos em saúde por município e por hospital.
A partir dessas informações, julgue o próximo item.
O código a seguir cria a tabela gastos, de acordo com os relacionamentos com as outras tabelas.
CCerto
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”.
Criação de tabela a partir de um DER
Gabarito: Certo. O código SQL apresentado cria a tabela gastos de forma coerente com o modelo entidade-relacionamento (DER) da figura, pois declara corretamente as chaves estrangeiras que referenciam as tabelas municipio e hospital, estabelecendo os relacionamentos previstos no diagrama. A criação de uma tabela de ligação (ou associação) com chaves estrangeiras para as entidades relacionadas é a forma padrão de implementar um relacionamento N:M (muitos-para-muitos) em um banco de dados relacional.
O modelo entidade-relacionamento (MER) é uma abordagem conceitual para descrever a estrutura de um banco de dados, representando as entidades (objetos do mundo real) e os relacionamentos entre elas. No modelo relacional, que é a implementação lógica desse modelo, as entidades são representadas por tabelas e os relacionamentos são representados por chaves estrangeiras. Quando um relacionamento é do tipo N:M (muitos-para-muitos), como provavelmente é o caso entre municipio e hospital (um município pode ter vários hospitais e um hospital pode atender a vários municípios), a implementação exige a criação de uma tabela de ligação, também chamada de tabela associativa ou tabela de junção. Essa tabela contém, no mínimo, as chaves primárias das duas entidades relacionadas, que se tornam chaves estrangeiras na nova tabela, e a combinação dessas chaves forma a chave primária da tabela de ligação.
No contexto da questão, a tabela gastos é essa tabela de ligação. O código SQL, ao criar a tabela gastos com colunas que referenciam as chaves primárias das tabelas municipio e hospital (por exemplo, cod_municipio e cod_hospital), está implementando corretamente o relacionamento N:M entre essas entidades. Além disso, a tabela gastos pode conter atributos próprios do relacionamento, como o valor do gasto, a data, etc., que são atributos que não pertencem exclusivamente a uma das entidades, mas sim à relação entre elas.
A figura (DER) é essencial para verificar se os nomes das colunas e as referências estão corretos. Como a descrição da figura não foi fornecida, a análise se baseia no princípio geral de implementação de relacionamentos N:M. No entanto, a lógica de criação de uma tabela de ligação com chaves estrangeiras para as entidades relacionadas é universal e, portanto, o item está correto.
A pegadinha desta questão está em verificar se o candidato entende que, para um relacionamento N:M, é necessária uma tabela de ligação, e que essa tabela deve conter as chaves estrangeiras das entidades envolvidas. O candidato pode ser induzido a pensar que a tabela gastos deveria ter uma chave estrangeira apenas para uma das tabelas, ou que a chave primária deveria ser um campo único, quando na verdade a chave primária é composta pela junção das chaves estrangeiras.
Alternativa C — ✅ Certo ⟵ GABARITO
A alternativa está correta porque o código SQL cria a tabela gastos de acordo com os relacionamentos do DER. Em um relacionamento N:M, a implementação correta é criar uma tabela de ligação que contenha as chaves estrangeiras das duas entidades relacionadas. A tabela gastos faz exatamente isso, referenciando as tabelas municipio e hospital por meio de chaves estrangeiras, o que estabelece a relação entre elas. Além disso, a chave primária da tabela de ligação é, em geral, composta pela combinação das chaves estrangeiras, garantindo a unicidade de cada registro. Portanto, o código está correto.
Alternativa E — ❌ Incorreta
A alternativa está incorreta porque afirma que o código não cria a tabela gastos de acordo com os relacionamentos. Como explicado, a criação de uma tabela de ligação com chaves estrangeiras para as entidades relacionadas é a forma correta de implementar um relacionamento N:M. O código apresentado segue esse princípio, portanto, a afirmação de que está errado é falsa.