Bancos de Dados - Aula 16 - Linguagem de consulta – SQL Parte IV
Aula 4: SQL e Restrições em Banco de Dados
Introdução ao Conteúdo da Aula
- A professora Sara introduz a quarta aula sobre SQL, enfatizando a importância do conteúdo didático acessível para os alunos acompanharem as consultas.
Restrições no Mundo Real
- Existem regras e restrições que não podem ser especificadas diretamente no projeto de banco de dados, como restrições de domínio e unicidade.
- Algumas regras precisam ser implementadas através da lógica da aplicação ou utilizando linguagens de programação disponíveis nos SGBDs (Sistemas de Gerenciamento de Banco de Dados).
Implementação das Regras
- É possível usar recursos avançados do SQL para implementar essas regras, combinando diferentes abordagens para atender à modelagem necessária.
- A aula se concentrará em exceções, asserções e visões, com exemplos práticos sobre como modelar essas regras.
Exceções e Asserções
- As exceções são especificações em SQL que permitem implementar regras complexas envolvendo múltiplas relações.
- O uso do comando
CHECKé limitado ao escopo da tabela; para checagens entre tabelas diferentes, são necessárias asserções mais avançadas.
Estrutura Geral das Asserções
- A estrutura geral de uma asserção envolve criar um objeto no banco de dados que verifica se uma condição é verdadeira ou falsa. Se violada, o sistema deve tomar ações apropriadas.
Implementação de Gatilhos em SQL
Conceitos Básicos sobre Gatilhos
- A discussão inicial aborda a necessidade de especificações para ações em casos de violação, destacando a importância dos gatilhos no contexto do SQL.
- Os gatilhos são definidos como implementações que permitem executar ações automaticamente quando eventos específicos ocorrem ou condições são atendidas.
Estrutura e Modelagem de Gatilhos
- A modelagem de um gatilho envolve três componentes principais: evento, condição e ação. O evento é o que dispara o gatilho.
- Eventos comuns incluem inserções, alterações ou exclusões em tabelas do banco de dados, onde as ações podem ser necessárias para evitar violações ou remediar situações.
Tipos de Execução dos Gatilhos
- Existem dois tipos principais de execução: antes (BEFORE) e depois (AFTER). O tipo BEFORE executa ações antes da alteração no banco, enquanto AFTER executa após a alteração.
- A escolha entre BEFORE e AFTER depende da lógica necessária para garantir a integridade dos dados durante operações críticas.
Condições nos Gatilhos
- As condições dentro dos gatilhos determinam se uma ação deve ser realizada com base na verificação da validade das regras estabelecidas.
- É possível implementar gatilhos sem condições; nesse caso, a ação é disparada diretamente pela ocorrência do evento.
Exemplo Prático: Aviso sobre Salários
- Um exemplo prático ilustra um cenário onde um aviso deve ser emitido sempre que o salário de um funcionário excede o salário do supervisor.
- O gatilho é configurado para acionar notificações em eventos como inserção ou alteração do salário do funcionário ou supervisor.
Criação e Sintaxe do Gatilho
- A implementação do gatilho requer uma sintaxe específica que varia conforme o sistema gerenciador de banco de dados (SGBD).
- Um exemplo específico é apresentado com um gatilho chamado "violação salário", que verifica se o salário do funcionário ultrapassa o limite definido pelo salário do supervisor.
Verificação da Condição no Gatilho
- Após definir os eventos, é necessário especificar as condições. Uma subconsulta pode ser utilizada para comparar salários entre funcionários e supervisores.
- Se a condição for verdadeira, uma ação será executada; neste caso, emitir um aviso ao supervisor sobre a discrepância salarial.
Conclusão sobre Transações e Gatihos
Inserção e Manipulação de Variáveis em Banco de Dados
Diferença entre Variáveis
- A inserção de dados requer que os valores da tutela sejam armazenados em variáveis distintas das que já existem na tabela do banco de dados.
- A palavra "mil" é utilizada para diferenciar as variáveis associadas a eventos ou alterações, como o novo salário que está sendo inserido.
Verificação de Salários
- O novo salário deve ser maior que o salário existente no banco, especialmente para funcionários gerentes que estão passando por alterações.
Gatilhos e Visões
- Discussão sobre gatilhos (triggers) e sua importância na manipulação de dados. Exemplos práticos são fornecidos para melhor compreensão.
- As visões (views) são tabelas virtuais derivadas de outras tabelas, permitindo a extração e combinação de informações sem alterar os dados originais.
Utilidade das Visões
- As visões podem ser consultadas livremente, mas têm limitações quanto à inserção de novos dados. Elas otimizam consultas e garantem segurança ao restringir o acesso a informações sensíveis.
Exemplo Prático: Criação de uma Visão
- Um exemplo prático é apresentado com a criação da visão "trabalha_em", que possui atributos derivados das tabelas funcionário, projeto e horas trabalhadas.
- A junção dessas três tabelas é necessária para criar a visão, facilitando o acesso às informações sem repetidas operações complexas.
Atualização das Visões
- É crucial manter as visões atualizadas em relação às tabelas base; novas inserções devem refletir nas visões automaticamente.
Resumo Estatístico com Visões
- Uma visão pode resumir informações estatísticas, como o número total de funcionários por departamento e a soma dos salários. Isso é útil para análises sem expor dados individuais.