Una metodologia di progettazione di applicazioni web centrate sui dati



Documenti analoghi
Una metodologia di progettazione di applicazioni web centrate sui dati

Università degli studi Roma Tre Dipartimento di informatica ed automazione. Tesi di laurea

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

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

Architettura MVC-2: i JavaBeans

19. LA PROGRAMMAZIONE LATO SERVER

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 /

Progetto di Basi di Dati e Multimidia Laboratorio Struttura dell applicazione web

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

ITI M. FARADAY Programmazione modulare a.s

1. BASI DI DATI: GENERALITÀ

Lezione V. Aula Multimediale - sabato 29/03/2008

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

User Tools: DataBase Manager

Introduzione ai database relazionali

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Definizione di domini

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

Informatica per le discipline umanistiche 2 lezione 10

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Corso di Informatica Modulo T3 B2 - Database in rete

Volumi di riferimento

Progettaz. e sviluppo Data Base

Al giorno d oggi, i sistemi per la gestione di database

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Prova Scritta di Basi di Dati

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Il Modello Relazionale

Organizzazione degli archivi

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Appunti sulle basi di dati. Cos è una base base di dati? Introduzione. D. Gubiani. 19 Luglio 2005

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Esercitazione sulle libpq - libreria C per PostgreSQL

I database. Cosa sono e a cosa servono i Database

Siti web centrati sui dati (Data-centric web applications)

Sistema G.U.S. Capitolato di Gara ALLEGATO A

Linguaggio SQL. Structured Query Language

Basi di Dati: Corso di laboratorio

I Sistemi Informativi

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

Database. Si ringrazia Marco Bertini per le slides

Progetto ittorario Anno scol

Capitolo 13. Interrogare una base di dati

DBMS (Data Base Management System)

Progettazione di una base di dati Ufficio della Motorizzazione

Progettazione Web Applicazioni client-server

PHP e Structured Query Language

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

Esercitazione 8. Basi di dati e web

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini

SQL. Alcune note sulla definizione dei dati

DATABASE.

Applicazioni web centrati sui dati (Data-centric web applications)

Corso sul linguaggio SQL

Implementazione di MVC. Gabriele Pellegrinetti

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

LA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE

La Metodologia adottata nel Corso

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste

LA REALIZZAZIONE DI APPLICAZIONI. Quattro parti: Gestione dati. Business rules. Logica applicativa. Interfaccia utente. Molte possibili architetture

HTML il linguaggio per creare le pagine per il web

Database. Francesco Tapparo Informatica e Bioinformatica /16

Obiettivo dell esercitazione

I.T.C. Mario Pagano Napoli

COGNOME MATRICOLA. Con vincoli di integrita referenziale: INTERVENTO.CodTecnico à TECNICO.Codice INTERVENTO.MatCaldaia à CALDAIA.

RELAZIONE SCRITTA RELATIVA AL PROGRAMMA DI GESTIONE SITO E-COMMERCE

Corso sul linguaggio SQL

ING SW. Progetto di Ingegneria del Software. e-travel. Requisiti Utente. Specifiche Funzionali del Sistema

Tesi Di Laurea. Anno Accademico 2010/2011. relatore Ch.mo prof. Cinque Marcello. correlatore Ch.mo Ing. Catello Cacace

Università degli Studi "Roma Tre" Dipartimento di Informatica ed automazione. Facoltà di Ingegneria

Archivi e Basi di Dati

Informatica (Basi di Dati)

Programma del Corso. Dati e DBMS SQL. Progettazione di una. Normalizzazione

I database relazionali (Access)

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

MODELLO RELAZIONALE. Introduzione

OSSIF WEB. Manuale query builder

La base di dati (database)

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Introduzione alla teoria dei database relazionali. Come progettare un database

Compito Basi di Dati. Tempo concesso: 90 minuti 08 Giugno 2006 Nome: Cognome: Matricola:

PROXYMA Contrà San Silvestro, Vicenza Tel Fax

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

Laboratorio di Basi di Dati e Web

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

(anno accademico )

Raggruppamenti Conti Movimenti

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Siti interattivi e dinamici. in poche pagine

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

UN PROGRAMMA APPLICATIVO: ACCESS Access è un programma del pacchetto Office che permette di realizzare database

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

PROGRAMMA DI CLASSE 5AI

Generazione Automatica di Asserzioni da Modelli di Specifica

Transcript:

Una metodologia di progettazione di applicazioni web centrate sui dati 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 1 / 2 0 1 2

Progettazione logica di un sito web centrato sui dati Si propone la seguente metodologia di progetto. L obiettivo è quello di specificare in modo formale il contenuto informativo e la struttura dell ipertesto che costituisce il sito. Inoltre, visto che l informazione viene prelevata da una base di dati, viene specificato anche come (vale a dire, con quali interrogazioni SQL) il dato viene estratto dal DBMS per essere presentato nelle pagine web del sito.

Fasi della metodologia La metodologia proposta è strutturata in 4 fasi: 1. Organizzazione in pagine web del contenuto informativo 2. Definizione della navigazione tra le pagine web (specifica dei LINK) 3. Corrispondenza tra il contenuto delle pagine e la basi di dati (interrogazioni SQL) 4. Presentazione (aspetto grafico delle pagine: fogli di stile CSS)

Progettazione logica - FASE 1 La struttura delle pagine web e il loro contenuto informativo possono essere specificati definendo SCHEMI di PAGINA. Linguaggio per la specifica di schemi di pagina: page schema <nomeschema> [unique]( <nomeattributo>: <TIPO>; <nomeattributo>: <TIPO>; ) <TIPO> :== {string, integer, date, time, real, <LISTA>} <LISTA> :== list_of (<nomeattr>: <TIPO>; <nomeattr>: <TIPO>;)

Progettazione logica FASE 2 La specifica dei legami tra pagine si ottiene aggiungendo i link tra gli schemi di pagina. In particolare, un link è un tipo specifico che si aggiunge agli altri possibili tipi di attributo. <TIPO> :== {string, integer, date, time, real, <LISTA>, <LINK>} <LINK> :== {link(<etichetta>; *<nomeschema>) link(<etichetta>; url(<nomeurl>) link(<etichetta>; url(<nomeurl>,<nomeattrib>))} <ETICHETTA> :== {<nomeetichettafissa> <nomeattrib>: {string integer date time}}

Progettazione logica FASE 3 La terza fase prevede la specifica della corrispondenza tra la base di dati e il contenuto informativo degli schemi di pagina. Nella sintassi proposta tale corrispondenza si precisa per ogni schema di pagina <nomeschema> come segue: DB to page schema <nomeschema> parameter(<nomepar>,,<nomepar>) ( <nomeattr>,,<nomeattr>: <QUERY_SQL>; <nomeattr>,,<nomeattr>: <QUERY_SQL>; ) dove i parametri dovranno comparire nelle interrogazioni SQL con la sintassi?nomepar? e gli attributi <nomeattr> devono essere tutti e soli gli attributi dello schema di pagina <nomeschema>.

Risultato della progettazione logica Schema logico della base di dati: schema relazionale: tabelle + vincoli di integrità Elenco di schemi di pagina: schema del sito: page schema + link Specifica della corrispondenza con la basi di dati: Interrogazioni SQL sullo schema relazionale mappati sul contenuto informativo degli schemi di pagina.

Progettazione logica FASE 2 e form Può essere necessario introdurre una form in uno schema di pagina. Tale specifica si ottiene aggiungendo allo schema di pagina un attributo che descrive una form. A tale scopo si aggiunge un nuovo tipo di attributo. <TIPO> :== {string, integer, date, time, real, <LISTA>, <LINK>, <FORM> } <FORM> :== form(<nomeattrib_1>: <TIPOINPUT>; <nomeattrib_n>: <TIPOINPUT>;) <TIPOINPUT> :== { text radio [(v_1,, v_n)] password date time checkbox [(v_1,, v_n)] select [(v_1,, v_n)] submit(*<nomeschema>)} Ogni form deve contenere sempre un attributo submit.

Progettazione logica FASE 3 e form In presenza di form la terza fase prevede la possibilità di specificare delle operazioni da eseguire sulla base di dati con le informazioni raccolte da ciascuna form dello schema. Nella sintassi proposta tali operazioni si precisano per ogni schema di pagina <nomeschema> e per ogni form <nomeform_i> dello schema come segue: DB from page schema <nomeschema> ( <nomeform_1>: <OPERAZIONE_1>; <nomeform_k>: <OPERAZIONE_k>; ) dove gli attributi della form dovranno comparire nei comandi SQL che implementano le operazioni con la sintassi?nomepar?. Infine le form <nomeform_i> devono essere tutte e sole le forms dello schema <nomeschema>.

Progettazione logica FASE 3 e form Infine un operazione può essere: <OPERAZIONE> :== { <COMANDO_SQL> if <INTERROGAZIONE_SQL> <CONFRONTO> <CONST> then *<nomeschema> else *<nomeschema> end } <CONFRONTO> :== { = < > <= >= } <CONST> :== costante compatibile con il risultato dell'interrogazione SQL Si noti che uno schema di pagina SP ha certamente una specifica DB to page-schema SP, e può avere in aggiunta una specifica DB from pageschema SP qualora contenga delle forms. Infine se l operazione associata alla form è del tipo if allora l attributo submit può omettere lo schema di pagina target.

Esempio di schema con form page-schema InsertDip unique ( datinewdip: form(codice: text; Nome: text; Cognome: text; DataNascita: date; Qualifica: select; Inserisci: submit(*esito);); ) DB to page-schema InsertDip parameter() ( datinewdip.qualifica: SELECT nome FROM Qualifica; ) DB from page-schema InsertDip ( datinewdip: INSERT INTO Dipendente (cod, nome, cogn, datan, qual) VALUES (?Codice?,?Nome?,?Cognome?,?DataNascita?,?Qualifica?);)

Esempio di schema con form page-schema Esito unique ( esitoinserimento: integer; nuovoinserimento: link( Nuovo dipendente,*insertdip); ) DB to page-schema Esito parameter(codice) ( esitoinserimento: SELECT count(*)from Dipendente WHERE cod =?Codice?; )

Implementazione? Quale tecnologia usare? Quale corrispondenza tra la progettazione logica e l implementazione? Tecnologie disponibili: Servlet, JSP, PHP, ASP, postgresql, Mysql, ecc Architetture software: approccio Model-View- Controller, MCV-2 servlet-centric.

Architetture software per applicazioni web Approccio banale: Una servlet (o JSP) per ogni schema di pagina che si occupa di tutti gli aspetti: Elaborazione della richiesta HTTP. Connessione alla base di dati ed estrazione delle informazioni. Generazione del codice HTML da restituire al browser. Approccio più evoluto: Architettura MVC-2 (servlet centric): distribuire le varie funzionalità a diversi attori (moduli software = classi JAVA).