Conceito e mecanismo
Constraints exprimem requisitos que a base deve impor. CHECK rejeita FALSE, mas uma expressão UNKNOWN pode passar; exigir um montante conhecido e positivo requer também NOT NULL. UNIQUE numa coluna opcional pode aceitar várias linhas com NULL, enquanto uma primary key implica preenchimento e unicidade. Foreign keys ligam referências a chaves válidas e revelam erros de mapeamento durante cargas. Não as desatives apenas para obter um resultado verde. Se uma constraint falhar, identifica a regra violada e o fluxo autorizado para corrigir os dados. Uma alteração na representação da chave ou um commit adicional não substitui integridade referencial.
Aplicação guiada
Numa plataforma fictícia, uma sequence fornece chaves técnicas, mas pode deixar intervalos após rollback ou perda de valores em cache. NOCACHE não transforma esse mecanismo em numeração de negócio sem intervalos. MAX(id)+1 sem sincronização cria risco de colisão entre sessões. Se o negócio exige um controlo sequencial específico, desenha-o separadamente com requisitos de concorrência e auditoria. Índices aceleram determinados acessos, mas consomem espaço e trabalho nas escritas; avalia consultas, seletividade e plano observado. Um índice não único não impõe valor positivo nem preenchimento. Para uma view atualizável, WITH CHECK OPTION pode conservar o filtro nas alterações feitas através dela, enquanto WITH READ ONLY impede DML. Confirma o mecanismo que corresponde à regra pretendida.
amount NUMBER NOT NULL CHECK (amount > 0) exprime preenchimento e positividade; um índice simples não substitui essas regras.
Armadilhas comuns
CHECK como NOT NULL; UNIQUE como primary key; sequence como ledger contínuo; índice como benefício sem custo.
Tópicos relacionados: Modelo, SELECT e população do resultado · Funções, conversões e contratos de dados · Joins, granularidade e agregação
Liga cada requisito ao mecanismo que realmente o impõe.
Referência: Integrity constraints · 1Z0-071 public objectives inspected 2026-09-30; revision date not published