Chave estrangeira no modelo relacional
Gabarito: letra B — a única coluna da tabela de pedidos que pode ser denominada chave estrangeira é NumCliente, pois ela referencia a chave primária da tabela de clientes. As demais colunas (NumPedido, Data, Valor) são atributos próprios da tabela de pedidos, sem vínculo com outra tabela. Esse é o conceito central de chave estrangeira: um atributo (ou conjunto de atributos) que estabelece a ligação lógica entre duas tabelas, referenciando a chave primária (ou uma chave candidata) de outra tabela.
A chave estrangeira é um dos pilares da integridade referencial no modelo relacional. Ela garante que os valores de uma coluna em uma tabela correspondam a valores existentes na chave primária de outra tabela, assegurando a consistência dos relacionamentos. No exemplo, a tabela Clientes tem como chave primária a coluna NumCliente (1, 2, 3). A tabela Pedidos possui a coluna NumCliente com valores 2, 3, 2, 1 — exatamente os mesmos valores da chave primária de Clientes. Isso caracteriza a chave estrangeira: ela referencia a chave primária de outra tabela, permitindo associar cada pedido ao cliente correspondente.
É importante distinguir os tipos de chave:
Tipo de chave | Função | Exemplo na questão |
|---|
Chave primária | Identifica unicamente cada linha da própria tabela | NumCliente (em Clientes), NumPedido (em Pedidos) |
Chave estrangeira | Referencia a chave primária de outra tabela, criando o relacionamento | NumCliente (em Pedidos) |
Chave candidata | Qualquer atributo que poderia ser chave primária | NumCliente (em Clientes) |
A pegadinha da questão está em confundir a chave primária da tabela Pedidos (NumPedido) com a chave estrangeira. NumPedido identifica cada pedido individualmente, mas não referencia nenhuma outra tabela — é apenas a chave primária da própria tabela. Já NumCliente, embora também exista na tabela Clientes como chave primária, na tabela Pedidos atua como chave estrangeira, pois estabelece o vínculo entre as duas tabelas.
Outro ponto que merece atenção: a chave estrangeira pode ter valores repetidos (como o cliente 2, que aparece em dois pedidos) e pode aceitar NULL, ao contrário da chave primária, que exige valores únicos e não nulos. No exemplo, os valores de NumCliente em Pedidos (2, 3, 2, 1) são repetidos, o que reforça que não se trata de uma chave primária, mas de uma chave estrangeira.
Guarde o critério decisivo: chave estrangeira é a coluna que referencia a chave primária de OUTRA tabela. É exatamente isso que separa a alternativa correta das demais.
Alternativa A — ❌ Incorreta
Afirma que apenas “NumPedido” é chave estrangeira. NumPedido é a chave primária da tabela Pedidos, pois identifica unicamente cada pedido (1, 2, 3, 4). Ela não referencia nenhuma outra tabela, portanto não é chave estrangeira. A banca explora a confusão entre chave primária e chave estrangeira.
Alternativa B — ✅ Correta ⟵ GABARITO
“NumCliente” é a única coluna que referencia a chave primária de outra tabela (a tabela Clientes). Os valores 2, 3, 2, 1 correspondem exatamente aos valores da chave primária de Clientes (1, 2, 3), estabelecendo o relacionamento entre pedidos e clientes. É a definição clássica de chave estrangeira.
Alternativa C — ❌ Incorreta
“Data” e “Valor” são atributos descritivos do pedido, sem qualquer vínculo com outra tabela. Não identificam registros nem referenciam chaves de outras tabelas. São apenas dados armazenados na própria tabela Pedidos.
Alternativa D — ❌ Incorreta
Inclui “NumPedido” como chave estrangeira, o que está errado. NumPedido é a chave primária da tabela Pedidos, não uma referência a outra tabela. Apenas NumCliente é chave estrangeira.
Alternativa E — ❌ Incorreta
Além de incluir “NumPedido” (errado, como visto), inclui “Data”, que é um atributo comum, sem função de chave. A única chave estrangeira é NumCliente.
Gabarito: letra B