Basi di dati (8) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: trigger e cursori (1.
|
|
- Leona Gentile
- 8 anni fa
- Visualizzazioni
Transcript
1 Università di Modena e Reggio Emilia Basi di dati (8) Docente: andrea.bulgarelli@gmail.com Argomento: trigger e cursori (1.1) 1
2 Panoramica Trigger Creazione Tipi di trigger Tabelle inserted/deleted Esempi cliente/ordine Cursori 2
3 Trigger I trigger sono stored procedures speciali che vengono automaticamente invocate quando i contenuti di una tabella vengono modificati L attivazione è conseguenza di INSERT, UPDATE o DELETE Mediante i trigger è possibile implementare (assumendosene la responsabilità) gli elementi specifici (custom) per la gestione dei vincoli di integrità di una applicazione 3
4 Creazione di un trigger Il comando CREATE TRIGGER viene usato per definire nuovi trigger Il diritto di creare trigger è assegnato al proprietario di una tabella, che non può trasferirlo ad altri utenti I trigger sono oggetti del database, quindi i loro nomi devono seguire le regole per gli identificatori Si possono creare trigger solamente nel DB corrente, anche se questi possono riferire oggetti in altri DB Un trigger non può essere creato su una vista (ma le possono referenziare) 4
5 Create trigger CREATE TRIGGER trigger_name ON table [WITH ENCRYPTION] { { { FOR AFTER INSTEAD OF } { [DELETE] [,] [INSERT] [,] [UPDATE] } [WITH APP][NOT FOR REPLICATION] AS sql_statement [...n] } } 5
6 Create trigger (2a forma) CREATE TRIGGER trigger_name ON table [WITH ENCRYPTION] { { FOR AFTER INSTEAD OF } [WITH APP][NOT FOR REPLICATION] AS { IF UPDATE (column) [{AND OR} UPDATE (column)] [...n] IF ( COLUMNS_UPDATED() {bitwise_operator} updated_bitmask) { comparison_operator} column_bitmask [...n] } sql_statement [...n] } } Questa versione si usa in connessione con modifiche su colonne specifiche 6
7 Tipi di trigger I trigger sono per default di tipo AFTER e vengono eseguiti dopo che le relative azioni di innesco sono state completate Sono anche disponibili dei trigger di tipo INSTEAD OF, che agiscono prima di qualsiasi operazione sulle tabelle interessate Una operazione di tipo INSTEAD OF INSERT, ad esempio, porterà a fare operazioni diverse da quella richiesta e.g. per salvare un vincolo di integrità o per poter effettuare una operazione di aggiornamento 7
8 Le tabelle inserted e deleted Le tabelle inserted e deleted sono tabelle logiche per ciascun trigger definito in un database in ambiente SQL server Ogni volta che avviene un aggiornamento su una tabella dotata di trigger tali tabelle vengono popolate con i nuovi dati (per insert e update) ed i vecchi dati (per update e delete) I contenuti delle tabelle possono essere usati per operare sul materiale effettivamente modificato Osservazione: i trigger non ricevono input diretto, se non il contenuto di queste due tabelle; i trigger non producono valori di ritorno ma possono usare il RETURN 8
9 Cliente/ordine: esempio 1 create Trigger PRODOTTO_ONDELETECASCADE On dbo.prodotto For Delete As delete from prodotto_ordine where codice_prodotto IN (select codice from deleted) esempio di trigger che simula la clausola on delete cascade per il rispetto della consistenza del database. Ricordarsi di elminare il vincolo di integrità referenziale tra le tabelle PRODOTTO e PRODOTTO_ORDINE. La struttura del comando SQL garantisce la corretta cancellazione di tutte le righe. 9
10 Cliente/ordine: esempio 2 Create Trigger "PRODOTTO_ONUPDATECASCADE" On dbo.prodotto For Update As char(6) char(6) -- esegui questo if solo se è stato modificato il codice If Update (codice) = codice from inserted; = codice from deleted; print 'Old code: ' + ' - New code: ' update prodotto_ordine set codice_prodotto where codice_prodotto = (select codice from deleted) 10
11 Cliente/ordine: esempio 3 Create Trigger "ORDINE_ONUPDATECASCADE" On dbo.ordine For Update As INT INT If Update (numero) = numero from inserted; = numero from deleted; print 'Old code: ' + + ' - New code: ' + update prodotto_ordine set numero_ordine where numero_ordine 11
12 Cliente/ordine: esempio 4 Create Trigger "ORDINE_REFERENCE_INTEGRITY" On dbo.ordine For Update As char(16) If Update (CF) --leggi il nuovo valore del CF = cf from inserted select cf from cliente where cf = 0 RAISERROR('Violato vincolo di integrità referenziale tra Ordine.CF e Cliente.CF', 16, 1) ROLLBACK TRANSACTION 12
13 Cliente/ordine: esempio 5 Create Trigger "ORDINE_REFERENCE_INTEGRITY" On dbo.ordine For Insert As char(16) --leggi il nuovo valore del CF = cf from inserted select cf from cliente where cf = 0 RAISERROR('Violato vincolo di integrità referenziale tra Ordine.CF e Cliente.CF', 16, 1) ROLLBACK TRANSACTION 13
14 Cliente/ordine: note Gli esempi precedenti funzionano solamente con transazioni che aggiornano singoli record. Provare il seguente comando: update prodotto set codice=convert(char(3), codice) + 'a' Il server modifica solo il primo valore 14
15 Cliente/ordine: esempio 6 Alter Trigger ORDINE_CARDMAXCLIENTE On dbo.ordine For Insert As char(16) = CF from inserted IF(select count(*) from ordine where CF group by(cf)) > 2 RAISERROR('INSER. IN ORDINE: ERRORE CARDINALITA MASSIMA.',16,1) ROLLBACK TRANSACTION Un utente non puo' avere piu' di due ordini Naturalmente questa versione vale solamente se non ci sono insert multipli Fare anche la versione per update 15
16 Cursori I database relazionali sono orientati agli insiemi Le applicazioni sono spesso orientate al record (soprattutto in fase di presentazione) I cursori offrono un ponte tra l ambiente a insiemi e quello a record Tre possibili ragioni per usarli Business rules complesse Necessità di eseguire una SP per ogni riga Necessità di dividere le modifiche dei dati in parti gestibili Anche il più veloce dei cursori è lento in confronto alle operazioni relazionali 16
17 Sei passi nell attivazione di un cursore Per implementare un cursore si usa una serie di comandi: DECLARE OPEN FETCH UPDATE/DELETE (opzionale) CLOSE DEALLOCATE 17
18 DECLARE Usiamo lo stile SQL-92 (invece di quello T-SQL) Sintassi: DECLARE cursor_name [INSENSITIVE] [SCROLL] CURSOR FOR select_statement [FOR {READ ONLY UPDATE [OF column_name [,...n]]}] dove INSENSITIVE vuol dire che la presentazione non deve tenere conto di eventuali modifiche alle righe sottostanti mentre si scorrono i record (copia in tempdb) SCROLL permette avanzamenti ed arretramenti lungo la lista dei cursori READ ONLY e UPDATE rispettivamente impediscono o permettono la modifica dei dati che vengono letti La sintassi T-SQL è più ricca 18
19 OPEN e FETCH La prima operazione dopo DECLARE è OPEN, per aprire il cursore e cominciare a ricevere i dati (esegue la query) Sintassi: OPEN <nomecursore> Successivamente, per acquisire un record (riga) si usa FETCH FETCH [ [ NEXT PRIOR FIRST LAST ABSOLUTE RELATIVE ] FROM ] { { [GLOBAL] cursor_name } ] 19
20 Controllo del cursore La funzione riferisce sul successo o meno del più recente FETCH I valori possibili sono 0 (successo) 1 (errore) e 2 (riga mancante) L ultima evenienza ha luogo se la riga è stata cancellata mentre la si stava per elaborare La restituisce il numero di righe nell ultimo cursore aperto. I valori possibili sono -m per un cursore popolato in modo asincrono -1 cursore dinamico 0 nessun cursore aperto, nessuna riga disponibile n cursore pienamente popolato 20
21 CLOSE e DEALLOCATE Sono le operazioni conclusive CLOSE rilascia alcune risorse (result set, eventuali lock) ma non chiude la storia del cursore Dopo la CLOSE si può fare una OPEN e ripartire sullo stesso insieme di colonne Sintassi: CLOSE <nomecursore> La DEALLOCATE conclude definitivamente le operazioni, le risorse vengono completamente rilasciate, ed il nome del cursore può essere riutilizzato per un altro cursore Sintassi: DEALLOCATE <nomecursore> 21
22 DECLARE c CURSOR SCROLL FOR SELECT SUM(Quantity) FROM [Order Details] GROUP BY OrderID ORDER BY SUM(Quantity) OPEN c FETCH LAST FROM c % 2 = 1 -- numero dispari di righe PRINT 'Odd' = CAST (@@CURSOR_ROWS + 1 AS int) / 2 FETCH FROM c = CAST (@Quantity AS float) ELSE -- numero pari di righe PRINT 'Even' / 2 FETCH FROM c FETCH NEXT FROM c = (@Quantity / 2.0 CLOSE c DEALLOCATE c 22
23 Uso di cursori (T-SQL) DECLARE cursor_name CURSOR [LOCAL GLOBAL] [FORWARD_ONLY SCROLL] [STATIC KEYSET DYNAMIC FAST_FORWARD] [READ_ONLY SCROLL_LOCKS OPTIMISTIC] [TYPE_WARNING] FOR select_statement [FOR UPDATE [OF column_name [,...n]]] In T-SQL ci sono cursori con raggio di azione (scope) locale o globale; il default è GLOBAL, che vuol dire che un cursore dichiarato da una SP può essere usato (se ancora aperto) da un altra SP 23
24 Semplice dichiarazione Il set di risultati generato all'apertura del cursore include tutte le righe e le colonne della tabella authors del database pubs. Il cursore è aggiornabile e tutte le eliminazioni e gli aggiornamenti vengono riportati nelle operazioni di recupero eseguite nel cursore. FETCH NEXT è l'unica istruzione FETCH disponibile perché l'opzione SCROLL non è stata specificata. DECLARE authors_cursor CURSOR FOR SELECT * FROM authors OPEN authors_cursor FETCH NEXT FROM authors_cursor 24
25 Esempio cursori char(6) declare cursor_ordini CURSOR FOR select numero from ordine open cursor_ordini fetch next from cursor_ordini WHILE = 0 print 'New code in table: ' + fetch next from cursor_ordini close cursor_ordini deallocate cursor_ordini 25
26 Esempio 7: cursori e trigger Si utilizzo dei cursori per la scrittura di trigger. Il seguente esempio permette di comprendere come utilizzare i cursori e consente di comprendere cio' che succede durante il funzionamento di un trigger. L'esempio permette infatti di stampare le tabelle temporanee inserted e deleted, oltre a stampare la tabella dello stesso trigger. Provare a lanciare comandi SQL che aggiornano singoli o gruppi di record e a studiare l output. Per visualizzare l'output i comandi SQL devono essere lanciati all'interno del Query Analyzer di SQL Server. 26
27 Create Trigger "ORDINE_TR" On dbo.ordine For Update, Insert, Delete As char(6) declare cursor_ordini_inserted CURSOR FOR select numero from inserted open cursor_ordini_inserted fetch next from cursor_ordini_inserted WHILE = 0 print 'New code in inserted: ' + convert(char fetch next from cursor_ordini_inserted 27
28 close cursor_ordini_inserted deallocate cursor_ordini_inserted declare cursor_ordini_deleted CURSOR FOR select numero from deleted open cursor_ordini_deleted fetch next from cursor_ordini_deleted WHILE = 0 print 'New code in deleted: ' + fetch next from cursor_ordini_deleted close cursor_ordini_deleted deallocate cursor_ordini_deleted 28
29 Esempio 8 Create Trigger "ORDINE_ONUPDATECASCADE" On dbo.ordine For Update As char(6) char(6) declare cursor_ordini_inserted CURSOR FOR select numero from inserted declare cursor_ordini_deleted CURSOR FOR select numero from deleted open cursor_ordini_inserted open cursor_ordini_deleted fetch next from cursor_ordini_inserted fetch next from cursor_ordini_deleted = 0 print 'Old code: ' + + ' - New code: ' + update prodotto_ordine set numero_ordine where numero_ordine fetch next from cursor_ordini_inserted fetch next from cursor_ordini_deleted close cursor_ordini_inserted close cursor_ordini_deleted deallocate cursor_ordini_inserted deallocate cursor_ordini_deleted 29
30 Esempio 9 Esempio di trigger per la gestione delle regole del dominio del problema (idem per i dati calcolati). L'esempio verifica se nel momento in cui viene inserito un record in [prodotto_ordine] è presente abbastanza prodotto in magazzino. Se è presente decrementa la quantità in magazzino, altrimenti impedisce l'inserimento del record nella tabella [prodotto_ordine]. Funziona solo per transazioni con inserimenti di singoli record. Esercizio: utilizzare i cursori per fare in modo che lavori su più records. 30
31 Alter TRIGGER trinsert ON [PRODOTTO_ORDINE] FOR INSERT AS int char(6) int smallint int = = = = anno FROM inserted IF (@q > 0) --si legge la quantità attualmente presente in magazzino = quantita_magazzino FROM prodotto WHERE codice --si verifica se è presente quantità sufficiente per soddisfare l'ordine IF (@q_magazzino > 0) --è presente abbastanza prodotto UPDATE prodotto SET quantita_magazzino WHERE codice ELSE --non c'è prodotto sufficiente. Viene generato un messaggio d'errore. RAISERROR('Non è possibile inserire il prodotto nell''ordine perché non è presente sufficiente quantità in magazzino',16, -1) ROLLBACK TRANSACTION Andrea Bulgarelli 31
32 alter TRIGGER trinsertmultipli ON [PRODOTTO_ORDINE] FOR INSERT AS int char(6) int smallint int --dichiarazione di cursore DECLARE cursor_prod_ord CURSOR FOR select codice_prodotto, numero_ordine, anno, quantita from inserted OPEN cursor_prod_ord FETCH NEXT FROM WHILE = 0 --leggo la quantità attualmente in magazzino = quantita_magazzino from PRODOTTO where codice --verifico se ho abbastanza prodotto -- decrementa la quantità in magazzino update PRODOTTO set quantita_magazzino = quantita_magazzino where codice ELSE -- genera un errore RAISERROR('Quantità non sufficiente', 16, -1) FETCH NEXT FROM CLOSE cursor_prod_ord Andrea DEALLOCATE Bulgarelli cursor_prod_ord 32
33 Alter TRIGGER trupdate ON [PRODOTTO_ORDINE] FOR UPDATE AS int int --serve per conosce il valore della quantità prima dell'update char(6) int smallint int = = = = anno FROM inserted --non ci sono controlli sulla modifica degli altri dati del prodotto_ordine = quantita FROM deleted IF (@q IF (@q > 0) --si legge la quantità attualmente presente in magazzino = quantita_magazzino FROM prodotto WHERE codice --si verifica se è presente quantità sufficiente per soddisfare l'ordine IF (@q_magazzino - (@q > 0) --è presente abbastanza prodotto UPDATE prodotto SET quantita_magazzino - (@q WHERE codice ELSE --non c'è prodotto sufficiente. Viene generato un messaggio d'errore. RAISERROR('Non è possibile modificare la quantità del prodotto nell''ordine perché non è presente sufficiente quantità in magazzino',16, -1) ROLLBACK TRANSACTION Andrea Bulgarelli 33
SQL Server. SQL server e un RDBMS di tipo client/server che utilizza Transact-SQL per gestire la comunicazione fra un client e SQL Server
SQL Server 7.0 1 SQL Server SQL server e un RDBMS di tipo client/server che utilizza Transact-SQL per gestire la comunicazione fra un client e SQL Server 2 Strumenti per la gestione Enterprise Manager
DettagliBasi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL
Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,
DettagliEsercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:
Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare
DettagliBasi di dati (7) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: stored procedure (1.
Università di Modena e Reggio Emilia Basi di dati (7) Docente: andrea.bulgarelli@gmail.com Argomento: stored procedure (1.0) 1 Panoramica Stored procedure Creazione Chiamata Modifica Eliminazione Esempio
DettagliROUTINE E PROGRAMMAZIONE
LEZIONE-TSQL-02 TRIGGER E PROCEDURE (VER03 PAG. 1 / 6 LEZIONE-TSQL-02 TRIGGER E PROCEDURE (VER03 T-SQL PROGRAMMAZIONE PARTE SECONDA ROUTINE E PROGRAMMAZIONE In TSQL è possibile definire alcune routine
DettagliTriggers. Basi dati attive. Trigger. Indipendenza della conoscenza
Basi dati attive Triggers Antonella Poggi Domenico Lembo Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico 2009-2010 Una base di dati
DettagliProcedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM
Procedure memorizzate SQL-2003/PSM Procedure memorizzate nel database Programmazione general-purpose Leggere sezione 8.2 di Garcia-Molina et al. Lucidi derivati da quelli di Jeffrey D. Ullman 1 Una estensione
DettagliIl linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.
(Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System
DettagliSistemi Mobili e Wireless Android - Dati persistenti: SQLite
Sistemi Mobili e Wireless Android - Dati persistenti: SQLite Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Android offre
DettagliDDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione
SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni
DettagliIl linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf
Il linguaggio SQL: trigger Sistemi Informativi T Versione elettronica: 04.7.SQL.trigger.pdf DBMS attivi Un DBMS si dice attivoquando dispone di un sottosistema integrato per definire e gestire regole I
DettagliMySQL Database Management System
MySQL Database Management System http://www.mysql.com/ DATABASE RELAZIONALI Un database è una collezione strutturata di informazioni. I database sono delle strutture nelle quali è possibile memorizzare
DettagliData Base. Master "Bio Info" Reti e Basi di Dati Lezione 6
Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica
DettagliCorso Sistemi Informativi Avanzati. Programma 30 set 2015. Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.
Programma 30 set 205 Installazione Macchina Virtuale Introduzione alla BI nelle Aziende Introduzione SQL Macchina Virtuale È un emulazione di un computer su un altro computer Stesso punto di partenza per
DettagliDefinizione di domini
Definizione di domini Come nei linguaggi ad alto livello (es. C) è possibile definire nuovi domini (tipi di dati) a partire da quelli predefiniti, anche se il costruttore è più limitato. create domain
DettagliVolumi di riferimento
Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di
DettagliUser Tools: DataBase Manager
Spazio di lavoro Per usare T-SQL Assistant selezionare il link Simple Query e spostare a piacere la piccola finestra dove un menu a tendina mostra i diversi comandi SQL selezionabili, il pulsante Preview
DettagliLezione 8. Metadati, Viste e Trigger
Lezione 8 Metadati, Viste e Trigger Pag.1 Metadati e catalogo di sistema I metadati sono dati a proposito dei dati (quali tabelle esistono?, quali campi contengono?, quante tuple contengono?, ci sono vincoli
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 2 Raffaella Gentilini 1 / 45 Sommario 1 Il DDL di SQL: Cancellazione ed Aggiornamento di una BD Cancellazione di Schemi, Tabelle, e Domini Aggiornamento di Tabelle
DettagliBasi di dati (6) Docente: Andrea Bulgarelli. Università di Modena e Reggio Emilia. andrea.bulgarelli@gmail.com Argomento: T-SQL (1.
Università di Modena e Reggio Emilia Basi di dati (6) Docente: andrea.bulgarelli@gmail.com Argomento: T-SQL (1.0) 1 Panoramica T-SQL Variabili Controllo di flusso Trattamento errori Print Operatori e funzioni
DettagliRiccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino
Integration Services Project SQL Server 2005 Integration Services Permette di gestire tutti i processi di ETL Basato sui progetti di Business Intelligence di tipo Integration services Project SQL Server
DettagliDBMS (Data Base Management System)
Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire
DettagliNozione ed uso. Operazioni eseguite automaticamente ogni volta che avviene un certo evento Uso:
Nozione ed uso Operazioni eseguite automaticamente ogni volta che avviene un certo evento Uso: Gestione di vincoli di integrità: Per fallimento Per modifica Auditing: Sicurezza Statistiche Valori derivati
DettagliI comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER
Caratteristiche generali del linguaggio SQL Il linguaggio SQL è il linguaggio usato per la gestione dei database relazionali, cioè dei database creati con un DBMS di tipo relazionale. Esso nacque nella
DettagliAzioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati
Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)
DettagliPHP e Structured Query Language
Esercitazioni del corso di Tecnologie per la Comunicazione Aziendale PHP e Structured Query Language Marco Loregian loregian@disco.unimib.it www.siti.disco.unimib.it/didattica/tca2008 Interrogazioni (ripasso)
DettagliI file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
DettagliMySQL Database Management System
MySQL Database Management System II parte Progetto gestione booking prenotazioni on-line 1. Progettazione e creazione struttura database che chiameremo booking. 2. Progettazione e creazione di un form
DettagliDispensa di database Access
Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di
DettagliGERARCHIE RICORSIVE - SQL SERVER 2008
GERARCHIE RICORSIVE - SQL SERVER 2008 DISPENSE http://dbgroup.unimo.it/sia/gerarchiericorsive/ L obiettivo è quello di realizzare la tabella di navigazione tramite una query ricorsiva utilizzando SQL SERVER
DettagliCapitolo 7. Esercizio 7.1
Capitolo 7 Esercizio 7.1 Dato lo schema relazionale: IMPIEGATO (Nome, Salario, DipNum) DIPARTIMENTO (DipNum, NomeManager) Definire le seguenti regole attive in Oracle e DB2: 1. una regola, che quando il
DettagliOracle PL/SQL. Motivazioni
Oracle PLSQL Motivazioni Supponiamo che nella gestione del database Azienda ci venga chiesto di apportare le modifiche necessarie a far sì che ad ogni impiegato possa essere assegnato, alla fine di ogni
Dettagli2104 volume III Programmazione
2103 SQLite Capitolo 77 77.1 Utilizzo generale................................. 2104 77.1.1 Utilizzo di sqlite3».......................... 2104 77.1.2 Copie di sicurezza............................ 2106
DettagliVincoli di Integrità Approccio dichiarativo alla loro implementazione
Vincoli di Integrità Approccio dichiarativo alla loro implementazione Antonella Poggi Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico
DettagliPL/SQL PL/SQL. Ordine degli elementi dei triggers di Oracle. Differenze nei triggers. Versione dei trigger e PSM di Oracle
Versione dei trigger e PSM di Oracle Lucidi derivati da quelli di Jeffrey D Ullman Oracle usa una variante di SQL/PSM che si chiama non consente solo di creare e memorizzare procedure e funzioni, ma puo
DettagliSQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))
SQL PER LA DEFINIZIONE DI BASI DI DATI 1 SQL non è solo un linguaggio di interrogazione (Query Language), ma Un linguaggio per la definizione di basi di dati (Data-definition language (DDL)) CREATE SCHEMA
DettagliGestione delle tabelle
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 Creazione di una tabella (1/3) Si utilizza
DettagliRaggruppamenti Conti Movimenti
ESERCITAZIONE PIANO DEI CONTI Vogliamo creare un programma che ci permetta di gestire, in un DB, il Piano dei conti di un azienda. Nel corso della gestione d esercizio, si potranno registrare gli articoli
DettagliInsegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati
Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il
DettagliSQL. Alcune note sulla definizione dei dati
SQL Alcune note sulla definizione dei dati Domini Domini elementari (predefiniti) Domini definiti dall'utente (riutilizzabili, possono servire per specificare vincoli di dominio propri di una certa applicazione)
DettagliCorso sul linguaggio SQL
Corso sul linguaggio SQL Modulo L2B (SQL) 2.2 Comandi sulle tabelle 1 Prerequisiti Introduzione ai DB Tabelle, relazioni e attributi Chiave primaria Chiave esterna Vincoli di integrità 2 1 Introduzione
DettagliAbilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere
Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.
DettagliProcedura SMS. Manuale Utente
Procedura SMS Manuale Utente INDICE: 1 ACCESSO... 4 1.1 Messaggio di benvenuto... 4 2 UTENTI...4 2.1 Gestione utenti (utente di Livello 2)... 4 2.1.1 Creazione nuovo utente... 4 2.1.2 Modifica dati utente...
DettagliSQL Server 2005. Integration Services. SQL Server 2005: ETL - 1. Integration Services Project
atabase and ata Mi ni ng Group of P ol itecnico di Torino atabase and ata Mi ni ng Group of P ol itecnico di Torino atabase and data mining group, SQL Server 2005 Integration Services SQL Server 2005:
DettagliSQL PER LA DEFINIZIONE DI BASI DI DATI
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)) CREATE SCHEMA
DettagliInizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
DettagliEXCEL PER WINDOWS95. sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area di lavoro, detta foglio di lavoro,
EXCEL PER WINDOWS95 1.Introduzione ai fogli elettronici I fogli elettronici sono delle applicazioni che permettono di sfruttare le potenzialità di calcolo dei personal computer. Essi si basano su un area
DettagliSuggerimenti per lo Sviluppo delle Applicazioni con PL/SQL. Simona Rotolo
Suggerimenti per lo Sviluppo delle Applicazioni con PL/SQL Simona Rotolo 2 Questo documento, rivolto a chi sviluppa codice in PL/Sql, è stato redatto al fine di fornire degli standard di sviluppo che aiuteranno
DettagliAppunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.
Appunti di MySql Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov. Indice generale avviare la shell mysql...2 comandi SQL per la gestione del database (DDL)...2 visualizzare l'elenco
DettagliAPPENDICE. Procedure in SQL (1)
APPENDICE Procedure in SQL Transazioni in SQL Embedded SQL Remote Procedure Call Appendice 1 Procedure in SQL (1) Standard SQL2 permette di definire procedure, associate a singoli comandi SQL, memorizzate
DettagliDatabase Manager Guida utente DMAN-IT-01/09/10
Database Manager Guida utente DMAN-IT-01/09/10 Le informazioni contenute in questo manuale di documentazione non sono contrattuali e possono essere modificate senza preavviso. La fornitura del software
DettagliUna metodologia di progettazione di applicazioni web centrate sui dati
Una metodologia di progettazione di applicazioni web centrate sui dati A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 1 / 2 0 1 2 Progettazione logica di un sito web centrato sui dati Si
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliSistemi per la gestione di database: MySQL ( )
Sistemi per la gestione di database: MySQL ( ) Relational Database e Relational Database Management System Un database è una raccolta di dati organizzata in modo da consentire l accesso, il reperimento
DettagliIl linguaggio SQL: viste e tabelle derivate
Il linguaggio SQL: viste e tabelle derivate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLd-viste.pdf Sistemi Informativi L-A DB di riferimento
DettagliCONCETTO DI ANNIDAMENTO
LEZIONE14 SQL ANNIDAMENTI PAG. 1 / 5 PROF. ANDREA ZOCCHEDDU LEZIONE14 SQL ANNIDAMENTI CONCETTO DI ANNIDAMENTO LINGUAGGIO SQL QUERY ANNIDATE Per annidamento si intende la possibilità che, all interno di
DettagliINFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.
INFORMATICA Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE. APPLICAZIONI WEB L architettura di riferimento è quella ampiamente diffusa ed
DettagliInformatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati
Informatica Generale Andrea Corradini 19 - Sistemi di Gestione delle Basi di Dati Sommario Concetti base di Basi di Dati Il modello relazionale Relazioni e operazioni su relazioni Il linguaggio SQL Integrità
DettagliIl linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf
Il linguaggio SQL: viste e tabelle derivate Versione elettronica: SQLd-viste.pdf DB di riferimento per gli esempi Imp Sedi CodImp Nome Sede Ruolo Stipendio Sede Responsabile Citta E001 Rossi S01 Analista
DettagliCOLLI. Gestione dei Colli di Spedizione. Release 5.20 Manuale Operativo
Release 5.20 Manuale Operativo COLLI Gestione dei Colli di Spedizione La funzione Gestione Colli consente di generare i colli di spedizione in cui imballare gli articoli presenti negli Ordini Clienti;
DettagliFunzioni non documentate Openoffice.org. 3 Base mini-howto
Funzioni non documentate Openoffice.org. 3 Base mini-howto Augusto Scatolini (webmaster@comunecampagnano.it) Ver. 1.0 gennaio 2009 Come risolvere il problema del contatore che inizia da 0 (zero) Come importare
DettagliBackup e Restore di un database PostgreSQL Sandro Fioravanti INFN-LNF
SPARC-CS-12/001 20 Gennaio 2012 Backup e Restore di un database PostgreSQL Sandro Fioravanti INFN-LNF Abstract Vengono descritte le procedure di backup e restore dei dati memorizzati in un database di
DettagliOSSIF WEB. Manuale query builder
OSSIF WEB Manuale query builder - Maggio 2010 1) Sommario 1) SOMMARIO... 2 INTRODUZIONE... 3 Scopo del documento... 3 Struttura del documento... 3 Descrizione dell interfaccia grafica... 3 SELEZIONE DI
DettagliGiovanna Rosone 04/03/2010. 04/03/2010 SQL, Istruzioni per la modifica dello schema
Giovanna Rosone 04/03/2010 04/03/2010 SQL, Istruzioni per la modifica dello schema 1 Riepilogo Impiegato Pagamenti Nome colonna PAG_COD PAG_MATR Tipo dati CHAR(6) CHAR(6) Nome colonna Tipo dati PAG_STIPENDIO
DettagliUtilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi
Vogliamo creare una struttura per permettere di memorizzari i voti della classe in tutte le materie Per fare questo untilizziamo tre tabelle Alunni,materie,voti Alunni Materie Voti Creo un record per ogni
DettagliHub-PA Versione 1.0.6 Manuale utente
Hub-PA Versione 1.0.6 Manuale utente (Giugno 2014) Hub-PA è la porta d ingresso al servizio di fatturazione elettronica verso la Pubblica Amministrazione (PA) a disposizione di ogni fornitore. Questo manuale
DettagliSiti web centrati sui dati Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
DettagliGESTIONE INFORMATICA DEI DATI AZIENDALI
GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliProgetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore
ARPA Fonte Dati Regione Toscana 1 Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.1 Data emissione 09/10/13 Stato FINAL 2 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 1.1 09/10/2013
DettagliIntroduzione a MySQL
Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da
DettagliTest Excel conoscenze di Base
Test Excel conoscenze di Base 1)Che tipo di barra ha un foglio di calcolo, che un elaboratore testi non ha? a. La barra dei menu b. La barra della formula c. La barra del titolo d. La barra della formattazione
DettagliGestione Turni. Introduzione
Gestione Turni Introduzione La gestione dei turni di lavoro si rende necessaria quando, per garantire la continuità del servizio di una determinata struttura, è necessario che tutto il personale afferente
Dettagli5.3 TABELLE 5.3.1 RECORD 5.3.1.1 Inserire, eliminare record in una tabella Aggiungere record Eliminare record
5.3 TABELLE In un sistema di database relazionali le tabelle rappresentano la struttura di partenza, che resta poi fondamentale per tutte le fasi del lavoro di creazione e di gestione del database. 5.3.1
DettagliINDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:
Date le tabelle: Clienti := < id, nome, cognome, indirizzo,città > Ordini := < id, data_ora_ordine, id_prodotto, id_cliente, quantità> Prodotti := < id, nome, descrizione, costo,scorte > INDICI Prevediamo
DettagliVincoli e Triggers. Vincoli. Tipo di vincoli. Chiavi esterne
Vincoli Chiavi esterne Vincoli locali e globali Triggers Leggere capitolo 7 di Garcia- Molina et al. Vincoli e Triggers Un vincolo e una relazione tra dati che il DBMS deve assicurare. Esempio: vincoli
DettagliLezione V. Aula Multimediale - sabato 29/03/2008
Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)
DettagliVincoli di Integrità
Vincoli di Integrità Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2010-2011 Questi lucidi sono stati prodotti
DettagliBasi di Dati. S Q L Lezione 5
Basi di Dati S Q L Lezione 5 Antonio Virdis a.virdis@iet.unipi.it Sommario Gestione eventi Gestione dei privilegi Query Complesse 2 Esercizio 9 (lezione 4) Indicare nome e cognome, spesa e reddito annuali
DettagliUso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database
Uso delle basi di dati Uso delle Basi di Dati Il modulo richiede che il candidato comprenda il concetto di base dati (database) e dimostri di possedere competenza nel suo utilizzo. Cosa è un database,
DettagliMANUALE UTENTE Fiscali Free
MANUALE UTENTE Fiscali Free Le informazioni contenute in questa pubblicazione sono soggette a modifiche da parte della ComputerNetRimini. Il software descritto in questa pubblicazione viene rilasciato
DettagliESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7
ESEMPI DI QUERY SQL Dati di esempio... 2 Query su una sola tabella... 2 Esempio 1 (Ordinamento)... 2 Esempio 2 (Scelta di alcune colonne)... 3 Esempio 3 (Condizioni sui dati)... 3 Esempio 4 (Condizioni
DettagliSistemi Informativi I Caso di studio con applicazione di UML
9 CASO DI STUDIO CON APPLICAZIONE DI UML...2 9.1 IL CASO DI STUDIO...2 9.1.1 Il sistema attuale...2 9.2 IL PROBLEM STATEMENT...3 9.2.1 Formulazione del Problem statement per il caso proposto...3 9.3 USE
DettagliSQL Server 2005. Introduzione all uso di SQL Server e utilizzo delle opzioni Olap. Dutto Riccardo - SQL Server 2005.
SQL Server 2005 Introduzione all uso di SQL Server e utilizzo delle opzioni Olap SQL Server 2005 SQL Server Management Studio Gestione dei server OLAP e OLTP Gestione Utenti Creazione e gestione DB SQL
DettagliIL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI
IL LINGUAGGIO SQL Il linguaggio SQL ( Structured Query Languages) è un linguaggio non procedurale che è diventato uno standard tra i linguaggi per la gestione dei database relazionali. Il linguaggio procedurale
DettagliPer chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass
0_Iniziare con GRASS Avvio di Grass e creazione della cartella del Database di GRASS Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass
DettagliEsercizio data base "Biblioteca"
Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni
DettagliUnità 2.1 Comandi sui database
(A) CONOSCENZA TERMINOLOGICA Dare una breve descrizione dei termini introdotti: Linguaggi ospite Domini predefiniti Comando CREATE DATABASE Comando DROP DATABASE Comando SHOW DATABASES Comando SELECT DATABASE()
DettagliLe query. Lezione 6 a cura di Maria Novella Mosciatti
Lezione 6 a cura di Maria Novella Mosciatti Le query Le query sono oggetti del DB che consentono di visualizzare, modificare e analizzare i dati in modi diversi. Si possono utilizzare query come origine
DettagliExcel. A cura di Luigi Labonia. e-mail: luigi.lab@libero.it
Excel A cura di Luigi Labonia e-mail: luigi.lab@libero.it Introduzione Un foglio elettronico è un applicazione comunemente usata per bilanci, previsioni ed altri compiti tipici del campo amministrativo
DettagliLinguaggio SQL: fondamenti D B M G. Gestione delle tabelle
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 2007 Politecnico di Torino 1 Creazione
DettagliLA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE
LA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE Quattro parti: Gestione dati Client-Server Logica + interfaccia Logica + interfaccia Business rules Sistema di comunicazione Logica applicativa DBMS:
DettagliRegione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da
ARPA Fonte Dati Regione Toscana Redatto da L. Folchi (TAI) Rivisto da Approvato da Versione 1.0 Data emissione 06/08/13 Stato DRAFT 1 Versione Data Descrizione 1,0 06/08/13 Versione Iniziale 2 Sommario
DettagliDBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)
(DataBase Management System) Sistemi di ges3one di basi di da3 Un Database Management System è un sistema software progettato per consentire la creazione e manipolazione efficiente di database (collezioni
DettagliSQL Server BI Development Studio
Il Data warehouse SQL Server Business Intelligence Development Studio Analysis Service Sorgenti dati operazionali DB relazionali Fogli excel Data warehouse Staging Area e dati riconciliati Cubi Report
DettagliLA REALIZZAZIONE DI APPLICAZIONI. Quattro parti: Gestione dati. Business rules. Logica applicativa. Interfaccia utente. Molte possibili architetture
LA REALIZZAZIONE DI APPLICAZIONI Quattro parti: Gestione dati Business rules Logica applicativa Interfaccia utente Molte possibili architetture L approccio tradizionale: uso di un linguaggio PLSQL 1.1
DettagliTransazioni - Parte 1
Basi di dati II Lezione 3 09/10/2008 Caputo Domenico Cosimo, Francesco Pichierri Transazioni - Parte 1 Le transazioni hanno a che fare con la programmabilità delle basi di dati. Prima di trattarle è necessaria
DettagliLinguaggio SQL: costrutti avanzati
Linguaggio SQL: costrutti avanzati Gestione delle transazioni Introduzione Transazioni in SQL Proprietà delle transazioni 2 Pag. 1 1 Gestione delle transazioni Esempio applicativo Operazioni bancarie operazione
DettagliISTRUZIONI PER LA GESTIONE BUDGET
ISTRUZIONI PER LA GESTIONE BUDGET 1) OPERAZIONI PRELIMINARI PER LA GESTIONE BUDGET...1 2) INSERIMENTO E GESTIONE BUDGET PER LA PREVISIONE...4 3) STAMPA DIFFERENZE CAPITOLI/BUDGET.10 4) ANNULLAMENTO BUDGET
DettagliPag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo
Gestione delle transazioni Introduzione Transazioni in SQL Linguaggio SQL: costrutti avanzati 2 applicativo Operazioni bancarie operazione di prelievo dal proprio conto corrente mediante bancomat Gestione
Dettagli