Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla. eseguono azioni sulla base di dati stessa.

Documenti analoghi
Basi di dati attive. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger).

IMPIEGATO(Nome, Salario, DipNum) DIPARTIMENTO (DipNum, NomeManager)

Basi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive

Trigger. Basi di dati attive. Trigger: regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi

Le Basi di Dati Attive

Il linguaggio SQL: trigger

Silvia Chiusano, Paolo Garza 1

Triggers. Antonella Poggi, Claudio Corona. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza

Basi di dati attive 1

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

Basi di Dati: Corso di laboratorio

Corso di Basi di Dati

Basi di Dati e Sistemi Informativi. Asserzioni, Viste e Trigger Basi di dati Attive

Capitolo 7. Esercizio 7.1

TRIGGER Regole Attive (Trigger) OLD_TABLE NEW_TABLE old new

Operazioni scatenanti. Nozione ed uso. Sintassi. Esempio

Vincoli e Triggers. Vincoli. Tipo di vincoli. Chiavi esterne

Cap. 5 Basi di dati attive

Introduzione. i trigger rendono reattivo il comportamento del sistema alle sollecitazioni esterne.

Interrogazioni nidificate

Laboratorio di Basi di Dati

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

Nozione ed uso. Operazioni eseguite automaticamente ogni volta che avviene un certo evento Uso:

Viene richiesto di MIN CARD(S,E) = 1 UPDATE DELETE MAX CARD(S,E) = 3 INSERT UPDATE

PL/SQL PL/SQL. Ordine degli elementi dei triggers di Oracle. Differenze nei triggers. Versione dei trigger e PSM di Oracle

Linee guida per la programmazione di transazioni in PL/SQL

Interrogazioni nidificate

Elena Baralis 2007 Politecnico di Torino 1

Laboratorio di Basi di Dati

Tecnologia delle Basi di Dati Esercitazione #4 Definizione dei trigger in Oracle

Triggers. Basi dati attive. Trigger. Indipendenza della conoscenza

Transazioni. Transazioni. Stati di una transazione. Transazioni

Transazioni. Antonella Poggi. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza

Laboratorio di Basi di Dati SQL avanzato

Triggers Esercitazione 1

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Lezione 8. Metadati, Viste e Trigger

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

Vincoli di Integrità

Basi di Dati: Corso di laboratorio

Corso di Basi di Dati

PROVA SCRITTA DI TECNOLOGIA DATABASE 02/12/2004 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF.

Tabelle esempio: Impiegato/Dipartimento

SQL: Definizione e Manipolazione di Relazioni. Capitolo 2

Progettazione di Sistemi Informatici

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL: fondamenti. Il linguaggio SQL

SQL: DDL, VI, Aggiornamenti e Viste

PROVA SCRITTA DI TECNOLOGIA DATABASE 14/12/2005 Corso di Laurea Specialistica in Ingegneria Informatica - NOD PROF.

LABORATORIO di INFORMATICA

Prova Scritta di Modelli dei Dati di Nuova Generazione

σ data 15/12/2013 data 20/12/2014

Dichiarazione degli schemi in SQL DDL 1

Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI

2011 Politecnico di Torino 1

ESERCITAZIONI ACCESS

PARTITIONING PARTITIONING. 27/11/08 /home/scotty/enrico/corso web/finale/architettura/partit page 1

Nella relazione CINEMA, Nome è chiave secondaria. Nella relazione FILM, CodRegista, e CodProtagonista sono chiavi esterne sulla tabella PERSONE.

Basi di dati. Linguaggio SQL: fondamenti - Introduzione. Elena Baralis 2007 Politecnico di Torino 1 D B M G 2 D B M G D B M G 4 D B M G 6

Esercizio 5.1 Soluzione:

Basi di Dati. S Q L Lezione 5

Manuale SQL. Manuale SQL - 1 -

Intoduzione alle transazioni e alle proprieta ACID delle transazioni

Alessandra Raffaetà. Esercizio: Cinema

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

Principi di Progettazione del Software a.a Il linguaggio SQL. Prof. Luca Mainetti Università del Salento

Costruzione dell insieme dei Follow

Suggerimenti per lo Sviluppo delle Applicazioni con PL/SQL. Simona Rotolo

Gestione delle transazioni

Il linguaggio SQL: le viste

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Fondamenti di Teoria delle Basi di Dati

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Basi di Dati: Corso di laboratorio

Il linguaggio SQL: autorizzazioni

Vincoli di Integrità

ROUTINE E PROGRAMMAZIONE

Basi di dati. SQL: Caratteristiche evolute

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Tecnologia di un Database Server (centralizzato) Introduzione generale

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Basi di Dati: Corso di laboratorio

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

Interrogazioni$e$il$valore$NULL$

Esempio di database relazionale con l utilizzo del prodotto MySQL

Uno dei principali motivi del successo delle basi di dati: è diventato uno standard

Gestione della Concorrenza

Basi di dati (8) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: trigger e cursori (1.

Verifica parte IIB. Grafo di controllo. Criteri di selezione per test strutturali (white box) Test. Rif. Ghezzi et al

DATABASE PER IL WEB. Programmazione Web 1

Laboratorio di Basi di Dati Esercizio 8.4/9.1

SQL Avanzato. Interrogazioni e il valore NULL. Interrogazioni complesse, trigger, viste e modifiche dello schema. Giorgio Giacinto 2015

Gestione delle transazioni

ESERCIZI SQL. Esercizio 1

Interrogazioni con ANY e ALL. Operatori ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL. Interrogazioni con ANY e ALL

DUGI, DB2 User Group Italia. i Trigger INSTEAD OF ; SELECT FROM INSERT, UPDATE, MERGE, DELETE con Colonne INCLUDE

DUE GRUPPI DI COMANDI

Transcript:

Una base di dati è ATTIVA quando consente la definizione e la gestione di regole attive o trigger. Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla base di dati e, verificate alcune condizioni, eseguono azioni sulla base di dati stessa. 1

STRUTTURA generale di un TRIGGER: when <event> if <condition> then <action> <event>: sono eventi che corrispondono a modifiche dei dati (insert, delete, update). <condition>: è una condizione booleana specificata in SQL. <action>: è una sequenza di comandi SQL che producono un azione sulla base di dati. 2

LIVELLI DI GRANULARITA : row level: attivazione per ogni tupla, statement level: attivazione una volta sola. MODALITA DI VALUTAZIONE e ATTIVAZIONE: immediata: subito prima/dopo l evento levento che ha attivato il trigger, differita:all esecuzione all esecuzione del COMMIT. 3

Sintassi di un trigger in SQL 99 CREATE TRIGGER <nome> BEFORE AFTER INSTEADOF OF <evento> [REFERENCING <variabili>] [FOR EACH {ROW STATEMENT}] WHEN ( <condizione SQL> ) <sequenza di comandi SQL> 4

<evento>:inserton<tabella> <tabella> DELETE ON <tabella> UPDATE [OF <lista_colonne>] l ON <tabella> <variabili>: OLD AS <nome tuple vecchie> NEW AS <nome tuple nuove> OLD_TABLE AS <nome tabella vecchia> NEW_TABLE AS <nome tabella nuova> 5

<condizione SQL>: clausola WHERE SQL riferita alle variabili definite o di default. <sequenza di comandi SQL>: se si tratta di un BEFORE trigger allora la sequenza di comandi SQL è limitata alla modifica delle variabili NEW (NEW_TABLE), altrimenti è una qualsiasi sequenza di comandi SQL, racchiusa tra BEGIN ATOMIC e END, che può riferirsi anche ad altre tabelle della base di dati (è disponibile l istruzione SET per modificare la variabile NEW). 6

Si noti che le politiche i di reazione alla violazione i dei vincoli di integrità referenziale specificabili in SQL: <vincolo>. on {delete update} {cascade set null set default no action} possono essere visti come trigger predefiniti che reagiscono alla cancellazione o alla variazione di una chiave esportata. 7

eccanismo di attivazione dei trigger (escluso il trigger INSTEAD OF). ata una primitiva P INSERT/DELETE/UPDATE:. Si eseguono i trigger before statement attivati da P. Per ogni tupla della tabella coinvolta in P: a) Si eseguono i trigger before row attivati da P; b) Si esegue P e i test per la verifica dei vincoli di integrità (potrebbero attivare altri trigger after) c) Si eseguono i trigger after row 8

. Si eseguono i test di verifica dei vincoli di integrità che devono valere sull intera tabella.. Si eseguono i trigger after statement attivazione di nuovi trigger viene gestita in modo imile all attivazione di procedure ricorsive. triggerbefore possono solo modificare le variabili EW e non possono attivare altri trigger. 9

Esempio di trigger in SQL 99: Studente(matricola, nome, anno) Esame(matricola, insegnamento, data, voto) CREATE TRIGGER T1 AFTER UPDATE ON Studente REFERENCING NEW AS n FOR EACH ROW WHEN (n.anno >2AND(SELECTcount(*) FROM Esame WHERE matricola = n.matricola ) <= 7) ROLLBACK; 10

Proprietà delle regole attive Osservazione: la progettazione di una regola attiva è semplice, più complesso invece è comprendere il comportamento collettivo di un insieme di regole attive. Proprietà di un insieme di regole attive: Terminazione Confluenza Determinismo delle osservazioni 11

Proprietà delle regole attive Terminazione Un insieme di regole garantisce la terminazione ione quando, per ogni transazione che attiva le regole, l esecuzione TERMINA producendo uno stato finale. 12

Proprietà delle regole attive Confluenza Un insieme di regole garantisce la confluenza quando, per ogni transazione che scatena l esecuzione delle regole, l esecuzione termina producendo un UNICO stato finale che non dipende dall ordine di esecuzione delle regole non esplicitamente priorizzate. 13

Proprietà delle regole attive Determinismo delle osservazioni Un insieme di regole garantisce il determinismo delle osservazioni quando, per ogni transazione che scatena l esecuzione delle regole, l esecuzione è confluente e tutte le azioni svolte dalle regole sono identiche e prodotte nello stesso ordine. 14

Test di terminazione Costruire il grafo di attivazione per l insieme di regole R: NODI: coincidono con le regole dell insieme R ARCHI: esiste un arco da r i verso r j quando un azione di r i contiene una primitiva che coincide con uno degli eventi che attivano r j. L esecuzione delle regole di R PUO non terminare SOLO in presenza di cicli nel grafo di attivazione di R. 15

Esempio CREATE TRIGGER ControllaSalari AFTER UPDATE OF salario ON Impiegato FOR EACH STATEMENT WHEN (SELECT avg(salario) FROM Impiegato) > 100 UPDATE Impiegato SET salario = 0.9 * salario; ControllaSalari GRAFO CICLICO Non terminazione possibile 16