Stored Procedure. Antonella Poggi. Dipartimento di informatica e Sistemistica Sapienza Università di Roma

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Stored Procedure. Antonella Poggi. Dipartimento di informatica e Sistemistica Sapienza Università di Roma"

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 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

Dettagli

Stored 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 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

Dettagli

Basi di Dati: Corso di laboratorio

Basi 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

Dettagli

Procedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM

Procedure 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

Dettagli

Corso di Basi di Dati

Corso 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

Dettagli

MySQL Procedure, funzioni, trigger e scheduling

MySQL 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

Dettagli

Triggers. Basi dati attive. Trigger. Indipendenza della conoscenza

Triggers. 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

Dettagli

DBMS ed Applicazioni Motivazioni

DBMS 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

Dettagli

DBMS. Affidabilità. Privatezza dei dati. Efficienza. Efficacia. Un DBMS deve garantire:

DBMS. 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.

Dettagli

DBMS ED APPLICAZIONI (CAPITOLO 6) SQL incluso in codice applicativo Embedded SQL Cursori Dynamic SQL JDBC Stored procedures

DBMS 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

Dettagli

Capitoli 8 e 9. SQL embedded. Applicazioni tradizionali Applicazioni Internet. Sistemi di basi di dati Raghu Ramakrishnan, Johannes Gehrke

Capitoli 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

Dettagli

JDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico

JDBC. 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

Dettagli

Laboratorio di Basi di Dati SQL avanzato

Laboratorio 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 [,

Dettagli

Dominio applicativo. Progettazione. v SQL incluso in codice applicativo v Embedded SQL v Cursori v Dynamic SQL v JDBC v Stored procedures

Dominio 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

Dettagli

7 - Programmazione procedurale: Dichiarazione e chiamata di metodi ausiliari

7 - 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

Dettagli

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

PL/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

Dettagli

DATABASE PER IL WEB. Programmazione Web 1

DATABASE 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

Dettagli

APPLICAZIONI DELLE BASI DI DATI

APPLICAZIONI 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

Dettagli

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

Introduzione. 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

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione 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

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione 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

Dettagli

Linguaggio C: le funzioni. Introduzione e sintassi

Linguaggio 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

Dettagli

Oracle PL/SQL. Motivazioni

Oracle 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

Dettagli

Lezione 8. Metadati, Viste e Trigger

Lezione 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

Dettagli

Vincoli di Integrità

Vincoli 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

Dettagli

Array 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. 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

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

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. 2014/2015 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2014-15.htm Dott.ssa Francesca A. Lisi dott.ssa Francesca A.

Dettagli

LABORATORIO di INFORMATICA

LABORATORIO 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

Dettagli

SQL nei linguaggi di programmazione

SQL 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

Dettagli

Caratteristiche dei linguaggi per Database

Caratteristiche 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;

Dettagli

Argomenti Corso SAP Online ABAP Completo

Argomenti 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;

Dettagli

Per poter interagire con un database in rete mediante uno script php bisogna. innanzitutto cerare una connessione. Ciò si ottiene mediante la funzione

Per 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,

Dettagli

Come trattare il risultato di un comando SQL (relazioni) che

Come 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.

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica 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

Dettagli

Definizione di metodi in Java

Definizione 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

Dettagli

SISTEMI OPERATIVI, RETI, INTERNET

SISTEMI 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

Dettagli

Domande utili alla preparazione dell orale di Informatica all Esame di Stato

Domande 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

Dettagli

Introduzione. 8- Programmazione di una base di dati attraverso JDBC ESEMPIO

Introduzione. 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

Dettagli

Interrogazioni nidificate

Interrogazioni 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,

Dettagli

VISUAL BASIC FOR APPLICATION

VISUAL 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

Dettagli

Programmazione C Massimo Callisto De Donato

Programmazione 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

Dettagli

Funzioni scalari in SQL. Capitolo 5. coalesce. nullif. Altre funzioni scalari. case

Funzioni 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

Dettagli

OBIETTIVI DELL'ESERCITAZIONE

OBIETTIVI 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

Dettagli

Costrutti condizionali e iterativi

Costrutti 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

Dettagli

Laboratorio di Basi di Dati

Laboratorio 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

Dettagli

Cenni sul preprocessore e il suo utilizzo

Cenni 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

Dettagli

DBMS. Alice Pavarani

DBMS. 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

Dettagli

print((math.floor(1345/10)%10); print (Math.floor(1345/100)%10); Le funzioni in JavaScript

print((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

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

Istruzioni iterative (o cicliche)

Istruzioni 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

Dettagli

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

Il 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ù

Dettagli

Un esempio di if annidati

Un 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

Dettagli

SQL - Sottointerrogazioni

SQL - 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)

Dettagli

Excel & VBA. Excel e Visual Basic for Application

Excel & 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

Dettagli

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC 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

Dettagli

Variabili. Unità 2. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Variabili. 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

Dettagli

Parte I - Concetti Base ESEMPIO

Parte 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

Dettagli

Il linguaggio PHP. Elementi base

Il 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

Dettagli

BASI DATI: algebra relazionale

BASI 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).

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma 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

Dettagli

APPENDICE. Procedure in SQL (1)

APPENDICE. 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

Dettagli

JDBC di base. Le classi/interfacce principali di JDBC

JDBC 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

Dettagli

Programmazione in Java (I modulo)

Programmazione 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

Dettagli

Il linguaggio SQL: trigger

Il 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

Dettagli

Errata Corrige di Manuale di Java 8

Errata 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

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. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it

Dettagli

Problema: 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. 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

Dettagli

JDBC: 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. 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

Dettagli

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

Il 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

Dettagli

SQL 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? 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

Dettagli

Interrogazioni nidificate

Interrogazioni 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)

Dettagli

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

Che 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

Dettagli

PL/SQL Uso di un linguaggio procedurale per un database

PL/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

Dettagli

Verificare 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

Verificare 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

Dettagli

Algoritmi e basi del C Struttura di un programma

Algoritmi 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

Dettagli

Applicazioni tradizionali

Applicazioni 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

Dettagli

ISTITUTO DI ISTRUZIONE SUPERIORE Cigna Baruffi Garelli

ISTITUTO 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

Dettagli

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

SQL 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

Dettagli

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL 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

Dettagli

Esercitazione: Interrogazioni SQL

Esercitazione: 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

Dettagli

Matlab 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/ 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ù

Dettagli

Esame Informatica Generale 13/04/2016 Tema A

Esame 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[],

Dettagli

Università di Roma Tor Vergata L12-1

Università 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

Dettagli

Informatica! Appunti dal laboratorio 1!

Informatica! 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

Dettagli

Triggers Esercitazione 1

Triggers 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

Dettagli

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Vincoli 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

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

Laboratorio di programmazione

Laboratorio 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

Dettagli

L intero è o il valore zero o una stringa di cifre che inizia con una cifra diversa sa zero.

L 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,/}

Dettagli

Linguaggi di alto livello, compilatori e interpreti

Linguaggi 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

Dettagli

Corso di Fondamenti di Informatica I

Corso 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

Dettagli

LA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE

LA 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:

Dettagli

Scopo del laboratorio

Scopo 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.

Dettagli

Algebra Booleana ed Espressioni Booleane

Algebra 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

Dettagli

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

PROGRAMMA 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

Dettagli

Unità 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. 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

Dettagli

Corso di Informatica. Software di produttività personale e database. Ing Pasquale Rota

Corso 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

Dettagli

LA 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 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

Dettagli

ASP e Database. A cura di Michele Cavalieri

ASP 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