Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoSofia Molteni Modificato 11 anni fa
1
Basi di dati attive Dispongono di un sottosistema integrato per definire e gestire regole di produzione (regole attive) Regole di tipo: Evento-Condizione-Azione Il processore delle regole (rule engine) controlla lesecuzione delle regole, tiene traccia degli eventi e manda in esecuzione le regole in base a proprie politiche. Alternarsi di transazioni, lanciate dagli utenti, e regole, lanciate dal sistema. Comportamento reattivo.
2
Le regole attive (1) Gestiscono vincoli di integrità Calcolano dati derivati Gestiscono eccezioni Codificano regole aziendali
3
Le regole attive (2) La conoscenza di tipo reattivo viene sottratta ai programmi applicativi e codificata sotto forma di regole attive, che fanno parte del DDL, e sono condivise da tutte le applicazioni. Si modificano le regole, non le applicazioni.
4
Trigger (1) Semplici regole presenti nei Data Base relazionali. Basati sul paradigma Evento-Condizione-Azione (ECA) Eventi: primitive per la manipolazione dei dati in SQL (insert, delete, update) Condizione: predicato booleano espresso in SQL (può talvolta mancare) Azione: sequenza di primitive SQL generiche
5
Trigger (2) I trigger fanno riferimento a una tabella detta target: rispondono a eventi relativi a tale tabella. Secondo il paradigma ECA un trigger è: attivato da uno dei suoi eventi valutato durante la verifica delle sue condizioni eseguito I trigger possono anche essere in cascata: azione di un trigger è levento del successivo.
6
Trigger: modalità I trigger possono avere modalità: -immediata: -Opzione after: la valutazione avviene immediatamente dopo levento che li ha attivati -Opzione before: la valutazione del trigger precede logicamente levento a cui si riferisce - differita: la valutazione avviene alla fine della transazione, a seguito del commit-work.
7
Trigger: granularità I trigger hanno due livelli di granularità: - di tupla (row-level): attivazione per ogni tupla coinvolta nelloperazione (istanza). - di primitiva (statement-level): lattivazione avviene in riferimento alla primitiva, sono coinvolte tutte le tuple coinvolte nella primitiva (insieme)
8
Creazione di un Trigger create trigger NomeTrigger modo evento {, evento} on TabellaTarget [[referencing referenza for each row [when ( PredicatoSQL)]] Blocco PL/SQL modo: after o before evento: insert, delete o update referenza: consente di introdurre dei nomi di variabili for each row: solo nel caso di granularità a livello di tupla. sintassi: old as VariabileOld new as VariabileNew
9
Trigger (esempio) create trigger ControlloSalari after update of Salario on Impiegato then update Impiegato set Salario=0.9*Salario where (selact avg(Salario) from Impiegato)>100
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.