Questão nº 91
Questão de Informática · CEBRASPE PF 2025 (nº 91)
CREATE TABLE catalogo ( id_tabela INT, nome_tabela VARCHAR(255), descricao TEXT, colunas TEXT, relacionamentos TEXT, regras_negocio TEXT, data_criacao DATE, data_ultima_atualizacao DATE ); INSERT INTO catalogo VALUES ( 1, 'vendas', 'Registros de vendas realizadas', 'id_venda INT, data_venda DATE, valor_venda DECIMAL, id_produto INT', 'id_produto REFERENCES produtos(id)', 'valor_venda > 0', '2023-01-01', '2023-10-05' ); SELECT * FROM catalogo WHERE nome_tabela = 'vendas';Com base nas informações do código precedente, julgue os próximos itens.
O comando SELECT mostra que existe uma relação com uma tabela de nome produtos mediante id_produto.
Resposta comentada
O comando SELECT * FROM catalogo WHERE nome_tabela = 'vendas' retorna a linha inserida, e nessa linha o campo relacionamentos contém o texto 'id_produto REFERENCES produtos(id)'. Esse texto descreve que a tabela vendas tem uma chave estrangeira (REFERENCES) apontando para a tabela produtos na coluna id. Ou seja, o catálogo documenta a relação, mesmo que o banco não tenha uma constraint real — a informação está lá, textualmente.
- Correta: Certo. O
SELECTmostra o registro da tabelavendas, e o camporelacionamentosexplicitamente citaprodutos(id), evidenciando a relação.
Fica de olho: a banca pode trocar o conteúdo do campo relacionamentos para algo vago (ex.: 'nenhum' ou 'n/a') ou apagar a linha, fazendo você concluir que a relação existe só porque o SELECT retornou algo — mas a relação só é verdadeira se o texto do campo realmente mencionar a outra tabela. Outra pegadinha: confundir a descrição textual (no catálogo) com uma constraint real no banco — o REFERENCES aqui é só uma string, não uma regra ativa.
Fonte: CEBRASPE PF 2025 Conhecimentos Comuns (Escrivão-Agente-Papiloscopista PF). Reproduzida para fins de estudo.