Pular para o conteúdo principal

Questão de Banco de Dados — Transações (Locks, ACID, etc.) — FCC 2024

Banco de DadosTransações (Locks, ACID, etc.)
Código
fc147207
Banca
FCC
Órgão
Pref J Guararapes
Ano
2024
Cargo
AGR ( )
Uma prefeitura está criando um banco de dados para gerenciar suas transações e contas de cidadãos. Para assegurar a precisão dos dados, implementaram várias regras para restringir os valores inseridos nas tabelas, como valores não nulos para certas colunas e correspondência entre chaves estrangeiras e primárias. Considerando o modelo de dados relacional, no contexto descrito, uma restrição de integridade
  1. Aassegura a conformidade dos dados com regras especificas, como a unicidade e a validade dos valores.
  2. Bassegura que as transações sejam revertidas em caso de falha, sendo as informações de erros armazenadas em logs de auditoria.
  3. Cimpede a criação de índices na tabela e chaves primárias compostas na tabela ou multivaloradas.
  4. Dimpede a atualização de qualquer registro no banco de dados sem uso de assinatura digital,
  5. Egarante que todos 05 usuários tenham os mesmos privilégios de acesso provendo unicidade de acesso e transparência.
Revelar gabarito e comentário

GabaritoA — assegura a conformidade dos dados com regras especificas, como a unicidade e a validade dos valores.

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 no modelo relacional

Gabarito: letra A. Uma restrição de integridade assegura a conformidade dos dados com regras específicas, como a unicidade e a validade dos valores — exatamente o que o enunciado descreve ao mencionar valores não nulos e correspondência entre chaves estrangeiras e primárias. As demais alternativas confundem integridade com propriedades de transação (ACID), recuperação de falhas, segurança ou controle de acesso.

No modelo relacional, a integridade dos dados é garantida por um conjunto de regras que o SGBD impõe automaticamente para que os dados armazenados sejam sempre válidos e consistentes. Essas regras são chamadas de restrições de integridade e atuam como "guardiãs" do banco: qualquer operação de inserção, alteração ou exclusão que viole uma dessas regras é rejeitada pelo sistema. O enunciado cita dois exemplos clássicos: a restrição de não nulidade (uma coluna não pode ficar sem valor) e a integridade referencial (o valor de uma chave estrangeira deve existir como chave primária na tabela referenciada).

As principais restrições de integridade do modelo relacional são:

  • Integridade de entidade: garante que a chave primária de cada linha seja única e não nula — é o que impede duas linhas idênticas ou uma linha sem identificador.

  • Integridade referencial: garante que um valor de chave estrangeira em uma tabela corresponda a um valor de chave primária existente em outra tabela (ou seja nulo, se permitido).

  • Integridade de domínio: garante que os valores de uma coluna pertençam a um domínio válido (tipo de dado, faixa de valores, formato, etc.).

  • Restrições de unicidade (chaves candidatas) e checks (regras arbitrárias, como "salário > 0").

É importante não confundir restrição de integridade com as propriedades ACID das transações. As restrições de integridade são regras declaradas no esquema do banco (na definição das tabelas) e valem para qualquer operação, a qualquer momento. As propriedades ACID — Atomicidade, Consistência, Isolamento e Durabilidade — são garantias comportamentais das transações: a consistência, em particular, é a propriedade que assegura que uma transação leve o banco de um estado consistente para outro, respeitando justamente as restrições de integridade definidas. Ou seja, as restrições são o "que" deve ser respeitado; o ACID é o "como" o SGBD garante que isso aconteça durante transações concorrentes e falhas.

A pegadinha da questão está em misturar esses dois mundos: as alternativas B, C, D e E falam de coisas que não são restrições de integridade — são propriedades de transação, recuperação de falhas, segurança e controle de acesso. A alternativa A é a única que descreve com precisão o papel das restrições de integridade: assegurar a conformidade dos dados com regras específicas, como unicidade e validade.

Guarde a fronteira: restrição de integridade = regra declarada no esquema que valida os dados; ACID = propriedades que regem a execução de transações. É exatamente nessa fronteira que as alternativas se dividem.

Critério

Restrição de Integridade (A)

Propriedades ACID (B)

Segurança/Acesso (D, E)

O que garante

Conformidade dos dados com regras do esquema (unicidade, validade, não nulidade, chaves)

Atomicidade, consistência, isolamento e durabilidade das transações

Autenticidade (assinatura digital) e privilégios de acesso dos usuários

Onde é definida

No esquema do banco (DDL — CREATE TABLE, constraints)

No gerenciamento de transações do SGBD

Em mecanismos externos ao esquema (criptografia, controle de acesso)

Quando atua

A cada operação de inserção, alteração ou exclusão

Durante a execução de transações (commit, rollback, concorrência)

No momento do acesso/autenticação do usuário

Exemplo típico

NOT NULL, PRIMARY KEY, FOREIGN KEY, CHECK, UNIQUE

Commit/rollback, isolamento entre transações concorrentes

Certificado digital, GRANT/REVOKE de permissões

Relação com o enunciado

Valores não nulos e correspondência entre chaves estrangeiras/primárias

Não citado no enunciado — confunde com recuperação de falhas

Não citado no enunciado — confunde com segurança

Alternativa A — ✅ Correta ⟵ GABARITO

Esta alternativa descreve com precisão o conceito de restrição de integridade. Ela "assegura a conformidade dos dados com regras específicas" — ou seja, o SGBD verifica, a cada operação, se os dados respeitam as regras definidas no esquema. Os exemplos citados no enunciado (valores não nulos, correspondência entre chaves estrangeiras e primárias) são exatamente restrições de integridade: a não nulidade é uma restrição de domínio/entidade, e a correspondência entre chaves é a integridade referencial. A menção à "unicidade" remete à integridade de entidade (chave primária única) e às restrições de chave candidata; a "validade dos valores" remete à integridade de domínio (tipos, faixas, formatos). Tudo isso é o papel clássico das restrições de integridade no modelo relacional.

Alternativa B — ❌ Incorreta

Esta alternativa descreve a durabilidade (propriedade ACID) e o uso de logs de auditoria para recuperação de falhas — não uma restrição de integridade. A durabilidade garante que, após o commit, as alterações persistem mesmo com queda do sistema; o log (registro de transações) é o mecanismo usado para recuperação, não uma regra de validação de dados. A banca troca o conceito de integridade pelo de recuperação de falhas.

Alternativa C — ❌ Incorreta

Afirma que uma restrição de integridade "impede a criação de índices e chaves primárias compostas ou multivaloradas" — o que é falso. Restrições de integridade não impedem a criação de índices; pelo contrário, chaves primárias e únicas geralmente geram índices automaticamente. Chaves primárias compostas (com mais de uma coluna) são perfeitamente válidas no modelo relacional. O conceito de "multivalorada" se refere a atributos multivalorados, que são tratados na modelagem (normalização), não proibidos por restrições de integridade. A alternativa mistura conceitos de modelagem física com integridade.

Alternativa D — ❌ Incorreta

Esta alternativa fala de assinatura digital para atualização de registros — um mecanismo de segurança/autenticação, não de integridade de dados. Restrições de integridade validam a conformidade dos dados com regras do esquema; assinatura digital é um recurso criptográfico para garantir autoria e integridade de um documento/registro contra adulteração, mas não é uma restrição declarada no banco de dados. A banca troca integridade de dados por segurança da informação.

Alternativa E — ❌ Incorreta

Esta alternativa descreve controle de acesso (todos os usuários com os mesmos privilégios) — um aspecto de segurança, não de integridade. Na verdade, dar os mesmos privilégios a todos seria uma má prática de segurança (princípio do menor privilégio). Restrições de integridade não têm relação com privilégios de usuários; elas validam os dados independentemente de quem os acessa. A banca troca integridade por controle de acesso.

Gabarito: letra A — a única que descreve corretamente o papel das restrições de integridade no modelo relacional.

Link permanente: /questoes/fc147207