O analista Otto precisa criar a tabela PROCESSOS garantindo ...

Próximas questões
Com base no mesmo assunto
Q3874356 Banco de Dados
O analista Otto precisa criar a tabela PROCESSOS garantindo que:
1. o número do processo seja único e obrigatório.
2. o status só possa ser “ABERTO”, “FECHADO” ou “EM_ANDAMENTO”.
3. a coluna ID seja chave primária gerada automaticamente.
Para garantir a integridade dos dados, no PostgreSQL, Otto deve implementar: 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: E

Fundamento decisivo: O decisivo foi que as exigências do enunciado correspondem diretamente a restrições de integridade: NOT NULL, UNIQUE, CHECK e PRIMARY KEY. Como essas garantias são constraints, a alternativa correta é E.

Tema central: Restrições de integridade
Análise das alternativas
A
Errada
Indexes não atendem ao conjunto das exigências. Eles podem se relacionar à unicidade em certos casos, mas não são o mecanismo conceitual para impor, ao mesmo tempo, NOT NULL, CHECK e PRIMARY KEY.
B
Errada
Triggers são solução procedural, mas aqui o enunciado pede garantias que têm solução declarativa própria. Unicidade, obrigatoriedade, domínio de valores e chave primária não dependem de trigger para serem corretamente impostas.
C
Errada
Schemas servem para organizar objetos no banco. Eles não validam unicidade, obrigatoriedade, valores permitidos nem definição de chave primária.
D
Errada
Sequences podem gerar valores automáticos para a coluna ID, mas isso resolve apenas o autoincremento. Sozinhas, não garantem PRIMARY KEY, nem UNIQUE, nem NOT NULL, nem CHECK para o status.
E
Certa
A alternativa E está certa porque o enunciado pede garantias típicas de integridade declarativa no PostgreSQL. Número do processo único e obrigatório se implementa com UNIQUE e NOT NULL; o conjunto fechado de valores do status se implementa com CHECK; e a exigência de chave primária para ID se implementa com PRIMARY KEY.
Pegadinha da questão
A confusão real era olhar a geração automática do ID e marcar sequence, ignorando que o enunciado cobrava o conjunto completo de garantias de integridade, que recai sobre constraints.
Dica para questões semelhantes
  • Quando o enunciado pedir obrigatoriedade, unicidade, domínio de valores ou chave primária, pense primeiro em constraints.
  • Diferencie mecanismo de integridade de recurso acessório: sequence pode gerar números, mas não substitui PRIMARY KEY nem outras restrições.
  • Não troque solução declarativa por procedural: se a regra é diretamente expressável por NOT NULL, UNIQUE, CHECK ou PRIMARY KEY, trigger não é o mecanismo próprio.
  • Se a alternativa cobre só uma parte do requisito, ela não serve quando a questão exige a integridade completa.

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

“Na linguagem SQL, utiliza-se Constraints para determinar regras relativas aos dados que ocuparão as tabelas. Podem ser utilizadas para um ou mais campos de uma tabela.” (Fundatec/2021)

“São CONSTRAINTS SQL: FOREIGN KEY, NOT NULL, UNIQUE, PRIMARY KEY.” (FCC)

Gabarito: letra E.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo