1.1. A operação Inserir
Ela pode violar qualquer um dos quatro tipos de restrições discutidos anteriormente (gerando erros ou alertas). As restrições de domínio podem ser violadas se for dado um valor de atributo que não aparece no domínio correspondente ou não é do tipo de dado apropriado. As restrições de chave podem ser violadas se um valor de chave na nova tupla já existir em outra tupla na relação. A integridade de entidade pode ser violada se qualquer parte da chave primária da nova tupla for nula. A integridade referencial pode ser violada se o valor de qualquer chave estrangeira em se referir a uma tupla que não existe na relação referenciada. Aqui estão alguns exemplos para ilustrar essa discussão.
| Operação | Resultado |
|---|---|
| 1- Operação: INSERIR (NULL, ‘8-1’, ‘8ª.’) em TURMA. | Resultado: esta inserção viola a restrição de integridade de entidade (NULL para a chave primária ID_Turma), de modo que é rejeitada. |
| 2- Operação: INSERIR (6, ‘8-1’, ‘8ª.’) em TURMA. | Resultado: Esta inserção viola a restrição de chave porque outra tupla com o mesmo valor de ID_Turma (6) já existe na relação TURMA, e, portanto, é rejeitada. |
| 3- Operação: INSERIR (5, ‘2660/0’, ‘Marcos Valério Santiago’, ‘Sim’, 7) em ALUNO. | Resultado: Esta inserção viola a restrição de integridade referencial especificada sobre ID_Turma em ALUNO porque não existe uma tupla referenciada correspondente em TURMA com ID_Turma igual a 7. |
| 4- Operação: INSERIR (5, ‘2660/0’, ‘Marcos Valério Santiago’, ‘Sim’, 6) em ALUNO. | Resultado: Esta inserção satisfaz todas as restrições, de modo que é aceitável. |
Se uma inserção violar uma ou mais restrições, a opção padrão é rejeitar a inserção. Nesse caso, o SGBD geralmente oferece um motivo ao usuário sobre a rejeição da inserção, ou seja, uma informação do porquê ocorreu o erro. Outra opção é tentar corrigir o motivo da rejeição da inserção, mas isso normalmente não é usado para violações causadas pela operação Inserir; em vez disso, é usado com mais frequência na correção de violações das operações Excluir e Atualizar. Saiba+
Na primeira operação, o SGBD poderia pedir ao usuário para oferecer um valor para ID_Turma ou mesmo identificar o próximo ID_Turma da sequência (que no caso seria o número 7), e poderia então aceitar a inserção. Na operação 3, o SGBD poderia pedir que o usuário mudasse o valor de ID_Turma para algum valor válido (ou defini-lo como NULL), ou poderia pedir ao usuário para inserir uma tupla em TURMA com o ID_Turma igual a 7 e poderia aceitar a inserção original somente depois que uma operação fosse aceita.
X