Esercitazione 4: Trigger in DB2

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Esercitazione 4: Trigger in DB2"

Transcript

1 Esercitazione 4: Trigger in DB2 Sistemi Informativi L-B Home Page del corso: Versione elettronica: esercitazione4.pdf Sistemi Informativi L-B Definire trigger con CLP Per creare dei trigger il CLP va chiamato con l opzione: DB2 -td@ che come terminatore NB: DB2 -t definisce il terminatore di default: ; Il ; può servire nella definizione del trigger se si hanno più statement SQL nella parte di azione oppure IF Ovviamente, se il trigger è in un file: DB2 -td@ -vf <filename> Per eliminare un trigger: DROP TRIGGER <nome_trigger> Per comodità, nel seguito si richiamano alcune nozioni fondamentali relative al CLP Ese4: trigger in DB2 Sistemi Informativi L-B 2 1

2 CLP: Elenco opzioni Ese4: trigger in DB2 Sistemi Informativi L-B 3 Command Window Dalla finestra comandi (o modo comando del CLP ) è possibile: immettere tutti i comandi ammessi dal CLP interattivo (incluse istruzioni SQL racchiuse tra doppi apici), prefissandoli con db2 invocare comandi di sistema operativo e altri eseguibili (file.exe e.bat) Per passare da modo interattivo a modo comando: quit Ese4: trigger in DB2 Sistemi Informativi L-B 4 2

3 CLP: comandi Per ottenere l elenco dei comandi CLP:? Per spezzare su più righe comandi CLP e istruzioni SQL: \ Oppure invocare CLP con un terminatore Per visualizzare le tabelle del proprio schema: LIST TABLES e quelle di un altro schema: LIST TABLES FOR SCHEMA <SCHEMA NAME> Per spostarsi da uno schema all altro, e quindi poter referenziare i relativi oggetti senza dover ogni volta usare il nome del loro schema: SET CURRENT SCHEMA <SCHEMA NAME> Per vedere lo schema di una table/view: DESCRIBE TABLE <TABLE NAME> Analogamente, per vedere lo schema del risultato di una query: DESCRIBE <SQL QUERY> Ese4: trigger in DB2 Sistemi Informativi L-B 5 CLP: modalità batch Da modo comando CLP supporta input da file (opzione -f) e redirezione dell output su file (opzione -z) Ad esempio: db2 vtf C:\TEMP\sqlscript.txt z C:\TEMP\result.txt esegue lo script SQL contenuto nel file sqlscript.txt, e produce il risultato nel file result.txt Script SQL: insieme di istruzioni SQL e comandi CLP separati da ; (separatore di defult) -vtf equivale a -v (verbose) -t (separatore di default) -f La scrittura su file avviene in modalità append Ese4: trigger in DB2 Sistemi Informativi L-B 6 3

4 Esercizio 1 Dato lo schema concettuale: e considerando che: le entità vengono accorpate verso l alto l associazione viene tradotta a parte si generi uno schema relazionale in DB2 e si completi, facendo uso di trigger, con gli opportuni vincoli Si verifichi inoltre il corretto funzionamento, ponendo per semplicità max-card(dottore,cura) = 3 anziché 30 Ese4: trigger in DB2 Sistemi Informativi L-B 7 Esercizio 1: vincoli da esprimere 1. Se viene inserita una tupla nella tabella Cura si deve riferire ad una coppia paziente-dottore 2. Il numero massimo di pazienti assegnati per ogni dottore è 30 (3) Per rispettare il vincolo 1: prima di inserire una tupla nella forma (:paz,:doc) nella tabella Cura verificare che le seguenti query restituiscano almeno un record: select * from Persona where CF = :paz and SEL = 2 select * from Persona where CF = :doc and SEL = 1 Il vincolo 2 si esprime in maniera simile: prima di inserire una tupla nella forma (:paz,:doc) nella tabella Cura verificare che la seguente query (parzialmente specificata) NON restituisca nessun record: select Cura.doc from Cura where Cura.doc = :doc? NB: ovviamente nei trigger bisogna definire un nome per la variabile NEW e usare quello (ad es. N.doc) Ese4: trigger in DB2 Sistemi Informativi L-B 8 4

5 Esercizio 2 Dato lo schema concettuale: si progetti lo schema relazionale in DB2, considerando che: l entità DipartimentiLocali viene accorpata in Dipartimenti l associazione non viene tradotta a parte l attributo AnniFond indica gli anni passati dalla creazione del dipartimento l attributo AnniEsp indica gli anni di esperienza del supervisore vale la regola aziendale che i supervisori junior (con meno di 5 anni di esperienza) possono supervisionare solo i dipartimenti locali creati dopo la loro assunzione, per cui possono essere associati tramite R solo a istanze di DipartimentiLocali con AnniFond < AnniEsp Ese4: trigger in DB2 Sistemi Informativi L-B 9 Esercizio 3 (1) Partendo dai diagrammi E/R della scorsa esercitazione AUTO NUMERO_TELAIO COLORE CERCHI_LEGA CLIMATIZZATORE AIRBAG_LAT id: NUMERO_TELAIO 1 1 R MODELLO CASA NOME id: CASA NOME P NUOVA RODAGGIO USATA KM_PERCORSI Ese4: trigger in DB2 Sistemi Informativi L-B 10 5

6 Esercizio 3 (2) PERSONAGGI NOME COMPAGNIA id: NOME LIBRO ISBN AUTORE NUM_PAGINE id: ISBN 1 1 EDITO_DA CASA_EDITRICE RAG_SOCIALE NAZIONALITA id: RAG_SOCIALE INPE D INFANZIA INTERATTIVO ETA_MIN ETA_MAX DIZIONARIO LING_UNO LING_DUE GUIDA_TURISTICA NAZIONE Nella traduzione in modello relazionale eseguire un collasso verso l alto della gerarchia Regola aziendale: c è un accordo commerciale tra la casa editrice Elsevier e la Disney per cui i libri per bambini che hanno almeno un personaggio Disney possono essere editi solo dalla Elsevier Ese4: trigger in DB2 Sistemi Informativi L-B 11 Esercizio 3 (3) Tradurre gli schema E/R in SQL specificando: Tabelle e relativi campi Per ogni campo il dominio, e se è nullable Primary Key e Foreign Key Altri vincoli esprimibili Eseguire in DB2 il codice SQL per creare le tabelle Scrivere i trigger necessari per imporre i vincoli non espressi dallo schema E/R o relazionale impostando messaggi di errore significativi in caso di inserimenti che non li rispettino e inserire tali trigger in DB2 Verificare la correttezza dell esercizio, con degli inserimenti (l ordine degli inserimenti conta): 5 inserimenti validi per ogni tabella 3 inserimenti non validi per vincoli di tupla o integrità 3 inserimenti non validi che attivano i trigger Ese4: trigger in DB2 Sistemi Informativi L-B 12 6

Esercitazione 1 SQL: DDL e DML di base

Esercitazione 1 SQL: DDL e DML di base Esercitazione 1 SQL: DDL e DML di base Sistemi Informativi T Versione elettronica: L01.2.DDLDMLbase.pdf Prime cose da fare Fare login sul PC usando lo username di Scuola Procedura descritta qui: https://infoy.ing.unibo.it/new_account/

Dettagli

Esercitazione 1 SQL: DDL e DML di base

Esercitazione 1 SQL: DDL e DML di base Esercitazione 1 SQL: DDL e DML di base Sistemi Informativi T Versione elettronica: L01.2.DDLDMLbase.pdf Prime cose da fare Fare login sul PC usando lo username di Scuola Procedura descritta qui: https://infoy.ing.unibo.it/new_account/

Dettagli

Esercitazione 1 SQL: DDL e DML di base

Esercitazione 1 SQL: DDL e DML di base Esercitazione 1 SQL: DDL e DML di base Sistemi Informativi T Versione elettronica: L01.2.DDLDMLbase.pdf Prime cose da fare Fare login sul PC usando lo username di Scuola Procedura descritta qui: https://infoy.ing.unibo.it/new_account/

Dettagli

Soluzione esercitazione 01

Soluzione esercitazione 01 Soluzione esercitazione 01 Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SolEse01.pdf Sistemi Informativi L-A Videonoleggio - caso A: tabella

Dettagli

Il sistema IBM DB2. Sistemi Informativi T. Versione elettronica: L01.1.IntroduzioneDB2.pdf

Il sistema IBM DB2. Sistemi Informativi T. Versione elettronica: L01.1.IntroduzioneDB2.pdf Il sistema IBM DB2 Sistemi Informativi T Versione elettronica: L01.1.IntroduzioneDB2.pdf IBM DB2 Il DBMS relazionale IBM DB2 è il prodotto di punta dell IBM per la gestione di basi di dati relazionali

Dettagli

Esercitazione 1: DB-MAIN e modello E/R

Esercitazione 1: DB-MAIN e modello E/R Esercitazione 1: DB-MAIN e modello E/R Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: esercitazione1.pdf Sistemi Informativi L-B DB-MAIN:

Dettagli

Ese1: DB-MAIN e modello E/R

Ese1: DB-MAIN e modello E/R Esercitazione 1: DB-MAIN e modello E/R Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: esercitazione1.pdf Sistemi Informativi L-B DB-MAIN:

Dettagli

Errata Corrige dell edizione 2007

Errata Corrige dell edizione 2007 Errata Corrige dell edizione 2007 Aggiornata al 30/03/2011 pag 11 ASSOCIAZIONI card(studente,esame)=(0,n) pag 17 IDENTIFICATORI Un identificatore di un entità E è una collezione di attributi e/o di entità

Dettagli

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

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2 Vincoli di integrita 2 Cosa e un vincolo di integrita E una proprieta sempre valida

Dettagli

Esercitazione 4 SQL: cataloghi e viste

Esercitazione 4 SQL: cataloghi e viste Esercitazione 4 SQL: cataloghi e viste Sistemi Informativi T Versione elettronica: L04.CatView.pdf Cataloghi di sistema Sono insieme di tables e views che descrivono la struttura logica e fisica degli

Dettagli

Esercitazione 3: progettazione logica

Esercitazione 3: progettazione logica Esercitazione 3: progettazione logica Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: esercitazione3.pdf Sistemi Informativi L-B Progettazione

Dettagli

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi: SQL e linguaggi di programmazione L interazione con l ambiente SQL può avvenire in 3 modi: in modo interattivo col server attraverso interfacce o linguaggi ad hoc legati a particolari DBMS attraverso i

Dettagli

Esercitazione 03: JDBC e Prepared Statements

Esercitazione 03: JDBC e Prepared Statements Esercitazione 03: JDBC e Prepared Statements Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: Esercitazione03.pdf Sistemi Informativi L-A Applicazione

Dettagli

SQL - Structured Query Language

SQL - Structured Query Language SQL - Structured Query Language Lab 05 Alessandro Lori Università di Pisa 27 Aprile 2012 Riepilogo esercitazione precedente Operatori insiemistici (UNION, INTERSECT, EXCEPT) Riepilogo esercitazione precedente

Dettagli

ESEMPIO DI TRIGGER PER IL CONTROLLO DELLE PROPRIETÀ COPERTURA DI UNA GERARCHIA (ARGOMENTO SVOLTO IN CLASSE IL 25 MAGGIO 2011)

ESEMPIO DI TRIGGER PER IL CONTROLLO DELLE PROPRIETÀ COPERTURA DI UNA GERARCHIA (ARGOMENTO SVOLTO IN CLASSE IL 25 MAGGIO 2011) ESEMPIO DI TRIGGER PER IL CONTROLLO DELLE PROPRIETÀ COPERTURA DI UNA GERARCHIA (ARGOMENTO SVOLTO IN CLSE IL 25 MAGGIO 2011) Dato il seguente schema E/R consideriamo solo le due gerarchie relative a MANAGER/SEGRETARIA/IMPIEGATO

Dettagli

Progettazione concettuale usando il modello Entità-Relazione (ER)

Progettazione concettuale usando il modello Entità-Relazione (ER) Progettazione concettuale usando il modello Entità-Relazione (ER) 1 Introduzione alla progettazione delle basi di dati Progettazione concettuale (in questa fase si usa il modello ER) Quali sono le entità

Dettagli

ESERCITAZIONE: Fornitore-Fornisce-Articolo

ESERCITAZIONE: Fornitore-Fornisce-Articolo ESERCITAZIONE: Fornitore--Articolo PROGETTAZIONE CONCETTUALE Sia dato il diagramma ER rappresentativo di una certa realtà di interesse Cognome CodF Nome DataN CodA Descrizione Prezzo Fornitore N N E Fornito

Dettagli

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

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) 1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2017/2018 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2017-18.htm Prof.ssa Francesca A. Lisi [email protected]

Dettagli

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo. PROBLEMA. Un albergo di una grande città intende gestire in modo automatizzato sia le prenotazioni sia i soggiorni e realizzare un database. Ogni cliente viene individuato, tra l altro, con i dati anagrafici,

Dettagli

Argomenti Corso SAP ABAP Completo Individuale

Argomenti Corso SAP ABAP Completo Individuale Argomenti Corso SAP ABAP Completo Individuale Lezione 1 - Introduzione ad ABAP/4 Programma Report; Programma Interattivo; Smartforms; Tool Sap Query. Lezione 2 - Navigazione e visualizzazione tabelle Database

Dettagli

Esercitazione 3. Vincoli di integrità. Approccio Procedurale

Esercitazione 3. Vincoli di integrità. Approccio Procedurale Esercitazione 3 Vincoli di integrità Approccio Procedurale Dalla progettazione concettuale alla realizzazione del database su MySQL Progettazione concettuale Requisiti Progettazione logica Schema concettuale

Dettagli

Il tool di progettazione DB-MAIN

Il tool di progettazione DB-MAIN Il tool di progettazione DB-MAIN Sistemi Informativi T Versione elettronica: L06.1.IntroduzioneDB-MAIN.pdf DB-MAIN: uno strumento per la progettazione DB-MAIN è un tool di modellazione orientato ai dati

Dettagli

Silvia Chiusano, Paolo Garza 1

Silvia Chiusano, Paolo Garza 1 Creazione di un trigger Sviluppo ed utilizzo dei trigger in Oracle Silvia Chiusano Paolo Garza CREATE TRIGGER nome_trigger modo evento [OR evento] ON tabella [REFERENCING referenza] [] [WHEN (predicato

Dettagli

1. Schema concettuale della base di dati PROGETTO CONCETTUALE SCHEMA ER

1. Schema concettuale della base di dati PROGETTO CONCETTUALE SCHEMA ER Esame di Stato Istituto Tecnico Industriale Proposta di soluzione della seconda prova Indirizzi: Informatica - CORSO DI ORDINAMENTO e Progetto ABACUS Anno Scolastico: 2004-2005 1. Schema concettuale della

Dettagli

Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI

Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI La finalità di questa esercitazione è quella di creare, date delle specifiche progettuale, appositi script di creazione e popolamento di una base

Dettagli

Corso di Basi di Dati A.A. 2015/2016

Corso di Basi di Dati A.A. 2015/2016 Corso di Laurea in Ingegneria Gestionale Sapienza Università di Roma Corso di Basi di Dati A.A. 2015/2016 E3 - MySQL: Creazione di Schemi ed Interrogazioni Tiziana Catarci, Andrea Marrella Ultimo aggiornamento

Dettagli

La connessione ai database MySQL tramite script PHP versione 5.5

La connessione ai database MySQL tramite script PHP versione 5.5 La connessione ai database MySQL tramite script PHP versione 5.5 Php è un linguaggio di scripting che estende le funzionalità del server Web, mentre MySQL è un programma server che si occupa della gestione

Dettagli

Esercitazione seconda prova Esame di Stato Prova di Informatica Gestionale ITC Programmatori e Mercurio. Note introduttive

Esercitazione seconda prova Esame di Stato Prova di Informatica Gestionale ITC Programmatori e Mercurio. Note introduttive Note introduttive Il metodo di lavoro proposto ripercorre il ciclo di vita di un sistema informativo automatizzato attraverso l analisi, il progetto, la realizzazione e il testing. Il sistema informativo

Dettagli

Shell BASH. Variabili Redirezione

Shell BASH. Variabili Redirezione Shell BASH Variabili Redirezione Variabili Scrittura/definizione: a=3 (senza spazi) Lettura: ${a} o semplicemente $a Esempi: > a=3 > echo $a 3 > echo $aa > echo ${a}a 3a > a=ciao pippo bash: pippo: command

Dettagli

2011 Politecnico di Torino 1

2011 Politecnico di Torino 1 SQL per le applicazioni Esercitazione PHP e MySQL Svolgimento D B M G Passi di risoluzione creazione e popolamento della base di dati Creazione di un script SQL Passo 2 creazione di una query d interrogazione

Dettagli

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

Tecnologia delle Basi di Dati Esercitazione #4 Definizione dei trigger in Oracle Tecnologia delle Basi di Dati Esercitazione #4 Definizione dei trigger in Oracle 1 Materiale disponibile Gli script e il testo delle esercitazioni sono disponibili nel direttorio della propria home, nella

Dettagli

Esercitazione 01: DDL e DML di base

Esercitazione 01: DDL e DML di base Esercitazione 01: DDL e DML di base Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: Esercitazione01.pdf Sistemi Informativi L-A Prima di iniziare

Dettagli

QL (Query Language) Alice Pavarani

QL (Query Language) Alice Pavarani QL (Query Language) Alice Pavarani QL Query Language Linguaggio di interrogazione dei dati, permette di: Interrogare la base di dati per estrarre informazioni Elaborare i dati Il risultato di un interrogazione

Dettagli

SQL: le funzioni di aggregazione

SQL: le funzioni di aggregazione SQL: le funzioni di aggregazione funzioni predefinite che agiscono sui valori contenuti in insiemi di righe della tabella: Conteggi Somme Medie Massimi, minimi Funzione Count La funzione COUNT conta il

Dettagli

Il linguaggio SQL: autorizzazioni

Il linguaggio SQL: autorizzazioni Il linguaggio SQL: autorizzazioni Sistemi Informativi T Versione elettronica: 04.6.SQL.autorizzazioni.pdf Autorità e privilegi Nei DBMS SQL ogni operazione deve essere autorizzata, ovvero l utente che

Dettagli

Manuale SQL. Manuale SQL - 1 -

Manuale SQL. Manuale SQL - 1 - Manuale SQL - 1 - Istruzioni DDL Creazione di una tabella : CREATE TABLE Il comando CREATE TABLE consente di definire una tabella del database specificandone le colonne, con il tipo di dati ad esse associate,

Dettagli

D B M G Il linguaggio HTML

D B M G Il linguaggio HTML Programmazione Web Il linguaggio HTML Il linguaggio HTML Concetti di base Le interfacce utente in HTML I form Le tabelle Il passaggio dei parametri contenuti nei form @2011 Politecnico di Torino 1 Concetti

Dettagli

Lezione 4. Dallo schema ER al relazionale

Lezione 4. Dallo schema ER al relazionale Lezione 4 Dallo schema ER al relazionale Pag.1 Insieme di entità ER e tabelle relazionali CREATE TABLE ( CHAR(15), CHAR(20), INTEGER, PRIMARY KEY ()) Pag.2 Traduzione di relazioni ER (segue) dal r rid

Dettagli

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia

Informatica. Dipartimento di Economia. Ing. Cristiano Gregnanin. 20 ottobre Corso di laurea in Economia Informatica Dipartimento di Economia Ing. Cristiano Gregnanin Corso di laurea in Economia 20 ottobre 2016 1 / 22 Introduzione ai database Prima dei DBMS, le organizzazioni utilizzavano semplici file per

Dettagli

MODULO 2. Query normali e parametriche Query di:

MODULO 2. Query normali e parametriche Query di: MODULO 2 TITOLO DBMS e SQL In questo Modulo si affronta lo studio dei DBMS Access e MySQL. In particolare per Access, si descrive come progettare, impostare e modificare gli strumenti di lavoro (tabelle,

Dettagli

SOLUZIONE SECONDA PROVA ESAME DI STATO TRAMONTANA

SOLUZIONE SECONDA PROVA ESAME DI STATO TRAMONTANA Esame di Stato Istituto Tecnico Commerciale Proposta di soluzione della seconda prova Indirizzo: PROGRAMMATORI - CORSO DI ORDINAMENTO Tema di: INFORMATICA GENERALE ED APPLICAZIONI GESTIONALE Anno Scolastico:

Dettagli

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

Basi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive Basi di dati attive Paolo Atzeni Stefano Ceri Basi di dati attive BD con componente per la gestione di regole Evento- Condizione-Azione (regole di produzione): eventi: normalmente modifiche della base

Dettagli

Esercitazione n 2. Obiettivi

Esercitazione n 2. Obiettivi Esercitazione n 2 Obiettivi Progettazione di una applicazione Java Utilizzo di classi come schemi Utilizzo di costruttori Utilizzo di stringhe Uguaglianza tra oggetti Utilizzo di classi come componenti

Dettagli