Dadas as afirmativas sobre o PostgreSQL: I. Uma restrição de chave primária indica que uma coluna ou grupo de colunas podem ser usadas como um identificador exclusivo para linhas na tabela. Isso requer que os valores sejam exclusivos e não nulos. II. Uma restrição de chave estrangeira especifica que os valores em uma coluna (ou um grupo de colunas) devem corresponder aos valores que aparecem em alguma linha de outra tabela. III. Quando um objeto é criado (tabela, view, entre outros), ele recebe um proprietário. O proprietário é normalmente o usuário que executou a instrução de criação. Todos os outros usuários têm acesso ao objeto sem a necessidade de privilégios serem concedidos. Está(ão) correta(s):
- A)I, apenas.
Esta alternativa afirma que apenas a afirmativa I está correta, isto é, que a chave primária identifica unicamente linhas e exige valores exclusivos e não nulos. O conteúdo de I está certo em PostgreSQL, porque a primary key combina unicidade e NOT NULL para servir como identificador da tabela. O problema é que a afirmativa II também está correta, então limitar a resposta só à I deixa de fora outra proposição verdadeira.
- B)II, apenas.
Aqui se sustenta que somente a afirmativa II está correta, ou seja, que a chave estrangeira faz os valores de uma coluna ou grupo de colunas corresponderem a valores existentes em outra tabela. Essa ideia está correta e reflete a integridade referencial: o PostgreSQL exige que o valor apontado exista na tabela referenciada, normalmente em uma coluna com chave primária ou restrição UNIQUE. Contudo, a afirmativa I também é verdadeira, então a alternativa fica incompleta.
- C)II e III, apenas.
Esta opção reúne as afirmativas II e III. A II descreve corretamente a chave estrangeira, mas a III erra ao dizer que, após a criação de um objeto, todos os demais usuários têm acesso sem concessão de privilégios. No PostgreSQL, o objeto ganha um proprietário, geralmente quem o criou, mas os demais usuários só acessam o que tiver sido permitido por privilégios, por exemplo via GRANT.
- D)I, II e III.
A alternativa afirma que as três afirmativas estão corretas. As afirmativas I e II realmente traduzem conceitos corretos de chave primária e chave estrangeira no PostgreSQL. O ponto de falha está na III, porque a existência de proprietário não libera acesso automático a todos os usuários; em regra, o controle de acesso depende de privilégios concedidos, e não apenas do fato de o objeto ter um dono.
- E)I e II apenas.
Esta é a alternativa correta porque reúne exatamente as duas afirmativas verdadeiras, I e II. A I descreve corretamente a chave primária como identificador exclusivo, com valores únicos e não nulos, e a II define bem a chave estrangeira como referência a valores existentes na outra tabela. A III é falsa, pois no PostgreSQL o proprietário não torna o objeto automaticamente acessível a todos os usuários; os demais precisam de privilégios específicos ou acesso via papéis com permissões apropriadas.
Gabarito: E
No PostgreSQL, chave primária e chave estrangeira são restrições clássicas de integridade. A chave primária identifica de forma única cada linha da tabela e, por definição, não admite valores nulos. Já a chave estrangeira serve para ligar uma tabela a outra, exigindo que o valor informado exista na tabela referenciada, salvo exceções ligadas a regras de atualização ou consistência em momentos específicos. A afirmativa I está correta porque descreve exatamente a ideia de PRIMARY KEY: unicidade e não nulidade. Isso é básico de qualquer banco relacional e o PostgreSQL segue essa lógica sem invenções de última hora. A afirmativa II também está correta, pois FOREIGN KEY garante integridade referencial. Em termos práticos, ela evita que você registre um valor “solto” apontando para um registro que não existe na outra tabela. Já a III está errada: quando um objeto é criado, ele realmente tem um proprietário, normalmente quem o criou, mas isso não significa acesso automático para todos os outros usuários. No PostgreSQL, acesso depende de privilégios concedidos, de papéis e das regras de autorização do sistema. Então, o gabarito E está correto porque apenas I e II permanecem verdadeiras.