Questão FC295937
Considere que, em um modelo relacional, há duas tabelas bem formadas denominadas Pessoa e Projeto. Os atributos de Pessoa são CPF (PK), nome, endereço e o código do projeto no qual
Sistema de Gerenciamento de Banco de Dados (SGBD)
CESGRANRIO · 2018
Considere que, em um modelo relacional, há duas tabelas bem formadas denominadas Pessoa e Projeto. Os atributos de Pessoa são CPF (PK), nome, endereço e o código do projeto no qual ela trabalha (FK); os atributos de Projeto são código (PK), título e data de início. Considere também que existe uma regra de negócio que determina que, em um projeto, não possam trabalhar mais do que 15 pessoas. Um gatilho, criado para garantir que essa regra de negócio seja permanentemente observada, deve ser programado para ser executado
- antes de cada inserção ou alteração de linhas na tabela Pessoa
- antes de cada inserção ou remoção de linhas na tabela Projeto
- antes de cada inserção ou alteração de linhas na tabela Projeto
- depois de cada inserção de linhas na tabela Pessoa
- depois de cada alteração de linhas na tabela Projeto
Mostrar resposta e comentário
Gabarito
A
Comentário do professor
Há uma restrição de negócio: nenhum projeto pode ter mais de 15 pessoas. Como a tabela Pessoa armazena o código do projeto (chave estrangeira), é nela que devemos validar essa regra.
Um gatilho programado antes (BEFORE) de cada inserção ou alteração de linhas garante que a operação possa ser bloqueada caso viole a restrição. Ao disparar antes da escrita, o gatilho pode contar os integrantes atuais do projeto e verificar se, após a operação, vale \( \text{count\_atual} + \text{novos\_atributos} \le 15 \).
Se a condição não for satisfeita, o gatilho aborta a operação, preservando a integridade da regra sem permitir que a tabela entre em estado inconsistente.
Conteúdo do catálogo FC Concursos · Atualizado em