Stored Procedure. Antonella Poggi. Dipartimento di informatica e Sistemistica Sapienza Università di Roma
|
|
- Roberto Donato
- 6 anni fa
- Visualizzazioni
Transcript
1 Stored Procedure Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico Questi lucidi sono stati prodotti sulla base del materiale preparato per il corso di Progetto di Basi di Dati da D. Lembo e M. Ruzzi.
2 Stored procedure e User Defined Function Le stored procedure e le user defined function sono di fatto l estensione procedurale di SQL (di natura dichiarativo) Indipendentemente da come sono definite, la principale peculiarità delle stored procedure/user defined function è quella di poter essere invocate tramite comandi SQL oppure direttamente dalle applicazioni che interagiscono con il database (ad es., tramite JDBC) A. Poggi 1
3 Il linguaggio SQL/PSM Inizialmente, le stored procedure erano semplici programmi contenenti un singolo statement SQL, che risiedevano sul DBMS e che erano invocabili dai client A partire da SLQ 99, si è definito un vero e proprio linguaggio standardizzato per la definizione di stored procedure Secondo lo standard, i moduli persistenti (funzioni o procedure) possono essere definiti completamente in SQL, con comandi nel linguaggio standard SQL/PSM(Persistent Stored Modules), o utilizzando un diverso linguaggio di programmazione (e.g. Java) La maggior parte dei DBMS offre estensioni proprietarie e specifiche che vanno oltre lo standard A. Poggi 2
4 Utilità delle stored procedure Semplificano la comunicazione client-server Migliorano lo sviluppo favorendo il riuso del codice diversi client del DBMS (eventualmente scritti in linguaggi diversi ed eseguiti su diverse piattaforme) possono invocare le stesse stored procedure Possono essere usate per la gestione ed il controllo dell integrità dei dati Agevolano la definizione di politiche di controllo dell accesso, aumentando così la sicurezza Forniscono un mezzo di astrazione chi invoca la procedura può ignorare i dettagli implementativi sia della procedura che dello schema della base di dati A. Poggi 3
5 Nota importante Non si deve però cedere alla tentazione di inglobare tutta la logica dell applicazione nel DBMS tramite stored procedure: per applicazioni complesse questa strada non è percorribile! IMPORTANTE: le stored procedure non devono mai implementare funzionalità che non hanno direttamente a che fare con i dati A. Poggi 4
6 Definire Stored Procedure Una stored procedure deve avere un nome Può avere parametri, dove ogni parametro è una tripla che composta da: la modalità; esistono tre modalità differenti: IN: sono argomenti di ingresso per la procedura; al parametro deve essere assegnato un valore al momento dell invocazione della procedura che successivamente non viene cambiato; OUT: rappresenta l uscita della procedura che assegna loro i valori che l utente può utilizzare IN OUT: combinano le caratteristiche precedenti A. Poggi 5
7 il nome del parametro; il tipo SQL del parametro. N.B. Le stored procedure richiedono una conformità rigida ai tipi definiti nella dichiarazione. A. Poggi 6
8 Esempi di stored procedure Consideriamo due semplici casi di stored procedure. Stored procedure scritta in SQL: CREATE PROCEDURE AggiungiInventario( IN isbn CHAR(9), IN aggiungiqta INTEGER) UPDATE Libri SET qta_in_stock = qta_in_stock + aggiungiqta WHERE libro_isbn=isbn Stored Procedure scritta in Java: CREATE PROCEDURE AggiungiInventarioJava( IN isbn CHAR(9), IN aggiungiqta INTEGER) LANGUAGE Java EXTERNAL NAME file:///c:/procedureinterne/aggiungiinv.jar A. Poggi 7
9 Definire Stored Procedure in PSM La sintassi per dichiarare stored procedure è la seguente: CREATE PROCEDURE nome(par1,..., parn) codice procedura; La sintassi standard prevede ulteriori opzioni Noi vedremo direttamente la sua implementazione in MySQL A. Poggi 8
10 Esempio di dichiarazione di stored procedure in PSM Si vuole definire una stored procedure che prende in ingresso il nome di un cliente, identificato dal suo codice cliente cid e restituisce un punteggio così assegnato: i clienti che hanno comprato più di 10 libri ottengono il punteggio 2; i clienti che hanno comprato tra 5 e 10 libri ottengono 1; gli altri ottengono 0. A. Poggi 9
11 CREATE PROCEDURE calcolapunteggio (IN cid INTEGER, OUT punteggio INTEGER) BEGIN DECLARE numordini INTEGER; SET numordini = (SELECT COUNT(*) FROM Ordini O WHERE O.cid=cid); IF (numordini>10) THEN punteggio=2; ELSEIF (numordini>5) THEN punteggio=1; ELSEIF punteggio=0; ENDIF; END; A. Poggi 10
12 Invocare stored procedure Le stored procedure possono essere invocate dall interprete dei comandi (ad es., MySQL per MySQL, MSQL per Oracle) Attraverso l uso del comando CALL CALL nomestoredprocedure(arg1, arg2,..., arg3) da applicazione (ad es., tramite ODBC, JDBC, PHP) Lo vedremo più avanti A. Poggi 11
13 Esempio di invocazione di stored procedure Da un interprete dei comandi SQL, la stored procedure definita in precedenza può essere invocata, ad esempio, all interno di un altra stored procedure:... DECLARE punt INTEGER; CALL calcolapunteggio(21,punt);... A. Poggi 12
14 Definire user defined function in PSM Le funzioni sono un tipo particolare di stored procedure che: restituisce un singolo valore o una singola tabella non modifica lo stato del db è invocata come parte di un comando SQL (espressione) Sono definite tramite la seguente sintassi: CREATE FUNCTION nome(par1, par2,...,parn) RETURNS tiposql codice funzione; Secondo lo standard, non possono ricevere parametri di tipo OUT e IN OUT A. Poggi 13
15 Esempio di dichiarazione di user defined function in PSM Una funzione con semantica analoga alla procedura definita in precedenza è la seguente: CREATE FUNCTION calcolapunteggio (IN cid INTEGER) RETURNS INTEGER BEGIN DECLARE numordini INTEGER; DECLARE punteggio INTEGER; SET numordini = (SELECT COUNT(*) FROM Ordini O WHERE O.cid=cid); IF (numordini>10) THEN punteggio=2; ELSEIF (numordini>5) THEN punteggio=1; ELSEIF punteggio=0; ENDIF; RETURN punteggio; END; A. Poggi 14
16 Esempio di invocazione di user defined function La user defined function definita in precedenza può essere invocata, in un espressione SQL: DECLARE c INTEGER;... IF calcolapunteggio(c)=2 THEN INSERT INTO premi VALUE (c);... A. Poggi 15
17 Stored Procedures in MySQL RIFERIMENTO: MySQL 5.0 manual (capitolo 17) MySQL consente esclusivamente la definizione di stored procedure scritte in SQL Sotto altri punti di vista, Mysql prevede un estensione dello standard A. Poggi 16
18 Definire stored procedure e user defined function in MySQL Sintassi per definire stored procedure in MySQL: CREATE [DEFINER = { user CURRENT_USER }] PROCEDURE nome_proc ([par1,...,parn]) [<opzioni>] corpo per definire user defined function: CREATE [DEFINER = { user CURRENT_USER }] FUNCTION nome_func ([par1,...,parn]) RETURNS tipo [<opzioni>] corpo A. Poggi 17
19 l opzione DEFINER (non obbligatoria) è un estensione di Mysql che permette di specificare l utente creatore e perciò proprietario della stored procedure. La scelta di default è l utente corrente come nello standard, una procedura/funzione può essere caratterizzata da una lista di parametri costituiti da triple (<modalità> nome parametro <tipo sql>) A. Poggi 18
20 sempre in accordo con lo standard, una procedura o una funzione possono essere caratterizzate da diverse opzioni che sono: <opzioni>: COMMENT string LANGUAGE SQL [NOT] DETERMINISTIC SQL SECURITY { DEFINER INVOKER } {CONTAINS SQL NO SQL READS SQL DATA MODIFIES SQL DATA} dove: COMMENT è un estensione di MySQL che può essere usata per descrivere la stored procedure; LANGUAGE SQL indica che la procedura è scritta nel linguaggio SQL; ad oggi MySQL non permette di usare altri linguaggi (quindi SQL è il default). A. Poggi 19
21 DETERMINISTIC NOT DETERMINISTIC indica se, dato un certo input, una procedura restituisce sempre lo stesso risultato; MySQL non fa alcuna verifica sull effettivo determinismo di una stored procedure, ma, in alcune versioni, tiene conto di come è definita per applicare eventuali ottimizzazioni; di default, una procedura è definita come NOT DETERMINISTIC. SQL SECURITY indica se la procedura deve essere eseguita usando i privilegi dell utente che definisce o invoca la procedura. A. Poggi 20
22 l opzione CONTAINS SQL NO SQL READS SQL DATA MODIFIES SQL DATA fornisce un indicazione sul tipo di accesso ai dati SQL che fa la procedura CONTAINS SQL indica che la procedura contiene comandi SQL (e.g. SET, RELEASE-LOCK), ma non contiene istruzioni che scrivono o leggono dati sul/dal db questo è il default NO SQL indica che la procedura non contiene comandi SQL READS SQL DATA indica che la procedura contiene comandi SQL che leggono dati (e.g. SELECT) MODIFIES SQL DATA indica che la procedura contiene comandi SQL che scrivono dati (e.g. INSERT) N.B. Anche in questo caso MySQL non fa nessuna verifica sull effettivo contenuto della procedura. A. Poggi 21
23 il corpo consiste di un valido statement di procedura, ovvero un semplice statement SQL, come SELECT o INSERT un compound statement: [begin_label:] BEGIN [statement_list] END [end_label] Un compound statement può contenere dichiarazioni di variabili locali, loop e altri tipi di statement per strutture di controllo. Più avanti li vedremo uno per uno. A. Poggi 22
24 Stored procedure e ricorsione PSM vs. MySQL Al fine di permettere la definizione di routine ricorsive PSM prevede, attraverso l uso del comando ALTER ROUTINE, la possibilità di modificare stored procedure/user defined function. Al contrario, MySQL non permette la definizione di routine ricorsive Attraverso l uso del comando ALTER PROCEDURE (ALTER FUNCTION) è possibile modificare solamente le opzioni di una stored procedure (user defined function). Per modificare i parametri o il corpo di una routine, si deve prima cancellare la routine con il comando DROP PROCEDURE (DROP FUNCTION) e poi ridefinirla. A. Poggi 23
25 Stored Procedure in MySQL (esempio) CREATE PROCEDURE ex_proc (OUT numero_utenti INTEGER, INOUT incr_param INTEGER) BEGIN # Imposto il valore del parametro OUT SELECT count(*) INTO numero_utenti from mysql.user; # incremento il valore del parametro INOUT SET incr_param = incr_param + 1; END; Cosa fa questa procedura? A. Poggi 24
26 Invocare stored procedure in MySQL (esempio) mysql> = 10; mysql> CALL @increment #utenti A. Poggi 25
27 Statement SQL nel corpo di procedure PSM Gli statement che possono apparire nel corpo di una procedura possono essere di vario tipo: 1. normali statement SQL 2. DECLARE statement (a) per variabili (b) per handler (c) per cursori 3. statement di apertura/chiusura/fetch di un cursore 4. flow control statement IF, CASE, REPEAT, WHILE, LOOP, LEAVE, ITERATE A. Poggi 26
28 Dichiarazione di variabili nelle stored procedure E possibile dichiarare delle variabili all interno delle stored procedure DECLARE nome_var[,...] tipo_sql [DEFAULT valore] Le variabili cosi dichiarate sono locali alla procedura. A. Poggi 27
29 Impostazione di variabili nelle stored procedure Per impostare il valore di una variabile si utilizza il comando SET all interno della procedura SET nome_var = espr [, nome_var = espr]... Per prelevare il risultato di una query ed inserirlo in una variabile si usa il comando SELECT INTO SELECT nome_col[,...] INTO nome_var[,...] FROM claus_from [WHERE claus_where] A. Poggi 28
30 Uso delle variabili in MySQL (esempio) CREATE PROCEDURE sp1 (xname VARCHAR(5)) BEGIN DECLARE newname VARCHAR(5) DEFAULT bob ; DECLARE xid INTEGER; SELECT xname,id INTO newname,xid FROM table1 WHERE name = xname; SELECT newname; END; A. Poggi 29
31 Uso dei cursori Un cursore e un particolare tipo di variabile che permette di gestire le tuple restituite da una query. Dichiarazione di un cursore: DECLARE nome_cursore CURSOR FOR statement_select Apertura del cursore: OPEN nome_cursore Prelievo delle tuple successive: FETCH nome_cursore INTO nome_var [, nome_var]... Chiusura del cursore: CLOSE nome_cursore A. Poggi 30
32 Handlers Gli handlers permettono di definire il trattamento da eseguire a fronte del realizzarsi di una (o più condizioni). DECLARE tipo_handler HANDLER FOR val_condizione[,...] statement tipo_handler: CONTINUE EXIT UNDO val_condizione: SQLSTATE [VALUE] valore_sqlstate SQLWARNING NOT FOUND SQLEXCEPTION A. Poggi 31
33 Uso dei cursori: esempio CREATE PROCEDURE curdemo() BEGIN DECLARE done INT DEFAULT 0; DECLARE a CHAR(16); DECLARE b,c INT; DECLARE cur1 CURSOR FOR SELECT id,data FROM test.t1; DECLARE cur2 CURSOR FOR SELECT i FROM test.t2; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN cur1; OPEN cur2; REPEAT A. Poggi 32
34 FETCH cur1 INTO a, b; FETCH cur2 INTO c; IF NOT done THEN IF b < c THEN INSERT INTO test.t3 VALUES (a,b); ELSE INSERT INTO test.t3 VALUES (a,c); END IF; END IF; UNTIL done END REPEAT; END CLOSE cur1; CLOSE cur2; A. Poggi 33
35 Controllo del flusso: IF-THEN-ELSE IF condizion_ricerca THEN lista_statement [ELSEIF condizione_ricerca THEN lista_statement]... [ELSE lista_statement] END IF A. Poggi 34
36 Controllo del flusso: CASE Ci sono due modi di utilizzare il costrutto CASE. 1. Nel modo classico, mediante il controllo sul valore di un operando: CASE operando_case WHEN valore THEN lista_statement [WHEN valore THEN lista_statement]... [ELSE lista_statement] END CASE A. Poggi 35
37 2. Oppure mediante una serie di condizioni: CASE WHEN condizione_ricerca THEN lista_statement [WHEN condizione_ricerca THEN lista_statement]... [ELSE lista_statement] END CASE questo secondo metodo è più generale in quanto permette di fare riferimento al valore di più operandi utile per rimpiazzare lunghe sequenze di IF-THEN-ELSE A. Poggi 36
38 Controllo del flusso: LOOP, LEAVE, ITERATE Sintassi del comando LOOP: [begin_label:] LOOP lista_statement END LOOP [end_label] E possibile dichiarare delle etichette (label) per identificare una certa istruzione di LOOP Per eseguire nuovamente il blocco di istruzioni del ciclo LOOP si utilizza il comando ITERATE ITERATE label Per uscire del ciclo, si usa il comando LEAVE LEAVE label A. Poggi 37
39 Esempio del controllo di flusso con LOOP in MySQL Esempio di utilizzo del comando LOOP: CREATE PROCEDURE iterazione(inout p1 INT) BEGIN label1: LOOP SET p1 = p1 + 1; IF p1 > 10 THEN LEAVE label1; END IF; END LOOP label1; = p1; END A. Poggi 38
40 Controllo del flusso: REPEAT e WHILE Sintassi del comando REPEAT [begin_label:] REPEAT lista_statement UNTIL condizione_ricerca END REPEAT [end_label] Sintassi del comando WHILE [begin_label:] WHILE condizione_ricerca DO lista_statement END WHILE [end_label] A. Poggi 39
41 Esempio del controllo di flusso con REPEAT CREATE PROCEDURE dorepeat(p1 INT) BEGIN = 0; REPEAT + 1; > p1 END REPEAT; END A. Poggi 40
42 Esempio del controllo di flusso con WHILE CREATE PROCEDURE ciclo-while() BEGIN DECLARE v1 INT DEFAULT 5; WHILE v1 > 0 DO... SET v1 = v1-1; END WHILE; END A. Poggi 41
Stored Procedures. Antonella Poggi, Claudio Corona. Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma
Stored Procedures Antonella Poggi, Claudio Corona Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi sono stati
DettagliStored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma
Stored Procedures Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma Progetto di Applicazioni Software Stored Procedure e User Defined
DettagliBasi di Dati: Corso di laboratorio
Basi di Dati: Corso di laboratorio Lezione 9 Raffaella Gentilini 1 / 41 Sommario 1 DBMS Attivi e Triggers 2 2 / 41 DBMS Attivi DBMS Attivi I DBMS tradizionale sono passivi: Eseguono delle operazioni solo
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
DettagliCorso di Basi di Dati
Corso di Basi di Dati Il Linguaggio SQL Home page del corso: http://www.cs.unibo.it/~difelice/dbsi/ SQL (Structured Query Language) e il linguaggio di riferimento per le basi di dati relazionali. Diverse
DettagliMySQL Procedure, funzioni, trigger e scheduling
Corso di Laurea in Informatica Base Dati a.a. 2012-2013 MySQL Procedure, funzioni, trigger e scheduling Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio Definizione di stored procedure Una stored
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
DettagliDBMS ed Applicazioni Motivazioni
DBMS ed Applicazioni Motivazioni Sin ora abbiamo visto SQL come linguaggio per interrogare DBMS da interfaccia interattiva Nella pratica, un efficace sfruttamento delle potenzialità dei DBMS deriva dalla
DettagliDBMS. Affidabilità. Privatezza dei dati. Efficienza. Efficacia. Un DBMS deve garantire:
DBMS Un DBMS deve garantire: Affidabilità Privatezza dei dati Efficienza Efficacia DBMS Affidabilità Un DBMS deve garantire di poter mantenere intatto il suo contenuto, anche in caso di malfunzionamento.
DettagliDBMS ED APPLICAZIONI (CAPITOLO 6) SQL incluso in codice applicativo Embedded SQL Cursori Dynamic SQL JDBC Stored procedures
1 DBMS ED APPLICAZIONI (CAPITOLO 6) SQL incluso in codice applicativo Embedded SQL Cursori Dynamic SQL JDBC Stored procedures Progettazione 2 Dominio Applicativo PROGETTAZIONE CONCETTUALE PROGETTAZIONE
DettagliCapitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke
Capitoli 8 e 9 Applicazioni tradizionali Applicazioni Internet SQL embedded SQL nel codice applicativo I comandi SQL possono essere chiamati dall interno di un programma in un linguaggio ospite (ad esempio
DettagliJDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico
JDBC Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 JDBC JDBC (Java Database Connectivity) è una API Java per accedere ed elaborare dati in una sorgente dati (di solito un db
DettagliLaboratorio di Basi di Dati SQL avanzato
Laboratorio di Basi di Dati SQL avanzato Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Interrogazioni nidificate Syntax: SELECT {* [, ]} FROM [,
DettagliDominio applicativo. Progettazione. v SQL incluso in codice applicativo v Embedded SQL v Cursori v Dynamic SQL v JDBC v Stored procedures
Dominio applicativo (Capitolo 6) v SQL incluso in codice applicativo v Embedded SQL v Cursori v Dynamic SQL v JDBC v Stored procedures Basi di dati 1 Docente Claudia Amari 1 Progettazione PROGETTAZIONE
Dettagli7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari
7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa
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
DettagliDATABASE PER IL WEB. Programmazione Web 1
DATABASE PER IL WEB Programmazione Web 1 Archite3ura web con database Client Tier Web/App Tier DB Tier Client Web / App Server Database Il server web comunica con un altro server che con8ene il la banca
DettagliAPPLICAZIONI DELLE BASI DI DATI
APPLICAZIONI DELLE BASI DI DATI APPLICAZIONI TRADIZIONALI APPLICAZIONI INTERNET SQL EMBEDDED SQL nel codice applicativo! I comandi SQL possono essere chiamati dall interno di un programma in un linguaggio
DettagliIntroduzione. i trigger rendono reattivo il comportamento del sistema alle sollecitazioni esterne.
Trigger Introduzione L introduzione di trigger all interno di una Base di Dati permette la gestione automatica di particolari procedure in risposta a determinati eventi esterni; Basi di Dati di questo
DettagliProgrammazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo
Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy
DettagliRappresentazione con i diagrammi di flusso (Flow - chart)
Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo
DettagliLinguaggio C: le funzioni. Introduzione e sintassi
ISIS "Guido Tassinari" di Pozzuoli Indirizzo Informatico - Articolazione Informatica Informatica Prof. A.S. 2012/2013 Linguaggio C: le funzioni. Introduzione e sintassi 21/10/2012 Introduzione Spesso alcuni
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
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
DettagliVincoli di Integrità
Vincoli di Integrità Approccio procedurale Antonella Poggi Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi
DettagliArray in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica
Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo
Dettagli2011 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
DettagliSQL. 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. 2014/2015 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2014-15.htm Dott.ssa Francesca A. Lisi dott.ssa Francesca A.
DettagliLABORATORIO di INFORMATICA
Università degli Studi di Cagliari Corso di Laurea Magistrale in Ingegneria per l Ambiente ed il Territorio LABORATORIO di INFORMATICA A.A. 2010/2011 Prof. Giorgio Giacinto IL MODELLO RELAZIONALE http://www.diee.unica.it/giacinto/lab
DettagliSQL nei linguaggi di programmazione
SQL nei linguaggi di programmazione Atzeni, Ceri, Paraboschi, Torlone Basi Di Dati Modelli e Linguaggi di Interrogazione, McGraw-Hill Italia, Capitolo 6 SQL in Linguaggi di Programmazione L uso diretto
DettagliCaratteristiche dei linguaggi per Database
IL LINGUAGGIO Caratteristiche dei linguaggi per Database I linguaggi per basi di dati relazionali possiedono i comandi per: definizione del data base; manipolazione dei dati; associazione tra tabelle diverse;
DettagliArgomenti Corso SAP Online ABAP Completo
Argomenti Corso SAP Online ABAP Completo Lezione 1 Navigazione e visualizzazione tabelle o Database SAP in ambienti Oracle e SQL Server: Navigazione e visualizzazione delle tabelle SE16; Utilizzo del match-code;
DettagliPer poter interagire con un database in rete mediante uno script php bisogna. innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione
MYSQL E PHP Per poter interagire con un database in rete mediante uno script php bisogna innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione MySQL_connect(nome del host, nome utente,
DettagliCome trattare il risultato di un comando SQL (relazioni) che
USO DI SQL DA PROGRAMMI: PROBLEMI 1 Come collegarsi alla BD Come trattare gli operatori SQL Come trattare il risultato di un comando SQL (relazioni) che Come scambiare informazioni sull esito delle operazioni.
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
DettagliDefinizione di metodi in Java
Definizione di metodi in Java Un metodo in Java definisce un operazione ad alto livello (sottoprogramma) che consente di manipolare dati e oggetti. Durante la computazione effettuata da un programma, un
DettagliSISTEMI OPERATIVI, RETI, INTERNET
Competenze e Unità didattica formativa capitalizzabile 4.1 SISTEMI OPERATIVI, RETI, INTERNET Comprendere il significato dell'evoluzione dei sistemi operativi. Comprendere che cosa fa un sistema operativo
DettagliDomande utili alla preparazione dell orale di Informatica all Esame di Stato
Domande utili alla preparazione dell orale di Informatica all Esame di Stato 1.Al livello fisico un database si appoggia ai files per contenere i suoi dati? 2.Esistono altri modelli di organizzazione oltre
DettagliIntroduzione. 8- Programmazione di una base di dati attraverso JDBC ESEMPIO
8- Programmazione di una base di dati attraverso JDBC Introduzione ai differenti approcci - JDBC: Architettura e Programmazione Introduzione Nella pratica gli utenti finali accedono al contenuto di una
DettagliInterrogazioni nidificate
Interrogazioni nidificate Nella clausola where si possono utilizzare valori prodotti da altre istruzioni select utilizzando any (qualsiasi) o all (tutti) insieme agli operatori di confronto Trovare nome,
DettagliVISUAL BASIC FOR APPLICATION
VISUAL BASIC FOR APPLICATION LA PIATTAFORMA DI SVILUPPO GLI ELEMENTI DI VBA Finestra di progetto: mostra l elenco gerarchico dei progetti aperti e di tutti i moduli di codice e finestre di interfaccia
DettagliProgrammazione C Massimo Callisto De Donato
Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE
DettagliFunzioni scalari in SQL. Capitolo 5. coalesce. nullif. Altre funzioni scalari. case
Funzioni scalari in SQL Capitolo 5 Costrutti definiti in SQL-2 che estendono la sintassi delle espressioni nella target list coalesce nullif case Prof. Stefano Paraboschi Vengono valutate per ogni riga
DettagliOBIETTIVI DELL'ESERCITAZIONE
Laurea in Ingegneria Informatica - Università di Roma "La Sapienza" Corso di Basi di Dati - A.A. 2005/2006 Esercitazione su SQL Giuseppe De Giacomo Domenico Lembo OBIETTIVI DELL'ESERCITAZIONE Creare schema
DettagliCostrutti condizionali e iterativi
Costrutti condizionali e iterativi Introduction to Fortran 90 Paolo Ramieri, CINECA Aprile 2014 Strutture di controllo Le strutture di controllo permettono di alterare la sequenza di esecuzione delle istruzioni
DettagliLaboratorio di Basi di Dati
Laboratorio di Basi di Dati Docente: Alberto Belussi Lezione 10 Architettura Model-View-Controller (MVC) L'architettura MVC può essere applicata anche alla tecnologia PHP secondo diversi approcci. In questa
DettagliCenni sul preprocessore e il suo utilizzo
Alessio Bechini - Corso di - Cenni sul preprocessore e il suo utilizzo Il preprocessore: cenni Il preprocessore Storicamente, i compilatori C operavano con passaggi multipli. Il primo passaggio eseguiva
DettagliDBMS. Alice Pavarani
DBMS Alice Pavarani DBMS Insieme di programmi che offrono gli strumenti per gestire una base di dati Permette di: definire la struttura delle tabelle recuperare le informazioni manipolare i dati memorizzati
Dettagliprint((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript
Funzioni Funzioni predefinite della libreria matematica Funzioni disponibili: Math.sqrt(x) radice quadrata Math.log(x) logaritmo naturale in base e di x Math.abs(x) valore assoluto di x Math.ceil(x) arrotonda
DettagliIl 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,
DettagliIstruzioni iterative (o cicliche)
Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Istruzioni iterative (o cicliche) Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria
DettagliIl DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari
Gubiani & Montanari Il DBMS Oracle 1 Il DBMS Oracle Express Edition Donatella Gubiani e Angelo Montanari Il DBMS Oracle Il DBMS Oracle Oracle 10g Express Edition Il DBMS Oracle (nelle sue versioni più
DettagliUn esempio di if annidati
Programmazione A.A. 2002-03 I Costrutti di base ( Lezione XIV, parte I ) Costrutto di selezione switch Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica Università di
DettagliSQL - Sottointerrogazioni
una delle ragioni che rendono SQL un linguaggio potente è la possibilità di esprimere interrogazioni più complesse in termini di interrogazioni più semplici, tramite il meccanismo delle subqueries (sottointerrogazioni)
DettagliExcel & VBA. Excel e Visual Basic for Application
Excel & VBA Excel e Visual Basic for Application Automazione Excel con VBA incorpora la tecnologia dell automazione (OLE automation) Excel dialoga con VBA attraverso un insieme di comandi detto libreria
DettagliJDBC versione base. Le classi/interfacce principali di JDBC
JDBC versione base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte uno dei pregi è la completa indipendenza del codice
DettagliVariabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER
Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER Domenico Daniele Bloisi Docenti Metodi Numerici prof. Vittoria Bruni vittoria.bruni@sbai.uniroma1.it Programmazione prof. Domenico
DettagliParte I - Concetti Base ESEMPIO
Informatica Nome e Cognome: Esempio Esame Programma Completo, I Turno 17/12/2015 C. I. Durate: 45 Minuti N. Matricola Questa prova contiene 32 domande. Il punteggio totale è 32. Ogni risposta corretta
DettagliIl linguaggio PHP. Elementi base
Il linguaggio PHP Elementi base Il Linguaggio PHP PHP è un acronimo ricorsivo che sta per PHP Hypertext Preprocessor Sintassi di base: un blocco di scripting PHP può stare ovunque in un documento, inizia
DettagliBASI DATI: algebra relazionale
BASI DATI: algebra relazionale BIOINGEGNERIA ED INFORMATICA MEDICA 1 Algebra relazionale Definizione L'algebra relazionale è un insieme di operazioni (query) che servono per manipolare relazioni (tabelle).
DettagliProgramma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore
Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza
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
DettagliJDBC di base. Le classi/interfacce principali di JDBC
JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di
DettagliProgrammazione in Java (I modulo)
Programmazione in Java (I modulo) Lezione 4 Variabili di tipo primitivo. Dichiarazione di costanti Conversioni di tipo: operatore cast Altri operatori di assegnamento Operazioni aritmetiche e di confronto
DettagliIl linguaggio SQL: trigger
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
DettagliErrata Corrige di Manuale di Java 8
Errata Corrige di Manuale di Java 8 pag. 43 - par. 2.5.1 - primo riquadro che riporta linee di codice public class Punto { public Punto() //metodo costruttore { deve essere corretto come di seguito: public
DettagliSQL. 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. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it
DettagliProblema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.
Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la
DettagliJDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC
JDBC: Introduzione Java Database Connectivity (JDBC): parte 1 Gianluca Moro DEIS - Università di Bologna gmoro@deis.unibo.it Java Database Connectivity è il package Java per l accesso a database relazionali
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
DettagliSQL Injection The dark side of webapplication *** Siamo davvero certi che chi gestisce i nostri dati sensibili lo faccia in modo sicuro?
SQL Injection The dark side of webapplication *** Siamo davvero certi che chi gestisce i nostri dati sensibili lo faccia in modo sicuro? Che cos'e' SQL? Acronimo di 'Structured Query Language E' un linguaggio
DettagliInterrogazioni nidificate
Interrogazioni nidificate Trovare nome, cognome e matricola degli studenti che non hanno fatto esami select Matricola,Nome,Cognome from studenti where matricola all (select studente group by studente)
DettagliChe cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati
Che cos è un DBMS? Capitolo 1 Introduzione ai sistemi di basi di dati Una collezione integrata molto grande di dati Modella organizzazioni del mondo reale Entità (ad esempio studenti, corsi) Relazioni
DettagliPL/SQL Uso di un linguaggio procedurale per un database
PL/SQL Uso di un linguaggio procedurale per un database Roberto Basili Corso di Basi Di Dati 1 a.a. 2000-2001 Abstract Questa breve dispensa descrive piu etesamente i contenuti della esercitazione del
DettagliVerificare se una grammatica e LL(1) e costruirne la tabella di parsing. Verificare se una grammatica e LR(0) e costruirne la tabele ACTION e GOTO
ANALISI SINTATTICA TIPO 1: Data un linguaggio scrivere una grammatica che lo generi TIPO 2: Verificare se una grammatica non contestuale è ambigua TiPO 3: Verificare se una grammatica e LL(1) e costruirne
DettagliAlgoritmi e basi del C Struttura di un programma
Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21
DettagliApplicazioni tradizionali
1 BASI DI DATI Paolo Zirilli Applicazioni tradizionali Concetti di questa lezione SQL nel codice applicativo SQL incluso in codice applicativo Embedded SQL Cursori Dynamic SQL JDBC Stored procedures I
DettagliISTITUTO DI ISTRUZIONE SUPERIORE Cigna Baruffi Garelli
Attività svolta 1. UNITÀ DI APPRENDIMENTO 1: RIPASSO E APPROFONDIMENTO DEGLI ARGOMENTI PRECEDENTI 1.1. Concetti elementari di informatica Algoritmo, Dato, Informazione Campi di applicazione e classificazione
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
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
DettagliEsercitazione: Interrogazioni SQL
Laurea in Ingegneria Informatica SAPIENZA Università di Roma Insegnamento di Basi di Dati Esercitazione: Interrogazioni SQL Domenico Fabio Savo 1 Sommario 1. Creazione del database utilizzato per l esercitazione
DettagliMatlab 5. Funzioni. Slide basate sul corso di C. Blundo. A.A. 2010/ GPersiano. Laboratorio di Informatica per Fisici 1
Matlab 5 Funzioni Slide basate sul corso di C. Blundo A.A. 2010/2011 -- GPersiano Laboratorio di Informatica per Fisici 1 Funzioni Le funzioni sono utili quando occorre ripetere una serie di comandi più
DettagliEsame Informatica Generale 13/04/2016 Tema A
Esame Informatica Generale 13/04/2016 Tema A! 1/! Quesito 1 (punteggio 2) Si considerino le seguenti istruzioni del linguaggio c/c++. int x[100]; void fz(int[], double[], double*); // puntatori void fz(int[],
DettagliUniversità di Roma Tor Vergata L12-1
Università di Roma Tor Vergata L12-1 soluzione di un problema fl 1) definizione di una rappresentazione 2) specificazione di un algoritmo (dipendente dalla rappresentazione) 3) traduzione in un linguaggio
DettagliInformatica! Appunti dal laboratorio 1!
Informatica! Appunti dal laboratorio 1! Sistema Operativo! Windows 7, Windows 8, Mac OS X, Linux, Debian, Red Hat, etc etc! Il sistema operativo è un programma che serve a gestire TUTTE le risorse presenti
DettagliTriggers Esercitazione 1
Triggers Esercitazione 1 Nel seguente documento vengono mostrati alcuni esempi di trigger e di funzioni pgplsql. Si ricorda che i trigger vengono eseguiti al verificarsi di certe condizioni definite dal
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
DettagliCorso 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
DettagliLaboratorio di programmazione
Laboratorio di programmazione Lezione VIII Tatiana Zolo tatiana.zolo@libero.it 1 PROGRAMMAZIONE A OGGETTI Quando si programma a oggetti si scompone il problema in sottogruppi di parti collegate che tengono
DettagliL intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero.
ANALISI SINTATTICA Data un linguaggio scrivere una grammatica che lo generi ESERCIZIO 1 Definire una grammatica per il linguaggio L = {ww w appartiene a (a, b)*} ESERCIZIO 2 Dato l alfabeto T=[0,1,2,3,4,5,6,7,8,9,/}
DettagliLinguaggi di alto livello, compilatori e interpreti
Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI
DettagliCorso di Fondamenti di Informatica I
Corso di Fondamenti di Informatica I Generics in Java Fabio Patrizi, Silvia Bonomi Dipartimento di Ingegneria Informatica, Automatica e Gestionale Facoltà di Ingegneria dell Informazione, Informatica e
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:
DettagliScopo del laboratorio
p. 1/1 Scopo del laboratorio Imparare ad usare programmi che implementino metodi di ottimizzazione: simplesso, branch and bound ecc. utilizzarli per risolvere un problema proposto Modellatori Solver p.
DettagliAlgebra Booleana ed Espressioni Booleane
Algebra Booleana ed Espressioni Booleane Che cosa è un Algebra? Dato un insieme E di elementi (qualsiasi, non necessariamente numerico) ed una o più operazioni definite sugli elementi appartenenti a tale
DettagliPROGRAMMA CORSO Analista Programmatore JAVA - ORACLE
PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE 1. JAVA 1.1 Introduzione a Java Introduzione Cosa è Java 1.2 Sintassi e programmazione strutturata variabili e metodi tipi di dati, array operatori
DettagliUnità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.
Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa
DettagliCorso di Informatica. Software di produttività personale e database. Ing Pasquale Rota
Corso di Software di produttività personale e database Ing Pasquale Rota Argomenti I programmi di produttività personale Le basi di dati Fogli elettronici Software di produttività personale e database
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
DettagliASP e Database. A cura di Michele Cavalieri
ASP e Database A cura di Michele Cavalieri (fonte http://www.aspitalia.com/articoli/db/introduzione.aspx ) Un aspetto fondamentale di ASP è l'utilizzo dei componenti, che non sono altro che ActiveX come
Dettagli