Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, JDBC e applicazioni 31/05/2004

Documenti analoghi
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Forme normali. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill. La normalizzazione. Normalizzazione. Una relazione con anomalie.

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, La normalizzazione

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

2011 Politecnico di Torino 1

Servlet & JDBC ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010. Servlet: interazione con un DBMS. In Java è possibile interagire con un DBMS attraverso

JDBC versione base. Le classi/interfacce principali di JDBC

JDBC di base. Le classi/interfacce principali di JDBC

JDBC: Introduzione. Java Database Connectivity (JDBC): parte 1. Schema dei legami tra le classi principali. Principali classi/interfacce di JDBC

Elena Baralis 2007 Politecnico di Torino 1

Capitolo 5. Soluzione: Soluzione in C:

Basi di dati attive. Paolo Atzeni Stefano Ceri. Basi di dati attive

SQL e linguaggi di programmazione Applicazioni ed SQL: architettura

Introduzione JDBC interfaccia java.sql driver caricare i driver

Interrogazioni nidificate

MODULO 2. Query normali e parametriche Query di:

Basi di Dati Esercitazione JDBC. Giugno 2007

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, Progettazione logica. Dati di ingresso e uscita

Interrogazioni nidificate

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Le Basi di Dati Attive

Programma Master Programmatore Java

Generalizzazione. Docente : Alfredo Cuzzocrea Tel. : Informatica

IMPIEGATO(Nome, Salario, DipNum) DIPARTIMENTO (DipNum, NomeManager)

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, Progettazione logica. Dati di ingresso e uscita

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, IL MODELLO RELAZIONALE

Basi di Dati Parallele

Requisiti della base di dati. Schema concettuale

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

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

Basi di dati Modelli e linguaggi di interrogazione

I modelli logici dei dati. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw -Hill, IL MODELLO RELAZIONALE

Tali regole vengono attivate in modo automatico al verificarsi di specifici eventi sulla. eseguono azioni sulla base di dati stessa.

Viene richiesto di MIN CARD(S,E) = 1 UPDATE DELETE MAX CARD(S,E) = 3 INSERT UPDATE

Normalizzazione. Lezione 7. Normalizzazione e integrità referenziale. Consideriamo la seguente tabella. Anomalie di inserimento

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

Operazioni scatenanti. Nozione ed uso. Sintassi. Esempio

Programmazione Java Avanzata Spring - JDBC

Sommario. Introduzione... 13

JDBC. A. Bechini Accesso a DataD con Java

Basi di dati e Web (Moduli: Laboratorio e Siti Web centrati sui Dati) Prova scritta del 14 luglio 2008

Il PROCESSO UNIFICATO

SQL. SQL: una visione panoramica. SQL: "storia" Definizione dei dati

LABORATORIO di INFORMATICA

JDBC: SQL NEI LINGUAGGI DI PROGRAMMAZIONE

Corso di Basi di Dati

SQL e linguaggi di programmazione Applicazioni ed SQL: architettura

I.I.S. G. COSSALI - ORZINUOVI DATABASE. Marzo 2017 Prof. Dario Tomasoni 1

Corso di Informatica

Basi di Dati Ingegneria Informatica e delle Telecomunicazioni

Programmazione Java Avanzata

SQL: DDL, VI, Aggiornamenti e Viste

Le basi di dati. Le basi di dati. dalla teoria all'utilizzo di tutti i giorni. Alessandro Tanasi

Forme normali. Le forme normali sono di solito definite sul modello relazionale, ma hanno senso in altri contesti, ad esempio il modello E-R

Basi di Dati CREAZIONE E POPOLAMENTO DI UNA BASE DI DATI

SQL nei linguaggi di programmazione

Tecnologia delle Basi di Dati Esercitazione #4 Definizione dei trigger in Oracle

Java: la libreria delle classi

Utilizzo delle Maschere in Microsoft Access

Basi di Dati Concetti Introduttivi

Introduzione Concetti Generali Pratica su Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 1

JDBC Driver Manager. JDBC Architettura generale. JDBC - Tipi di dato. JDBC - Flusso applicativo. JDBC - Tipi di dato. ODBC Driver. Livello di gestione

Università degli Studi di Bologna Facoltà di Ingegneria. Tecnologie Web L-A A.A Esercitazione 08 DAO e Hibernate

Laboratorio di Basi di Dati Esercizio 8.4/9.1

DATABASE PER IL WEB. Programmazione Web 1

PROVA FINALE Ingegneria del software

Sviluppo Applicazioni Mobile Lezione 12 JDBC. Dr. Paolo Casoto, Ph.D

JDBC per l accesso Java a DB. Tito Flagella tito@link.it

Esercitazione su JDBC

DBMS ed Applicazioni Motivazioni

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2011/2012. Basi di dati

Trigger. Basi di dati attive. Trigger: regole che specificano azioni attivate automaticamente dal DBMS al verificarsi di determinati eventi

Basi di dati I

XML e Windows Phone. Semplice tutorial per l'utilizzo di documenti e dati XML in un'app per Windows Phone.

Tecnologia e Applicazioni Internet 2011/12

Basi di dati Architetture e linee di evoluzione

SQL e linguaggi di programmazione. Cursori. Cursori. L interazione con l ambiente SQL può avvenire in 3 modi:

Normalizzazione di Basi di Dati

revisione dicembre 2010

Caricamento della classe driver. Apertura della connessione. DriverManager.getConnection() Creazione di uno statement

Esercitazione TIGA: JDBC Soluzione proposta

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

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION

SQL e applicazioni. Capitolo 8. SQL e linguaggi di programmazione. Applicazioni ed SQL: architettura. Una difficoltà importante.

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

Triggers. Antonella Poggi, Claudio Corona. Dipartimento di informatica e Sistemistica Università di Roma La Sapienza

Raccolta di tutorial Python #1: basi e Tkinter dal sito francescomilanese.com SOMMARIO

Atzeni, Ceri, Paraboschi, Torlone Basi di dati

Scheda 15 Accedere ai DataBase con JDBC

Silvia Chiusano, Paolo Garza 1

ASP e Database. A cura di Michele Cavalieri

ESERCIZI SQL. Esercizio 1

BASI DI DATI. Quaderno 4: Progetto di una base di dati e realizzazione di un applicazione web

18/05/2016 MANUALE UTENTE

SQL: Definizione e Manipolazione di Relazioni. Capitolo 2

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2010/2011. Basi di dati

Programmazione Orientata agli Oggetti

JDBC: Java e database.

Transcript:

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1996-2002 Approfondimenti dal capitolo 5: JDBC e applicazioni 31/05/2004 Un esempio: package catenanegozi (Piccola parte di) sistema informativo di una catena di negozi dati su articoli e produttori Operazioni inserimento, modifica, eliminazione di articoli e produttori elenco complessivo Interfaccia banale (console) 2

Esempio, l'interfaccia Interfaccia banale (console) -----------Menu principale----- 1.Stampa i dati correnti 2.Gestione articoli 3.Gestione produttori 0.Esci Scegli --> 3 Esempio, la base di dati Articoli (Matricola, Descrizione, Produttore, Prezzo) Produttori (CodMarca,Nome,Nazione) 4

Esempio, struttura dell'applicazione È molto rudimentale, ma mostra alcuni concetti importanti (e alcuni problemi che risolveremo solo in parte) Sfrutta solo parzialmente il paradigma a oggetti 5 Esempio, le classi per i dati Articolo Produttore ogni oggetto di queste classi corrisponde ad una ennupla della corrispondente tabella 6

Operazioni CRUD Operazioni sugli oggetti corrispondenti alle ennuple Create : ogni componente sa inserire nella base di dati i propri dati Retrieve : dato il valore di un attributo, cerca un componente nella base di dati Update : ogni componente sa aggiornare i propri dati nella base di dati Delete : ogni componete sa eliminare i propri dati dalla base di dati 7 Operazioni CRUD Le operazioni di aggiornamento sono realizzate con metodi di oggetto: l'oggetto "si inserisce", "si cancella", "si modifica" (abbiamo usato il polimorfismo, ereditando da una classe astratta) Le operazioni di ricerca sono realizzate con metodi statici (sono a "a livello della classe") static Produttore ricercapercodice(int codmarca) static List ricercapernome(string nome) 8

Vincoli di integrità Sulla base di dati sono definiti vincoli di chiave e di integrità referenziale eventuali violazioni sarebbero rifiutate ma causerebbero eccezioni dobbiamo governare il tutto nell'applicazione 9 Vincoli di integrità, esempi Chiave: prima di inserire un articolo, debbo verificare che non ne esista già uno con la stessa matricola Integrità referenziale: prima di inserire un articolo debbo verificare che il relativo proprietario esista Inoltre: prima di eliminare un articolo debbo verificare che esista 10

L'applicazione Le classi Gestore realizzano l'applicazione ed effettuano i controlli gestiscono anche l'interfaccia (in modo poco elegante) La classe Report produce una visualizzazione complessa 11 Componenti di servizio DataSource l'unica classe che conosce base di dati e driver offre metodi per "chiudere" connessioni, result set e istruzioni (marginali qui, ma essenziali in altri contesti, ad esempio applicazioni Web) 12

Componenti di servizio, 2 PersistenceException eccezione che segnala problemi sulla persistenza viene rilanciata dalle nostre classi a seguito della cattura di SQLException sollevate dalle operazioni JDBC nella cattura vengono però effettuate le operazioni di chiusura 13 Estensione Introdurre una funzione che permette di modificare il codice di un produttore attenzione ai vincoli di integrita' referenziale serve una transazione 14

} int oldcod = 104; int newcod = 3000 ; con.setautocommit(false); Statement up = con.createstatement(); ResultSet resultset = up.executequery("select * from produttori where codmarca = " + oldcod ); if(resultset.next()){ String nome = resultset.getstring("nome"); String nazione = resultset.getstring("nazione"); up.executeupdate("insert into produttori values (" + newcod + ",'" + nome + "','" + nazione + "')"); up.executeupdate("update articoli set produttore = "+ newcod + " where produttore = " + oldcod); up.executeupdate ("delete from produttori where codmarca = " + oldcod); } else System.out.println("Il produttore non esiste");} con.commit(); 15 Osservazioni Connessioni: l'approccio è molto naif: per ogni operazione apro e chiudo Chiavi e riferimenti abbiamo usato un "approccio basato su valori", in modo estremo, poco coerente con il paradigma a oggetti 16

Osservazioni, 2 le classi che corrispondono alle tabelle e alla loro gestione sono "standard": una variabile per ogni attributo, con un metodo set e un metodo get inserimento di tutti i valori modifica ed eliminazione data la chiave Abbiamo semplificato un po' con qualche classe astratta, ma 17 Framework per la persistenza Soluzioni metodologiche per la programmazione su basi di dati gestione sofisticata delle connessioni ("pool") e del DataSource "generazione" delle classi corrispondenti alle tabelle, con i metodi CRUD Rimandiamo ai corsi successivi 18