CREATE TABLE ITEM-DO_PEDIDO ( Num_pedido                    ...

Próximas questões
Com base no mesmo assunto
Q268182 Banco de Dados
CREATE TABLE ITEM-DO_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.
Alternativas

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