Oracle PL/SQL Triggers
|
|
|
- Geraldo Covalski Garrido
- 7 Há anos
- Visualizações:
Transcrição
1 BDDAD Bases de Dados Oracle PL/SQL Triggers Nelson Freire (ISEP LEI-BDDAD 2017/18) 1/39
2 Triggers Sumário Introdução Conceito de Trigger Tipos de Triggers Designações de um Trigger Triggers DML Características Particulares Interesse Aspetos Gerais Lista de Triggers Associados a Tabela Ordem de Disparo de Triggers Impedir/Permitir Triggers Eliminar Triggers Limitação do Tamanho de um Trigger Uso de Triggers Comando CREATE TRIGGER Passos Para Criar um Trigger Pseudo-Registos NEW e OLD Tratamento Diferenciado de Comandos de Triggering Participação em Transações Limitação Mutating Table em Triggers de Linha Exemplo Nelson Freire (ISEP LEI-BDDAD 2017/18) 2/39
3 Oracle PL/SQL - Triggers Introdução Nelson Freire (ISEP LEI-BDDAD 2017/18) 3/39
4 Triggers Trigger Unidade de programação PL/SQL Tem um nome Armazenado na BD -- com/sem erros de compilação. Invocação: Automática -- realizada pela BD. Trigger dispara automaticamente. Permitida, por omissão. -- disparo do trigger desinibido. Pode ser impedida. -- disparo do trigger inibido. Explicita impossível. Ocorre: Quando surge o evento de triggering. Evento de Triggering Ocorre quando é executado um comando SQL sobre um dado item. Item: tabela / vista / esquema / BD. Comando SQL é designado comando de triggering. Disparo do Trigger (Timing-Point) Antes / depois da execução de comando de triggering. Conceito de Trigger Único / múltiplo ( para cada linha afetada pelo comando de triggering). invocação permitida invocação impedida Nelson Freire (ISEP LEI-BDDAD 2017/18) 4/39
5 Triggers Tipos de Triggers Triggers Trigger dispara quando Interesse Observações DML Executado comando DML (INSERT, UPDATE ou DELETE) sobre tabela / vista. Validar valores armazenados. Atribuir valores por omissão. Proibir certas operações DML. Mais usados por utilizadores de PL/SQL. DDL Executado comando DDL: CREATE, DROP, ALTER, GRANT, REVOKE, Auditoria Impedir a execução de certos comandos DDL. Eventos da BD BD arranca / termina. Utilizador da BD faz LOGON / LOGOFF. Ocorrem erros. Monitorar atividade na BD. Eventos da BD: STARTUP, SHUTDOWN, LOGON, LOGOFF, SERVERERROR, INSTEAD OF Executado comando CREATE Executado comando DML (INSERT, UPDATE ou DELETE) sobre vistas. Substituir a execução de comando de triggering pela execução de um dado código. Essencialmente, são alternativas a triggers DML sobre vistas. SUSPEND MODE Execução de comando é suspensa devido a problemas de espaço (falta de tablespace / quota excedida) Alertar alguém para o problema. Resolver o problema. Comandos entram em modo de suspensão até à resolução do problema. Item: DATABASE / SCHEMA Nelson Freire (ISEP LEI-BDDAD 2017/18) 5/39
6 Triggers Designações de um Trigger Baseadas Nome do comando de triggering -- ex: Trigger INSERT / Trigger LOGON Nome do item de triggering -- ex: Trigger DATABASE / Trigger SCHEMA Timing-point do disparo do trigger -- ex: Trigger BEFORE Statement / Trigger AFTER EACH ROW Nelson Freire (ISEP LEI-BDDAD 2017/18) 6/39
7 Oracle PL/SQL - Triggers Triggers DML Nelson Freire (ISEP LEI-BDDAD 2017/18) 7/39
8 Evento de Triggering Composto por: Comandos de triggering: Comandos DML: INSERT UPDATE DELETE Item sobre o qual atuam os comandos de triggering: Tabela / Vista Exemplos Um comando de triggering INSERT ON empregados -- tabela empregados UPDATE ON empregados DELETE ON empregados Múltiplos comandos de triggering INSERT OR UPDATE ON empregados INSERT OR DELETE ON empregados UPDATE OR DELETE ON empregados Características Particulares INSERT OR UPDATE OR UPDATE ON empregados Execução de comando DML Nelson Freire (ISEP LEI-BDDAD 2017/18) 8/39
9 Interesse Forçar Regras de negócio complexas -- impossível definir em CREATE TABLE. Regras de integridade referencial -- impossível definir em CREATE TABLE. Atribuir Valores por omissão -- impossível definir em CREATE TABLE. CONSTRAINT preferível a trigger Impedir Certas operações DML -- ex: após horas normais de serviço. Certas alterações de tabelas -- i.e., fazer a validação de alterações de tabelas. Transações inválidas -- i.e., provocar ROLLBACK de transação. Registar Eventos -- ex: erros Informação de auditoria Estatísticas do acesso a tabelas. Triggers não servem apenas para impor: Regras de negócio complexas. Restrições de integridade da BD. Nelson Freire (ISEP LEI-BDDAD 2017/18) 9/39
10 Comando CREATE TRIGGER 1/7 Sintaxe (simplificada) CREATE [OR REPLACE] TRIGGER nome_trigger { BEFORE AFTER } { INSERT DELETE UPDATE UPDATE OF lista_colunas } ON tabela/vista [ FOR EACH ROW [ WHEN (condição) ] ] [DECLARE] -- instruções de declarações BEGIN -- instruções executáveis [EXCEPTION] -- handlers de exceções END [nome_trigger]; Carateres especiais: [.] = opcional { } = alternativas nome do trigger (tgr_... por convenção) timing-point do disparo do trigger evento de triggering - 1 disparo para cada linha afetada (cada disparo sob condição) - sem cláusula: apenas 1 disparo corpo do trigger especifica a ação do trigger Exemplo Trigger sobre a tabela barcos NEW Pseudo-registo da linha afetada por comando de triggering. cor Campo do pseudo-registo. Nelson Freire (ISEP LEI-BDDAD 2017/18) 10/39
11 Comando CREATE TRIGGER 2/7 Cláusula CREATE [OR REPLACE] TRIGGER Especifica o nome do trigger. É um identificador Sujeito às regras dos identificadores. Iniciado por letra, Convenção Prefixo: trg_ Razão Evitar conflitos de nomes Tabela, função e procedimento podem ter o mesmo nome. OR REPLACE Opcional Omisso Gerada exceção se o trigger existir. nome do trigger CREATE [OR REPLACE] TRIGGER nome_trigger { BEFORE AFTER } { INSERT DELETE UPDATE UPDATE OF lista_colunas } ON tabela/vista [ FOR EACH ROW [ WHEN (condição) ] ] Nelson Freire (ISEP LEI-BDDAD 2017/18) 11/39
12 Cláusula BEFORE AFTER Especifica: Timing-point do disparo do trigger. Ação do trigger. BEFORE Antes da execução de comando de triggering. Interesse: Consultar / alterar as linhas afetadas por comando de triggering antes de processadas. Exemplo (ilustrado) Linhas afetadas por comando INSERT / UPDATE alteradas antes de serem inseridas / atualizadas na tabela barcos. AFTER Depois da execução de comando de triggering. Interesse: Consultar as linhas afetadas por comando de triggering depois de processadas. Exemplo Para registar numa tabela de logs as linhas eliminadas por DELETE. timing-point Comando CREATE TRIGGER CREATE [OR REPLACE] TRIGGER nome_trigger { BEFORE AFTER } { INSERT DELETE UPDATE UPDATE OF lista_colunas } ON tabela/vista [ FOR EACH ROW [ WHEN (condição) ] ] Nelson Freire (ISEP LEI-BDDAD 2017/18) 12/39 3/7
13 Cláusula INSERT DELETE UPDATE UPDATE OF Especifica: Evento de triggering. Em termos de: Comando / combinação de comandos DML. INSERT, UPDATE ou DELETE Item sobre o qual atuam esses comandos: Tabela / Vista Cláusula UPDATE OF lista_colunas Comando CREATE TRIGGER Para disparar o trigger: Só quando são atualizadas as colunas indicadas. 4/7 evento de triggering CREATE [OR REPLACE] TRIGGER nome_trigger { BEFORE AFTER } { INSERT DELETE UPDATE UPDATE OF lista_colunas } ON tabela/vista [ FOR EACH ROW [ WHEN (condição) ] ] Nelson Freire (ISEP LEI-BDDAD 2017/18) 13/39
14 Cláusula FOR EACH ROW [ WHEN (condição) ] Opcional Omissa: Trigger de tabela / instrução Especifica: Trigger de linha Comando CREATE TRIGGER Trigger de linha: Pode aceder aos dados das linhas afetadas por comando de triggering. Através dos pseudo-registos: NEW -- NEW na condição WHEN e :NEW no corpo do trigger. OLD -- OLD na condição WHEN e :OLD no corpo do trigger. Interesse: Processar os dados de cada linha da tabela afetada por comando de triggering. WHEN (condição): Condiciona o disparo do trigger. -- restringir a execução da ação do trigger. 5/7 Representa a linha a inserir / atualizar trigger de linha CREATE [OR REPLACE] TRIGGER nome_trigger { BEFORE AFTER } { INSERT DELETE UPDATE UPDATE OF lista_colunas } ON tabela/vista [ FOR EACH ROW [ WHEN (condição) ] ] Nelson Freire (ISEP LEI-BDDAD 2017/18) 14/39
15 Comando CREATE TRIGGER 6/7 Trigger de Tabela / Instrução Dispara só 1 vez -- ação do trigger executada 1 vez. Exemplo com comando de triggering UPDATE. Trigger não tem acesso aos dados de cada linha afetada. Pseudo-registos :NEW e :OLD ilegais Sem cláusula FOR EACH ROW Trigger de Linha Dispara múltiplas vezes: 1 vez para cada linha afetada pelo comando de triggering. Exemplo com comando de triggering UPDATE. 1 disparo sobre toda a tabela Com cláusula 1 disparo sobre cada linha Tem acesso aos dados de cada linha afetada -- através dos pseudo-registos NEW e OLD Nelson Freire (ISEP LEI-BDDAD 2017/18) 15/39
16 Cláusula WHEN (condição) Opcional Usada: Só em triggers de linha. -- senão, erro de compilação Especifica: Condição de disparo do trigger. Trigger designado Trigger Condicional. Interesse: Evitar disparos desnecessários do trigger. Condição Parêntesis Obrigatórios Pode referenciar: Pseudo-registos NEW e OLD -- sem prefixo dois pontos Pode invocar funções Só SQL predefinidas. Proibido incluir: Subquery Comando CREATE TRIGGER Nelson Freire (ISEP LEI-BDDAD 2017/18) 16/39 7/7 CREATE [OR REPLACE] TRIGGER nome_trigger { BEFORE AFTER } { INSERT DELETE UPDATE UPDATE OF lista_colunas } ON tabela/vista [ FOR EACH ROW [ WHEN (condição) ] ] de disparo do trigger
17 Passos para Criar Trigger DML 1. Decidir sobre: Evento de triggering: Disparo do trigger aplica-se apenas a um comando INSERT, UPDATE ou DELETE ou Disparo do trigger aplica-se a uma combinação desses comandos? Timing-point do disparo do trigger: Antes da execução de comando de triggering -- com cláusula BEFORE ou Depois da execução de comando de triggering? -- com cláusula AFTER 1 vez para o comando de triggering -- sem cláusula FOR EACH ROW ou 1 vez para cada linha afetada pelo comando de triggering? -- com cláusula FOR EACH ROW Condicionada -- com cláusula WHEN ou Não condicionada? -- sem cláusula WHEN 2. Escrever comando CREATE TRIGGER. 3. Compilar o comando criado. 4. Testar o trigger. Nelson Freire (ISEP LEI-BDDAD 2017/18) 17/39
18 Pseudo-Registos NEW e OLD 1/7 Estruturas de Dados Estruturas semelhantes ao registo PL/SQL. -- daí pseudo-registo. Tipo: nome_tabela%rowtype -- nome da tabela do evento de triggering. Contém: valores dos campos da linha afetada por comando de triggering. Referenciados como Variáveis No corpo do trigger Com prefixo : Sintaxe :NEW.campo :OLD.campo Na condição da cláusula WHEN Sem prefixo : Sintaxe NEW.campo OLD.campo NEW :NEW Nelson Freire (ISEP LEI-BDDAD 2017/18) 18/39
19 Disponíveis Apenas em triggers de linha. Pseudo-Registos NEW e OLD 2/7 Sem cláusula FOR EACH ROW => Trigger de Tabela :NEW gera erro de compilação Erro ORA-4082 Nelson Freire (ISEP LEI-BDDAD 2017/18) 19/39
20 NEW Disponível Apenas em triggers INSERT e UPDATE Contém: Valores dos campos da linha afetada depois das alterações realizadas. OLD Disponível Apenas em triggers UPDATE e DELETE Contém: Valores dos campos da linha afetada antes das alterações realizadas. Valores de OLD e NEW Para a linha em processamento pelo comando de triggering. Pseudo-Registos NEW e OLD 3/7 Comando de Triggering OLD.campo NEW.campo INSERT NULL Valor depois do INSERT UPDATE Valor antes do UPDATE Valor depois do UPDATE DELETE Valor antes do DELETE NULL Nelson Freire (ISEP LEI-BDDAD 2017/18) 20/39
21 Nomes NEW e OLD Podem ser personalizados. Na cláusula REFERENCING Comando CREATE TRIGGER Interesse Melhorar a legibilidade do código. Código mais específico da aplicação. Pseudo-Registos NEW e OLD 4/7 Sintaxe Exemplo Cláusula REFERENCING NEW substituído por NOVO :NEW substituído por :NOVO Nelson Freire (ISEP LEI-BDDAD 2017/18) 21/39
22 Limitações dos Pseudo-Registos Ilegais em operação ao nível do registo. -- legal apenas nível do campo do registo. Exemplo :NEW := NULL; -- :NEW.campo := NULL; -- é legal Ilegais como argumento de subprograma (função/procedimento). Mas é legal um campo do pseudo-registo. Ilegal modificar OLD.campo Porque é ilegal alterar valores armazenados na BD. Tentativa gera erro ORA Ilegal modificar NEW.campo se comando de triggering é DELETE. Tentativa gera erro ORA Trigger AFTER impedido de modificar NEW.campo Porque comando de triggering é executado antes. Tentativa gera erro ORA Pseudo-Registos NEW e OLD 5/7 Trigger BEFORE pode modificar NEW.campo Antes do comando INSERT / UPDATE do evento armazenar esse valor na tabela. Quando um comando DML faz disparar, simultaneamente, um trigger BEFORE e um trigger AFTER: Se o trigger BEFORE alterar NEW.campo então o trigger AFTER vê essa alteração. Nelson Freire (ISEP LEI-BDDAD 2017/18) 22/39
23 Pseudo-Registos NEW e OLD 6/7 Exemplo Trigger AFTER FOR EACH ROW Insere uma linha na tabela de logs LOG_EMPREGADOS depois de qualquer comando UPDATE afetar a coluna SALARIO da tabela EMPREGADOS Nelson Freire (ISEP LEI-BDDAD 2017/18) 23/39
24 Pseudo-Registos NEW e OLD 7/7 Exemplo - Trigger Condicional (com cláusula WHEN) Cria um trigger que: Imprime informação sobre atualizações na coluna SALARIO da tabela EMPREGADOS. Sempre que um comando UPDATE afeta a tabela EMPREGADOS. Exceto quando a informação é do Presidente. A BD avalia a condição WHEN para cada linha da tabela EMPREGADO afetada. Se TRUE: trigger é disparado antes da execução do comando de triggering. Senão: trigger não é disparado mas o comando de triggering continua a sua execução. Nelson Freire (ISEP LEI-BDDAD 2017/18) 24/39
25 Tratamento Diferenciado de Comandos de Triggering Requer Diretivas operacionais -- funções que retornam TRUE / FALSE. Directiva Operacional INSERTING UPDATING UPDATING('coluna') DELETING Retorna TRUE quando comando de triggering é INSERT UPDATE UPDATE que afeta a coluna especificada DELETE Evento do trigger com vários comandos DML Diretivas operacionais determinam o comando DML que disparou o trigger. Diretivas operacionais usadas em condições (expressões booleanas) Diretivas operacionais podem ser usadas em qualquer bloco PL/SQL. Contudo só são TRUE dentro de triggers ou código invocado dentro dum trigger DML Nelson Freire (ISEP LEI-BDDAD 2017/18) 25/39
26 Participação de Triggers em Transações Comandos DML Dentro dum Trigger Por omissão: Fazem parte da transação que originou o disparo do trigger. -- transação principal. i.e., trigger participa na transação principal. Consequência: Trigger quando termina com exceção não tratada: Provoca o ROLLBACK do comando que originou o disparo do trigger. Especificação de Instruções COMMIT/ROLLBACK Dentro do Trigger Apenas quando o trigger: É definido como transação autónoma. -- independente da transação principal. Exemplo Guarda informação de auditoria sobre tabela bonus_empregados: Instrução especifica que os comandos DML da ação do trigger constituem uma transação autónoma Não afeta transação principal Alteração da tabela é garantida. ROLLBACK da transação principal não afeta. Nelson Freire (ISEP LEI-BDDAD 2017/18) 26/39
27 Impede Leitura/escrita na tabela do evento de triggering. Justificação Tabela já está sendo alterada ( is mutating ) por comando DML (INSERT, UPDATE ou DELETE) que fez o trigger disparar. Exemplo Limitação Mutating Table em Triggers de Linha 1/3 Trigger de linha sobre tabela. Consulta da tabela que está sendo alterada por comando DML que fez o trigger disparar. Comando DML faz o trigger disparar e surge um erro... Trigger compilado sem erros. erro ORA-4091 Mutating Table Nelson Freire (ISEP LEI-BDDAD 2017/18) 27/39
28 Limitação Mutating Table em Triggers de Linha 2/3 Consequência 1. Rolled Back Trigger Comando de triggering 2. Controlo da Execução Retorna à aplicação que mandou executar o comando de triggering. Exemplo Trigger é rolled back. Comando de triggering é rolled back. Erro ORA-4091 Mutating Table Nelson Freire (ISEP LEI-BDDAD 2017/18) 28/39
29 Evitar o Erro Limitação Mutating Table em Triggers de Linha 3/3 Exemplo - Trigger AFTER EACH ROW para UPDATE da Mutating Table Alternativas: Usar uma tabela temporária. Usar um trigger DML composto. -- compound DML trigger Usar uma tabela temporária. Usar 2 triggers: Trigger de Linha Trigger de tabela / instrução Trigger de linha Trigger AFTER EACH ROW -- executado antes de triggers AFTER Atualiza a tabela temporária. Trigger de tabela / instrução Trigger AFTER Atualiza a mutating table com os valores da tabela temporária. Nelson Freire (ISEP LEI-BDDAD 2017/18) 29/39
30 Exemplo - Verificação de Restrição Complexa 1/3 Restrição empregados.salario [categorias.salario_min, categorias.salario_max] -- envolve 2 tabelas. Implementação Impossível com CONSTRAINT CHECK Limitada a colunas da mesma tabela. Possível com TRIGGER Faz a validação do salario Se inválido impede a execução de comandos INSERT / UPDATE Nelson Freire (ISEP LEI-BDDAD 2017/18) 30/39
31 Exemplo - Verificação de Restrição Complexa 2/3 Exceção própria (definida pelo programador) Obtém os salários, mínimo e máximo, do novo empregado ou da nova categoria do empregado. Lança exceção quando o novo salário é inválido Código do erro: inteiro [-20000, ] Procedimento (DBMS_STANDARD) Lança exceção própria e retorna código do erro e mensagem de erro. Comando INSERT/UPDATE pendente que disparou o trigger é ROLLED BACK. Nelson Freire (ISEP LEI-BDDAD 2017/18) 31/39
32 Exemplo - Verificação de Restrição Complexa 3/3 Comando DML impedido de executar, por ação do trigger. Salário inválido (fora dos limites da categoria) Exceção lançada pelo trigger provoca o ROLLED BACK do INSERT. Código de erro e mensagem de erro retornados por RAISE_APPLICATION _ERROR Nelson Freire (ISEP LEI-BDDAD 2017/18) 32/39
33 Oracle PL/SQL - Triggers Aspetos Gerais Nelson Freire (ISEP LEI-BDDAD 2017/18) 33/39
34 Triggers Lista de Triggers Associados a uma Tabela SQL Developer Separador Triggers da Tabela selecionada. Exemplo: Tabela EMPREGADOS separador Nelson Freire (ISEP LEI-BDDAD 2017/18) 34/39
35 Triggers Múltiplos Triggers Definidos Para: Mesmo comando de triggering Sobre a mesma tabela Ordem de Disparo: 1. Triggers de Tabela BEFORE 2. Triggers de Linha BEFORE 3. Triggers de Linha AFTER 4. Triggers de Tabela AFTER Exemplo: Ordem de Disparo de Triggers 1. BEFORE 2. AFTER 1. CREATE TRIGGER trg_1 BEFORE UPDATE ON tabelax 2. CREATE TRIGGER trg_2 BEFORE UPDATE ON tabelax FOR EACH ROW 3. CREATE TRIGGER trg_3 AFTER UPDATE ON tabelax FOR EACH ROW 4. CREATE TRIGGER trg_4 AFTER UPDATE ON tabelax Mesmo comando Mesma tabela Quando um comando DML faz disparar, simultaneamente, um trigger BEFORE e um trigger AFTER: Se o trigger BEFORE alterar NEW.campo então o trigger AFTER vê essa alteração. Nelson Freire (ISEP LEI-BDDAD 2017/18) 35/39
36 Triggers Permitir/Impedir Triggers Comando CREATE TRIGGER Cria trigger no estado enable (permitido) -- por omissão Criar Trigger Inibido Especificar a cláusula DISABLE Trigger de linha: FOR EACH ROW DISABLE [WHEN(condição)] Trigger de Tabela: Evento de triggering [REFERENCING ] DISABLE Interesse Permitir apenas triggers sem erros de compilação. Algumas Razões para Impedir Temporariamente um Trigger Trigger tem referência de um objeto indisponível. Necessidade de carregar rapidamente grandes quantidades de dados. Disparos de triggers consomem tempo de CPU. invocação permitida invocação impedida Comando para Impedir / Permitir Um trigger: ALTER TRIGGER [nome_esquema.] nome_trigger { ENABLE DISABLE } ; Todos os triggers sobre uma tabela específica ALTER TABLE nome_tabela { ENABLE DISABLE } ALL TRIGGERS ; Nelson Freire (ISEP LEI-BDDAD 2017/18) 36/39
37 Triggers Eliminar Trigger Comando DROP TRIGGER Sintaxe Exemplo DROP TRIGGER nome_trigger; Alternativa no SQL Developer Nelson Freire (ISEP LEI-BDDAD 2017/18) 37/39
38 Triggers Limitação do Tamanho de um Trigger Tamanho Máximo de um Trigger 32K bytes Recomendação Oracle Para lógica com mais de 60 linhas de código PL/SQL: Criar subprogramas (funções e procedimentos). Invocar esses subprogramas. Nelson Freire (ISEP LEI-BDDAD 2017/18) 38/39
39 Triggers Uso de Triggers Muito Cuidadoso Apenas: Quando necessário. Uso excessivo: Pode resultar em interdependências complexas. -- triggers em cascata. Dificulta a manutenção de grandes aplicações. Nelson Freire (ISEP LEI-BDDAD 2017/18) 39/39
Prof. Josenildo Silva
BD II (SI 587) Gatilhos (Triggers) Prof. Josenildo Silva [email protected] Motivação Algumas rotinas precisam ser executadas antes ou depois de um determinado evento no banco de dados Motivação Regras
SQL Gatilhos (Triggers)
SQL Gatilhos (Triggers) Laboratório de Bases de Dados Gatilho (trigger) Bloco PL/SQL que é disparado de forma automática e implícita sempre que ocorrer um evento associado a uma tabela INSERT UPDATE DELETE
Material Teórico. Procedures, Functions, Exceptions e Triggers. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque
Banco de Dados Material Teórico Procedures, Functions, Exceptions e Triggers Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Revisão Textual: Prof. Ms. Claudio Brites Procedures, Functions,
Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi
Programando em SQL Triggers, Stored Procedures e funções Objetivo Descrever as funcionalidades de triggers, store procedures e funções; Apresentar vantagens e benefícios; Criação e Gerenciamento de Store
Triggers(Gatilhos) Tiago Alves de Oliveira
Triggers(Gatilhos) Tiago Alves de Oliveira [email protected] Triggers (Gatilhos) Um TRIGGER ou gatilho associado a uma tabela, definido para ser disparado, respondendo a um evento em particular; Comandos
Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova
Ciência da Computação GBC043 Sistemas de Banco de Dados Programando com SQL s Avisos Vista da segunda prova Data: 03/06 das 13:40 às 15:00h Local: sala 1B137 Profa. Maria Camila Nardini Barioni [email protected]
Linguagem SQL Restrições, Triggers e Views
FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação Linguagem SQL Restrições, Triggers e Views Prof. Erinaldo Sanches Nascimento Objetivos Especificar restrições mais gerais sobre
Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações
Capítulo 5: Integridade e Segurança Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações 1 Triggers Um trigger é um comando que é executado automaticamente pelo sistema,
BANCO DE DADOS TRIGGERS (GATILHOS) Prof. Fabiano Papaiz IFRN
BANCO DE DADOS TRIGGERS (GATILHOS) Prof. Fabiano Papaiz IFRN Uma Trigger (ou gatilho) é uma estrutura presente na maioria dos SGBD s que permite que um determinado evento (código SQL) seja executado automaticamente
Tabelas. Banco de Dados I MySQL
FACULDADE ANGLO AMERICANO FOZ DO IGUAÇU Curso de Ciência da Computação 5º Período Disciplina: Banco de Dados I Prof. Erinaldo Sanches Nascimento Tabelas Banco de Dados I MySQL Linguagem de Definição de
TRIGGERS Temas abordados
MYSQL TRIGGERS TRIGGERS Temas abordados 1 - Introdução ao SQL Triggers SQL Trigger é uma instrução SQL ou um conjunto de instruções SQL,que fica armazenado, é será activado ou disparado quando um evento
S Q L Asserções, Visões e Técnicas de Programação. Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore
S Q L Asserções, Visões e Técnicas de Programação Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore Resumo Apresentaremos os seguintes tópicos: - Especificação de restrições genéricas
TRIGGER e SEGURANÇA. Prof. Edson Thizon
TRIGGER e SEGURANÇA Prof. Edson Thizon 1 Restrição de Integridade Restrição de integridade Uma regra que deve ser obedecida por todos estados da base de dados que são considerados consistentes. Especificação
Oracle Database 10g: Programação com PL/SQL NOVO
Oracle University Entre em contato: 0800 891 6502 Oracle Database 10g: Programação com PL/SQL NOVO Duração: 5 Dias Objetivos do Curso Este curso apresenta aos alunos os fundamentos de PL/SQL e as vantagens
Tarefa Orientada 17 Scripts
Tarefa Orientada 17 Scripts Objectivos: Declaração de variáveis escalares Declaração de variáveis do tipo tabela Tabelas temporárias Estruturas Condicionais Estruturas de Repetição Tratamento de erros
Oracle Database 10g: Fundamentos de SQL e PL/SQL
Oracle University Contact Us: 0-800-167225 Oracle Database 10g: Fundamentos de SQL e PL/SQL Duration: 5 Dias O que é que gostaria de aprender Conheça os fundamentos de SQL e PL/SQL usando o SQL Developer
SQL (Tópicos) Structured Query Language
SQL (Tópicos) Structured Query Language ISI Introdução aos Sistemas de Informação SQL (Tópicos) 1 SQL: componentes SQL / DDL (Data Definition Language) Permite definir os Esquemas de Relação Permite definir
Restrições de Integridade Semântica
Restrições de Integridade Semântica Controle de valores válidos para os dados estados dos dados condizentes com os requisitos da aplicação transições de estados corretas O SGBD deve controlar esta integridade
Oracle SQL Developer
BDDAD Bases de Dados Oracle Nelson Freire (ISEP LEI-BDDAD 2017/18) 1/59 Sumário Introdução Instalar Abrir Ligar à BD no Servidor Oracle Ativar Commits Automáticos Alterar a Linguagem Nacional Programação
Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas
Banco de dados Conteúdo: DDL Prof. Patrícia Lucas O mysql MySQL Workbench é uma ferramenta de design de banco de dados visual que integra o desenvolvimento SQL, administração, design de banco de dados,
A linguagem SQL
SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão
Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.
Definição do esquema da base de dados o esquema da BD é composto pelas definições de todas as tabelas da BD. existem outros elementos (views, índices, triggers) que também fazem parte do esquema e que
BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com
- Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando
Banco de Dados I Introdução SQL
Banco de Dados I Introdução SQL Frederico Queiroga [email protected] https://sites.google.com/site/fredericoqueiroga/ Linguagem SQL Aspectos Gerais: Independência do fabricante: Está incorporada
Oracle Database: Fundamentos de SQL e PL/SQL
Oracle University Contact Us: 0800 891 6502 Oracle Database: Fundamentos de SQL e PL/SQL Duration: 5 Days What you will learn Este curso apresenta os fundamentos de SQL e PL/SQL e as vantagens das linguagens
Stored Procedures e Triggers
e Triggers Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Rotinas Armazenadas Stored Procedures Exemplos Triggers Exemplos Exercícios 2 Rotinas Armazendas Rotinas Armazenadas são um conjunto de comandos
Administração de Banco de Dados
Administração de Banco de Dados Aula 9 Prof. Marcos Alexandruk Aula 9 Visões (Views) Visões regulares Visões materializadas Visões de objeto Uma visão (view) é uma representação lógica de uma ou mais tabelas.
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS MODULO 2 LINGUAGEM SQL CONTEÚDO 2. LINGUAGEM SQL 2.1 Linguagens de Definição de Dados (DDL) 2.1.1 Criação de tabela: CREATE 2.1.2 Alteração de Tabela: ALTER 2.1.3 Exclusão
Oracle SQL Developer
BDDAD Bases de Dados Oracle Nelson Freire (ISEP LEI-BDDAD 2016/17) 1/49 Introdução Instalar Abrir Ligar à BD no Servidor Oracle Programação Manual SQL Worksheet Script Editar Executar Saída Ficheiro Gravar
Tarefa Orientada 8 Criação de tabelas
Tarefa Orientada 8 Criação de tabelas Objectivos: Iniciar o MS SQL Server Manegement Studio Criar tabelas Especificar tipos de dados Definir restrições Alterar as definições de uma tabela Eliminar uma
SQL Básica. Andre Noel
SQL Básica Andre Noel Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Introdução A SQL é um dos principais motivos de sucesso dos BDs relacionais comerciais Se tornou
Prova de Fundamentos de Bancos de Dados 2 a Prova
Prova de Fundamentos de Bancos de Dados 2 a Prova Prof. Carlos A. Heuser Junho de 2006 Prova com consulta duas horas de duração 1 Base de dados para as questões A SBC (Sociedade Brasileira de Computação
Tratamento de Exceções
Tratamento de Exceções Laboratório de Bases de Dados Tratamento de Exceções Exceções erros e imprevistos que podem ocorrer durante a execução de um bloco PL/SQL SGBD ao encontrar um erro ou um imprevisto,
Oracle 10g: SQL e PL/SQL
Oracle 10g: SQL e PL/SQL PL/SQL: Visão Geral Enzo Seraphim Visão Geral Vantagens de PL/SQL Suporte total à linguagem SQL Total integração com o Oracle Performance Redução da comunicação entre a aplicação
Oracle Database 11g: Introdução à Linguagem SQL Novo
Oracle University Contact Us: 0800 891 6502 Oracle Database 11g: Introdução à Linguagem SQL Novo Duration: 5 Days What you will learn Neste curso, os alunos aprendem os conceitos de bancos de dados relacionais.
Oracle Comandos para Processamento de Transações
Oracle Comandos para Processamento de Transações Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Transação Unidade lógica de trabalho contém um ou mais comandos SQL para manipulação
Linguagem SQL Comando SELECT Agrupamento de Resultados
BDDAD Bases de Dados Linguagem SQL Comando SELECT de Resultados Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/12 Introdução Sumário Funções de Agregação Básicas COUNT SUM MIN MAX AVG Cláusulas de GROUP BY HAVING
PSI Linguagem de Definição de dados. Módulo 15
PSI Linguagem de Definição de dados Módulo 15 Objetivos de aprendizagem No final deste módulo os alunos devem ter adquirido conhecimentos, procedimentos e atitudes que lhe permitam: Criação, alteração
BCD29008 Banco de dados
BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José [email protected] http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017
Tarefa Orientada 9 Base de Dados Pagamentos
Tarefa Orientada 9 Base de Dados Pagamentos Objectivos: Criar as tabelas da base de dados Pagamentos Criar um diagrama da base de dados Inserir registos com os dados de teste Criar as tabelas da base de
Teste Exemplo Revisão da tentativa 1
Teste Exemplo Revisão da tentativa 1 Iniciado em: Quinta, 6 Dezembro 2007, 21:31 Completado em: Quinta, 6 Dezembro 2007, 21:48 Tempo gasto: 16 minutos 53 segundos Classificação: 8/20 (40% Nota: 8 sobre
Laboratório de Banco de Dados. Prof. Luiz Vivacqua.
([email protected]) Ementa Conceitos básicos Sistemas de banco de dados Relacional Visão Geral do PostGreSQL Álgebra Relacional Operadores básicos Operadores adicionais A Linguagem de Consulta Estruturada
FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure
Oracle Database 12c: Programando com PL/SQL Ed. 2
Oracle Database 12c: Programando com PL/SQL Ed. 2 Duração: 5 dias O que você irá aprender Esse curso inicia-se com uma introdução ao PL/SQL e então explora os benefícios dessa poderosa linguagem de programação.
Rápida revisão do Modelo Relacional
Rápida revisão do Modelo Relacional Conceito de relação Tuplas e atributos Rápida revisão do Modelo Relacional Regras de integridade Entidade: Deve existir uma chave primária com valor único e não-nulo.
Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I
Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I Considere o diagrama relacional da Figura 1 e escreva os comandos SQL para executar os exercícios abaixo. Figure 1 Diagrama relacional.
26/04/2017 Triggers no SQL Server: teoria e prática aplicada em uma situação real
www.devmedia.com.br [versão para impressão] Link original: http://www.devmedia.com.br/articles/viewcomp.asp?comp=28194 Triggers no SQL Server: teoria e prática aplicada em uma situaçã o real Veja neste
DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR
SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80
Bases de Dados. DDL Data Definition Language
Bases de Dados DDL Data Definition Language SQL SQL = Structured Query Language Foi originalmente criada pela IBM nos anos 70 como parte de um protótipo de sistema relacional Posteriormente foi implementada
BANCO DE DADOS WEB AULA 9. concessão e revogação de privilégios. professor Luciano Roberto Rocha.
BANCO DE DADOS WEB AULA 9 concessão e revogação de privilégios professor Luciano Roberto Rocha www.lrocha.com O que são privilégios Quem cria o objeto no banco de dados se torna o seu dono. Por padrão,
Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL
Prof. Ms. Luiz Alberto Contato: [email protected] Linguagem de Programação de Banco de Dados Triggers em PostgreSQL Todos os bancos de dados comerciais possuem uma linguagem procedural auxiliar para a
Administração de Banco de Dados
Administração de Banco de Dados Aula 8 Prof. Marcos Alexandruk Aula 8 Índices (Indexes) Índices únicos Índices não únicos Índices de chave invertida Índices baseados em funções Índices de bitmap Tabelas
SQL Pacotes. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados Pacotes
SQL Pacotes Laboratório de Bases de Dados Características Pacotes objetos do banco de dados são equivalentes a bibliotecas Armazenam procedimentos funções definições de cursores declarações de variáveis
SQL PostgreSQL. I Criação de Tabelas. Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida
SQL PostgreSQL I Criação de Tabelas Disciplina: SCC0241 Bases de Dados Professor: Eduardo Hruschka Estagiária PAE: Dayse de Almeida Composição da SQL Linguagem de Definição de Dados (DDL): Comandos para
Sistemas de Informação e Bases de Dados 2012/2013. Stored Procedures e Triggers
Sistemas de Informação e Bases de Dados 2012/2013 Stored Procedures e Triggers Alberto Sardinha Bibliografia MSDN http://msdn.microsoft.com 1 Funções e Procedimentos SQL suporta funções e procedimentos
PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger
PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger a tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco
Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas
Banco de Dados II Triggers e Functions Prof. Moser Fagundes Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Sumário da aula Functions (funções) Triggers (gatilhos) Atividades Functions
Aula 12 Revisão. Prof. Filipe Wall Mutz
Aula 12 Revisão Prof. Filipe Wall Mutz Tópicos Operadores para Consultas Consultas Aninhadas Restrições Views Controle de Acesso Stored Procedures Triggers Operadores Avançados: Consultas com Operadores
Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011
Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de
Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho
Laboratório de Banco de Dados II Aula 04 Prof. Érick de Souza Carvalho 1 SQL (Structured Query Language ) Prof. Érick de Souza Carvalho 2 SQL Structured Query Language - Introdução É uma Linguagem para
Administração de Banco de Dados
Administração de Banco de Dados Aula 6 Prof. Marcos Alexandruk Aula 6 Estruturas lógicas do Oracle: Tabelas tabelas relacionais tabelas temporárias tabelas organizadas por índices tabelas de objetos tabelas
Aula 06 Sistemas Embarcados LT38C
Aula 06 Sistemas Embarcados LT38C Prof. Lucas Ricken Garcia 2017/1 Introdução a Banco de Dados Coleção de dados relacionados. Fatos conhecidos que podem ser registrados e possuem significado implícito.
BANCO DE DADOS GERENCIAL 1 A U L A 2
BANCO DE DADOS GERENCIAL 1 A U L A 2 N Í V E I S D E V I S Ã O, S U B G R U P O D D L : C R I A N D O B A N C O D E D A D O S, C R I A N D O T A B E L A S, E S T R U T U R A D A T A B E L A CONCEITOS :
f. Exemplo: verificar condição de aprovação de alunos
Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados Memória de aula Semana 17 1) Expressões CASE a. Tem a mesma finalidade que nas linguagens
TLBD II Instruções SQL
TLBD II Instruções SQL Os comandos SQL podem dividir-se em três grandes categorias: DML - Data Manipulation Language - trabalha com linhas; DDL - Data Definition Language - trabalha com objetos; DCL -
Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl
AVALIAÇÃO DA QUALIDADE DO CÓDIGO FONTE ESCRITO EM PL/SQL Acadêmica: Giselle Mafra Schlosser Orientador: Everaldo Artur Grahl Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento
[versão para impressão] Link original: comp=24763 Conhecendo o PL/SQL
www.devmedia.com.br [versão para impressão] Link original: http://www.devmedia.com.br/articles/viewcomp.asp? comp=24763 Conhecendo o PL/SQL Veja neste artigo o que é PL/SQL, quando utilizá-la e uma breve
Banco de Dados. Professora: Luciana Faria
Banco de Dados Professora: Luciana Faria Introdução ao linguagem é a SQL (Structured Query Language) Linguagem de Consulta Estruturada Para se utilizar, administrar, e trabalhar com um banco de dados é
SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação
SQL Básica DDL Prof. Marcos A. Schreiner Curso de Licenciatura em Computação 21 de outubro de 2015 Prof. Marcos A. Schreiner (UFPR) 21 de outubro de 2015 1 / 28 1 Introdução 2 SQL DDL CREATE Criar Banco
Modelo Entidade-Relacionamento (E-R)
Modelo Entidade-Relacionamento (E-R) composto n lote n n n contrato_compra_venda n possui proprietário possui n associado cadastro n banco faz fronteira pertence n ruas n quadras n financiado empréstimo
Aula 6 BD1 Modelo Relacional. Profa. Elaine Faria UFU
Aula 6 BD1 Modelo Relacional Profa. Elaine Faria UFU - 2017 Introdução Modelo Relacional Proposto por Codd em 1970 Revolucionou a área de banco de dados É o modelo dominante base para os SGBDs líderes
A ferramenta make. A - Introdução. O C é orientado para a produção de aplicações informáticas de grande dimensão
A - Introdução O C é orientado para a produção de aplicações informáticas de grande dimensão Na geração de aplicações informáticas há ficheiros gerados a partir de outros: logo, os segundos têm obrigatoriamente
BD II (SI 587) Segurança em Banco de Dados. Josenildo Silva.
BD II (SI 587) Segurança em Banco de Dados Josenildo Silva [email protected] Nota Estes slides são baseados nos slides disponibilizados pelos autores ELMASRI e NAVATHE, para o livro Sistemas de Banco
BANCO DE DADOS WEB AULA 12. manipulação de dados atualização e exclusão de registros. professor Luciano Roberto Rocha.
BANCO DE DADOS WEB AULA 12 manipulação de dados atualização e exclusão de registros professor Luciano Roberto Rocha www.lrocha.com Atualização de dados A modificação dos dados armazenados no banco de dados
PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger
PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger A tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco
A linguagem SQL
SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão recebeu o nome de
