Sviluppo di applicazioni per basi di dati
|
|
- Felice Carli
- 8 anni fa
- Visualizzazioni
Transcript
1 Sviluppo di applicazioni per basi di dati 1
2 Sviluppo di applicazioni per basi di dati Quattro parti: Gestione dati Business rules (vincoli di integrità e dati derivati) Logica applicativa Interfaccia utente Molte possibili architetture 2
3 Architetture Client-Server Logica + interfaccia Logica + interfaccia Sistema di comunicazione DBMS: dati e business rules Thin Client Interfaccia Interfaccia Sistema di comunicazione DBMS+application server: logica, dati e business rules 3
4 Architetture Three Tiers Client: Interfaccia Client: Interfaccia application server: logica applicativa DBMS server: dati e business rules 4
5 Il problema Scrivere un applicazione che visualizzi una schermata, raccolga dei dati, effettui elaborazioni, segnali eventuali inconsistenze con i dati nella BD oppure inserisca nuovi dati Serve un linguaggio che possa: Effettuare I/O Effettuare interrogazioni Controllare il flusso in un modo che dipende dal risultato dell interrogazione Effettuare aggiornamenti 5
6 Il problema SQL permette di accedere ai dati memorizzati in una base di dati e di aggiornarli Per scelte progettuali, il suo potere espressivo è però limitato (rispetto a quello di un generico linguaggio di programmazione) Questo significa che non tutte le elaborazioni che possiamo volere applicare ai dati possono essere espresse in SQL In particolare, SQL non è: computazionalmente completo, né operazionalmente completo 6
7 Completezza computazionale E relativa alla capacità di esprimere nel linguaggio tutte le computazioni teoricamente possibili In SQL mancano costrutti tipici dei generici linguaggi di programmazione (imperativi) quali il costrutto di scelta o quello di iterazione 7
8 Completezza operazionale E relativa alla capacità di esprimere nel linguaggio operazioni che richiedono una comunicazione diretta con il sistema operativo e, attraverso di esso, con l hardware e le periferiche: In SQL mancano, ad esempio, costrutti per scrivere in un file, stampare, sviluppare un interfaccia utente 8
9 Soluzione Per le due motivazioni viste nei lucidi precedenti è necessario estendere il potere espressivo di SQL Idea: combinare SQL con un linguaggio di programmazione generico: SQL: consente accesso ottimizzato ai dati Linguaggio di programmazione: garantisce completezza computazionale ed operazionale 9
10 Approcci all integrazione Accoppiamento interno Estensioni procedurali di SQL SQL viene esteso con gli usuali costrutti dei linguaggi di programmazione Può essere utilizzato all interno del DBMS, per definire funzioni e procedure richiamabili da qualunque applicazione Permette di garantire la completezza computazionale ma non sempre garantisce la completezza operazionale Lo standard SQL propone un estensione procedurale (SQL/PSM), ma la sintassi varia sensibilmente tra i vari DBMS 10
11 Approcci all integrazione Accoppiamento esterno Un linguaggio di programmazione esistente (es. C, Java) viene integrato con SQL Il codice viene eseguito in un ambiente esterno al DBMS La completezza (computazionale e operazionale) è garantita Due approcci principali: Librerie di funzioni SQL ospitato 11
12 Librerie di funzioni Viene resa disponibile per il linguaggio una libreria di funzioni (API) che definisce l interfaccia di comunicazione tra il DBMS ed il linguaggio di programmazione: Funzioni per la connessione alla base di dati e l esecuzione di comandi SQL Oltre alle librerie proprietarie dei vari DBMS, esistono anche librerie standard, che garantiscono interoperabilità (es. ODBC, JDBC) 12
13 SQL ospitato I comandi SQL vengono utilizzati direttamente all interno di un linguaggio di programmazione Uno speciale pre-compilatore, dato un programma nel linguaggio esteso, produce un programma interamente scritto nel linguaggio ospite In genere, i comandi SQL vengono sostituiti con chiamate al DBMS tramite interfacce di connessione standard o proprietarie 13
14 Approcci all integrazione L accoppiamento esterno (più diffuso) è scelta ovvia quando applicazioni esistenti devono essere estese per interagire con un DBMS Accoppiamente interno utilizzato da nuove applicazioni che richiedono una forte interazione con il DBMS Approccio più diffuso: combinazione dei due Con soluzione ad accoppiamento interno, si definiscono procedure e funzioni relative alle operazioni più frequenti sulla base di dati Tali procedure e funzioni sono poi richiamate da applicazioni sviluppate con approccio ad accoppiamento esterno 14
15 Accoppiamento esterno L accoppiamento esterno richiede l integrazione di due linguaggi: SQL ed linguaggio di programmazione generico Impedance mismatch dovuto alle differenze tra i due linguaggi Due differenze principali: Differenze nei tipi di dato: necessità di binding tra i tipi di dato del linguaggio e quelli di SQL (es. VARCHAR String per Java) Differenze nella modalità di elaborazione: setoriented per SQL, tuple-oriented per linguaggi di programmazione 15
16 Accoppiamento esterno È necessario tradurre il risultato di un interrogazione SQL (relazione) in una struttura dati del linguaggio di programmazione Se l interrogazione restituisce solo una tupla: Il numero di informazioni da analizzare è noto a tempo di compilazione e pari al numero degli attributi della relazione E possibile definire variabili di comunicazione da utilizzare per inserire i valori degli attributi della tupla restituita Se l interrogazione restituisce più tuple: La dimensione del risultato può non essere nota o troppo grande per essere memorizzata in memoria principale E necessario un meccanismo (cursore) che permetta di muoversi sulle tuple del risultato, una ad una, e manipolarle 16
17 Cursore Un cursore è un puntatore ad una tupla contenuta nel risultato di un interrogazione SQL Un cursore è quindi associato alla valutazione di un interrogazione In ogni momento, la tupla puntata dal cursore, e quindi i valori degli attributi di tale tupla, possono essere letti ed inseriti in una struttura dati del linguaggio ospite I cursori sono utilizzati anche nelle soluzioni ad accoppiamento interno quando è necessario iterare sulle tuple risultato di un interrogazione 17
18 Cursore 18
19 Cursore Operazioni sui cursori: Dichiarazione: associa un cursore ad un interrogazione Apertura: esegue l interrogazione associata al cursore e lo inizializza Posizionamento: sposta il cursore sulla tupla successiva o precedente rispetto a quella correntemente puntata (o sulla prima o sull ultima tupla del risultato) Chiusura: disabilita il cursore 19
20 Flusso di esecuzione Qualunque sia l approccio scelto, il programma deve eseguire i seguenti passi fondamentali: 1. Connessione alla base di dati 2. Esecuzione dei comandi SQL 3. Chiusura della connessione 20
21 Connessione Affinché un'applicazione possa utilizzare una base di dati, deve aprire una connessione verso il DBMS su cui la base di dati risiede Nelle soluzioni ad accoppiamento interno, tale connessione è già implicitamente aperta (l'applicazione viene eseguita direttamente da un DBMS server) Nelle soluzioni ad accoppiamento esterno, è necessario specificare il server con cui vogliamo aprire la connessione, fornendo: Stringa di locazione Credenziali di accesso (nome utente e password) 21
22 Chiusura della connessione Quando l'interazione con la base di dati è terminata, la connessione con il DBMS dovrebbe essere chiusa I DBMS ammettono infatti un numero massimo di connessioni contemporaneamente attive Chiudere una connessione dà la possibilità ad altre applicazioni di accedere al DBMS In genere, la terminazione di un'applicazione comporta la chiusura automatica di tutte le connessioni aperte 22
23 Esecuzione di comandi SQL Per ogni comando SQL, l'interazione tra il linguaggio di programmazione ed il DBMS coinvolge tre passi: Preparazione del comando: generazione delle strutture dati necessarie per la comunicazione con il DBMS ed eventuale compilazione ed ottimizzazione del comando da parte del DBMS Esecuzione del comando: il comando viene eseguito utilizzando le strutture dati e le informazioni generate durante la fase di preparazione Manipolazione del risultato: il risultato del comando, tradotto nelle strutture del linguaggio di programmazione, viene manipolato secondo la logica dell applicazione 23
24 Esecuzione di comandi SQL Il risultato dell esecuzione di un comando SQL è: Un insieme di tuple per le interrogazioni Un valore numerico per INSERT/UPDATE/DELETE e comandi del DDL Spesso la fase di preparazione e la fase di esecuzione di un comando SQL sono disaccoppiate Un comando SQL può essere preparato, in modo separato dalla sua esecuzione, durante la compilazione o l'esecuzione dell'applicazione che lo contiene Il disaccoppiamento è molto utile nel caso in cui lo stesso comando SQL debba essere eseguito più volte, magari cambiando solo i valori di alcuni parametri 24
25 Esempio Applicazione che vuole determinare più volte il numero medio dei noleggi per un particolare genere di film, preso in input: Il comando SQL da eseguire è sempre lo stesso La fase di preparazione permette di determinare il piano più efficiente per l'esecuzione dell'operazione, indipendentemente dal valore del parametro Tale piano di esecuzione può poi essere utilizzato in tutte le elaborazioni del comando nel contesto della stessa esecuzione dell'applicazione 25
26 SQL statico e dinamico SQL statico: Uso di comandi SQL noti a tempo di compilazione SQL dinamico: Uso di comandi SQL noti solo a tempo di esecuzione Esempio: clausola WHERE in un comando SELECT che cambia (ad es. contiene o meno un determinato congiunto) in relazione al fatto che una certa condizione (che può dipendere da valori presi in input) sia vera o falsa Facilita lo sviluppo di applicazioni on-line 26
27 Esempio Applicazione che: Prende in input il titolo ed il regista di un film Se la valutazione del film è minore od uguale a 1, allora ritira dal noleggio (e quindi cancella dalla base di dati) tutti i video relativi al film Se la valutazione del film è maggiore od uguale a 4, rimpiazza i video di tipo vhs con video di tipo dvd Negli altri casi, seleziona il titolo, il regista e la valutazione di tutti i film 27
28 SQL dinamico Se le richieste che possono essere immesse da terminale sono poche e note a priori, è possibile ``cablarle'' nel programma applicativo, utilizzando una logica a casi Il comando SQL che verrà ``effettivamente'' eseguito sarà noto solo al momento dell'esecuzione, quando l'utente preciserà la sua richiesta Non sempre è però possibile prevedere tutte le possibili richieste in ingresso (o il loro insieme può essere molto grande): Ad esempio lo stesso comando SQL, o parte di esso, può essere fornito direttamente in input 28
29 SQL dinamico I comandi SQL dinamici comportano maggiori problemi in termini di ottimizzazione, compilazione ed esecuzione Per questo motivo alcuni approcci di accoppiamento non ne permettono l'esecuzione Un comando SQL statico può essere preparato durante la compilazione del programma ed il risultato della preparazione può essere utilizzato un numero arbitrario di volte, nel contesto di esecuzioni distinte Un comando SQL dinamico può invece essere preparato soltanto durante l'esecuzione del programma, con un conseguente aumento del tempo di risposta 29
30 Libreria di funzioni 30
31 Librerie di funzioni L accesso alla base di dati avviene tramite un interfaccia chiamata Call Level Interface (CLI) Ogni CLI è una libreria per uno specifico linguaggio La maggioranza dei DBMS offre soluzioni di questo tipo, che però sono proprietarie e quindi vanno bene solo per uno specifico DBMS Lo standard SQL prevede SQL/CLI Standard de facto: ODBC, JDBC 31
32 JDBC/ODBC La portabilità a livello di eseguibile è ottenuta attraverso driver Un driver è un programma che traduce tutte le chiamate ODBC/JDBC in chiamate specifiche per un DBMS Nel seguito ci concentreremo su JDBC 32
33 JDBC: Architettura di riferimento 33
34 Driver Manager È una classe che gestisce la comunicazione tra applicazione e driver Risolve problematiche comuni a tutte le applicazioni: Quale driver caricare, basandosi sulle informazione fornite dall applicazione Caricamento driver Chiamate alle funzioni dei driver L applicazione interagisce solo con il driver manager 34
35 DBMS Il DBMS sostanzialmente rimane inalterato nel suo funzionamento Riceve sempre e solo richieste nel linguaggio supportato Esegue il comando SQL ricevuto dal driver e invia i risultati 35
36 JDBC JDBC è una API Java standard per interagire con basi di dati da Java Cerca di essere il più semplice possibile rimanendo al contempo flessibile Permette di ottenere una soluzione pure Java per l interazione con DBMS Indipendenza dalla piattaforma 36
37 Driver JDBC Esistono quattro tipi di driver I driver si differenziano per come interagiscono con la base di dati Il più semplice è il JDBC-ODBC Bridge che utilizza ODBC per connettersi alla base di dati 37
38 Applicazione Un applicazione è un programma che chiama specifiche funzioni API per accedere ai dati gestiti da un DBMS Flusso tipico: Caricamento driver Selezione sorgente dati (DBMS e specifico database) e connessione Invio statement SQL Recupero risultati e elaborazione Disconnessione 38
39 Esempio 1 39
40 import java.sql.*; import java.io.*; class examplejdbc {public static void main (String args []) { Connection con = null; try{ String my_department = "research"; Class.forName ("sun.jdbc.odbc.jdbcodbcdriver"); con =DriverManager.getConnection("jdbc:odbc:my_DB", "my_login", "my_password"); Statement st = con.createstatement(); Esempio 2 ResultSet rs = st.executequery("select AVG(salary) FROM employee"); 40
41 rs.next(); if (rs.getbigdecimal(1) < 1000) st.executeupdate("update employee SET salary = salary*1,05"); else st.executeupdate("update employee SET salary = salary*0,95"); PreparedStatement pst = con.preparestatement("select name,salary FROM employee WHERE department =?"); pst.setstring(1,my_department); rs = pst.executequery(); while (rs.next()) System.println("Name: "+rs.getstring(1)+ "Salary:"+rs.getInt(2)); con.close(); } 41
42 catch(java.lang.classnotfoundexception e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage());} catch (SQLException e) {while( e!=null) { System.out.println("SQLState: " + e.getsqlstate()); System.out.println(" Code: " + e.geterrorcode()); System.out.println(" Message: " + e.getmessage()); e = e.getnextexception(); }}}}} 42
43 SQL Ospitato 43
44 Concetti di base I comandi SQL vengono direttamente inseriti in programmi scritti in un estensione di un linguaggio di programmazione, chiamato linguaggio ospite Il linguaggio ospite permette di utilizzare SQL senza il bisogno di funzioni di interfaccia I comandi SQL (embedded SQL) possono apparire in ogni punto in cui può comparire un istruzione del linguaggio ospite 44
45 Concetti di base Lo standard SQL definisce come SQL possa essere ospitato in un insieme di linguaggi di programmazione, tra cui: C, COBOL Pascal, Fortran Anche se Java non è incluso nei linguaggi previsti, dopo lo sviluppo di JDBC è stata proposta una specifica ANSI/ISO per incapsulare comandi SQL in programmi Java: SQLJ (SQL Java) sviluppato dall SQLJGroup 45
46 Concetti di base Ogni istruzione SQL deve essere chiaramemente identificabile nel testo del programma: Preceduta da un prefisso e seguita da un terminatore Per molti linguaggi (C, Pascal, Fortran, Cobol): Prefisso = EXEC SQL Terminatore = ; SQLJ: Prefisso = #sql Terminatore = ; 46
47 Architettura di riferimento L esecuzione dei programmi avviene in tre passi: precompilazione, compilazione, esecuzione Precompilazione: Il programma viene passato ad un precompilatore (specifico del linguaggio ospite) Il precompilatore elimina i comandi SQL sostituendoli con chiamate al DBMS espresse nella sintassi del linguaggio ospite Il risultato è un programma scritto completamente nel linguaggio ospite Compilazione: Il programma risultato della fase precedente viene compilato utilizzando un compilatore per il linguaggio ospite 47
48 Esempio 1 48
49 import java.sql.*; import java.io.*; import java.math.*; import sqlj.runtime.*; import sqlj.runtime.ref.*; import oracle.sqlj.runtime.*; import java.sql.*; Esempio 2 class examplesqlj { #sql iterator Name_Salary_Iter(String name, int salary); public static void main (String args []) { try{ BigDecimal avg_sal; String my_department = "research"; oracle.connect("jdbc:odbc:my_db","my_login", "my_password", false); 49
50 #sql{select AVG(salary) INTO :avg_sal FROM employee}; if (avg_sal > 1000) #sql{update employee SET salary = salary*1,05}; else #sql{update employee SET salary = salary*0,95}; Name_Salary_Iter my_iter = null; #sql my_iter ={SELECT name,salary FROM employee WHERE department = :my_department}; while (my_iter.next()) System.println("Name: "+my_iter.name()+ "Salary:"+my_iter.salary()); } 50
51 catch(java.lang.classnotfoundexception e) { System.err.print("ClassNotFoundException: "); System.err.println(e.getMessage());} catch (SQLException e) { while( e!=null){ System.out.println("SQLState: " + e.getsqlstate()); System.out.println(" Code: " + e.geterrorcode()); System.out.println(" Message: " + e.getmessage()); e = e.getnextexception();}}}}} 51
Introduzione JDBC interfaccia java.sql driver caricare i driver
J D B C DISPENSE Introduzione JDBC (Java Database Connectivity) è un interfaccia completamente Java utilizzata per eseguire istruzioni SQL sui database. L'API JDBC si trova nel pacchetto java.sql; contiene
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
DettagliLezione 9. Applicazioni tradizionali
Lezione 9 Applicazioni tradizionali Pag.1 Sommario Concetti trattati in questa lezione: SQL nel codice applicativo Cursori API native ODBC Pag.2 SQL nel codice applicativo I comandi SQL possono essere
DettagliSiti web centrati sui dati Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
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
DettagliArchitettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans Alberto Belussi anno accademico 2008/2009 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
DettagliEsercitazione su JDBC
Esercitazione su JDBC Basi di Dati L Ingegneria dei Processi Gestionali (Ilaria Bartolini - Roberto Cabras) come usare SQL (1) Le istruzioni SQL possono essere eseguite interattivamente Ese JDBC 2 come
DettagliJDBC. A. Bechini 2004. Accesso a DataD con Java
JDBC Accesso a DataD atabase ase con Java Utilizzo di DB da applicazioni esterne Un DB contiene e gestisce dati, importanti per varie operazioni supportate da applicazioni software Come può un applicazione
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.
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
DettagliCORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity
CORSO DI ALGORITMI E PROGRAMMAZIONE JDBC Java DataBase Connectivity Anno Accademico 2002-2003 Accesso remoto al DB Istruzioni SQL Rete DataBase Utente Host client Server di DataBase Host server Accesso
DettagliScheda 15 Accedere ai DataBase con JDBC
Scheda 15 Accedere ai DataBase con JDBC G IOVANNI PULITI Panoramica: che cosa è JDBC La API JDBC, introdotta per la prima volta con il JDK 1.0, è una API che permette di accedere a database relazionali
DettagliEsercitazione 4 JDBC
JDBC Obiettivi dell esercitazione Familiarizzare con l'organizzazione dell'ambiente di lavoro per la realizzazione di applicazioni Java Utilizzare i costrutti di base della libreria JDBC per 1. la gestione
DettagliJDBC per l accesso Java a DB. Tito Flagella tito@link.it
JDBC per l accesso Java a DB Tito Flagella tito@link.it JDBC fornisce una libreria standard per l accesso a database relazionali Non è un acronimo ufficiale ma è comunemente interpretato come Java DataBase
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.
DettagliDatabase e reti. Piero Gallo Pasquale Sirsi
Database e reti Piero Gallo Pasquale Sirsi Approcci per l interfacciamento Il nostro obiettivo è, ora, quello di individuare i possibili approcci per integrare una base di dati gestita da un in un ambiente
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
DettagliMotivazione. SQL e linguaggi di programmazione. Completezza computazionale. Completezza a livello di sistema. Accoppiamento (coupling)
SQL e linguaggi di programmazione Motivazione SQL supporta la definizione e la manipolazione di dati relazionali tuttavia, SQL da solo non è sufficiente a programmare un intera applicazione non è computazionalmente
DettagliDispensa di database Access
Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di
DettagliProgrammazione Java Avanzata Spring - JDBC
Programmazione Java Avanzata Spring - JDBC Ing. Gianluca Caminiti Riferimenti Spring http://www.springsource.org/ (scaricate il reference) Beginning Spring 2 - From Novice to Professional. APress. 2008
DettagliSQL e applicazioni. Capitolo 8. SQL e linguaggi di programmazione. Applicazioni ed SQL: architettura. Una difficoltà importante.
SQL e applicazioni Capitolo 8 Applicazioni tradizionali In applicazioni complesse, l utente non vuole eseguire comandi SQL, ma programmi, con poche scelte SQL non basta, sono necessarie altre funzionalità,
DettagliSviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.
Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL. 2ELHWWLYL GD UDJJLXQJHUH SHU JOL VWXGHQWL alla fine dell esercitazione gli studenti dovranno essere in grado di: 1. utilizzare
DettagliNon si deve fare ALCUN riferimento alla parte specifica di JDBC.
Un applicazione per la quale sia fondamentale l indipendenza dal Database può essere scritta in Java usando le specifiche. (Package java.sql) Non devono essere usate chiamate specifiche del database: Si
DettagliCorso di Informatica Modulo T3 B2 - Database in rete
Corso di Informatica Modulo T3 B2 - Database in rete 1 Prerequisiti Programmazione web Applicazione web Modello OSI Architettura client/server Conoscenze generali sui database Tecnologia ADO in Visual
DettagliProgettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo
DettagliVolumi di riferimento
Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di
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
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
DettagliOttimizzazione delle interrogazioni (parte I)
Ottimizzazione delle interrogazioni I Basi di Dati / Complementi di Basi di Dati 1 Ottimizzazione delle interrogazioni (parte I) Angelo Montanari Dipartimento di Matematica e Informatica Università di
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
DettagliJDBC Driver Manager. JDBC Architettura generale. JDBC - Tipi di dato. JDBC - Flusso applicativo. JDBC - Tipi di dato. ODBC Driver. Livello di gestione
Interfacce DBMS in breve Corso di BD1 Ripasso comandi applicazione JDBC Manipolazione estensioni OR in JDBC Interfacce per DBMS Problema: Far accedere un applicazione ad una base di dati Soluzione: Librerie
DettagliBASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone
BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell
DettagliAl giorno d oggi, i sistemi per la gestione di database
Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,
DettagliCOS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle
Dettagli3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di
Dettagli19. LA PROGRAMMAZIONE LATO SERVER
19. LA PROGRAMMAZIONE LATO SERVER Introduciamo uno pseudocodice lato server che chiameremo Pserv che utilizzeremo come al solito per introdurre le problematiche da affrontare, indipendentemente dagli specifici
DettagliLa struttura dati ad albero binario
La struttura dati ad albero binario L albero è una struttura dati nella quale le informazioni sono organizzate in modo gerarchico, dall alto verso il basso. Gli elementi di un albero si chiamano nodi,
DettagliMODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it
MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo
DettagliLa gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni
La gestione dell input/output da tastiera La gestione dell input/output da file La gestione delle eccezioni Autore: Prof. Agostino Sorbara ITIS "M. M. Milano" Autore: Prof. Agostino Sorbara ITIS "M. M.
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
DettagliMANUALE PARCELLA FACILE PLUS INDICE
MANUALE PARCELLA FACILE PLUS INDICE Gestione Archivi 2 Configurazioni iniziali 3 Anagrafiche 4 Creazione prestazioni e distinta base 7 Documenti 9 Agenda lavori 12 Statistiche 13 GESTIONE ARCHIVI Nella
DettagliCapitolo 13. Interrogare una base di dati
Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per
DettagliAccesso a Database con JDBC
1 Sommario Accesso a Database con JDBC Introduzione architettura generale di riferimento flusso tipico delle applicazioni ODBC/JDBC ODBC architettura il flusso generale di un applicazione ODBC JDBC architettura
DettagliGestione Risorse Umane Web
La gestione delle risorse umane Gestione Risorse Umane Web Generazione attestati di partecipazione ai corsi di formazione (Versione V03) Premessa... 2 Configurazione del sistema... 3 Estrattore dati...
DettagliIl linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.
(Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System
DettagliSQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12
SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I Anno accademico 2011/12 DEFINIZIONE Il concetto di vista 2 È una relazione derivata. Si specifica l espressione che genera il suo contenuto.
DettagliCorso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP
Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate
DettagliSviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D - 2012
+ Sviluppo Applicazioni Mobile Lezione 12 JDBC + Cosa vediamo nella lezione di oggi Oggi analizzeremo insieme una specifica tecnologia Java per l accesso e la manipolazione di basi di dati relazionali
DettagliRiccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino
Integration Services Project SQL Server 2005 Integration Services Permette di gestire tutti i processi di ETL Basato sui progetti di Business Intelligence di tipo Integration services Project SQL Server
DettagliEsercitazione 02: JDBC, SQL e DB SAMPLE
Esercitazione 02: JDBC, SQL e DB SAMPLE Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: Esercitazione02.pdf Sistemi Informativi L-A Applicazione
DettagliBasi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008
Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008 Avvertenze: e severamente vietato consultare libri e appunti; chiunque verrà trovato in possesso di
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:
DettagliDDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione
SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni
DettagliJava: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
Dettagli2104 volume III Programmazione
2103 SQLite Capitolo 77 77.1 Utilizzo generale................................. 2104 77.1.1 Utilizzo di sqlite3».......................... 2104 77.1.2 Copie di sicurezza............................ 2106
DettagliData Base. Master "Bio Info" Reti e Basi di Dati Lezione 6
Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica
DettagliIl Modello Relazionale
Il Modello Relazionale Il modello relazionale 1 Il modello relazionale Proposto da E. F. Codd nel 1970 per favorire l indipendenza dei dati e reso disponibile come modello logico in DBMS reali nel 1981
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
DettagliSistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
DettagliSQL Server 2005. Integration Services. SQL Server 2005: ETL - 1. Integration Services Project
atabase and ata Mi ni ng Group of P ol itecnico di Torino atabase and ata Mi ni ng Group of P ol itecnico di Torino atabase and data mining group, SQL Server 2005 Integration Services SQL Server 2005:
DettagliPROVA FINALE Ingegneria del software
PROVA FINALE Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Laboratorio N 4 Cos è JDBC 2 JDBC significa Java Database Connectivity Standard definito da Sun MicroSystems per connettere programmi
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
DettagliCodifica: dal diagramma a blocchi al linguaggio C++
Codifica: dal diagramma a blocchi al linguaggio C++ E necessario chiarire inizialmente alcuni concetti. La compilazione Il dispositivo del computer addetto all esecuzione dei programmi è la CPU La CPU
DettagliIntroduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico
Introduzione alle basi di dati Introduzione alle basi di dati Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS Gestione delle
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
DettagliCORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)
Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni
DettagliPer scrivere una procedura che non deve restituire nessun valore e deve solo contenere le informazioni per le modalità delle porte e controlli
CODICE Le fonti in cui si possono trovare tutorial o esempi di progetti utilizzati con Arduino si trovano nel sito ufficiale di Arduino, oppure nei forum di domotica e robotica. Il codice utilizzato per
DettagliGESTIONE INFORMATICA DEI DATI AZIENDALI
GESTIONE INFORMATICA DEI DATI AZIENDALI Alberto ZANONI Centro Vito Volterra Università Tor Vergata Via Columbia 2, 00133 Roma, Italy zanoni@volterra.uniroma2.it Rudimenti di programmazione Programming
DettagliArchitettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3
Architettura MVC-2 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 Verso l architettura MVC-2 2 Il secondo passo verso l architettura MVC-2 è quello di separare il controllo dell
DettagliMDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC
MDAC MDAC è l acronimo di Microsoft Data Access Component e fa parte della tecnologia Microsoft denominata Universal Data Access (UDA). Mette a disposizione una serie di componenti per l accesso a svariate
DettagliINFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
DettagliBASE DI DATI: sicurezza. Informatica febbraio 2015 5ASA
BASE DI DATI: sicurezza Informatica febbraio 2015 5ASA Argomenti Privatezza o riservatezza Vincoli di integrità logica della base di dati intrarelazionali interrelazionali Principio generale sulla sicurezza
DettagliInformatica Generale Andrea Corradini. 19 - Sistemi di Gestione delle Basi di Dati
Informatica Generale Andrea Corradini 19 - Sistemi di Gestione delle Basi di Dati Sommario Concetti base di Basi di Dati Il modello relazionale Relazioni e operazioni su relazioni Il linguaggio SQL Integrità
DettagliIntegrazione InfiniteCRM - MailUp
Integrazione InfiniteCRM - MailUp La funzionalità della gestione delle campagne marketing di icrm è stata arricchita con la spedizione di email attraverso l integrazione con la piattaforma MailUp. Creando
DettagliLinguaggi e Paradigmi di Programmazione
Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una
DettagliAutomatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione
Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento
Dettagliflusso delle informazioni... 2 password... 3 password/2... 3 inserimento di una nuova richiesta... 4 le condizioni di vendita... 6
istruzioni per l inserimento di una richiesta on line di prodotti speciali flusso delle informazioni... 2 password... 3 password/2... 3 inserimento di una nuova richiesta... 4 le condizioni di vendita...
DettagliGESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
DettagliIntroduzione ai database relazionali
Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita
DettagliIntroduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni
Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono
DettagliLe query. Lezione 6 a cura di Maria Novella Mosciatti
Lezione 6 a cura di Maria Novella Mosciatti Le query Le query sono oggetti del DB che consentono di visualizzare, modificare e analizzare i dati in modi diversi. Si possono utilizzare query come origine
DettagliEsercitazione 01: DDL e DML di base
Esercitazione 01: DDL e DML di base Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: Esercitazione01.pdf Sistemi Informativi L-A Gestione di
DettagliLaboratorio di reti II: Gestione di database lato server
Laboratorio di reti II: Gestione di database lato server Stefano Brocchi brocchi@dsi.unifi.it 23 marzo, 2009 Stefano Brocchi Laboratorio di reti II: Database 23 marzo, 2009 1 / 32 Uso di database lato
DettagliEXPLOit Content Management Data Base per documenti SGML/XML
EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per
DettagliInstallazione e caratteristiche generali 1
Installazione e caratteristiche generali 1 Introduzione SIGLA Ultimate e SIGLA Start Edition possono essere utilizzati solo se sono soddisfatti i seguenti prerequisiti: Microsoft.Net Framework 3.5 (consigliato
DettagliAccess. P a r t e p r i m a
Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di
DettagliProgetto ittorario Anno scol. 2013-2014
PROGETTO ittorario Scopo: Creazione di una pagina web che mostri l orario di un docente, della classe della materia o dell aula a discrezione dell utente. Sviluppatori: Progetto sviluppato dalla classe
DettagliDatabase. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
DettagliProgetto di Applicazioni Software
Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla
DettagliBasi di Dati Relazionali
Corso di Laurea in Informatica Basi di Dati Relazionali a.a. 2009-2010 PROGETTAZIONE DI UNA BASE DI DATI Raccolta e Analisi dei requisiti Progettazione concettuale Schema concettuale Progettazione logica
DettagliArchitetture Informatiche. Dal Mainframe al Personal Computer
Architetture Informatiche Dal Mainframe al Personal Computer Architetture Le architetture informatiche definiscono le modalità secondo le quali sono collegati tra di loro i diversi sistemi ( livello fisico
DettagliArchitetture Informatiche. Dal Mainframe al Personal Computer
Architetture Informatiche Dal Mainframe al Personal Computer Architetture Le architetture informatiche definiscono le modalità secondo le quali sono collegati tra di loro i diversi sistemi ( livello fisico
DettagliBasi di Dati Esercitazione JDBC. Giugno 2007
Basi di Dati Esercitazione JDBC Giugno 2007 Esercizi Considerando il seguente schema: Fornitori (CodiceFornitore, Nome, Indirizzo, Citta) Prodotti (CodiceProdotto, Tipo, Marca, Modello) Catalogo (CodiceFornitore,
DettagliI database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:
Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare
DettagliCapitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti
Capitolo 3 L applicazione Java Diagrammi ER Dopo le fasi di analisi, progettazione ed implementazione il software è stato compilato ed ora è pronto all uso; in questo capitolo mostreremo passo passo tutta
DettagliSistemi di Elaborazione delle Informazioni (C.I. 15) Access
Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Sistemi di Elaborazione delle Informazioni (C.I. 15) Anno Accademico 2009/2010 Docente: ing. Salvatore Sorce Access C.d.L. in Igiene
DettagliLinguaggi di programmazione
Linguaggi di programmazione Un calcolatore basato sul modello di von Neumann permette l esecuzione di un programma, cioè di una sequenza di istruzioni descritte nel linguaggio interpretabile dal calcolatore
Dettagli11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0
11/02/2015 MANUALE DI INSTALLAZIONE DELL APPLICAZIONE DESKTOP TELEMATICO VERSIONE 1.0 PAG. 2 DI 38 INDICE 1. PREMESSA 3 2. SCARICO DEL SOFTWARE 4 2.1 AMBIENTE WINDOWS 5 2.2 AMBIENTE MACINTOSH 6 2.3 AMBIENTE
DettagliAmministrazione Trasparente
Amministrazione Trasparente Da questa sezione è possibile gestire gli adempimenti di pubblicazione previsti dagli art. 26 e 37 del D.Lgs. 33/2013. Il sistema inoltre genera automaticamente il flusso previsto
DettagliConcetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
Dettagli