Meccanismi per la Gestione efficiente di transazioni in un DBMS
|
|
- Oreste Innocenti
- 5 anni fa
- Visualizzazioni
Transcript
1 Meccanismi per la Gestione efficiente di transazioni in un DBMS
2 Transazioni Una Transazione è una sequenza di azioni di lettura e scrittura della base di dati e di elaborazioni di dati in memoria temporanea, che il DBMS esegue garantendo: Atomicità Serializzabilità Persistenza cfr. Basi di Dati Relazionali e ad Oggetti - Antonio Albano
3 Atomicità Solo le transazioni che terminano normalmente (committed) fanno transitare la base di dati in un nuovo stato Le Transazioni che terminano prematuramente (aborted) sono trattate come se non fossero mai iniziate
4 Esempio In assenza di Atomicità Due conti C1 e C2 La Transazione A sposta una cifra di 50 $ da C1 a C2 A1: A detrae 50$ da C1 A2: A aggiunge 50$ in C2 Non si può effettuare A1 senza effettuare A2
5 Serializzabilità L effetto sulla base di dati dell esecuzione concorrente di più transazioni è equivalente ad un esecuzione seriale delle transazioni, cioè ad una esecuzione in cui le transazioni vengono eseguite una dopo l altra in un qualche ordine
6 Esempio In assenza di Serializzabilità Un Conto con una cifra di 100 $ Due transazioni, A e B A legge il saldo B legge il saldo A trova disponibilità sul conto e preleva 100 $ B trova disponibilità sul conto e preleva 100 $
7 Persistenza Le modifiche sulla base di dati di una transazione terminata normalmente sono permanenti, cioè non sono alterabili da eventuali malfunzionamenti successivi alla terminazione
8 Transazioni: un acronimo significativo ACID Atomic Consistent Isolated Durable La consistenza è definita come il mantenimento dell integrità del DB (vincoli sulle tabelle)
9 Programmazione delle Transazioni Start Commit Rollback Lock, Livelli di Isolamento
10 Estensione delle Transazioni Una transazione è sempre un potenziale collo di bottiglia e deve essere meno estesa possibile Es: l acquisto di un articolo on-line T1: verifica disponibilità articolo Comunica disponibilità all utente; ordine dell Utente T2: verifica disponibilità; se disponibile acquista Comunica all utente se l ordine è stato effettuato In alternativa: T1: verifica disponibilità articolo, comunica risultato all utente, attendi ordine, acquista.
11 Serializzabilità All aumentare delle transazioni, si limita la concorrenza nell accesso al DB La serializzabilità ha un impatto drammatico sulle prestazioni: i DBMS non implementano una serializzabilità completa; I DBMS prevedono strumenti per selezionare il giusto livello di serializzabilità richiesto dalle specifiche transazioni applicative
12 Serializzabilità (2) Uso dei Lock: Share o Exclusive Non sono standard SQL, ogni DB ha modi diversi per usarli in SQL Sono una soluzione inefficiente, lavorando su intere tabelle Uso dei Livelli di Isolamento sulle connessioni Permettono di rilasciare i vincoli di isolamento rispetto alla serializzabilità delle transazioni Sono previsti 4 livelli possibili: read uncommitted, read committed, repeatable read, serializable Sono standard SQL, e permettono di selezionare la soluzione più efficiente Uso della select for update, permette di impostare lock esclusivi su dati specifici
13 Possibili problemi in assenza di serializzabilità Dirty Read Unrepeatable Read Phantom Row Lost Update Casi teorici non classificabili
14 Esempio: Dirty Read T1 aggiorna una riga r1 T2 accede a r1 T1 termina con un rollback T2 ha avuto accesso a un dato che non è mai esistito
15 Esempio: Non repeatable Read T1 accede ad una riga r1 T2 modifica r1 T1 accede nuovamente ad r1, trovando un valore diverso
16 Esempio: Phantom Row T1 seleziona righe che verificano una certa condizione T2 inserisce una nuova riga che soddisfa la stessa condizione T1 vede ora una nuova riga che soddisfa la condizione (phantom)
17 Problema della Lost Update Nel caso di 'lost update' 2 o più transazioni aggiornano la stessa riga senza essere consci della modifica altrui In tal modo la seconda modifica sovrascrive la prima Esempio: prelievo simultaneo dallo stesso conto.
18 Read Uncommitted Degree of isolation 0 consente transazioni in sola lettura, senza bloccare in lettura i dati una transazione può leggere dati sporchi, perché potrebbero sparire se la transazione che li ha generati abortisse Soggetto a tutti i problemi analizzati
19 Read Committed Degree of isolation 1 A questo livello sono leggibili modifiche solo se committate da altre transazioni Soggetto a tutti i problemi, tranne Dirty Read
20 Repeatable Read Degree of isolation 2 Letture ripetute danno sempre lo stesso risultato anche in presenza di modifiche committate da altre transazioni Soggetto a Phantom Row e Lost Update
21 Serializable Potrebbe garantire l effettiva serializzabilità del codice bloccando gli accessi alle tabelle in gioco Tuttavia si tratta di soluzioni troppo inefficienti per essere effettivamente utilizzate in applicazioni critiche In realtà la modalità serializable si limita ad evitare tutti i fenomeni esaminati per i livelli piu bassi di isolamento Restano aperti casi di mancanza di serializzabilità che non hanno riscontro in casi reali di programmazione
22 Esempio d uso di Serializable con.setautocommit(false); con.settransactionisolation(connection.transaction_serializable); Try { String query = "SELECT SALDO FROM CONTO"; // select non bloccante pstmt = con.preparestatement(query); rs = pstmt.executequery(); If (rs.next()) { value = rs.getstring( SALDO") - 100; } rs.close(); pstmt.close(); If (value > 0) update // eccezione SQL se il dato letto precedentemente è stato modificato nel frattempo // Chiusura Transazione this.connectiondb.commit(); // ID Costruito getvalueok = true; } catch(exception e) { try{ if(rs!= null) rs.close(); } catch(exception er) {} try{ if(pstmt!= null) pstmt.close(); } catch(exception er) {} try{ this.connectiondb.rollback(); } catch(exception er) {} }
23 Uso della Select for Update La Select for update costituisce un'alternativa all'uso del livello serializable Mette un lock esclusivo sulle sole righe selezionate Più efficiente dell'uso dei lock esclusivi
24 Esempio d uso della Select for Update con.setautocommit(false); con.settransactionisolation(connection.transaction_serializable); while(getvalueok==false && System.currentTimeMillis() < scadenzawhile){ try{ String query = "SELECT SALDO FROM CONTO FOR UPDATE"; // select bloccante, equivalente ad un lock esclusivo solo sui dati selezionati pstmt = con.preparestatement(query); rs = pstmt.executequery(); If (rs.next()) { value = rs.getstring( SALDO") - 100; } rs.close(); If (value > 0) update pstmt.close(); // Chiusura Transazione this.connectiondb.commit(); // ID Costruito getvalueok = true; } catch(exception e) { try{ if(rs!= null) rs.close(); } catch(exception er) {} try{ if(pstmt!= null) pstmt.close(); } catch(exception er) {} try{ this.connectiondb.rollback(); } catch(exception er) {} }}
25 Le Transazioni in JDBC con.commit(); con.rollback(); con.setautocommit(true); con.setautocommit(false); con.gettransactionisolation(); con.settransactionisolation();
26 Le Transazioni in JDBC (2) con.setautocommit Modifica il comportamento delle transazioni Se True, la transazione viene aperta e chiusa automaticamente ad ogni operazione sul DB Altrimenti, viene aperta alla prima connessione e chiusa solo da un commit o rollback esplicito
27 Uso di Connection Pool Connection connection = connectionpool.getconnection(url, username, passwd); connection.setautocommit(false); try {... statement.executeupdate(...); statement.executeupdate(...); connection.commit(); } catch (Exception e) { try { connection.rollback(); } catch (SQLException e) { /* gestione dell errore */ } } finally { try { connection.setautocommit(true); connectionpool.release(connection); } catch (SQLException sqle) { } }
28 Tool per Esercitazione L'esercitazione sulle transazioni sarà realizzata tramite un tool che permette di: riprodurre tutti i problemi analizzati risolverli tramite Lock risolverli tramite livelli di isolamento risolverli tramite select for update ant scenario -DtipoTest=x -DselectForUpdate=true/false Dove scenario può essere: dirty_read, lost_update,... Dove x può essere: normale,lock_share,lock_exclusive,read_uncommitted,read_committed,read _repeatable,serializable
Tecnologia delle Basi di Dati
Basi di Dati Prof. Alfredo Cuzzocrea Università degli Studi di Trieste Tecnologia delle Basi di Dati Credits to: Dr. A. Poggi UniRoma1 Transazioni Una transazione è una unità elementare di lavoro svolta
DettagliTransazioni. Antonella Poggi. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza
Transazioni Antonella Poggi Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi sono stati prodotti sulla
DettagliTransazioni. Transazioni. Stati di una transazione. Transazioni
Transazioni Antonella Poggi Domenico Lembo Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico 2009-2010 Transazioni Una transazione
DettagliLe transazioni. Update CC set saldo = saldo + 25 where ccnum = Update CC set saldo = saldo 25 where ccnum = 26488
Le transazioni Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 2 (paragrafo 2.1) Appunti dalle lezioni Transazione ContiCorrenti(ccnum,saldo) Update CC set saldo = saldo +
DettagliEsercitazione 10 SQL: transazioni
Esercitazione 10 SQL: transazioni Sistemi Informativi T Versione elettronica: L10.transazioni.pdf Transazioni Le transazionisono unità logiche di elaborazione per cui il DBMS garantisce le proprietà ACID(Atomicity,
DettagliIl linguaggio SQL: transazioni
Il linguaggio SQL: transazioni Sistemi Informativi T Versione elettronica: 04.8.SQL.transazioni.pdf Esecuzione seriale di transazioni Un DBMS, dovendo supportare l esecuzione di diverse transazioni che
DettagliSistemi informativi e basi di dati. Il modello relazionale. SQL come DCL Utilizzo di un DBMS Reale. Forme normali. Basi di dati direzionali
Le transazioni Appunti dalle lezioni SQL come DDL Sistemi informativi e basi di dati La Progettazione Concettuale SQL come DML Il modello relazionale La Progettazione Logica SQL come DCL Utilizzo di un
DettagliOgni ufficio è formato da 100 dipendenti, i quali hanno a loro volta 3 clienti ciascuno. Inoltre, ad ogni ufficio sono stati assegnati 4 fornitori.
Tecnologia delle Basi Dati Analisi del dbms Postgresql. Luigi Cestoni Prima Parte Descrizione del Database Abbiamo realizzato un database costituito da quattro tabelle: 1. dipendente( id,nome,cognome,eta,telefono,idufficio)
DettagliGestione delle transazioni. Basi di dati. Elena Baralis 2007 Politecnico di Torino 1 D B M G D B M G 2. Linguaggio SQL: costrutti avanzati
Linguaggio SQL: costrutti avanzati D B M G Introduzione Transazioni in SQL Proprietà delle transazioni D B M G 2 2007 Politecnico di Torino 1 D B M G Esempio applicativo Operazioni bancarie operazione
DettagliL evoluzione della specie
DBMS Data Base Management System Dai dati grezzi ad informazioni strutturate 1 L evoluzione della specie Strumenti di Business Intelligence Data Warehouse Data Mining Data Base Management System (DBMS)
DettagliSerializable Snapshot Isolation (SSI) in PostgreSQL 9.1
Serializable Snapshot Isolation (SSI) in PostgreSQL 9.1 Marco Nenciarini Italian PostgreSQL Users Group www.itpug.org www.postgresql.org Chi sono? DBA, sviluppatore e sysadmin presso 2ndQuadrant Database
DettagliGestione della Concorrenza
Corso di Complementi di Basi di Dati Gestione della Concorrenza Angelo Montanari 1 Anomalie delle transazioni concorrenti -1 Perdita di aggiornamento Lettura sporca Aggiornamento fantasma 2 2 Anomalie
DettagliBasi di Dati Complementi. 2. Tecnologie per DBMS -2.4 Introduzione alle Transazioni e Buffer Manager
Basi di Dati Complementi 2. Tecnologie per DBMS -2.4 Introduzione alle Transazioni e Buffer Manager Andrea Maurino 2007 2008 Parte del materiale è stato fornito dal prof. Batini Fonti Libro Architetture
DettagliEsecuzione concorrente di transazioni
Esecuzione concorrente di transazioni A L B E R T O B E L U S S I P A R T E I I A N N O A C C A D E M I C O 2 0 1 0-2 0 1 1 Tecniche applicate nei DBMS Le tecniche per il controllo della concorrenza che
DettagliIl linguaggio SQL: transazioni
Il linguaggio SQL: transazioni Sistemi Informativi T Versione elettronica: 4.8.SQL.transazioni.pdf Cos è una transazione? Una transazione è un unità logica di elaborazione che corrisponde a una serie di
DettagliUnità D3. Sicurezza nelle basi di dati. Sicurezza e concorrenza nelle basi di dati. Controllo accesso. Protezione e integrità dati
Sicurezza nelle basi di dati Unità D3 Sicurezza e concorrenza nelle basi di dati Una base di dati è sicura quando soddisfa i seguenti parametri: regola l accesso ai dati protetti; evita la modifica o la
DettagliCorso di. Basi di Dati I. 10. Esercitazioni in SQL: Complementi
Corso di Basi di Dati 10. Esercitazioni in SQL: Complementi A.A. 2016 2017 Funzioni condizionali Vediamo qualche altro comando utile di SQL. Il comando coalesce ammette come argomento una sequenza di espressioni
DettagliTecnologie Web T Gestione delle Transazioni e Livelli di Isolamento
Tecnologie Web T Gestione delle Transazioni e Livelli di Isolamento Home Page del corso: http://www-db.disi.unibo.it/courses/tw/ Versione elettronica: 4.03.Transazioni.pdf Versione elettronica: 4.03. Transazioni-2p.pdf
DettagliSQL Transazioni. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
SQL Transazioni Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Transazioni Le Transazioni sono unità elementari di lavoro sulla base di dati di cui si vogliono garantire proprietà di
DettagliGESTIONE DELLE TRANSAZIONI
GESTIONE DELLE TRANSAZIONI Transazioni! L esecuzione concorrente dei programmi utente è essenziale per le buone prestazioni del DBMS! Poiché gli accessi al disco sono frequenti e relativamente lenti, è
DettagliTecnologie di Sviluppo per il Web
Tecnologie di Sviluppo per il Web Programmazione su Basi di Dati: Transazioni Parte b versione 3.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)
DettagliBENEDETTI ALESSANDRO Matricola :252805 PROGETTO DI TECNOLOGIA DELLE BASI DI DATI PARTE 2
BENEDETTI ALESSANDRO Matricola :252805 PROGETTO DI TECNOLOGIA DELLE BASI DI DATI PARTE 2 Testo: Sviluppare semplici programmi che permettano di verificare i diversi livelli di isolamento previsti da SQL
DettagliTecnologie Web T Gestione delle Transazioni e Livelli di Isolamento
Tecnologie Web T Gestione delle Transazioni e Livelli di Isolamento Home Page del corso: http://www-db.deis.unibo.it/courses/tw/ Versione elettronica: 4.03.Transazioni.pdf Versione elettronica: 4.03. Transazioni-2p.pdf
DettagliORM: Approccio DAO. Versione preliminare. Antonella Poggi. Dipartimento di informatica e Sistemistica Sapienza Università di Roma
ORM: Approccio DAO Versione preliminare Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi
DettagliIntoduzione alle transazioni e alle proprieta ACID delle transazioni
Basi di Dati Complementi Parte 2: Tecnologie per MS Parte 2.4: Introduzione alle transazioni e Intoduzione alle transazioni e alle proprieta ACID delle transazioni @ Carlo Batini 2006 1 @ Carlo Batini
DettagliSistemi mono o multiutente. Un criterio per classificare un sistema di basi di dati è il numero degli utenti che possono fruirne simultaneamente.
TRANSAZIONI Introduzione alla gestione delle transazioni 2 Sistemi mono o multiutente Un criterio per classificare un sistema di basi di dati è il numero degli utenti che possono fruirne simultaneamente.
DettagliORM: Approccio DAO. Data Access Objects. ORM DAO pattern. ORM DAO: Definire le classi di dominio persistenti
Data Access Objects ORM: Approccio DAO Antonella Poggi Domenico Lembo Dipartimento di informatica e Sistemistica Università di Roma La Sapienza Progetto di Applicazioni Software Anno accademico 2009-2010
DettagliLe transazioni. Dott. Doria Mauro doriamauro@gmail.com
Hibernate Le transazioni Dott. Doria Mauro doriamauro@gmail.com Introduzione La demarcazione delle transazioni può essere fatta: In maniera programmatica: demarcazione all interno del codice applicativo.
DettagliEsecuzione concorrente di transazioni
Esecuzione concorrente di transazioni A L B E R T O B E L U S S I P A R T E I I A N N O A C C A D E M I C O 2 0 1 1-2 0 1 2 Tecniche applicate nei DBMS Le tecniche per il controllo della concorrenza che
DettagliGestione delle transazioni
Gestione delle transazioni Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: transazioni.pdf Sistemi Informativi L-B Cos è una transazione? Una
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.
DettagliLinguaggio SQL: costrutti avanzati
Linguaggio SQL: costrutti avanzati Gestione delle transazioni Introduzione Transazioni in SQL Proprietà delle transazioni 2 Pag. 1 1 Gestione delle transazioni Esempio applicativo Operazioni bancarie operazione
DettagliServlet & JDBC 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 / Servlet: interazione con un DBMS
Servlet & JDBC 1 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 0 / 2 0 1 1 Servlet: interazione con un DBMS In Java è possibile interagire con un DBMS attraverso l uso della libreria JDBC
DettagliFunzioni del DBMS. Transazioni. Transazioni: esempio. Parte VII. Gestione delle transazioni
Funzioni del DBMS Parte VII Gestione delle transazioni Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VII - 1 Gestione dei dati: cura la memorizzazione permanente dei dati ed il loro accessso Gestione
DettagliParte VII Gestione delle transazioni
Parte VII Gestione delle transazioni Basi di dati - prof. Silvio Salza - a.a. 2014-2015 VII - 1 Funzioni del DBMS Gestione dei dati: cura la memorizzazione permanente dei dati ed il loro accessso Gestione
DettagliServlet & JDBC. Alberto Belussi. anno accademico 2008/2009
Servlet & JDBC Alberto Belussi anno accademico 2008/2009 Servlet: interazione con un DBMS In Java è possibile interagire con un DBMS attraverso l uso della libreria JDBC (Java Database Connectivity). http://java.sun.com/javase/technologies/database
DettagliGestione delle transazioni
Gestione delle transazioni Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: transazioni.pdf Sistemi Informativi L-B Cos è una transazione? Una
DettagliServlet & JDBC ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010. Servlet: interazione con un DBMS. In Java è possibile interagire con un DBMS attraverso
Servlet & JDBC 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Servlet: interazione con un DBMS In Java è possibile interagire con un DBMS attraverso l uso della libreria JDBC (Java Database Connectivity).
DettagliServlet & JDBC 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 /
Servlet & JDBC 1 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 Servlet: interazione con un DBMS In Java è possibile interagire con un DBMS attraverso l uso della libreria JDBC
DettagliSQL per le applicazioni D B M G
SQL per le applicazioni Call Level Interface Le richieste sono inviate al DBMS per mezzo di funzioni del linguaggio ospite soluzione basata su interfacce predefinite API, Application Programming Interface
DettagliPag. 1. Gestione delle transazioni. Linguaggio SQL: costrutti avanzati. Esempio applicativo. Gestione delle transazioni. Prelievo. Esempio applicativo
Gestione delle transazioni Introduzione Transazioni in SQL Linguaggio SQL: costrutti avanzati 2 applicativo Operazioni bancarie operazione di prelievo dal proprio conto corrente mediante bancomat Gestione
DettagliSQL per le applicazioni D B M G
SQL per le applicazioni Call Level Interface Le richieste sono inviate al DBMS per mezzo di funzioni del linguaggio ospite soluzione basata su interfacce predefinite API, Application Programming Interface
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
Dettagli2011 Politecnico di Torino 1
SQL per le applicazioni Call Level Interface Le richieste sono inviate al DBMS per mezzo di funzioni del linguaggio ospite soluzione basata su interfacce predefinite API, Application Programming Interface
DettagliUtilizzando per la connessione al database un driver di Tipo 1:
Basi di Dati Esercitazione JDBC 25 maggio 2005 Paolo Cappellari Esercizi Considerando il seguente schema: Fornitori (CodiceFornitore, Nome, Indirizzo, Citta) Prodotti (CodiceProdotto, Tipo, Marca, Modello)
Dettagli2011 Politecnico di Torino 1
SQL per le applicazioni Call Level Interface Le richieste sono inviate al DBMS per mezzo di funzioni del linguaggio ospite soluzione basata su interfacce predefinite API, Application Programming Interface
DettagliAzioni atomiche. Definizioni. Proprietà
Azioni atomiche Definizioni Azione atomica: strumento di alto livello per strutturare programmi concorrenti e/o distribuiti, tolleranti a vari tipi di malfunzionamenti; o Realizzata con strumenti linguistici
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
Dettagli2011 Politecnico di Torino 1
Modalità d uso SQL per le applicazioni Indipendentemente dalla soluzione CLI adottata, esiste una strutturazione comune dell interazione con il DBMS apertura della connessione con il DBMS esecuzione di
DettagliCREATE VIEW. CREATE VIEW <nome_vista> AS (SELECT <lista_campi> FROM <lista_tabelle> WHERE <condizione>);
SQL AVANZATO VIEW VISTE UTENTE VIEW (Viste utente) Le VIEW sono tabelle virtuali il cui contenuto (colonne e righe) è definito da una query Le VIEW sono normalmente utilizzate per: analizzare, semplificare
DettagliLezione 1. Introduzione ai sistemi di basi di dati
Lezione 1 Introduzione ai sistemi di basi di dati Pag.1 Testi consigliati Sistemi di Basi di Dati, di Raghu Ramakrishnan e Johannes Gehrke, McGraw Hill, 2004 (http://www.ateneonline.it/rama) Database Management
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
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
DettagliJDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico
JDBC Marco Tessarotto Programmazione dei Web Server Anno Accademico 2004-2005 JDBC JDBC (Java Database Connectivity) è una API Java per accedere ed elaborare dati in una sorgente dati (di solito un db
DettagliFisica e SQL. Ing. Alessandro Pellegrini, PhD
Progettazione Fisica e SQL Ing. Alessandro Pellegrini, PhD pellegrini@diag.uniroma1.it Creazione Stored Procedure CREATE [OR REPLACE] [DEFINER = { user CURRENT_USER role CURRENT_ROLE }] PROCEDURE sp_name
DettagliJDBC. Paolo Atzeni. 11 marzo Progettazione di applicazioni, una premessa
JDBC Paolo Atzeni 11 marzo 2002 Progettazione di applicazioni, una premessa Il paradigma a tre livelli (three-tier) JDBC: la API per far interagire applicazioni Java con basi di dati marzo 2002 P. Atzeni,
DettagliTecnologie di Sviluppo per il Web
Tecnologie di Sviluppo per il Web Programmazione su Basi di Dati: JDBC Concetti Fondamentali versione 1.0 G. Mecca mecca@unibas.it Università della Basilicata JDBC >> Sommario Concetti Fondamentali Introduzione
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
DettagliBasi di Dati Esercitazione JDBC
Basi di Dati Esercitazione JDBC 30 Maggio 2006 Ing. Paolo Papotti Esercizi Considerando il seguente schema: Fornitori (CodiceFornitore, Nome, Indirizzo, Citta) Prodotti (CodiceProdotto, Tipo, Marca, Modello)
DettagliBasi di Dati. Esercitazione JDBC. Ing. Paolo Cappellari
Basi di Dati Esercitazione JDBC Ing. Paolo Cappellari Sorgente di dati ODBC Andare su: Avvio Pannello di Controllo Strumenti di Amministrazione Origine dati (ODBC). 2 Sorgente di dati ODBC DSN a.utente:
DettagliTransazioni - Parte 1
Basi di dati II Lezione 3 09/10/2008 Caputo Domenico Cosimo, Francesco Pichierri Transazioni - Parte 1 Le transazioni hanno a che fare con la programmabilità delle basi di dati. Prima di trattarle è necessaria
DettagliBasi di dati II 21 febbraio 2017 Tempo a disposizione: un ora e quarantacinque minuti.
Tempo a disposizione: un ora e quarantacinque minuti. Cognome Nome Matricola Domanda 1 (15%) Considerare un sistema con dischi con N = 1000 blocchi per traccia tempo medio di posizionamento della testina
DettagliBasi di Dati. Esercitazione JDBC 28/05/2007
Basi di Dati Esercitazione JDBC 28/05/2007 Sorgente di dati ODBC Andare su: Avvio Pannello di Controllo Strumenti di Amministrazione Origine dati (ODBC). 2 Sorgente di dati ODBC DSN a.utente: disponibile
DettagliJDBC JDBC. Driver di accesso. Autore: Roberto Fabbrica Diapo 1. Diapo 2. Diapo 3
1 JDBC JDBC è il nome della tecnologia di accesso a database di Java. Il grosso pregio di questa tecnologia è la pressoché completa indipendenza del codice dal tipo di database o di DBMS a cui si intende
DettagliEsecuzione concorrente di transazioni
Esecuzione concorrente di transazioni A L B E R T O B E L U S S I P A R T E I A N N O A C C A D E M I C O 2 0 1 0-2 0 1 1 Osservazione Per gestire con prestazione accettabili il carico di lavoro tipico
DettagliPUNTO 1. create index cliente_indice nome on CLIENTE (nome); create index linea_ordine_indice_quantita on LINEA_ORDINE (quantita);
Barbagallo Valerio Da Lozzo Giordano Mellini Giampiero PUNTO 1 Db usato: DB2 express C versione 9 Successivamente è riportato l'sql per la creazione della base di dati. create table CLIENTE( nome char(20),
DettagliTransazioni. Architettura di un DBMS. Utente/Applicazione. transazioni. Transaction Manager. metadati, statistiche.
Query/update Query plan Execution Engine richieste di indici, record e file Index/file/record Manager comandi su pagine Query Compiler Buffer Manager Lettura/scrittura pagine Architettura di un DBMS Utente/Applicazione
DettagliCap. 1-I 1 I sistemi informatici
Libro di testo A. Chianese,V. Moscato, A. Picariello, L. Sansone Basi di dati per la gestione dell informazione McGraw-Hill, 2007 Informazioni sul corso http://www.docenti.unina.it/lucio.sansone Ricevimento
DettagliSQL per le applicazioni. Basi di dati. Elena Baralis. Pag Politecnico di Torino 1 D B M G2 D B M G4 D B M G5 D B M G6. SQL per le applicazioni
Linguaggio SQL: costrutti avanzati Introduzione Concetto di cursore Aggiornabilità SQL statico e dinamico Embedded SQL Call Level Interface (CLI) Stored Procedure Confronto tra le alternative DB M B G
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
DettagliBasi di Dati e Sistemi Informativi. Le Transazioni. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale
Giuseppe Loseto Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Struttura DBMS Gestore delle interrogazioni Decide le strategie di accesso ai dati per rispondere alle interrogazioni Gestore
DettagliSQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)
1 SQL Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS) a.a. 2015/2016 http://www.di.uniba.it/~lisi/courses/basi-dati/bd2015-16.htm dott.ssa Francesca A. Lisi francesca.lisi@uniba.it
DettagliVincoli, procedure e regole attive in SQL. SQL: vincoli, trigger 1
Vincoli, procedure e regole attive in SQL SQL: vincoli, trigger 1 Qualità dei dati Qualità dei dati: correttezza, completezza, attualità In molte applicazioni reali i dati sono di scarsa qualità (5% -
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à
DettagliTrigger. Basi di dati attive. Trigger: regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi
Basi di dati attive : regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi Oggi fanno parte dello standard SLQ-99 In passato ogni DBMS li implementava seguendo
DettagliIndice Prefazione... 1 1 SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 Vincoli e Trigger... 9
Prefazione... 1 Contenuti... 1 Ringraziamenti... 2 1 SQL Procedurale/SQL-PSM (Persistent Stored Modules)... 3 1.1 Dichiarazione di funzioni e procedure... 3 1.2 Istruzioni PSM... 4 2 Vincoli e Trigger...
DettagliLa gestione della concorrenza
La gestione della concorrenza R. A. Elmasri, S. B. Navathe (Addison Wesley - Pearson) Sistemi di Basi di dati Complementi Capitolo 1 e Capitolo 2 Appunti dalle lezioni Transazione Transazioni e tecnologie
DettagliPaolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Basi Di Dati, Seconda Edizione McGraw-Hill Italia, 1999 Capitolo 9
Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Basi Di Dati, Seconda Edizione McGraw-Hill Italia, 1999 Capitolo 9 Transazione Insieme ordinato di operazioni di lettura e scrittura su
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
DettagliLaboratorio di Basi di Dati SQL avanzato
Laboratorio di Basi di Dati SQL avanzato Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Interrogazioni nidificate Syntax: SELECT {* [, ]} FROM [,
DettagliCorso di PHP. Prerequisiti. 8.1 PHP e MySQL. Conoscenza MySQL Tecnica della programmazione
Corso di PHP 8.1 PHP e MySQL 1 Prerequisiti Conoscenza MySQL Tecnica della programmazione procedurale ad oggetti Principi di programmazione web Programmazione elementare in PHP 2 1 Introduzione In questa
DettagliBasi di dati attive. Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger).
Basi di dati attive Una base di dati è ATTIVA quando consente la definizione e la gestione di regole di produzione (regole attive o trigger). Tali regole vengono attivate in modo automatico al verificarsi
DettagliL architettura di un DBMS
L architettura di un DBMS sources: Lucidi del corso di Lucidi del corso di Laboratorio di Basi di dati e sistemi informativi, Montesi, Magnani, Corso di laurea in Informatica per il management, Scienze
DettagliBasi di dati II Esame 22 settembre 2017 Compito A Tempo a disposizione: due ore.
Basi di dati II Esame 22 settembre 2017 Compito A Tempo a disposizione: due ore. Cognome Nome Matricola Domanda 1 (20%) Considerare le relazioni R1 ed R2 e l indice I2 su R2 schematizzati sotto. I riquadri
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
DettagliConnessione ad una fonte di dati ODBC
Linguaggio Java JDBC L architettura JDBC: driver, connessione, statement e result set Invio di comandi SQL Transazioni: COMMIT, ROLLBACK e livelli di isolamento Utizzo avanzato dei result set: cenni Connessione
DettagliESERCITAZIONE: AZIENDA
ESERCITAZIONE: AZIENDA Homework 24 ottobre 2002 Emanuel Weitschek emanuel@dia.uniroma3.it Prerequisiti (software) PostgreSQL pgadmin Driver JDBC Ambito Si consideri una base di dati che contiene informazioni
DettagliAzioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati
Azioni Select e join non consentono di modificare il contenuto del DB Azioni desiderate Inserzione di nuovi dati Aggiornamento di dati Cancellazione di dati Aggiunta di un record insert into utenti(nome,tel,codice_u)
DettagliTali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla. eseguono azioni sulla base di dati stessa.
Una base di dati è ATTIVA quando consente la definizione e la gestione di regole attive o trigger. Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla base di dati
DettagliLinee guida per la programmazione di transazioni in PL/SQL
Linee guida per la programmazione di transazioni in PL/SQL Giuseppe Berio Giuseppe Berio DI - Unito 1 Esempio La transazione deve registrare l evasione di un ordine, rappresentato su più tabelle specializzate
DettagliBasi di Dati e Sistemi Informativi. Architetture Distribuite per Basi di Dati. Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale
Architetture Distribuite per Basi di Dati Giuseppe Loseto Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Architetture Distribuite Parallelismo: usato per ottimizzare le prestazioni di componenti/sistemi
DettagliJDBC di base. Le classi/interfacce principali di JDBC
JDBC di base Java Database Connectivity è il package Java per l accesso a database relazionali il package contiene interfacce e classi astratte completa indipendenza del codice dal tipo di database o di
DettagliPROGRAMMAZIONE DIDATTICA DI DIPARTIMENTO A.S. 2017/2018
ISTITUTO ISTRUZIONE SUPERIORE EINAUDI - SCARPA TECNOLOGICO - ECONOMICO PROFESSIONALE Via J. Sansovino, 6-31044 MONTEBELLUNA (TV) 0423 23587 - Fax 0423 602717 web: www.iiseinaudiscarpa.gov.itemail: info@iiseinaudiscarpa.gov.it
DettagliTransazioni in SQL. Nicola Vitacolonna Corso di Basi di Dati Università degli Studi di Udine 4 dicembre 2013
Transazioni in SQL Nicola Vitacolonna Corso di Basi di Dati Università degli Studi di Udine 4 dicembre 2013 1 Introduzione Informalmente, una transazione è una sequenza (arbitrariamente lunga) di operazioni
DettagliLa gestione della concorrenza in pratica
La gestione della concorrenza in pratica Basi di dati: Architetture e linee di evoluzione - Seconda edizione Capitolo 2 Appunti dalle lezioni Soluzioni possibili Uno scheduling è considerato corretto se
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
DettagliBasi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive
Basi di dati attive Paolo Atzeni Stefano Ceri Basi di dati attive BD con componente per la gestione di regole Evento- Condizione-Azione (regole di produzione): eventi: normalmente modifiche della base
DettagliCorso di. Basi di Dati I. 9. Esercitazioni in SQL: Check, asserzioni, viste
Corso di Basi di Dati 9. Esercitazioni in SQL: Check, asserzioni, viste A.A. 2016 2017 Check Come abbiamo visto, SQL permette di specificare vincoli sugli attributi e le tabelle attraverso il comando check
Dettagli