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)
);
A tabela TABELA_NACIONALIDADE deve ter uma coluna de nome DESCRICAO_NACIONALIDADE para obter o texto equivalente a cada código.
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: E - Errado
A questão avalia a compreensão sobre a estruturação de tabelas em bancos de dados SQL e a relação entre elas por meio de chaves estrangeiras. Para resolver a questão, é necessário conhecer os conceitos de criação de tabela (CREATE TABLE
), chave primária (PRIMARY KEY
), chave estrangeira (FOREIGN KEY
), e as regras de referência de chaves estrangeiras.
O enunciado especifica que a tabela PESSOA tem uma coluna NACIONALIDADE que é uma chave estrangeira referenciando a coluna CODIGO_NACIONALIDADE na TABELA_NACIONALIDADE. Entretanto, a presença da coluna DESCRICAO_NACIONALIDADE na TABELA_NACIONALIDADE não é uma exigência para a integridade da referência ou para a criação de uma relação entre as tabelas. O papel da coluna DESCRICAO_NACIONALIDADE seria fornecer um texto descritivo para o código da nacionalidade, mas a sua existência não é obrigatória para o relacionamento entre as tabelas, conforme estabelecido pela chave estrangeira.
Portanto, a afirmação de que a tabela TABELA_NACIONALIDADE deve ter uma coluna chamada DESCRICAO_NACIONALIDADE para obter o texto equivalente a cada código é incorreta. O essencial para a integridade referencial é que a coluna referenciada pela chave estrangeira exista e que os tipos dos dados e a chave primária estejam alinhados entre as tabelas relacionadas.
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
A tabela TABELA_NACIONALIDADE pode ter uma coluna de nome DESCRICAO_NACIONALIDADE para obter o texto equivalente a cada código. Não é obrigatório que o nome seja esse. Na realidade nem é obrigatório existir essa coluna. O natural em uma modelagem é que exista um campo para a descrição desse código - campo tipo texto.
O erro na questão é colocar a obrigatoriedade do campo.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo