Questão de Banco de Dados — Banco de Dados — FGV 2023
Banco de Dados›Banco de Dados
Código
fg069414
Banca
FGV
Órgão
SEFAZ-MT
Ano
2023
Nível
Superior
Cargo
SEFAZ- MT - Fiscal de Tributos Estaduais (FTE) - Tarde
Em um banco de dados relacional, analise o comando da linguagem de definição de dados (SQL) exibido a seguir.Sobra esse esquema, assinale a afirmativa correta.
AA coluna A da tabela Y deve ser declarada como not null.
BA remoção de um registro da tabela X provoca a deleção de, no máximo, um registro da tabela Y.
CA remoção de um registro da tabela Y provoca a deleção de, no mínimo, um registro da tabela X.
DCada registro da tabela X está relacionado a exatamente um registro da tabela Y.
ECada registro da tabela Y está relacionado a, no máximo, um registro da tabela Y.
Revelar gabarito e comentário▾
GabaritoE — Cada registro da tabela Y está relacionado a, no máximo, um registro da tabela Y.
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”.
Modelo Relacional: chaves estrangeiras e cardinalidade de relacionamentos
Gabarito: letra E. A afirmativa correta é a letra E: cada registro da tabela Y está relacionado a, no máximo, um registro da tabela Y. Isso decorre do fato de que a coluna A da tabela Y é uma chave estrangeira que referencia a chave primária da tabela X, e a coluna B da tabela Y é uma chave primária — portanto, cada linha de Y é única e só pode apontar para uma linha de X, mas várias linhas de Y podem apontar para a mesma linha de X, caracterizando um relacionamento muitos-para-um (N:1) de Y para X.
O modelo relacional organiza os dados em tabelas (relações), onde cada linha é um registro único e cada coluna representa um atributo. As chaves são fundamentais: a chave primária (PRIMARY KEY) identifica unicamente cada linha da tabela, e a chave estrangeira (FOREIGN KEY) estabelece o vínculo entre tabelas, referenciando a chave primária de outra tabela. No comando DDL apresentado, a tabela Y possui duas colunas: A e B. A coluna A é declarada como chave estrangeira, referenciando a chave primária da tabela X (coluna A da tabela X). A coluna B é declarada como chave primária da tabela Y. Isso significa que cada registro de Y tem um valor único em B, e o valor de A em Y deve existir como chave primária em X.
A cardinalidade do relacionamento é determinada por essas chaves. Como a chave estrangeira A em Y referencia a chave primária de X, cada registro de Y está associado a exatamente um registro de X (a chave primária é única). Por outro lado, um registro de X pode ser referenciado por vários registros de Y, pois não há restrição de unicidade na coluna A de Y. Portanto, o relacionamento é N:1 (muitos para um) de Y para X, ou 1:N (um para muitos) de X para Y. Isso significa que cada registro de Y está relacionado a, no máximo, um registro de X (na verdade, exatamente um, pois a chave estrangeira não pode ser nula, a menos que seja permitido NULL), e cada registro de X pode estar relacionado a zero, um ou vários registros de Y.
A pegadinha da banca está em inverter a direção da cardinalidade. Muitos candidatos confundem a direção do relacionamento: a chave estrangeira fica na tabela que representa o lado "muitos" do relacionamento. Aqui, Y tem a chave estrangeira, então Y é o lado "muitos" e X é o lado "um". Assim, cada Y aponta para um único X, mas cada X pode ter vários Y. A alternativa E captura corretamente essa relação: cada registro de Y está relacionado a, no máximo, um registro de X (na verdade, exatamente um, se a chave estrangeira for NOT NULL). As demais alternativas erram ao afirmar que a remoção de um registro de X provoca a deleção de, no máximo, um registro de Y (na verdade, pode deletar vários, dependendo da ação referencial), ou que cada registro de X está relacionado a exatamente um registro de Y (na verdade, pode estar relacionado a vários).
Guarde a regra de ouro: a tabela que contém a chave estrangeira é o lado "muitos" do relacionamento, e a tabela referenciada é o lado "um". É exatamente essa direção que as alternativas tentam inverter.
Alternativa A — ❌ Incorreta
A coluna A da tabela Y é uma chave estrangeira que referencia a chave primária da tabela X. Não é obrigatório que ela seja declarada como NOT NULL — a menos que a cardinalidade mínima seja 1 (ou seja, todo Y deve ter um X correspondente). O comando DDL pode permitir NULL na chave estrangeira, o que significaria que um registro de Y pode não estar associado a nenhum registro de X. Portanto, a afirmativa é incorreta porque a chave estrangeira não precisa ser NOT NULL por padrão.
Alternativa B — ❌ Incorreta
A remoção de um registro da tabela X pode provocar a deleção de vários registros da tabela Y, não de no máximo um. Isso depende da ação referencial definida na chave estrangeira (ON DELETE CASCADE, por exemplo). Como vários registros de Y podem referenciar o mesmo registro de X, a remoção de um X pode afetar múltiplos Y. A afirmativa erra ao limitar a deleção a um único registro.
Alternativa C — ❌ Incorreta
A remoção de um registro da tabela Y não provoca a deleção de registros da tabela X. A chave estrangeira está em Y, referenciando X, mas a remoção de um Y não afeta X, a menos que haja uma ação referencial definida (o que não é o caso padrão). A afirmativa inverte a direção do efeito: a remoção de um filho (Y) não deleta o pai (X).
Alternativa D — ❌ Incorreta
Cada registro da tabela X está relacionado a zero, um ou vários registros da tabela Y, não a exatamente um. Como a chave estrangeira está em Y, um registro de X pode ser referenciado por vários Y, ou por nenhum. A afirmativa erra ao impor uma cardinalidade exata de 1, quando na verdade é 1:N (um para muitos).
Alternativa E — ✅ Correta ⟵ GABARITO
Cada registro da tabela Y está relacionado a, no máximo, um registro da tabela X. Isso é verdade porque a coluna A de Y é uma chave estrangeira que referencia a chave primária de X, e a chave primária é única. Portanto, cada Y aponta para exatamente um X (ou nenhum, se NULL for permitido). A afirmativa está correta ao capturar a cardinalidade N:1 de Y para X.