Corso di Laboratorio di Applicazioni Informatiche. Progetti di Basi di Dati a.a. 2008-9

Documenti analoghi
LABORATORIO di INFORMATICA

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

JDBC. Paolo Atzeni. 11 marzo Progettazione di applicazioni, una premessa

Tecnologie di Sviluppo per il Web

Servlet & 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 /

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

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

JDBC. Marco Tessarotto Programmazione dei Web Server Anno Accademico

ITI M. FARADAY. Programmazione a. s

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

Programmazione modulare

Basi di Dati Architetture Client/Server

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo

Servlet & JDBC. Alberto Belussi. anno accademico 2008/2009

Applicazioni e Architetture Internet. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste. Basi di Dati e Web. Credits to: Prof. M. Di Felice UniBO

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

APPLICAZIONI DELLE BASI DI DATI

Ricevimento: dopo la lezione (in aula) o su appuntamento (Sede Scientifica Pal. 1 Primo Piano)

Progetto di Applicazioni Software

Laboratorio di Applicazioni Internet Anno Accademico 2005/2006

DBMS ed Applicazioni Motivazioni

Applicazioni tradizionali

Architetture Client/Server e World Wide Web

Ricevimento: dopo la lezione (in aula) o su appuntamento (Sede Scientifica Pal. 1 Primo Piano)

JDBC versione base. Le classi/interfacce principali di JDBC

Corso di Informatica Modulo T3 B2 - Database in rete

Basi di Dati II. Introduzione al corso

L evoluzione delle Applicazioni Distribuite

Progetto Finale: Progettazione di un database e di una applicazione

CORSO DI BASI DI DATI

SISTEMI OPERATIVI, RETI, INTERNET

CORSO DI ALGORITMI E PROGRAMMAZIONE. JDBC Java DataBase Connectivity

ARCHITETTURA DI UN DBMS

CORSO DI BASI DI DATI E CONOSCENZA GESTIONE DEI DATI E DELLA CONOSCENZA

Architettura Client-Server. In a nutshell

PROGRAMMAZIONE DIDATTICA DI DIPARTIMENTO A.S. 2017/2018

Accesso alle Basi di Dati

Introduzione a JDBC. si inviano comandi SQL; si recuperano i risultati dei comandi.

MODULO 2. Query normali e parametriche Query di:

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

PROGRAMMAZIONE CLASSE: 4A-4B-4I DISCIPLINA: INFORMATICA A.S. 2016/17

Esercitazione 3. Vincoli di integrità. Approccio Procedurale

JDBC di base. Le classi/interfacce principali di JDBC

MAP-SERVICE & INFO-SERVICE

Grafica ed interfacce per la comunicazione. Scienze della Comunicazione A.A.2013/14

Alcune idee sui sistemi software e la loro architettura

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

PROGRAMMAZIONE DISCIPLINARE DIPARTIMENTALEDI INFORMATICA

3.3.6 Gli operatori Le funzioni di accesso al tipo Le strutture di controllo Le funzioni

CURRICOLO DIPARTIMENTO INFORMATICA PRIMO BIENNIO

CLASSE: 5 INF MATERIA: TPSIT DOCENTE: EPIS CARLO PROGRAMMAZIONE DIDATTICA

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

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

Esercitazione su JDBC

Tecnologie di Sviluppo per il Web

Indice generale. Introduzione...xiii. Uno sguardo più da vicino a JavaScript...17

MODULO 1 BASI DI DATI, MODELLI RELAZIONALI E GESTIONE DEI DATABASE

APPENDICE 4 AL CAPITOLATO TECNICO

MVC - Principio. MVC Model View Controller. MVC - Terminologia. MVC - Funzionamento. Richiesta. Controller. Model. Risposta. View

Docente: Laura Po

BASI DI DATI. basi di dati - introduzione ai sistemi informativi 1

V. Moriggia Modelli di Base Dati. Modelli di Base Dati. a.a. 2001/

liceo B. Russell PROGRAMMAZIONE INDIRIZZO: SCIENTIFICO SCIENZE APPLICATE TRIENNIO: TERZA DISCIPLINA: INFORMATICA

Giacomo Fauser. Istituto Tecnico Settore Tecnologico Via Ricci, Novara PIANO DI LAVORO. Per l anno scolastico

Basi di Dati Ingegneria Informatica e delle Telecomunicazioni

TECNICA ANNO SCOLASTICO /2019 PROGRAMMAZIONE DISCIPLINARE DIPARTIMENTALEDI INFORMATICA DOCENTI

Progetto d esame. La logica di gioco. Tecnologie e applicazioni web, a.a 2017/2018. Fase di posizionamento

REGOLAMENTO DEL PROGETTO DEL CORSO DI BASI DI DATI (a.a )

Corso Web Master. E' richiesta una padronanza dell'utilizzo del computer ed esperienza di navigazione su Internet.

MS Access Un DBMS relazionale per Windows?

Programmazione modulare

Tecnologie di Sviluppo per il Web

PROGRAMMA DEL CORSO MASTER IN WEB DESIGN & DEVELOPER

Basi di Dati. JDBC - Esercitazione n. 4 Quaderno n. 4. Passi preliminari per lo svolgimento delle esercitazioni

Gestione delle informazioni. Tot. h 10. Base di Dati. Tot. h 56. Grafica in C# - Laboratorio- Tot. h 40. Dipartimento Informatica Materia Informatica

Concetti base. Impianti Informatici. Web application

SISTEMI INFORMATIVI AZIENDALI

Tecnologie di Sviluppo per il Web Lab. di Tecnologie di Sviluppo Web

Basi di Dati. Applicazioni web in PHP per l interrogazione di basi di dati. Esercitazione n. 4

A.s Programma di Informatica

INDICE. Nextre Academy. Academy Java. Chi cerchiamo. Dalla candidatura all inserimento. Programma parte 1. Programma parte 2

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

Realizzazione di un sistema a supporto del testing automatico di Rich Internet Applications

Gestione delle informazioni Base di dati Modello dei dati Indipendenza dei dati Accesso ai dati Vantaggi e svantaggi dei DBMS

Elena Baralis 2007 Politecnico di Torino 1

Corso di Reti di Calcolatori T

Progetto di Applicazioni Software

Programma Master Programmatore Java

Microsoft Access. Nozioni di base. Contatti: Dott.ssa Silvia Bonfanti

R. Orsini - A. Roncato - F. Dalla Libera

PROGRAMMAZIONE DISCIPLINARE DIPARTIMENTALE DI INFORMATICA

Corso di Laurea in Informatica Basi di Dati a.a

BASI DI DATI E CONOSCENZA GESTIONE DEI DATI E DELLA CONOSCENZA PRIMO EMICORSO - BASI DI DATI. Roberto Basili a.a. 2014/15

Modulo 2 Architetture dei SD Lezione 1

Transcript:

Corso di Laboratorio di Applicazioni Informatiche Progetti di Basi di Dati a.a. 2008-9

Outline Obbiettivi Tecnologie Struttura di un progetto Esempi Deadlines Conlusioni

Obbiettivi Applicare le conoscenze sviluppate nel corso di Basi di Dati a problemi di dimensione realistica Sviluppare competenze verticali nell ambito di alcune tecnologie Acquisire prassi tipiche nell ambito della ingegneria dei sistemi basati sulla tecnologia dei DBMS Sviluppare le proprie attitudini relative al teamwork

Tecnologie DBMS Progettazione ER Modelli logici (relazionali) dei dati SQL Three tier C/S architecture From Java stand-alone applications to C/S processes Web-based applications Server-side Client-side Data-side

Componenti dei sistemi data-intensive Tre tipi separati di funzionalità: gestione dei dati logica di applicazione presentazione L architettura del sistema determina se queste tre componenti risiedono su un singolo sistema (tier) oppure se sono distribuite su diversi tier

Architettura a livello singolo Tutte le funzionalità sono combinate in un singolo tier, generalmente un mainframe Accesso utente tramite terminali non intelligenti Vantaggi : facilità di manutenzione e amministrazione Svantaggi : Oggi gli utenti si aspettano interfacce utente di tipo grafico Il calcolo centralizzato di tutte le interfacce grafiche è troppo costoso per un singolo sistema

Architettura JDBC Applicazione: Inizia e termina la connessione ad un data source Driver Manager :si occupa di caricare i driver JDBC e di passare le chiamate JDBC dell applicazione al driver specifico Driver : Stabilisce la connessione con il data source Data Source : processa i comandi provenienti dal driver e restituisce i dati richiesti

Architettura JDBC Java Application JDBC driver manager JDBC/ODBC JDBC/native JDBC middleware JDBC Driver bridge bridge (various DBMS) (DBMS Specific) ODBC Driver Native driver (DBMS specific) DBMS Data Source

Applicazione Java conndb (1) import java.sql.*; Caricare il driver JDBC: Class.forName( oracle/jdbc.driver.oracledriver ); -D jdbc.drivers=oracle/jdbc.driver2 Definire l URL della connessione al Data Base: url= jdbc:oracle:www.uniroma2.it:308 ; "jdbc:connectiontype://host:port/database" Stabilire la connessione: String user = "nomeutente"; password = "password"; Connection con = DriverManager.getConnection(url, user, password); Creare un oggetto statement. Statement statement =connection.createstatement();

Applicazione Java conndb (2) Eseguire una query : (ad es. INSERT,SELECT,DELETE) String query = "SELECT col1, col2, col3 FROM table"; ResultSet results = statement.executequery(query); Analizzare/Calcolare i risultati:analisi del risultato contenuto nella classe ResultSet while (results.next()) { String a = results.getstring(1); Integer eta = results.getint(2); System.out.print( NOME= " + a); System.out.print("ETA = " + eta.tostring()); System.out.print("\n");} Chiudere/Rilasciare la connessione e lo statement con.close(); statement.close();

Architetture client-server Divisione del lavoro: thin client Il client implementa solo l interfaccia utente grafica Il server implementa la logica dell applicazione e la gestione dei dati Divisione del lavoro: thick client Il client implementa sia l interfaccia grafica che la logica dell applicazione Il server implementa la gestione dei dati

Architetture client-server (segue) Svantaggi dei thick client Nessun luogo centralizzato per aggiornare la logica dell applicazione Problemi di sicurezza: il server deve fidarsi dei client Il controllo di accesso e l autenticazione devono essere gestiti dal server I client devono lasciare la base di dati del server in uno stato consistente Una possibilità: incapsulare tutti gli accessi alla base di dati in stored procedure Non scalabile a più di un centinaio di client Grossi trasferimenti di dati tra server e client Più di un server crea un problema: x client, y server: x*y connessioni

Architetture 3-tier Databases Legacy Systems External Applications Thin Client Rich Client

L architettura a tre livelli Livello di presentazione Programma client (browser web) Livello intermedio Application Server Livello di gestione dati Sistema di base di dati

I tre livelli Livello di presentazione Interfaccia primaria con l utente Deve adattarsi a diversi dispositivi di visualizzazione (PC, PDA, telefoni cellulari, accesso vocale?) Livello intermedio Implementa la logica dell applicazione (implementa azioni complesse, mantiene lo stato tra diversi passi di un flusso di lavoro) Accede a diversi sistemi di gestione dei dati Livello di gestione dei dati Uno o più sistemi standard per la gestione di basi di dati

Esempio 1: prenotazioni aeree Costruire un sistema per prenotazioni aeree Cosa viene fatto dai vari livelli? Sistema di basi di dati Informazioni sulle aerolinee, posti disponibili, informazioni sui clienti, etc. Application server Logica per fare le prenotazioni, cancellare le prenotazioni, aggiungere nuove aerolinee, etc. Programma client Log in dei vari utenti, visualizzazione di moduli e output in forma leggibile

Esempio 2: iscrizione a corsi Costruire un sistema usando il quale degli studenti possono iscriversi a dei corsi Sistema di base di dati Informazioni sugli studenti, informazioni sui corsi, informazioni sui docenti, disponibilità dei corsi, prerequisiti, etc. Application server Logica per modificare un corso, cancellare un corso, creare un nuovo corso, etc. Programma client Login dei vari utenti (studenti, personale, professori), visualizzazione di moduli e output in forma leggibile

Tecnologie Programma client (Browser web ) Application Server (Tomcat, Apache) HTML Javascript XSLT JSP, Servlets, PHP CGI, Cookies DBMS (MySQL, Oracle, DB2) SQL, Stored Procedures, XML

Struttura di un progetto Studio del dominio e sviluppo del documento di requisiti Progettazione Concettuale Logica Sviluppo del DB Sviluppo del server (logica applicativa) Sviluppo del client Validazione e Documentazione

Esempi: Calcio e Notizie Una agenzia di stampa specializzata in servizi sportivi decide di realizzare un prodotto per la registrazione dei dati tecnici di un incontro di calcio. Alcuni giornalisti sportivi in tempo reale inseriscono dati su punizioni, passaggi, attacchi e ammonizioni/espulsioni di un incontro. Il parallelismo e la concorrenza dei dati richiedono l'uso di un modello dei dati relazionali e la progettazione di un database dedicato. Una componente generale descriverà le squadre ed i giocatori dei diversi team, mentre una seconda componente sarà utilizzata per uno specifico incontro.

Calcio e Notizie (2) Modellare la nozione di campionato di calcio e di incontro In un incontro saranno registrati i goal, i dati disciplinari ed alcune notizie tattiche. Per la registrazione i tecnici possono contare su una applicazione (a menu) che permette l'inserimento dei dati puntuali e l'aggiornamento in tempo reale. Ogni inserimento si basa su una serie di scelte dai menu corrispondenti, cosi' da minimizzare i tempi di inserimento. A fine partita sara' possibile derivare l'insieme delle statistiche per le due squadre, per i singoli giocatori (per es. insieme dei falli fatti o subiti)

Calcio e Notizie: Applicazione Garantire la contabilizzazione di ogni evento; Segnalare al servizio dati generali relativi ad un evento (per esempio se una squadra ha totalizzato più di un certo numero di ammonizioni) Creazione del menu finale (o tra primo e secondo tempo) con la rassegna dei dati tecnici (ad es. falli e ammoniti) e tattici (ad es. numero di attacchi dal centro dalla destra o dalla sinistra).

Calcio e Notizie: Componente procedurale Gestione a video della interazione del giornalista sportivo per l'inserimento in tempo reale dei dati di gioco; Generazione del menu di sintesi tecnico-tattica al termine della partita; Aggiornamento della componente generale del campionato con i dati sintetici (ad es. percentuali totali della partita) relativi all'incontro effettuato con una successivo report (per ogni squadra) delle partite effettuate e dei dati accumulati durante il campionato.

Osservazioni e Scadenze L esame avrà il voto in trentesimi L iscrizione ad un'area progettuale è obbligatoria 27 Maggio 2009: deadline per inviare esplicita mail al docente di riferimento ORARI di Ricevimento settimanali (4 ore) in ufficio o per email Max dimensione di un gruppo (BDD: 3 persone) Deadline per la consegna del progetto: 10 Luglio 2009 Validità del progetto: a.a. 2008/9 Date ulteriori di discussione del progetto (una per ogni appello previsto dalla Facoltà)

Summary Perché scegliere il progetto LAI di BdD: Per imparare ad usare le tecnologie DBMS Per sviluppare un sistema software completo per la prima volta Per imparare a lavorare in team Scadenze Registrazione al progetto: 27 Maggio 2009 Consegna progetto: 10 Luglio 2009