Скачать презентацию LA REALIZZAZIONE DI APPLICAZIONI Quattro parti Скачать презентацию LA REALIZZAZIONE DI APPLICAZIONI Quattro parti

f0ba4ea66b7d6343da942d88dfeb3364.ppt

  • Количество слайдов: 18

LA REALIZZAZIONE DI APPLICAZIONI • Quattro parti: • Gestione dati • Business rules • LA REALIZZAZIONE DI APPLICAZIONI • Quattro parti: • Gestione dati • Business rules • Logica applicativa • Interfaccia utente • Molte possibili architetture • L’approccio tradizionale: uso di un linguaggio PLSQL 1. 1

ALCUNE ARCHITETTURE Client-Server Logica + interfaccia Sistema di comunicazione DBMS: dati e business rules ALCUNE ARCHITETTURE Client-Server Logica + interfaccia Sistema di comunicazione DBMS: dati e business rules Thin Client Interfaccia Sistema di comunicazione DBMS+application server: logica, dati e business rules PLSQL 1. 2

THREE TIERS Client: Interfaccia application server: logica applicativa DBMS server: dati e business rules THREE TIERS Client: Interfaccia application server: logica applicativa DBMS server: dati e business rules PLSQL 1. 3

WEB SERVER Client: Browser web server: comunicazioni application server: logica applicativa DBMS server: dati WEB SERVER Client: Browser web server: comunicazioni application server: logica applicativa DBMS server: dati e business rules PLSQL 1. 4

LA NOSTRA ARCHITETTURA Browser (interfaccia): HTML + JScript http apache con modulo mod_plsql (aka LA NOSTRA ARCHITETTURA Browser (interfaccia): HTML + JScript http apache con modulo mod_plsql (aka Oracle Web server) su oracle 1. cli e oracle 2. cli oracle DBMS server su oracle 1. cli e oracle 2. cli URL HTML (+ JScript) web server (comunicazioni): non serve programmarlo oracle*net rpc PL/SQL HTML (+ JScript) application server (logica applicativa): oracle server su oracle 1. cli, codice in PL/SQL Records / eccezioni DBMS server (dati e business rules) codice in SQL e trigger SQL PLSQL 1. 5

IL LINGUAGGIO • Scrivere un’applicazione che visualizzi una schermata, raccolga dei dati, segnali eventuali IL LINGUAGGIO • Scrivere un’applicazione che visualizzi una schermata, raccolga dei dati, segnali eventuali inconsistenze con i dati nella BD oppure inserisca i nuovi dati • Serve un linguaggio che possa: • Effettuare I/O • Effettuare interrogazioni • Controllare il flusso in un modo che dipende dal risultato dell’interrogazione • Effettuare aggiornamenti PLSQL 1. 6

IL LINGUAGGIO • Tre soluzioni: • Linguaggio di programmazione + API • Linguaggio immerso IL LINGUAGGIO • Tre soluzioni: • Linguaggio di programmazione + API • Linguaggio immerso • Linguaggio integrato PLSQL 1. 7

LINGUAGGIO INTEGRATO • Integrazione dei tipi di dato • Integrazione dello scoping • Integrazione LINGUAGGIO INTEGRATO • Integrazione dei tipi di dato • Integrazione dello scoping • Integrazione del DML PLSQL 1. 8

UNA SOLUZIONE procedure prenota. If( il. Login in prenota. login%TYPE, la. Data in date, UNA SOLUZIONE procedure prenota. If( il. Login in prenota. login%TYPE, la. Data in date, l. Ora in prenota. ora%TYPE) is una. Prenotazione prenota%ROWTYPE; cursor c is select * from prenota where data = la. Data and ora = l. Ora; begin open c; fetch c into una. Prenotazione; if c%NOTFOUND then insert into prenota values (codice. Seq. nextval, il. Login, la. Data, l. Ora, il. Term, la. Data. P, il. Term. P); else. . . ; end if; end prenota. If; PLSQL 1. 9

L’ASPETTO DEL CODICE procedure crea. Elaborato( Cod. Temp Allocazioni. Temp. Cod. Temp%type, Resp number, L’ASPETTO DEL CODICE procedure crea. Elaborato( Cod. Temp Allocazioni. Temp. Cod. Temp%type, Resp number, ) is i binary_integer; cursor callocazioni is select Cod. El, Matricola, from Allocazioni where Allocazioni. Cod. El = Crea. Elaborato. Cod. Temp; begin insert into Elaborati (Cod. El, Pass. El, Cod. Co) values (Cod. El, Pass. El, '1'); open callocazioni; loop fetch callocazioni into Il. Cod. Temp, La. Matricola; exit when callocazioni%notfound; insert into Allocazioni (Matricola, Cod. El, Responsabile) values(La. Matricola, Cod. El, 'N'); end loop; close callocazioni; endcrea. Elaborato; PLSQL 1. 10

PL/SQL • Un linguaggio per manipolare basi di dati che integra DML (SQL) con PL/SQL • Un linguaggio per manipolare basi di dati che integra DML (SQL) con il linguaggio ospite • Un linguaggio a blocchi con una struttura del controllo completa che contiene l’SQL come sottolinguaggio • Permette: • Di definire variabili di tipo scalare, record (annidato), insieme di scalari, insiemi di record piatti, cursore • Di definire i tipi delle variabili a partire da quelli della base di dati • Di eseguire interrogazioni SQL ed esplorarne il risultato • Di modificare la base di dati • Di definire procedure e moduli • Di gestire il flusso del controllo, le transazioni, le eccezioni PLSQL 1. 11

STRUTTURA • Il blocco: • DECLARE <dichiarazioni> • BEGIN <comandi> • EXCEPTION <gestori> • STRUTTURA • Il blocco: • DECLARE • BEGIN • EXCEPTION • END; • La procedura: • PROCEDURE IS • • BEGIN • EXCEPTION • END; PLSQL 1. 12

Il modulo: interfaccia e implementazione • CREATE PACKAGE <nome> AS. . . END <nome>; Il modulo: interfaccia e implementazione • CREATE PACKAGE AS. . . END ; • CREATE PACKAGE BODY AS. . . END ; PLSQL 1. 13

LE DICHIARAZIONI DI VARIABILI • <nome> <tipo>; • <nome> CONSTANT <tipo> : = <expr>; LE DICHIARAZIONI DI VARIABILI • ; • CONSTANT : = ; • CURSOR IS ; • Operazioni: OPEN, FETCH, CLOSE • Attributi di variabili e cursori: • Var%TYPE, dove var è una variabile o una colonna • Cur%ROWTYPE dove cur è un cursore o una tabella PLSQL 1. 14

IL FLUSSO DEL CONTROLLO • IF - THEN - (ELSIF THEN ) - ELSE IL FLUSSO DEL CONTROLLO • IF - THEN - (ELSIF THEN ) - ELSE - END IF • LOOP END LOOP (EXIT WHEN ) • FOR var IN seq LOOP END LOOP • GOTO label. . . <

TABELLE E RECORD • Una tabella è un’array associativo dinamico, di tipo • TABLE TABELLE E RECORD • Una tabella è un’array associativo dinamico, di tipo • TABLE OF INDEX BY • I tipi record sono annidabili: • RECORD (nome tipo, . . . , nome tipo) PLSQL 1. 16

ECCEZIONI • DECLARE aaa EXCEPTION; • RAISE aaa • EXCEPTION WHEN aaa THEN. . ECCEZIONI • DECLARE aaa EXCEPTION; • RAISE aaa • EXCEPTION WHEN aaa THEN. . . END PLSQL 1. 17

ARCHITETTURA • Tre possibilità: • Un programma PLSQL può essere eseguito da uno strumento, ARCHITETTURA • Tre possibilità: • Un programma PLSQL può essere eseguito da uno strumento, che invia i comandi SQL al server; • Un programma PLSQL può essere inviato da uno strumento al server, il quale lo esegue; • Un programma PLSQL può risiedere nel server, che lo esegue. PLSQL 1. 18