CREATE TABLE ITEM-DO_PEDIDO ( Num_pedido ...
(
Num_pedido int not null unique,
Codigo_produto smallint not null unique,
Quantidade decinal,
FOREIGN KEY (num_pedido)
REFERENCES PEDIDO,
(código_produto)
REFERENCES PRODUTO
);
Com base nos comandos SQL acima, julgue o item a seguir
A cláusula REFERENCES estabelece a restrição de chave entre as tabelas. A chave estrangeira já está definida juntamente com o registro da tabela.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - Errado
Para entender a questão, vamos discorrer sobre o conceito de chaves estrangeiras em bancos de dados SQL. Uma chave estrangeira (foreign key) é uma referência em uma tabela que aponta para uma chave primária ou uma chave única em outra tabela. O propósito da chave estrangeira é garantir a integridade referencial dos dados, ou seja, ela assegura que o valor que está sendo referenciado de fato existe na tabela à qual a chave estrangeira aponta.
No comando SQL fornecido na questão, a intenção é criar uma tabela chamada ITEM_DO_PEDIDO com os campos Num_pedido, Codigo_produto e Quantidade, e estabelecer chaves estrangeiras para as tabelas PEDIDO e PRODUTO. Entretanto, há um erro no comando FOREIGN KEY. A chave estrangeira para o campo num_pedido está referenciando incorretamente a tabela PEDIDO sem especificar a coluna correspondente, e o mesmo acontece com a referência a Codigo_produto para a tabela PRODUTO. A cláusula REFERENCES deve especificar corretamente a coluna da tabela referenciada que corresponde à chave estrangeira.
Uma forma correta de se declarar a chave estrangeira seria:
FOREIGN KEY (Num_pedido) REFERENCES PEDIDO(nome_da_coluna_referenciada_na_tabela_PEDIDO),
FOREIGN KEY (Codigo_produto) REFERENCES PRODUTO(nome_da_coluna_referenciada_na_tabela_PRODUTO)
Além disso, o comando tem um erro de digitação na palavra "decimal", que está escrita como "decinal".
Quanto à afirmação da questão, ela está errada porque a cláusula REFERENCES, conforme utilizada, não estabelece de forma correta a restrição de chave estrangeira, pois faz falta a indicação precisa das colunas referenciadas nas tabelas PEDIDO e PRODUTO. Portanto, não está definindo a chave estrangeira juntamente com o registro da tabela de maneira adequada.
É importante lembrar que, em um banco de dados bem estruturado, as chaves estrangeiras são fundamentais para manter a consistência entre tabelas relacionadas, e qualquer comando que estabeleça ou modifique essas relações deve ser escrito com precisão para evitar erros de integridade dos dados.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo