ANC - Analista em Computação - Ênfase em Desenvolvimento Oracle PL/SQL
As restrições de integridade garantem que as mudanças feitas no banco de dados, por usuários autorizados, não resultem em uma perda da consistência dos dados. Nesse contexto, considere os seguintes comandos SQL:CREATE TABLE CIDADE( idCidade number(4) PRIMARY KEY, nome varchar2(50) NOT NULL)CREATE TABLE PESSOA( idPessoa number(5) PRIMARY KEY, nome varchar2(50) NOT NULL, idCidade number(4) REFERENCES CIDADE(idCidade))Analise as assertivas abaixo e assinale a alternativa correta.I. As tabelas CIDADE e PESSOA terão a identificação de cada uma de suas tuplas por um valor único, garantida pela restrição de integridade de identidade, verificada pelo SGBD a cada operação de inclusão ou alteração de tuplas.II. O campo PESSOA.idCidade tem preenchimento obrigatório para cumprir com a regra da integridade referencial.III. Quando uma tupla da tabela CIDADE for excluída, não é realizada verificação de integridade referencial, pois essa tabela não possui chave estrangeira.IV. O campo PESSOA.nome não pode ficar vazio quando é feita a inclusão ou alteração de uma tupla na tabela PESSOA.
ATodas estão corretas.
BTodas estão incorretas.
CApenas I e IV estão corretas
DApenas II e III estão corretas.
EApenas III e IV estão corretas.
Revelar gabarito e comentário▾
GabaritoC — Apenas I e IV estão corretas
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Restrições de integridade e chaves em SQL
Gabarito: letra C. Apenas as assertivas I e IV estão corretas. A assertiva I descreve corretamente a restrição de chave primária (integridade da entidade), que garante identificação única de cada tupla; a assertiva IV está correta porque o campo nome foi declarado como NOT NULL. As assertivas II e III são falsas: a chave estrangeira não exige preenchimento obrigatório, e a exclusão na tabela referenciada dispara verificação de integridade referencial.
A banca testa o conhecimento sobre os tipos de restrições de integridade e seu comportamento no SQL, com base nas tabelas definidas:
CREATE TABLE CIDADE(
idCidade number(4) PRIMARY KEY,
nome varchar2(50) NOT NULL
);
CREATE TABLE PESSOA(
idPessoa number(5) PRIMARY KEY,
nome varchar2(50) NOT NULL,
idCidade number(4) REFERENCES CIDADE(idCidade)
);
Critério
Assertiva I
Assertiva II
Assertiva III
Assertiva IV
Descrição
Chave primária garante identificação única de cada tupla
Campo idCidade tem preenchimento obrigatório para integridade referencial
Exclusão em CIDADE não dispara verificação de integridade referencial
Campo nome tem restrição NOT NULL
Correta?
✅ Sim
❌ Não
❌ Não
✅ Sim
Justificativa
PRIMARY KEY impõe unicidade e não nulidade (integridade da entidade)
Chave estrangeira permite NULL; integridade referencial só exige valor válido se preenchido
SGBD verifica referências na exclusão (padrão RESTRICT no Oracle)
NOT NULL impede valores nulos no campo nome
Assertiva I — ✅ Correta
A chave primária (PRIMARY KEY) garante a unicidade e a não nulidade dos valores, assegurando que cada tupla seja identificada de forma única. Essa restrição é chamada de integridade da entidade (ou integridade de identidade). O SGBD a verifica sempre que uma tupla é inserida ou quando um campo da chave primária é alterado.
SQL das tabelas:
idCidade number(4) PRIMARY KEY e idPessoa number(5) PRIMARY KEY impõem que cada valor seja único e não NULL.
Assertiva II — ❌ Incorreta
A chave estrangeira idCidade number(4) REFERENCES CIDADE(idCidade) não possui a restrição NOT NULL. Portanto, o campo pode conter valores nulos. A integridade referencial exige apenas que, se um valor for informado, ele exista na tabela referenciada; não exige preenchimento obrigatório.
A asserção está errada ao afirmar que o preenchimento é obrigatório para cumprir a integridade referencial.
Assertiva III — ❌ Incorreta
Ao excluir uma tupla da tabela CIDADE, o SGBD deve verificar se existem tuplas em PESSOA que referenciam aquela tupla (via chave estrangeira). O comportamento padrão no Oracle é RESTRICT (não permite a exclusão se houver referências). A afirmação de que "não é realizada verificação" é falsa; a verificação ocorre justamente porque existe uma chave estrangeira em PESSOA apontando para CIDADE.
NÃO CAIA NESSA!
A banca tenta confundir o candidato ao dizer que a tabela CIDADE "não possui chave estrangeira" — de fato não possui, mas a integridade referencial é imposta pela tabela que contém a chave estrangeira (PESSOA).
Assertiva IV — ✅ Correta
O atributo nome em PESSOA foi definido com NOT NULL. Isso impede que o campo fique vazio (receba NULL) tanto na inserção quanto na atualização de uma tupla. A restrição é explicitada na criação da tabela e é verificada pelo SGBD.
SQL:nome varchar2(50) NOT NULL.
Conclusão: Corretas apenas I e IV. Portanto, a alternativa C é o gabarito.