Com base no comando SQL apresentado, julgue o item subsequen...
ID INTEGER NOT NULL,
NOME CHAR(50) NOT NULL UNIQUE,
CPF DECIMAL (11,0) NULL,
NACIONALIDADE INTEGER NOT NULL,
PRIMARY KEY (ID),
FOREIGN KEY (NACIONALIDADE)
REFERENCES TABELA_NACIONALIDADE(CODIGO_NACIONALIDADE)
);
Na tabela TABELA_NACIONALIDADE , CODIGO_NACIONALIDADE deve ser PRIMARY KEY.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: C - certo
A questão aborda conhecimentos sobre a criação de tabelas e o uso de chaves estrangeiras (FOREIGN KEY) em SQL. Quando definimos uma chave estrangeira em uma tabela, estamos estabelecendo uma relação de referência entre esta tabela e uma outra tabela existente no banco de dados. A chave estrangeira será um campo (ou conjunto de campos) que aponta para uma chave primária (PRIMARY KEY) da tabela referenciada.
No comando SQL apresentado, é definida uma FOREIGN KEY (NACIONALIDADE) que faz referência a TABELA_NACIONALIDADE(CODIGO_NACIONALIDADE). Para que seja possível estabelecer essa relação de chave estrangeira, é necessário que o campo referenciado (neste caso, CODIGO_NACIONALIDADE) seja um campo único na tabela de referência, ou seja, que ele identifique de maneira única cada registro na tabela TABELA_NACIONALIDADE.
A maneira padrão de garantir a unicidade de um campo em uma tabela é torná-lo uma chave primária, pois a PRIMARY KEY impõe uma restrição de unicidade e não nulidade sobre os campos que a compõem. Portanto, para que a FOREIGN KEY (NACIONALIDADE) na tabela PESSOA esteja corretamente definida e funcione como esperado, o campo CODIGO_NACIONALIDADE na tabela TABELA_NACIONALIDADE deve, de fato, ser uma PRIMARY KEY.
Por isso, a afirmação de que "Na tabela TABELA_NACIONALIDADE, CODIGO_NACIONALIDADE deve ser PRIMARY KEY" está correta, pois somente com essa condição a integridade referencial entre as tabelas poderá ser mantida e operações como inserção, atualização e exclusão de dados em tabelas relacionadas poderão ser realizadas de maneira consistente.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Sim, isso é necessário para manter a integridade referencial.
Mas o termo "deve" é muito pesado, pois eu posso garantir uma integridade referencial com chave candidata. Concordam?
Concordo plenamente, Silas.
Estou percebendo muitas questões em que o cespe cobra o entendimento de que a FK DEVE referenciar necessariamente uma PK.
Enfim, nesse mundo de concurso devemos estudar um pouco da banca também.
O "deve" invalida a questão, como já foi dito, qualquer chave candidata poderia ser usada.
essa questao do cespe é sazonal
dependendo da epoca do ano pode ser certa ou errada
http://www.itnerante.com.br/group/bancodedados/forum/topics/cespe-tj2015-chave-estrangeira?xg_source=activity
2017
Para que um campo seja FK em uma tabela, é necessário que o mesmo atributo seja PK na tabela de origem.
certa
2017
A chave estrangeira (foreign key) é o campo que estabelece o relacionamento entre duas tabelas de bancos distintos, sendo necessariamente chave primária na tabela de um dos bancos.
errada
2015
Em um banco de dados relacional, a chave estrangeira que existe em uma tabela deve ser chave primária em outra tabela.
certa
Ano: 2015Banca: CESPEÓrgão: CGE-PIProva: Auditor Governamental
Em um relacionamento de tabelas de um banco de dados relacional, a chave estrangeira serve para referenciar uma entidade dentro de outra tabela, facilitando, assim, a busca e o agrupamento dessas entidades.
certa
2015
Integridade referencial baseia-se na ligação das informações das chaves estrangeiras com as chaves primárias, ou candidatas a primárias, da tabela de referência.
certa
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo