Questão de Banco de Dados — Conceitos e Fundamentos de Modelo Relacional — VUNESP 2023
Banco de Dados›Conceitos e Fundamentos de Modelo Relacional
Código
vu195949
Banca
VUNESP
Órgão
CIJUN
Ano
2023
Cargo
Ana ( )
Em bancos de dados relacionais, o valor de uma surrogate key
Anão possui um significado no contexto de negócio da aplicação.
Bpode se repetir em linhas diferentes da mesma tabela.
Cé do tipo CHAR ou VARCHAR.
Dnão serve para uso em uma foreign key de outra tabela relacionada.
Eé globalmente único, não se repetindo em diferentes servidores e bancos de dados, ainda que não se usem GUIDs.
Revelar gabarito e comentário▾
GabaritoA — não possui um significado no contexto de negócio da aplicação.
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”.
Surrogate key no modelo relacional
Gabarito: letra A. A surrogate key (chave substituta ou artificial) é um atributo gerado exclusivamente pelo sistema para identificar registros, sem qualquer significado no contexto de negócio da aplicação — é exatamente o que a alternativa A afirma. As demais alternativas impõem características falsas ou restrições inexistentes a esse tipo de chave.
A surrogate key é um conceito fundamental na modelagem de bancos de dados relacionais. Ela se contrapõe à chave natural (natural key), que é formada por atributos com significado real no mundo dos negócios, como CPF, placa de veículo ou código de produto. Enquanto a chave natural carrega informação semântica (o próprio valor já diz algo sobre o registro), a surrogate key é um identificador artificial, geralmente um número inteiro sequencial (autoincremento) ou um GUID, que existe apenas para garantir a unicidade técnica da linha.
A principal razão de existir da surrogate key é a estabilidade: como ela não depende de nenhum atributo do mundo real, não muda quando os dados de negócio mudam. Por exemplo, se uma tabela de clientes usa o CPF como chave natural e o cliente troca de CPF (situação rara, mas possível), todos os registros relacionados precisariam ser atualizados. Com uma surrogate key (id_cliente = 1, 2, 3...), o identificador permanece o mesmo, independentemente de alterações nos dados. Além disso, chaves naturais podem ser longas (como um nome completo) e ocupar espaço desnecessário em índices e chaves estrangeiras.
Na prática, a surrogate key é criada com um tipo numérico (INT, BIGINT) ou com um identificador global único (GUID/UUID), e seu valor é atribuído automaticamente pelo SGBD no momento da inserção. Ela é usada como chave primária da tabela e pode (e deve) ser referenciada por chaves estrangeiras de outras tabelas, garantindo a integridade referencial. A unicidade da surrogate key é garantida apenas dentro do escopo da tabela (ou, no caso de GUIDs, com alta probabilidade em qualquer escopo), mas isso não é uma exigência do conceito — o que define a surrogate key é a ausência de significado de negócio, não a abrangência da unicidade.
A pegadinha que a banca explora neste tema é a confusão entre surrogate key e outros conceitos de chave, como chave primária, chave natural e chave estrangeira. O candidato que não domina a distinção entre chave artificial e chave natural tende a marcar alternativas que descrevem características de outros tipos de chave ou que impõem restrições que não existem. Guarde o critério decisivo: surrogate key = valor sem significado de negócio, gerado pelo sistema. É exatamente nessa fronteira que as alternativas se dividem.
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa A afirma que a surrogate key "não possui um significado no contexto de negócio da aplicação". Isso está perfeitamente correto e é a definição central do conceito. A surrogate key é um identificador artificial, criado apenas para garantir a unicidade técnica dos registros, sem carregar nenhuma informação semântica sobre o dado representado. Um ID numérico incrementado automaticamente (1, 2, 3...) não diz nada sobre o cliente, o produto ou o pedido a que se refere — ele existe apenas para identificar a linha de forma unívoca.
Alternativa B — ❌ Incorreta
Afirma que a surrogate key "pode se repetir em linhas diferentes da mesma tabela". Isso é falso: a surrogate key, quando usada como chave primária, deve ser única em toda a tabela, por definição. A unicidade é a propriedade fundamental de qualquer chave primária, e a surrogate key não é exceção. Se os valores pudessem se repetir, a chave não cumpriria sua função de identificar cada linha de forma inequívoca. A banca tenta confundir o candidato ao sugerir que a ausência de significado de negócio implicaria ausência de unicidade — o que não é verdade.
Alternativa C — ❌ Incorreta
Afirma que a surrogate key "é do tipo CHAR ou VARCHAR". Isso é falso. Embora seja tecnicamente possível criar uma surrogate key com um tipo de caractere (como um GUID armazenado em VARCHAR), a prática padrão e a definição mais comum é que a surrogate key seja do tipo numérico (INT, BIGINT, etc.), geralmente com autoincremento. A alternativa impõe uma restrição de tipo que não existe no conceito. A banca tenta confundir o candidato ao associar a surrogate key a tipos de dados textuais, quando o mais comum é o uso de números inteiros.
Alternativa D — ❌ Incorreta
Afirma que a surrogate key "não serve para uso em uma foreign key de outra tabela relacionada". Isso é falso. A surrogate key, quando usada como chave primária, é exatamente o que as chaves estrangeiras de outras tabelas referenciam para estabelecer relacionamentos. Na verdade, esse é um dos principais usos da surrogate key: servir como referência estável para chaves estrangeiras, evitando que alterações em dados de negócio quebrem os relacionamentos. A banca tenta inverter o papel da surrogate key, sugerindo que ela não pode ser referenciada — o que contraria a prática mais comum em modelagem relacional.
Alternativa E — ❌ Incorreta
Afirma que a surrogate key "é globalmente único, não se repetindo em diferentes servidores e bancos de dados, ainda que não se usem GUIDs". Isso é falso. A unicidade da surrogate key é garantida apenas dentro do escopo da tabela (ou do banco de dados) em que ela é definida. Sem o uso de GUIDs (ou de mecanismos específicos de distribuição), não há garantia de unicidade global entre diferentes servidores e bancos de dados. A alternativa confunde a unicidade local (dentro da tabela) com unicidade global (entre sistemas), que não é uma propriedade inerente à surrogate key. A banca tenta impor uma característica que só é verdadeira em cenários específicos com GUIDs.