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

Documenti analoghi
APPLICAZIONI DELLE BASI DI DATI

LABORATORIO di INFORMATICA

Lezione 9. Applicazioni tradizionali

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

DBMS ed Applicazioni Motivazioni

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

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

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

APPENDICE. Procedure in SQL (1)

Progetto di Applicazioni Software

Lezione 8. Metadati, Viste e Trigger

Progetto di Applicazioni Software

LA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE

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

Stored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

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

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

Protocolli e architetture per WIS

Architettura MVC-2: i JavaBeans

Una metodologia di progettazione di applicazioni web centrate sui dati

Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP

Corso di Laboratorio di Applicazioni Informatiche. Progetti di Basi di Dati a.a

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

Database e reti. Piero Gallo Pasquale Sirsi

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

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

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

JDBC versione base. Le classi/interfacce principali di JDBC

Uso dei data bases con PHP. Prof. Francesco Accaino Iis Altiero Spinelli Sesto Sa Giovanni

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

Dispensa di database Access

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

Stored Procedures. Antonella Poggi, Claudio Corona. Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma

Progetto Virtualizzazione

MetaMAG METAMAG 1 IL PRODOTTO

MDAC. Attualmente la versione disponibile di MDAC è la 2.8 ma faremo riferimento alla 2.6. ADO Active Data Objects ADO OLE DB ODBC

Sistemi Operativi. Conclusioni e nuove frontiere

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

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

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

Programmazione Java Avanzata Spring - JDBC

JDBC di base. Le classi/interfacce principali di JDBC

Concetti base. Impianti Informatici. Web application

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

SQL Server. SQL server e un RDBMS di tipo client/server che utilizza Transact-SQL per gestire la comunicazione fra un client e SQL Server

Web Application Libro Firme Autorizzate

DBMS e Linguaggi di programmazione nell'era di Internet

Guida alla registrazione on-line di un DataLogger

IL FITOFOR: UNO STRUMENTO PER LA GESTIONE DELLE INFORMAZIONI FITOSANITARIE. Marino Vignoli, Elisa Moneti, M. Miozzo DREAM - Italia

Informatica per le discipline umanistiche 2 lezione 10

Progettazione Web Applicazioni client-server

Capitolo 13. Interrogare una base di dati

2104 volume III Programmazione

PL/SQL PL/SQL. Ordine degli elementi dei triggers di Oracle. Differenze nei triggers. Versione dei trigger e PSM di Oracle

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

DBMS (Data Base Management System)


Indice Introduzione Elementi di base dei database Il linguaggio SQL (Structured Query Language)

Sistemi informativi secondo prospettive combinate

Corso di Informatica Modulo T3 B2 - Database in rete

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

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

PIANO DI LAVORO EFFETTIVAMENTE SVOLTO IN RELAZIONE ALLA PROGRAMMAZIONE DISCIPLINARE

lem logic enterprise manager

Organizzazione degli archivi

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

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

SOMMARIO Introduzione Caratteristiche generali della piattaforma Amministrazione degli utenti 5

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

Triggers. Basi dati attive. Trigger. Indipendenza della conoscenza

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Tecnologie di Sviluppo per il Web

Oracle PL/SQL. Motivazioni

Implementazione di MVC. Gabriele Pellegrinetti

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

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Corso Web programming

Esercitazione 4 JDBC

ITI M. FARADAY Programmazione modulare a.s

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

Architettura di un sistema operativo

19. LA PROGRAMMAZIONE LATO SERVER

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

Cosa è Tower. Sistema di autenticazione per il controllo degli accessi a reti wireless. struttura scalabile. permette la nomadicità degli utenti

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

sito web sito Internet

Modulo Gestione Interventi Tecnici. Il prezioso assistente che mancava alla tua impresa.

Esercitazione 8. Basi di dati e web

Che cos è un DBMS? Capitolo 1. Perché usare un DBMS? DBMS. Descrizioni dei dati nei DBMS. Modelli di dati

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

SQL e linguaggi di programmazione

Candidato: Luca Russo Docente: Prof. Raffaele Montella. 27 Marzo 2013

Hardware delle reti LAN

Introduzione a phpmyadmin

Componenti Web: client-side e server-side

Transcript:

Capitoli 8 e 9 Applicazioni tradizionali Applicazioni Internet SQL embedded

SQL nel codice applicativo I comandi SQL possono essere chiamati dall interno di un programma in un linguaggio ospite (ad esempio C++ o Java) I comandi SQL possono far riferimento a variabili dell ospite (incluse variabili speciali usate per restituire uno status) Deve essere incluso un comando per connettersi alla base di dati Due principali approcci all integrazione Incorporare l SQL nel linguaggio ospite (SQL incapsulato, SQLJ) Creare una speciale API per chiamare i comandi SQL (JDBC) SQL incapsulato (embedded) Approccio: incapsulare l SQL nel linguaggio ospite. Un preprocessore converte i comandi SQL in speciali chiamate all API Successivamente un normale compilatore viene usato per compilare il codice Costrutti del linguaggio connessione a una base di dati EXEC SQL CONNECT Dichiarazione di variabili EXEC SQL BEGIN (END) DECLARE SECTION Comandi EXEC SQL comando

SQL incapsulato: variabili EXEC SQL BEGIN DECLARE SECTION Char c_vnome[20]; Long c_vid; Short c_esperienza; Float c_età; EXEC SQL END DECLARE SECTION Inserimento di una riga EXEC SQL INSERT INTO Velisti VALUES(:c_vnome,:c_vid,:c_esperienza,:c_età); SQL nel codice applicativo Cursori Disadattamento di impedenza Le relazioni SQL sono (multi-)insiemi di record senza un numero di record fissato a priori. Nessuna struttura di questo tipo esiste tradizionalmente in linguaggi di programmazione procedurali come il C++ SQL supporta un meccanismo chiamato cursore per gestire questa situazione

SQL incapsulato SELECT senza cursori EXEC SQL SELECT V.vnome,V.età INTO :c_vnome, :c_età FROM Velisti V WHERE V.vid = :c_vid; Questa SELECT restituisce al più una sola tupla non è necessario definire un cursore Incapsulare l SQL in C: un esempio char SQLSTATE[6]; EXEC SQL BEGIN DECLARE SECTION char c_vnome[20]; short c_minesperienza; float c_età; EXEC SQL END DECLARE SECTION c_minesperienza = random(); EXEC SQL DECLARE vinfo CURSOR FOR SELECT V.vnome, V.età FROM Velisti V WHERE V.esperienza > :c_minesperienza ORDER BY V.vnome; EXEC SQL OPEN vinfo; do { EXEC SQL FETCH vinfo INTO :c_vnome, :v_età; printf( %s ha %d anni\n, c_vnome, c_età); } WHILE (SQLSTATE!= 02000 ); EXEC SQL CLOSE vinfo;

API per basi di dati alternative all incapsulamento Piuttosto che modificare il compilatore, si possono aggiungere librerie con chiamate alla base di dati (API) Speciale interfaccia standardizzata: procedure/oggetti Si passano le stringhe SQL dal linguaggio, si presentano gli insiemi risultato in maniera comprensibile JDBC della Sun: API Java Generalmente neutre rispetto al DBMS Un driver rileva le chiamate e le traduce in codice specifico per il DBMS La base di dati può essere distribuita Uso di Call Level Interface (CLI) I DBMS sono eseguiti come processi server Processi attivi che offrono dei servizi a richiesta Per fruire dei servizi occorre connettersi al DBMS Interfacce fra DBMS e altri programmi Applicazione Interfaccia (ADO, RDO, ) Driver (DBD,ODBC, ) Database (Oracle,MySQL, )

Stored Procedure Stored procedure Cos è una stored procedure Programma eseguito tramite un singolo comando SQL Eseguito nello spazio del processo sul server Vantaggi Può incapsulare la logica dell applicazione rimanendo al contempo vicino ai dati Riutilizzo della logica dell applicazione da parte di utenti diversi Evita la lettura dei record tupla-per-tupla tramite i cursori

Stored procedure: esempi CREATE PROCEDURE MostraNumPrenotazione SELECT V.vid, V.vnome, COUNT(*) FROM Velisti V, Prenota P WHERE V.vid = P.vid GROUP BY V.vid, V.vnome Le stored procedure possono avere parametri Tre modi differenti: IN, OUT, INOUT CREATE PROCEDURE AumentaEsperienza( IN velista_vid INTEGER, IN aumento INTEGER) UPDATE Velisti SET esperienza = esperienza + aumento WHERE vid = velista_vid Chiamare le stored procedure EXEC SQL BEGIN DECLARE SECTION int vid; int esperienza; EXEC SQL END DECLARE SECTION // ora aumenta l esperienza di questo velista EXEC CALL AumentaEsperienza(:vid, :esperienza);

SQL/PSM La maggior parte dei DBMS consente agli utenti di scrivere stored procedure in un linguaggio semplice e general-purpose (vicino all SQL) lo standard SQL/PSM ne è un esempio Dichiarare una stored procedure: CREATE PROCEDURE nome(p1, p2,... pn) Dichiarazioni di variabili locali Codice della procedura; Dichiarare una funzione: CREATE FUNCTION nome(p1,..., pn) RETURNS TipoDatoSQL Dichiarazione di variabili locali Codice della funzione; Applicazioni Internet

Basi di Dati e Reti La diffusione delle reti di calcolatori consente a un numero elevato di utenti di accedere ad enormi quantità di dati Internet ha permesso la nascita del cosiddetto commercio elettronico Richiede accessi in lettura e scrittura a diverse basi di dati Prodotti del venditore Mediatore per l acquisto Internet e Basi di Dati Le stesse informazioni messe a disposizione sui siti Internet sono sempre più spesso organizzate come basi di dati Dall HTML a XML Questo approccio semplifica le operazioni di inserimento, aggiornamento, cancellazione di dati

Web-service E una applicazione che fornisce un servizio ben definito Un insieme di procedure richiamabili in remoto tramite Internet Le applicazioni possono essere scritte in linguaggi diversi Ma scambiano informazioni attraverso formati standard - XML SOAP: standard per chiamate basate su XML di servizi remoti Argomenti trattati nel corso TARI 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 Evoluzione delle architetture dipendente da Evoluzione tecnologia Riduzione costi (diffusione PC, ecc.)

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 Gli utenti si aspettano interfacce di tipo grafico Il calcolo centralizzato di tutte le interfacce grafiche è troppo costoso per un singolo sistema Client Logica dell Applicazione DBMS Architetture client-server thin client Il client implementa solo l interfaccia utente grafica Il server implementa la logica dell applicazione e la gestione dei dati Logica dell Applicazione Client Rete DBMS Client

Architetture client-server thick client Il client implementa sia l interfaccia grafica che (parte de) la logica dell applicazione Il server implementa la gestione dei dati Client Logica dell Applicazione DBMS Rete Client Logica dell Applicazione 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

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 (moduli HTML ) 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

Tecnologie Programma client (Browser web ) HTML Javascript XSLT Application Server (Tomcat, Apache) JSP Servlets Cookies CGI Sistema di basi di dati (MySQL, ORACLE) XML Stored Procedures Archietture client-server three tier Client DBMS Rete Logica dell Applicazione Rete Client

Vantaggi architetture a tre livelli Sistemi eterogenei Thin client Accesso integrato ai dati Scalabilità rispetto al numero di client Benefici nello sviluppo del software Interazioni fra livelli attraverso API standardizzate 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 effettuare 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