Basi di dati - Basi di dati e Web



Documenti analoghi
Sistemi Informativi e WWW

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

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Alessandra Raffaetà. Basi di Dati

Organizzazione delle informazioni: Database

BASI DI DATI - : I modelli di database

Una metodologia di progettazione di applicazioni web centrate sui dati

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

1. BASI DI DATI: GENERALITÀ

Le Basi di Dati. Le Basi di Dati

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

PROGRAMMAZIONE MODULARE DI INFORMATICA CLASSE QUINTA - INDIRIZZO MERCURIO SEZIONE TECNICO

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

Progettazione logica relazionale (1/2)

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Progettazione di Basi di Dati

Dispensa di database Access

Volumi di riferimento

DATABASE RELAZIONALI

Progettazione concettuale

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

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

Alfa Layer S.r.l. Via Caboto, Torino ALFA PORTAL

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

Sistemi Informativi e Basi di Dati

19. LA PROGRAMMAZIONE LATO SERVER

Lezione 1. Introduzione e Modellazione Concettuale

Capitolo 13. Interrogare una base di dati

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Organizzazione degli archivi

Uso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database

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

I.T.C. Mario Pagano Napoli

I Sistemi Informativi

Database. Si ringrazia Marco Bertini per le slides

Data Base. Prof. Filippo TROTTA

Basi di dati 9 febbraio 2010 Compito A

Progettaz. e sviluppo Data Base

Informatica (Basi di Dati)

Database 1 biblioteca universitaria. Testo del quesito

DBMS (Data Base Management System)

Facoltà di Farmacia - Corso di Informatica

SOLUZIONE Web.Orders online

connessioni tra i singoli elementi Hanno caratteristiche diverse e sono presentati con modalità diverse Tali relazioni vengono rappresentate QUINDI

Ottimizzazione delle interrogazioni (parte I)

Sistemi centralizzati e distribuiti

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

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

ITI M. FARADAY Programmazione modulare a.s

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Il database management system Access

Capitolo 4 Pianificazione e Sviluppo di Web Part

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

Università Politecnica delle Marche. Progetto Didattico

PROGRAMMAZIONE MODULARE. Periodo mensile. Ore previste

Protocolli e architetture per WIS

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

I database. Cosa sono e a cosa servono i Database

Informatica Industriale Modello funzionale: Informazione Progettazione concettuale

Introduzione al data base

CONTENT MANAGEMENT SYSTEM

Lezione 8. Motori di Ricerca

Basi di Dati Relazionali

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

Reti di Telecomunicazione Lezione 6

MODELLO RELAZIONALE. Introduzione

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

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

DBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)

Architettura del. Sintesi dei livelli di rete. Livelli di trasporto e inferiori (Livelli 1-4)

DATABASE. A cura di Massimiliano Buschi

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Basi di dati Progettazione logica. Elena Baralis Politecnico di Torino

Access. P a r t e p r i m a

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

La Metodologia adottata nel Corso

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

Architettura MVC-2: i JavaBeans

PIANO DI LAVORO EFFETTIVAMENTE SVOLTO IN RELAZIONE ALLA PROGRAMMAZIONE DISCIPLINARE

Progettazione di una base di dati Ufficio della Motorizzazione

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

SUAP. Per gli operatori SUAP/amministratori. Per il richiedente

Ipertesti e Internet. Ipertesto. Ipertesto. Prof.ssa E. Gentile. a.a

Corso di Informatica (Basi di Dati)

Esame Di Stato A.S. 2004/2005 Istituto Tecnico Commerciale Corso Sperimentale Progetto Mercurio Corso di Ordinamento - Programmatori

PROGRAMMA SVOLTO DI INFORMATICA ANNO SCOLASTICO 2013/2014. DOCENTE: Villani Chiara

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

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

GOW GESTIONE ORDINI WEB

Elena Baralis 2013 Politecnico di Torino 1

INNOVAZIONE XNOTTA PER PORTALI TURISTICI

ARCHIVIAZIONE DOCUMENTALE NEiTdoc

Soluzione dell esercizio del 2 Febbraio 2004

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Manuale d'uso. Manuale d'uso Primo utilizzo Generale Gestione conti Indici di fatturazione Aliquote...

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

Progettazione e realizzazione di un applicativo Web Annunci Immobiliari

Transcript:

- e Web Sistemi informativi su Web e Web Il Web è nato come interfaccia di accesso a informazioni distribuite su più siti, ma specificamente predisposte pagine HTML Il Web è divenuto una piattaforma generale per sistemi informativi, accessibili mediante un browser Web Information Systems (WIS) e Web -2 Sistemi informativi su Web Sistemi informativi su Web I WIS presentano problematiche comuni ai sistemi informativi tradizionali capacità di supportare attività di varia natura capacità di gestire i relativi dati volumi di dati significativi, spesso contenuti in parte in DBMS I WIS presentano caratteristiche specifiche gestione di informazioni di tipo multimediale (immagini, audio, testo) strutturazione dei dati meno rigorosa e meno definita a priori grande flessibilità nella consultazione, ma non nell aggiornamento modalità di scambio delle informazioni con la fonte presso cui sono mantenute (DBMS o file) diverse da quelle tradizionali e Web -3 e Web -4 Tipologie di applicazioni WIS Pubblicazione e consultazione su Web comunicazione unilaterale Transazioni su Web comunicazione bidirezionale Nuove applicazioni Pubblicazione e consultazione su Web Informazioni a disposizione degli utenti sotto forma di pagine HTML siti catalogo Al crescere delle dimensioni aggiornamento delle pagine difficile (in una pagina HTML sono presenti sia dati, sia informazioni su navigazione e presentazione) sono presenti ridondanze di informazione e Web -5 e Web -6 1

- e Web Pubblicazione e consultazione su Web Transazioni su Web La gestione di siti Web catalogo richiede un approccio sistematico l uso di basi di dati può risultare conveniente le pagine possono essere costruite in modo automatico si eliminano le ridondanze spesso la base di dati esiste già Esecuzione di applicazioni di qualsiasi tipo, con pieno accesso alla base di dati il browser diventa un interfaccia standard per sistemi informativi Si manifestano esigenze tipiche delle basi di dati identificazione e sicurezza affidabilità e gestione delle transazioni e Web -7 e Web -8 Nuove applicazioni Commercio elettronico vendita di prodotti, prevalentemente a privati vendita per corrispondenza estensione con funzionalità aggiuntive: commenti, discussioni (esempio: recensioni di libri da parte dei clienti) Gruppi di discussione Supporto al lavoro cooperativo (workflow, business to business) Data warehousing su Web (data farming) e Web -9 Complessità dei dati alta bassa Classificazione dei siti Web Siti catalogo Siti descrittivi bassa WIS Siti fornitori di servizi alta Complessità delle applicazioni e Web 10 - Classificazione dei siti Web Siti descrittivi contengono poche pagine (10-100), prevalentemente dedicate al marketing semplici da gestire con editor HTML Siti fornitori di servizi sono dedicati ad un servizio specifico (esempi: motore di ricerca, e-mail) poche pagine, DB anche molto grande complessità nelle applicazioni che garantiscono il servizio e Web 11 - Classificazione dei siti Web Siti catalogo rendono disponibile molta informazione hanno una struttura ipertestuale complessa problemi di manutenzione dei dati e dell ipertesto WIS permetto l accesso a molta informazione forniscono servizi interattivi di tipo complesso (esempio: commercio elettronico) complessità significativa in entrambe le dimensioni e Web 12-2

- e Web e Web Le basi di dati sono ben strutturate e organizzate possono essere interrogate in modo flessibile sono progettate con metodi consolidati I siti Web non sempre hanno una struttura ben definita forniscono un accesso semplificato grazie agli ipertesti, ma non possono essere interrogati sono difficili da progettare e mantenere è possibile utilizzare le conoscenze acquisite? e Web -13 Problemi dei siti Web Problemi di progettazione informazione organizzata male e difficile da trovare non è chiaro quale informazione è disponibile struttura d accesso casuale e riferimenti a pagine non esistenti stile della presentazione eterogeneo e Web -14 Problemi dei siti Web Problemi di manutenzione difficoltà di aggiornamento del contenuto difficoltà di variazione della struttura iniziale difficoltà di variazione dei dettagli di presentazione Progettazione di siti Web Siti Web centrati sui dati (data-intensive) obiettivo primario è la pubblicazione di quantità significative di informazioni è importante la struttura dell ipertesto Modello per ipertesti, che descrive la struttura delle pagine e la modalità secondo cui sono correlate e Web -15 e Web -16 Aspetti di progettazione Contenuto informativo (dati) schema e istanze, come nelle basi di dati Struttura ipertestuale organizzazione del contenuto informativo in pagine modalità di correlazione delle pagine struttura ipertestuale descritta da schema dell ipertesto, che fa riferimento alla base di dati Presentazione aspetti grafici e disposizione del contenuto e dei link all interno delle pagine e Web -17 Livelli di indipendenza Dal contenuto informativo stessi dati, diversa struttura ipertestuale del sito Dalla struttura ipertestuale stessa struttura dell ipertesto (e stesso contenuto informativo), aspetto grafico delle pagine diverso e Web -18 3

- e Web Progettazione di siti Web data-intensive Progettazione concettuale della base dati Progettazione logica della base di dati Analisi dei requisiti Progettazione concettuale dell ipertesto Progettazione logica dell ipertesto Progettazione della presentazione Fasi di progettazione di un sito Web Analisi dei requisiti: come per i sistemi informativi tradizionali, con attenzione particolare alle caratteristiche del Web Progettazione concettuale e logica della base di dati: definisce l organizzazione del dominio in modo indipendente dalla realizzazione lo schema concettuale (ER) è il punto di partenza per la progettazione dell ipertesto Generazione del sito e Web -19 e Web -20 Fasi di progettazione di un sito Web Fasi di progettazione di un sito Web Progettazione concettuale dell ipertesto: a partire da requisiti e schema concettuale della base di dati, definisce le caratteristiche concettuali dell ipertesto (nodi e percorsi di navigazione) produce lo schema concettuale dell ipertesto Progettazione logica dell ipertesto: definisce l organizzazione dell ipertesto in termini di pagine e link produce lo schema logico dell ipertesto Progettazione della presentazione: definisce il layout di pagina e lo stile di presentazione per ciascuno degli schemi di pagina definiti nella progettazione logica Generazione del sito: individua la corrispondenza tra dati nella base di dati e struttura logica dell ipertesto le modalità e gli strumenti da utilizzare per la costruzione del sito e Web -21 e Web -22 Attività principali per la progettazione concettuale di un ipertesto Selezione delle entità che corrispondono a nodi dell ipertesto ogni entità descrive un oggetto del mondo reale e può essere caratterizzata da attributi Selezione dei percorsi di navigazione tra entità i percorsi possono essere orientati, perché la navigazione è caratterizzata da punto di partenza e di arrivo Attività principali per la progettazione concettuale di un ipertesto Definizione della struttura di accesso all ipertesto aggregazione delle entità in una gerarchia di concetti astratti da presentare all utente per la navigazione e Web -23 e Web -24 4

- e Web Modello concettuale di un ipertesto Macro entità Costrutti principali macro entità relazioni orientate nodi unione nodi di aggregazione link di aggregazione A A1 min:max An E` un nodo che corrisponde ad una classe di oggetti del dominio applicativo Dispone di attributi semplici complessi Ad ogni attributo è associata una cardinalità e Web -25 e Web -26 Nodo unione Relazione orientata U min:max min:max min:max Corrisponde all unione di più nodi, eventualmente eterogenei Utilizzato per modellare tipi corrispondenti all unione di più macro entità diverse Descrive come navigare in un ipertesto da un nodo sorgente ad un nodo destinazione Cardinalità: descrive il numero di istanze del nodo destinazione associate alla sorgente Caso particolare: relazione simmetrica, in cui la navigazione è possibile in entrambe le direzioni e Web -27 e Web -28 Nodo di aggregazione Link di aggregazione Permette di modellare la struttura di accesso dell ipertesto Descrive un aggregazione o classificazione di macro entità può corrispondere ad una gerarchia di generalizzazione oppure ad una organizzazione dell informazione nell ipertesto Permette di modellare la struttura di accesso dell ipertesto Collega un nodo di aggregazione con un nodo ipertestuale o un altro nodo di aggregazione e Web -29 e Web -30 5

- e Web Progettazione concettuale di un ipertesto Lo schema concettuale dell ipertesto è derivato dallo schema ER Passi di progettazione progettazione delle macro entità progettazione dei nodi unione progettazione delle relazioni dirette progettazione delle aggregazioni Progettazione delle macro entità Una macro entità può essere derivata da un entità ER, se rappresenta oggetti rilevanti ed indipendenti nell ipertesto una vista su un gruppo di entità e relazioni ER (può originare attributi multivalore) e Web -31 e Web -32 Progettazione delle macro entità Matricola Studente Matricola Esame Data Studente Voto Corso Codice 1:N Esame Voto Data Codice Progettazione dei nodi unione I nodi unione modellano tipi che corrispondono all unione di macro entità diverse sono derivati da gerarchie di generalizzazione modellano navigazioni che riguardano macro entità diverse e Web -33 e Web -34 Progettazione dei nodi unione Personale Tecnico Docente Progettazione delle relazioni orientate Normalmente derivate da relazioni ER Descrivono navigazioni tra macro entità tra macro entità e nodi unione Tecnico U Docente e Web -35 e Web -36 6

- e Web Progettazione delle relazioni orientate Professore Professore Rettore (0,1) (1,1) Università (1,1) (1,N) Dipendente Rettore 1:1 1:1 1:N Dipendente Università e Web -37 Progettazione delle aggregazioni Le aggregazioni: corrispondono a gerarchie di generalizzazione possono essere introdotte per organizzare meglio l informazione nell ipertesto Aggregazione parziale: predicato che seleziona solo un sottoinsieme delle istanze del nodo destinazione mediante un etichetta e Web -38 Progettazione delle aggregazioni Progettazione delle aggregazioni Personale Tecnico Docente Università Didattica Dipartimenti Personale Studenti Corsi Professori Tecnico Docente e Web -39 e Web -40 Progettazione logica dell ipertesto Obiettivo: progettazione della struttura dell ipertesto che sarà presentata dal browser Questa fase descrive come le pagine sono organizzate nel sito web definizione delle informazioni rilevanti in una pagina (testo, immagine,...) definizione dell organizzazione delle informazioni (pagina piatta, lista, lista nidificata) si ignorano gli aspetti di realizzazione fisica delle pagina e Web -41 Progettazione logica dell ipertesto Gli ipertesti sono grafi di pagine occorre esplicitare la struttura logica a partire dal modello concettuale dell ipertesto Il modello logico è basato sulla definizione di schemi di pagina ogni schema di pagina è un tipo, che descrive la struttura di pagine omogenee del sito un istanza di uno schema di pagina è una pagina web e Web -42 7

- e Web Schema di pagina Corrisponde allo schema di una relazione nel modello relazionale descrizione delle caratteristiche comuni di un insieme di pagine E` caratterizzata da nome identificatore (la URL) insieme di attributi Schema di pagina Schema di pagina Schema di pagina singolare Lo schema di pagina può descrivere la struttura di un insieme di pagine una sola pagina (non vi sono altre pagine con la stessa struttura): pagina singolare e Web -43 e Web -44 Attributo Attributo Gli attributi possono essere semplici (testo, immagine, altri tipi multimediali) complessi: attributi multivalore, che rappresentano liste ordinate di oggetti I link sono attributi semplici, rappresentati da coppie (ancora, riferimento) l ancora è un testo o immagine il riferimento è la URL della pagina destinazione; può essere specificato un offset A A Ancora Riferimento Lista A1 An Attributo testo Attributo immagine Lista Attributo link e Web -45 e Web -46 Tipo unione eterogenea Form Form U A1 Submit Corrisponde in modo naturale al nodo unione del modello concettuale e Web -47 I formsono utilizzati per eseguire programmi sul server e generano automaticamente nuove pagine web Sono modellati come una lista virtuale di righe, i cui attributi sono i campi del form un link alla pagina con il risultato e Web -48 8

- e Web Progettazione logica dell ipertesto Trasforma lo schema concettuale dell ipertesto nel corrispondente schema logico macro entità e aggregazioni corrispondono a schemi di pagina relazioni orientate corrispondono a link Passi della progettazione trasformazione delle macro entità trasformazione delle relazioni orientate trasformazione delle aggregazioni ristrutturazione dello schema e Web -49 Trasformazione delle macro entità Alternative 1.Ogni istanza della macro entità corrisponde ad una pagina si definisce uno schema di pagina con gli stessi attributi della macro entità gli attributi multivalore corrispondono a liste 2.Tutte le istanze della macro entità corrispondono ad un unica pagina si definisce uno schema di pagina singolare, contenente una lista di elementi con gli stessi attributi della macro entità e Web -50 Trasformazione delle macro entità Trasformazione delle macro entità PagPersona PagListaPersone Persona Foto Foto Persona Telefono ListaPersone Telefono e Web -51 e Web -52 Trasformazione delle relazioni orientate Le relazioni orientate corrispondono a link tra schemi di pagina le relazioni simmetriche sono suddivise in due relazioni asimmetriche si aggiunge un nuovo attributo allo schema di pagina sorgente se la cardinalità max è 1, l attributo è un link se la cardinalità max è N, l attributo è una lista di link 1:1 Persona Foto Indirizzo Trasformazione delle relazioni orientate Abitazione Alloggio Città Foto PagPersona Foto Indirizzo LinkAlloggio PagAlloggio Indirizzo Città Foto e Web -53 e Web -54 9

- e Web Trasformazione delle aggregazioni Un nodo di aggregazione è trasformato in uno schema di pagina singolare Un link corrisponde ad un attributo link nella pagina di partenza se il nodo di arrivo è uno schema di pagina singolare, si definisce un unico link con valore costante per il riferimento se il nodo di arrivo è uno schema di pagina o un nodo unione, si definisce una lista di link verso istanze dello schema di pagina; è possibile specificare predicati di selezione e Web -55 Corsi Trasformazione delle aggregazione PagUniv Università Dipartimenti ListaDip LinkDip Corsi LinkCorsi PagListaCorsi...... PagDip...... e Web -56 Ristrutturazione dello schema Il risultato della progettazione logica è uno schema scheletro, in cui l informazione può non essere organizzata in modo ottimale La ristrutturazione permette di riorganizzare schemi e percorsi, senza modificare lo schema concettuale di partenza divisione in più schemi di pagina degli schemi troppo densi introduzione di liste a più livelli, per ridurre la lunghezza di liste troppo lunghe introduzione di form, per facilitare la ricerca in liste lunghe e Web -57 Esempio Si vuole progettare un sito Web che permetta di consultare le informazioni seguenti (memorizzate all interno della base di dati aziendale). L azienda dispone di numerose sedi, per cui sono noti l indirizzo e la città in cui si trovano. Ogni sede è organizzata in dipartimenti. Ogni dipartimento è caratterizzato dal nome e dal numero di telefono. Un dipartimento può far parte di una sola sede. e Web -58 Esempio Ad ogni dipartimento afferiscono, a partire da una certa data, i dipendenti dell azienda. Per ogni dipartimento, inoltre, un dipendente ha la mansione di direttore. Ogni dipendente è caratterizzato da matricola interna, cognome, nome, età, stipendio. I dipendenti partecipano a progetti, che sono caratterizzati da nome, budget e data di consegna. Ogni dipendente può partecipare a più progetti; per ogni progetto, sono note la data di inizio ed, eventualmente, di fine dell assegnamento. Esempio Il sito Web avrà: Una home-page, con link verso le pagine che descrivono le sedi e verso altre due pagine che contengono link verso (1) tutti i progetti e (2) tutti i dipendenti. Una pagina per ogni sede, con elenco dei dipartimenti, ognuno con un link verso il rispettivo direttore e un link verso una pagina con l elenco dei dipendenti. e Web -59 e Web -60 10

- e Web Esempio Progettazione concettuale della base di dati Una pagina per ogni progetto, con anche una lista di link ai dipendenti partecipanti. Una pagina per ogni dipendente, con le informazioni personali e link verso la sede e i progetti a cui partecipa. Matricola Direttore (0,1) (1,1) (0,1) (1,N) Dipendente Dipartimento Appartenenza Stipendio (0,N) Data (1,1) Inizio Data Fine (0,1) Partecipazione In Data (1,N) (1,N) Inizio Progetto Sede Budget e Web -61 e Web -62 Età Data Consegna Città Telefono Indirizzo Progettazione logica della base di dati Sede (Città, Indirizzo) Dipartimento (, Città, Telefono, MatrDirettore) Dipendente (Matricola,,, DataNascita, Stipendio, Dip*, Città*, DataInizio*) Progetto (, Budget, DataConsegna) Partecipazione (Prog, Matricola, DataInizio, DataFine*) Progettazione concettuale dell ipertesto Il sito Web avrà:... Una pagina per ogni sede, con elenco dei dipartimenti, ognuno con un link verso... Una pagina per ogni progetto, con anche una lista di link ai dipendenti partecipanti. Una pagina per ogni dipendente, con le informazioni personali e link verso la sede e i progetti a cui partecipa. e Web -63 e Web -64 Progettazione delle macro entità Progetto Budget Data Consegna Dipendente Stipendio Sede 1:N Dip Città Indirizzo Telefono e Web -65 Progettazione delle relazioni orientate Il sito Web avrà:... Una pagina per ogni sede, con elenco dei dipartimenti, ognuno con un link verso il rispettivo direttore e un link verso una pagina con l elenco dei dipendenti. Una pagina per ogni progetto, con anche una lista di link ai dipendenti partecipanti. Una pagina per ogni dipendente, con le informazioni personali e link verso la sede e i progetti a cui partecipa. e Web -66 11

- e Web Progettazione delle relazioni orientate Progettazione delle aggregazioni Partecipazione Progetto 1:N Sede Budget Appartenenza Data 1:N Consegna 0:1 1:N Dip Direttore Dipendente 0:N 0:1 1:1 Stipendio Città Indirizzo Telefono Il sito Web avrà: Una home-page, con link verso le pagine che descrivono le sedi e verso altre due pagine che contengono link verso (1) tutti i progetti e (2) tutti i dipendenti.......... e Web -67 e Web -68 Attività Progettazione delle aggregazioni Azienda Personale Stipendio Partecipazione Progetto 1:N Città Sede Indirizzo Budget Appartenenza Data 1:N Consegna 0:1 1:N Dip Telefono Direttore Dipendente 0:N 0:1 1:1 e Web -69 PagProgetto Budget DataCons Definizione degli schemi di pagina PagDipend Stipendio PagSede Città Indirizzo ListaDipart Telefono e Web -70 PagProgetto Budget DataCons ListaDipend LinkDip Definizione delle relazioni PagDipend Stipendio Dipartim Sede Linksede ListaProgetti LinkPrg DataIniz PagDipInDip ListaDipend LinkDip PagSede Città Indirizzo ListaDipart Telefono Direttore LinkDir Dipendenti LinkDipe Definizione delle aggregazioni PagAzienda ListaSedi Città LinkSede Progetti LinkProg Dipendenti LinkDipe PagListaProg ListaProgetti LinkProg PagListaDipe ListaDipend LinkDipe a PagSede a PagProgetto a PagDipend e Web -71 e Web -72 12

- e Web Progettazione della presentazione Un aspetto grafico gradevole è spesso la preoccupazione principale di chi vuole creare un sito Web Caratteristiche degli strumenti per la progettazione: possibilità di prototipazione rapida per definire una struttura base per tutte le pagine del sito possibilità di raffinare i dettagli di presentazione di singole pagine possibilità di definire le caratteristiche delle pagine per mezzo di pagine HTML esempio (template) e Web -73 Elementi fondamentali Stile dell attributo: specifica come un attributo (della base di dati) deve essere visualizzato nella pagina. Stile della pagina: descrive le scelte di presentazione per uno schema di pagina specifico. Stile del sito: descrive le scelte di presentazione comuni a tutto il sito. e Web -74 Stile dell attributo Esempio Composto di due parti, tra le quali viene inserito il valore dell attributo durante la generazione formato del prefisso formato del suffisso Permette di definire anche modalità complesse di presentazione Si consideri l attributo cognome di uno schema di pagina : [<FONT COLOR = red ><B>][</B></FONT>] prefisso Risultato durante la generazione: suffisso <FONT COLOR = red ><B>Rossi</B></FONT> e Web -75 e Web -76 Stile della pagina Esempio Contiene la definizione dello stile di attributo per tutti gli attributi della pagina una sezione di header una sezione di footer Header e footer specificano le caratteristiche grafiche della pagina (esempio: colore del background, banners, ) e Web -77 HEADER: [<html> <title><titolo pagina></title> <body background=./figure/sfondo1.gif > <hr> <table>] : [<tr><td><em>] [</em></td></tr>] : [<tr><td><em>] [</em></td></tr>] ListaTel:[<ul>] [/ul] FOOTER: [</table> <hr> Per informazioni rivolgersi al <a href= Mailto://webmaster@xxx.com> Webmaster</a> </body> </html>] e Web - 78 13

- e Web Stile del sito Utilizzato nella fase iniziale di progettazione Definisce gli aspetti comuni dello stile di tutte le pagine colore del background font e suo colore formato standard per ogni tipo di attributo (testo, immagine, link, lista, ) e Web -79 Esempio HEADER: [<html> <title><titolo pagina></title> <body background=./figure/sfondo1.gif > <hr>] TEXT: [<font color= blue >] [</font>] IMAGE: [] [] LINK: [<I>] [</I>] LIST: [<table>] [</table>] LIST-TUPLE: [<tr>] [</tr>] LIST-TUPLE-ELEM: [<td>] [</td>] FOOTER: [<hr> Per informazioni rivolgersi al <a href= Mailto://webmaster@xxx.com> Webmaster</a> </body> </html>] e Web - 80 Uso di pagine esempio Sono prototipi di pagine HTML non contengono dati reali contengono parametri che indicano la posizione dei dati sono modificabili con qualsiasi editor HTML e visualizzabili da qualsiasi browser Esempi: pagina template per lo schema di pagina X, per l attributo contiene $ pagina template per il sito, contiene parametri corrispondenti ai tipi ammessi ($Text,$Link) e Web -81 Passi della progettazione della presentazione 1. Definizione di uno o più stili di sito 2. Generazione (automatica) dello stile di pagina per tutti gli schemi di pagina 3. (Eventuale) personalizzazione dello stile per gli schemi di pagina header e footer personalizzati stile diverso per alcuni attributi e Web -82 Generazione del sito Web Informazioni per la generazione del sito Opera a partire da: schema logico dell ipertesto schema logico della base di dati stili di presentazione delle pagine Occorre definire la corrispondenza tra attributi dello schema ipertestuale e attributi dello schema della base di dati URL di partenza del sito ( radice ) Stile di presentazione del sito Base di dati dove sono memorizzati i dati da pubblicare e modalità di connessione (normalmente JDBC/ODBC) e Web -83 e Web -84 14

- e Web Informazioni per la generazione delle pagine Definizione della corrispondenza tra DB e pagine Web elenco delle tabelle (o viste) necessarie corrispondenza tra attributi di pagina e attributi dello schema della base di dati Meccanismo di generazione di una URL locale per ogni pagina generata valore costante (esempio: result.html) valore parametrico, basato sul valore di un attributo della base di dati (esempio: URL(<Matricola>)) e Web -85 Esempio di direttiva per generatore P è il nome dello schema di pagina R 1, R 2,... sono le tabelle o viste utilizzate (in join tra loro) S elenca gli attributi di pagina, il loro tipo e la corrispondenza con attributi della base di dati DEFINE-PAGE P AS S USING R 1, R 2,... e Web -86 Esempio di direttiva per generatore Tabelle: Persona (CodFiscale,,, Comune) Telefono (Numero, CodFiscale) Schema di pagina: PagPersonaTO ListaTel Telefono Esempio di direttiva per generatore DEFINE-PAGE PagPersonaTO AS URL(<CodFiscale>); : TEXT <>; : TEXT <>; ListaTel:LIST-OF(<Numero>); USING Telefono, PersonaTO: (SELECT * FROM Persona WHERE Comune= Torino ) e Web -87 e Web -88 Esempio di direttiva per generatore Tabelle: Persona (CodFiscale,,, Comune) Telefono (Numero, CodFiscale) Schema di pagina: PagListaTO ListaAbitantiTO ToPers PagPersonaTO ListaTel Telefono Esempio di direttiva per generatore DEFINE-PAGE PagListaTO AS URL( AbitTO.html ); ListaAbitantiTO: LIST-OF(ToPers: LINK-TO PagPersonaTO ( <>; URL(<CodFiscale>))); USING PersonaTO: (SELECT * FROM Persona WHERE Comune= Torino ) e Web -89 e Web - 90 15

- e Web Interconnessione tra basi di dati e siti web L approccio standard è basato sul protocollo CGI presenta limiti per le funzionalità che può offrire e per le prestazioni Soluzioni alternative, che sostituiscono CGI con funzionalità supplementari offerte dal server dal client Accesso a basi di dati mediante CGI Il protocollo CGI (Common Gateway Interface) permette di eseguire programmi tramite un server Web I programmi possono essere scritti in qualsiasi linguaggio di alto livello (C, C++, ) linguaggi di scripting (Perl, Tcl, ) o linguaggi di comandi (shell) del sistema operativo E` possibile specificare parametri di esecuzione per il programma e Web -91 e Web -92 Accesso a basi di dati mediante CGI Accesso alla base di dati Funzionamento 1. Il server riceve una richiesta, riconosce che la risorsa indicata dalla URL è un programma con cui deve comunicare tramite CGI e lancia il programma 2. Il programma CGI è eseguito, accede alla base di dati (in modo tradizionale) e restituisce i dati al server 3. Il server inoltra i dati al browser Il programma CGI deve 1. Aprire la connessione con la base di dati. 2. Eseguire l interrogazione (o modifica). 3. Memorizzare il risultato in variabili locali (una riga) o leggerlo mediante cursore (N righe). 4. Generare la pagina Web contenente il risultato e scriverla sullo standard output. e Web -93 e Web -94 Accesso a basi dati mediante CGI La pagina PagListaTO è sostituita con un form, che permette la ricerca di persone di Torino sulla base del codice fiscale La richiesta di conoscere i dati relativi al codice fiscale BCC LNA 35C41 L219K produce la URL www.comto.it/cgi-bin/persona?codfisc=bcc+ LNA+35C41+L219K Accesso a basi dati mediante CGI main (char CodFisc[]) { char [20], [20], Telefono[15]; /* cursore per ottenere i numeri di telefono */ $ declare cursor X for select Numero from Telefono where Codfisc = :CodFisc; $ open connection to ComuneDB /* info sulla persona in tabella Persona*/ $ select, into :, : from Persona where CodFisc = :CodFisc; e Web - 95 e Web - 96 16

- e Web Accesso a basi dati mediante CGI if (sqlcode==0) { printf( <html>\n<body>\n ); printf( <H3> Codice Fiscale %s, CodFisc, </H3>\n ); printf( <table>\n ); printf( <tr><td><em></em>: </td><td>%s,, </td></tr>\n ); printf( <tr><td><em></em>: </td><td>%s,, </td></tr>\n ); } else errore(); Accesso a basi dati mediante CGI /*elenco numeri di telefono in tabella Telefono*/ $ open X; if (sqlcode == 0) { printf( <tr><td>numeri di telefono: </td><td></td></tr>\n ; while (sqlcode == 0) { $ fetch X into :Telefono; if (sqlcode == 0) printf( <tr><td></td><td>%s, Telefono, </td></tr>\n ); else if (sqlcode < 0) errore(); } /* end while */ } /* end if*/ e Web - 97 e Web - 98 Accesso a basi dati mediante CGI /* chiusura cursore e connessione */ $ close X $ close connection printf( </table>\n</body>\n</html> )); } Strumenti di sviluppo Facilitano la costruzione di pagine Web a partire dal contenuto della base di dati generazione dinamica di pagine HTML La generazione avviene a partire da una o più interrogazioni SQL organizzazione di pagina predefinita (template HTML), in cui sono definiti parametri, che sono valorizzati con il risultato delle istruzioni SQL Non occorre più scrivere il programma CGI e Web - 99 e Web -100 Definizione di template HTML Il programma gestore dei template è sostituito al programma cgi Esempio di invocazione: www.comto.it/cgi-bin/tmplsql?tmpl=persona& CodFisc=BCC+LNA+35C41+L219K Rispetto all esempio precedente, si supponga che l elenco dei numeri di telefono sia sostituito con un link ad una nuova pagina con i numeri di telefono e Web -101 Definizione di template HTML <html> <! tmplsql connect database ComuneDB> <! tmplsql query select, into $2, $3 from Persona where CodFisc = $CodFisc > <body> <H3> Codice Fiscale $CodFisc </H3> <table> <tr><td><em></em> :</td><td> $3</td></tr> <tr><td><em></em> :</td><td> $2</td></tr> <tr><td><a href=/cgi-bin/tmplsql/perstel?$codfisc> Numeri di telefono</a></td> </table> </body> </html> e Web -102 17

- e Web Limiti del protocollo CGI Limiti del protocollo CGI Il protocollo HTTP è senza memoria è difficile gestire applicazioni che richiedono operazioni multiple sulla base di dati Il programma CGI è un processo, per cui devono essere allocate risorse di calcolo se occorrono risorse notevoli, l allocazione può essere lenta richieste diverse allo stesso programma causano allocazioni diverse Ogni esecuzione del programma CGI, richiede una nuova connessione con il DBMS sovraccarico del DBMS I file HTML sono generati dinamicamente è difficile realizzare un servizio di ricerca di informazioni sul sito, perché i dati devono essere estratti dalla base di dati e Web -103 e Web -104 Alternative a CGI Soluzioni basate sul server il client è un browser standard il server gestisce l interazione con la base di dati Soluzioni basate sul client estendono il client, per incorporare alcune delle funzionalità del server e Web -105 Soluzioni basate sul server Materializzazione delle pagine HTML (approccio push) le pagine HTML del sito sono generate periodicamente a partire dalla base di dati adeguata se i dati hanno una dinamicità limitata Vantaggi eliminazione dei problemi di prestazioni portabilità del sito in ambienti diversi Svantaggi obsolescenza dei dati del sito e Web -106 Soluzioni basate sul server Estensione delle funzionalità del server HTTP server API (application programming interface), che permettono al server di interrogare direttamente la base di dati il server HTTP diviene il client del DBMS Vantaggi riduzione delle operazioni di inizializzazione miglioramento delle prestazioni Svantaggi mancanza di standardizzazione scarsa portabilità e Web -107 Soluzioni basate sul server CGI leggere (thin CGI) programmi CGI molto semplici, che si limitano a passare la richiesta ad un server CGI, processo sempre attivo che si interfaccia con il DBMS Vantaggi i processi thin CGI sono piccoli, il server è sempre attivo miglioramento delle prestazioni e Web -108 18

- e Web Soluzioni basate sul client Eliminazione della mediazione del server nell interazione tra client e DBMS estensioni del browser: moduli software eseguiti dal browser come librerie dinamiche (linguaggi Java, Active-X, ) helper esterni: programmi esterni attivati dal browser, che cede loro il controllo browser proprietari: browser specializzati nell accesso alle basi di dati Soluzioni adatte a contesti noti e predefiniti, quali le intranet e Web -109 19