Basi di dati attive. Paolo Atzeni. Basi di dati attive

Documenti analoghi
Basi di Dati Attive. Basi di Dati Attive

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

Cap. 7 -Trigger e loro uso

Le Basi di Dati Attive

Le Basi di Dati Attive

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

Basi di dati attive. Basi di dati attive. Struttura di base dei trigger. Evento-Condizione-Azione. Sintassi SQL:1999 dei trigger

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

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

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

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

Vincoli, procedure e regole attive in SQL. SQL: vincoli, trigger 1

Corso di. Basi di Dati I. 10. Esercitazioni in SQL: Complementi

Corso di. Basi di Dati I. 10. Esercitazioni in SQL: Complementi

Basi di dati attive 1

Il linguaggio SQL: trigger

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

Silvia Chiusano, Paolo Garza 1

Cap. 5 Basi di dati attive

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

Basi di Dati: Corso di laboratorio

Basi di dati attive 1

Corso di Basi di Dati

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

TRIGGER Regole Attive (Trigger) OLD_TABLE NEW_TABLE old new

Capitolo 7. Esercizio 7.1

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

Vincoli. Chiavi esterne Vincoli locali e globali Triggers Leggere capitolo 7 di Garcia- Molina et al. Lucidi derivati da quelli di Jeffrey D.

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

Operazioni scatenanti. Nozione ed uso. Sintassi. Esempio

Introduzione 8.2 Basi di Dati Attive

PL/SQL e PLpgSQL. Audiolezione 28b. Necessità. Soluzioni. Embedded SQL. Alfio Ferrara - Stefano Montanelli. Estensioni procedurali di SQL

SQL. SQL come Data Manipulation Language - Inserimento, cancellazione e aggiornamento di righe

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

SQL: "storia" 31/05/2006 2

Corso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste

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

Architetture Evolute nei Sistemi Informativi. architetture evolute 1

Fondamenti di Teoria delle Basi di Dati

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

Manuale SQL. Manuale SQL - 1 -

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

Triggers. Basi dati attive. Trigger. Indipendenza della conoscenza

CREATE VIEW. CREATE VIEW <nome_vista> AS (SELECT <lista_campi> FROM <lista_tabelle> WHERE <condizione>);

IL MODELLO RELAZIONALE

24. Trigger in MySQL 5

UNIVERSITA DEGLI STUDI DI PADOVA

Corso di Basi di Dati

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

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

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

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

insert into Dipartimento(NomeDip, Città) values('produzione','torino') insert into ProdottiMilanesi (select codice, descrizione from Prodotto

Inserimento. Cancellazione. Modifica. INSERT INTO Persone VALUES ('Mario',25,52) INSERT INTO Persone(Nome, Eta, Reddito) VALUES('Pino',25,52)

SQL /10/2016 Basi di dati - SQL 1

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

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

Interrogazioni nidificate

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

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

Interpretazione delle query nidificate

Interrogazioni nidificate

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. Chiavi esterne Vincoli locali e globali Triggers Leggere Cap 2 Riguzzi et al. Sistemi Informativi

Triggers Esercitazione 1

Corso sul linguaggio SQL

Progettazione di Sistemi Informatici

Vincoli di integrità

D B M G 2. Linguaggio SQL: fondamenti. Istruzioni di aggiornamento. Introduzione Istruzione INSERT Istruzione DELETE Istruzione UPDATE

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

Informatica documentale Laurea in Scienze della Comunicazione Prova scritta del 25 giugno Cognome e nome: Matricola:

DDL (Data Definition Language) schemi DML (Data Manipulation Language) DQL (Data Query Language) DCL (Data Control Language)

Basi di Dati Parallele

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

SQL: DDL, VI, Aggiornamenti e Viste

8 SQL : Check, Asserzioni,Viste

Corso di Basi di Dati

SQL Esempi. 24/10-7/11/2016 Basi di dati - SQL 1

Basi di Dati. Esercitazione Algebra Relazionale e SQL. Ing. Paolo Cappellari. 15 maggio 2006

SQL. Università degli Studi di Salerno. Corso di Laurea in Scienze della Comunicazione Informatica generale (matr. Dispari) Docente: Angela Peduto

Laboratorio di PL/SQL

SQL-DML/3. Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste

Laboratorio di Basi di Dati

Vincoli di integrità generici: check

Basi di Dati. Dettagli e Approfondimenti

ESERCIZI SQL. Esercizio 1

Linguaggio SQL: fondamenti D B M G

Interrogazioni in SQL SQL1 1

Istruzione SELECT: fondamenti Interrogazioni nidificate Operatori insiemistici Istruzioni di aggiornamento Gestione delle tabelle

2011 Politecnico di Torino 1

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

SQL Esempi /10/2017 Basi di dati - SQL 1

Si consideri la realtà medica descritta dalla base di dati relazionale definita dal seguente schema:

Laboratorio di Basi di Dati SQL avanzato

Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI

Lezione 8. Metadati, Viste e Trigger

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

Transcript:

Basi di dati attive Paolo Atzeni Basi di dati attive BD con componente per la gestione di regole Evento- Condizione-Azione (regole di produzione): eventi: normalmente modifiche della base di dati valuta una condizione e, in base al valore di verit\`a hanno comportamento reattivo (in contrasto con passivo): eseguono non solo le transazioni utenti ma anche le regole le regole mettono a fattor comune parte dell applicazione che è così condivisa indipendenza della conoscenza esistono molti prototipi sperimentali i DBMS commerciali hanno i trigger (standardizzati in SQL:1999, molto in ritardo e quindi i sistemi sono molto diversi) 29/05/2003 P. Atzeni: Basi di dati attive 2

Trigger definiti con istruzioni DDL (create trigger) basati sul paradigma evento-condizione-azione (ECA): evento: modifica dei dati, specificata con insert, delete, update condizione (opzionale) predicato SQL azione: sequenza di istruzioni SQL (o estensioni, ad esempio PL/SQL in Oracle) intuitivamente: quando si verifica l evento (attivazione) se la condizione è soddisfatta (considerazione) allora esegui l azione (esecuzione) ogni trigger fa riferimento ad una tabella (target): risponde ad eventi relativi a tale tabella 29/05/2003 P. Atzeni: Basi di dati attive 3 Trigger: granularità e modalità granularità di ennupla (row-level): attivazione per ogni ennupla coinvolta nell'operazione di operazione (statement-level): una sola attivazione per ogni istruzione SQL, con riferimento a tutte le ennuple coinvolte ( set-oriented ) modalità immediata: subito dopo (o subito prima) dell evento differita: al commit 29/05/2003 P. Atzeni: Basi di dati attive 4

Trigger in Oracle, sintassi create trigger TriggerName Mode Event {, Event} on TargetTable [ [referencing Reference] for each row [when SQLPredicate]] PL/SQLBlock Mode: before o after Event: insert, update, delete for each row specifica la granularità Reference: permette di definire nomi di variabili (utilizzabili solo per granularità di ennupla): old as OldVariable new as NewVariable 29/05/2003 P. Atzeni: Basi di dati attive 5 Trigger in Oracle, semantica modalità immediata (sia after sia before) schema di esecuzione: trigger before statement per ogni ennupla coinvolta: trigger before row operazione trigger after row trigger after statement in caso di errore, si disfa tutto priorità fra i trigger massimo 32 trigger attivati in cascata 29/05/2003 P. Atzeni: Basi di dati attive 6

Trigger in Oracle, esempio create trigger Reorder after update of QtyAvbl on Warehouse when (new.qtyavbl < new.qtylimit) for each row declare X number; begin select count(*) into X from PendingOrders where Part = new.part; if X = 0 then insert into PendingOrders values (new.part, new.qtyreord, sysdate); end if; end; 29/05/2003 P. Atzeni: Basi di dati attive 7 Trigger in Oracle, esempio, 2 T1: update Warehouse set QtyAvbl = QtyAvbl - 70 where Part = 1 T2: update Warehouse set QtyAvbl = QtyAvbl - 60 where Part <= 3 29/05/2003 P. Atzeni: Basi di dati attive 8

Trigger in DB2, sintassi create trigger TriggerName Mode Event on TargetTable [referencing Reference] for each Level [when (SQLPredicate)] SQLProceduralStatement Mode: before o after Event: insert, update, delete for each Level specifica la granularità Reference: permette di definire nomi di variabili (a seconda della granularità): old as OldTupleVar new as NewTupleVar old_table as OldTableVar new_table as NewTableVar 29/05/2003 P. Atzeni: Basi di dati attive 9 Trigger in DB2, semantica modalità immediata (sia after sia before) i before trigger non possono modificare la base di dati, a parte varianti sulle modifiche causate dall evento (e quindi non possono attivare altri trigger) in caso di errore, si disfa tutto nessuna priorità fra i trigger (ordine definito dal sistema), interazione con le azioni compensative sui vincoli di integrità referenziale massimo 16 trigger attivati in cascata 29/05/2003 P. Atzeni: Basi di dati attive 10

Trigger in DB2, esempio foreign key (Supplier) references Distributor on delete set null create trigger SoleSupplier before update of Supplier on Part referencing new as N for each row when (N.Supplier is not null) signal sqlstate '70005' ('Cannot change supplier') create trigger AuditPart after update on Part referencing old_table as OT for each statement insert into Audit values(user, current-date, (select count(*) from OT)) 29/05/2003 P. Atzeni: Basi di dati attive 11 Trigger in SQL:1999 Molto simili a quelli di DB2 29/05/2003 P. Atzeni: Basi di dati attive 12

Estensioni (di solito non disponibili) eventi temporali (anche periodici) o definiti dall utente combinazioni booleane di eventi clausola instead of: non si esegue l'operazione che ha attivato l'evento, ma un altra azione esecuzione distaccata : si attiva transazione autonoma definizione di priorità regole a gruppi, attivabili e disattivabili regole associate anche a interrogazioni (non solo aggiornamenti) 29/05/2003 P. Atzeni: Basi di dati attive 13 Proprietà delle regole terminazione (essenziale) confluenza determinismo delle osservazioni 29/05/2003 P. Atzeni: Basi di dati attive 14

Applicazioni funzionalità interne controllo dei vincoli di integrità replicazione gestione delle viste materializzate: propagazione virtuali: modifica delle interrogazioni funzionalità applicative: descrizione della dinamica (comportamento) delle basi di dati 29/05/2003 P. Atzeni: Basi di dati attive 15