PL/SQL Uso di un linguaggio procedurale per un database
|
|
- Evangelina Barbieri
- 8 anni fa
- Visualizzazioni
Transcript
1 PL/SQL Uso di un linguaggio procedurale per un database Roberto Basili Corso di Basi Di Dati 1 a.a Abstract Questa breve dispensa descrive piu etesamente i contenuti della esercitazione del Gli esempi proposti si propongono di elucidare l uso dell ambiente di programmazione di una componente procedurale di interazione con un database. In particolare PL/SQL, il linguaggio procedurale reso disponibile nell ambiente Oracle 8, verra utilizzato come strumento esemplificativo. Questo documento rappresenta la prima versione di questa dispensa. Si rimanda inoltre alle dispense di riferimento consigliate nel corso. Si prega di notificare all autore eventuail errori o inconsistenze che molto probabilmente abitano le seguenti pagine 1 Introduzione Nella costruzione di un database spesso l attenzione e concentrata sui dettagli concettuali e logici dello schema al fine di ottimizzare lo sfruttamento delle potenzialita deli strumenti standard di manipolazione e interrogazione dei dati. E spesso vero pero che SQL da solo non garantisce le caratteristiche di proceduralita necessarie per la implementazione di operazione complesse sui dati. Un esempio e la generazione di raggruppamenti dei dati sulla base di uguaglianze per intervalli (ad es. Generare rispetto al campo intero A, tutti le k classi di equivalenza che riuniscono i gruppi di record secondo la condizione: tabella.a mod k ). Per implementare tali procedure PL/SQL fornisce una sintassi per la programmazione strutturata, che consente, oltre alle tipiche operazioni di un linguaggio di programmazione, la interazione con un database mediante costrutti SQL e l utilizzo di astrazioni funzionali in procedure/funzioni e packages. PL/SQL rappresenta un linguaggio di programmazione interpretato per la macchina astratta definita dal sottostante interprete SQLplus. Dato un programma PL/SQL, memorizzato in un file PLSQLprog.sql, la sua attivazione e possibile mediante il seguente comando SQLplus: SQLplusPrompt> start PLSQLprog 2 Struttura di Base di un blocco PL/SQL Un blocco PL/SQL e caratterizzato dalla seguente struttura fondamentale. [Header] [DECLARE <Costanti> 1
2 <Variabili> <Cursori> <Gestori di eccezioni/errori> ] BEGIN <Istruzioni PL/SQL> [ EXCEPTIONS <Gestione eccezioni/errori> ] END / La struttura quindi contiene sezioni opzionali (Header, Declare) e una notazione standard per la definizione del blocco funzionale (BEGIN END). Costanti e variabli sono analoghe ai correspondenti usi di essi nella programmazione strutturata. I Cursori sono utilizzati per le interazioni con il database e fornisco una astrazione funzionale delle tabelle ottenute mediante interrogazioni SQL al database. Le loro caratteristiche verrano descritte nella sezione 3.2. E da osservare che le regole di visibilita degli identificatori seguono analogamente le regole usate in un ambiente di programmazione a scoping statico (ad es. il Pascal). 3 Sezione delle dichiarazioni 3.1 Dichiarazione delle Variabili La sintassi generale per la dichiarazione delle variabili e la seguente: <nome variabile> <tipo variabile> [:= valore legale]; dove la dichiarazione del tipo puo essere opzionalmente seguita da una assegnazione di inizializzazione. Esempi di dichiarazioni di variabili sono le seguenti: DECLARE counter number(9) := 0; Ricavo number (15,3); ProdID Prodotto.PId%TYPE; De Prodotto.Descrizione%TYPE; Forn Prodotto.Fornitore%TYPE; Cst Prodotto.Costo%TYPE; Prd Prodotto%ROWTYPE; La variabile counter viene utilizzata come un numero a 9 cifre (intero) ed e inzializzata al valore 0. Ricavo invece e un numero di 15 cifre significative, di cui 3 costituiscono la parte decimale. L arrotondamento viene in genere garantito per le operazioni di assegnazione, manipolazione e stampa a video. Le definizioni di ProdID, De, Forn, Cst seguono una sintassi piu ricca: il loro tipo infatti viene derivato dal tipo dei campi corrispondenti, PId, Descrizione, Fornitore e Costo, della relazione/tabella Prodotto. Se la seguente e la istruzione SQL per la costruzione della tabella Prodotto: 2
3 CREATE TABLE Prodotto( PId integer, Descrizione CHAR(20), Fornitore CHAR(20), Costo number(15,3) PRIMARY KEY (PId) ); allora le due sequenti dichiarazioni sono equivalenti: Cst Cst Prodotto.Costo%TYPE; number(15,3); E da osservare pero che la prima rappresenta una forma piu flessibile perche la correttezza del codice PL/SQL risultante viene preservata anche a fronte di modifiche del database sottostante. Cambiamenti della definizione della tabella Prodotto infatti possono rendere illegale la seconda dichiarazione ma non la prima delle due: essa continua ad essere valida poiche la sintassi Table name.field%type viene ricalcolata alla attivazione del blocco, preservando quindi la coerenza tra il codice PL/SQL ed il database sottostante. Lo stesso vale naturalemente per la dichiarazione Prd Prodotto%ROWTYPE; che rappresenta una variabile la cui struttura interna e identica ad una tupla/record nella relazione/tabella prodotto. 3.2 Dichiarazione dei cursori La dichiarazione di un cursore e la seguente: CURSOR <cursor_name> IS <SQL_statement>; <cursor name> e l identificatore del cursore e <SQL statement> e l operazione che sui dati si intende effettuare. Esempi di dichiarazione di cursori sono: CURSOR Tabella1_Cursor IS SELECT e, f FROM Tabella1 WHERE e < f; CURSOR CURSOR_NAME is select * from Prodotto where Costo >= ; Per usi piu complessi (e quindi dichiarazioni) si rimanda alla sezione
4 4 Blocco di programma 4.1 Assegnazioni ed espressioni Assegnazioni ed espressioni su valori o variabili dichiarate nel blocco di definizione seguono regole sintattiche analoghe a quelle di un linguaggio di programmazione strutturato. Esempi sono: (1) counter := 0; (2) Ricavo := Cst * 1.25; (3) counter := counter + 1; (4) Diff_Costo := abs(costo1 - Costo2)/Costo1; (n1) Cst := Prd.Costo; (n2) De := Prd.Descrizione; L uso di costanti, operazioni aritmetiche e funzioni e esemplificato dagli esempi (1)- (4). I casi (n1) ed (n2) dimostrano l uso di assegnazioni a partire da campi di strutture complesse: Prd e dichiarato come Prd Prodotto%ROWTYPE; e Cst, De come Cst Prodotto.Costo%TYPE; DE Prodotto.Descrizione%TYPE; 4
5 5 Uso dei cursori 5.1 Cursori Semplici: Schemi di Iterazione Dato un cursore l utilizzo di esso e esemplificato dalla seguente sequenza di istruzioni: / DECLARE CURSOR cursor_name is SELECT * FROM Prodotto WHERE Costo >= ; BEGIN open cursor_name; /* Apertura del cursore Viene calcolata la query SQL e viene allocata la memoria intermedia per le tuple in uscita */ counter := 0; loop fetch cursor_name into Prd; /* Viene caricata una tuple in Prd */ exit when cname%notfound; /* condizione di uscita dal ciclo */ ProdId := Prd.PId; /* uso dei valori recuperati dalla tabella prodotto */ Cst := Prd.Costo; De := Prd.Descrizione; Ricavo := Cst * 1.25; /* aggornamento di altre variabili nello spazio di indirizzamento del blocco */ counter := counter + 1; /* contatore delle iterazioni, i.e. tuple */ end loop; close cursor_name; /* deattivazione del cursore */ END 5.2 Cursori Parametrici Un cursore come cursor name della sezione precedente puo dipendere da alcune costanti (nell esempio il valore ). Per rendere piu generale la nozione di un cursore ad esso possono essere associati uno o piu parametri rispetto ai quali attivazioni diverse possono operare su valori diversi. La astrazione ottenuta e simile quindi a quela di una astrazione funzionale come la procedura in un ambiente di progammazione strutturata. Tali cursori detti parametrici hanno una dichiarazione piu complessa, che include il nome, il tipo ed il numero di parametri. Ad es. cursor Parametric_Cursor( Soglia Prodotto.Costo%TYPE ) is select * from Prodotto where Costo >= Soglia; In questo caso la condizione WHERE nella query SQL puo assumere configurazioni diverse a fronte di diversi valori del parametro Soglia. Invocazioni diverse (cioe con risultati diversi sulla stessa istanza del database) dello stesso cursore sono quindi possibili: open Parametric_Cursor( ); 5
6 . open Parametric_Cursor( ); 6
7 6 Output in PL/SQL 6.1 Uso della Libreria DBMS Output La stampa a video dei risultati dei programmi PL/SQL e utile soprattutto in fase di debugging. A tale proposito e resa disponibile la libreria DBMS OUTPUT che in genere risiede in $ORACLE_HOME\Rdbms\Admin\. La libreria rende disponibili alcune funzioni standard di uscita, tra cui: PUT( buffer char() ), per la stampa del buffer a video PUT LINE( buffer char() ), per la stampa del buffer a video con automatico ritorno a capo NEW LINE, per la chiusura con un a capo di un buffer di stampa prodotto da precedenti PUT Per utilizzare il video come standard output e necesario configurare l ambiente SQLplus mediante la istruzione: SQLplus> set serveroutput on che consente la visualizzazione in output. Un analogo effetto ha la seguente istruzione PL/SQL: DBMS OUTPUT.enable; BEGIN L uso della libreria DBMS OUTPUT e esemplificato dal codice PL/SQL di seguito: loop fetch cname into Prd; exit when cname%notfound; ProdId:=Prd.PId; Cst:=Prd.Costo; De:=Prd.Descrizione; Ricavo := Cst * 1.25; DBMS_OUTPUT.PUT_LINE( Il Prodotto: De ha un prezzo di to_char(ricavo) ); counter := counter + 1; end loop; close cname; DBMS_OUTPUT.PUT_LINE( Sono stati analizzati to_char(counter) prodotti ); END; / Da osservare l accodamento di piu stringhe nel buffer grazie all operatore e l uso della funzione standard to char() per la trasformazione di quantita numeriche in stringhe. Poiche le funzioni in DBMS OUTPUT assumono un default di 120 caratteri nel buffer usato per l ouput a video, stringhe piu grandi producono messaggi di errore. Per estendere il buffer e possibile usare il comando DBMS OUPUT.ENABLE con un parametro in piu che defiisca la taglia del buffer in byte. La seguente istruzione PL/SQL 7
8 DBMS OUPUT.ENABLE(20000) determina un buffer di 20k. Un programma completo per il calcolo del prezzo di prodotti e fornito com eesemplificazione di seguito. /* Calcolo del Prezzo Nov 2000 Argomenti: - Uso di cursori - Uso delle funzioni - Uso delle librerie di stampa *********************************** */ DECLARE ProdID Prodotto.PId%TYPE; De Prodotto.Descrizione%TYPE; Forn Prodotto.Fornitore%TYPE; Cst Prodotto.Costo%TYPE; Prezzo number (38); counter number(9); cursor cname( Thresh Prodotto.Costo%TYPE ) is select * from Prodotto where Costo >= Thresh; Prd cname%rowtype; BEGIN commit; counter := 0; for Prd in cname(60000) loop ProdId := Prd.PId; Cst := Prd.Costo; De := Prd.Descrizione; Prezzo := Cst * 1.25; DBMS_OUTPUT.PUT_LINE( Il Prodotto: trim(de) ha un prezzo di to_char(prezzo) ); counter := counter + 1; end loop; DBMS_OUTPUT.PUT_LINE( Sono stati analizzati to_char(counter) prodotti ); END; / 8
9 7 FILE I/O in PL/SQLi 7.1 Uso della Libreria utl file La libreria utl file consente la lettura e la scrittura su file. Per una trattazione completa si rimanda alle dispense consigliate del corso. Alcune osservazioni ed esempi sono state inseriti in questa sezione. La prima osservazione e che qualsiasi file si intenda manipolare e necessario: ottenere i diritti di accesso dal database corrente, cioe dichiarare le directory accessibili per operazioni di I/O nella cofigurazione del DB stesso. descrivere tali file in termini di una directory del file system locale e di un nome file. tali informazioni sono in genere disgiunte per i motivi di seguito illustrati La prima informzione e parte della configurazione del database ed e determinata all atto della sua attivazione. Tale informazione quindi e parte dei paranetri di inizializzazione che risiedono i genere in $ORACLE_HOME\ORA_DATA\DATABASE_NAME\init.ora In tale file quindi vanno inserite le righe di dichiarazione della variabile di ambiente utl file dir per ogni directory che si intende utilizzare per operazioni di I/O. Tali dichiarazioni non supportano discese ricorsive attraverso il corrente file system, ma debbono eventualmente essere enumerate. Un esempio di dichiarazione (in ambiente Windows) e il seguente. FILE init.ora utl_file_dir = c:\database\datiutente utl_file_dir = c:\database\datiutente\datiscambio Per utilizzare un file e necessario completare le operazioni di apertura e chiusura del file stesso analoghe alle funzionalita disponibili in un ambiente di programmazione strutturata. Le operazioni di apertura e chiusura del database sono garantite dalle funzioni e OutFileHandler := utl_file.fopen(outdirectoryname, OutFileName,OpenMode); utl_file.fclose(outfilehandler); rispettivamente. OpenMode assume rispettivamente i valori di W (write), R (read) ed A Append. Le funzioni sono sono illustrate dal seguente frammento di programma. Outdir char(200); Outfilename char(25); Outf UTL_FILE.FILE_TYPE; Outdir := c:\database\datiscambio ; Outfilename := Mio.dat ; DBMS_OUTPUT.PUT_LINE ( Trying to open < trim(outdir) / trim(outfilename) ); Outf := utl_file.fopen(outdir, Outfilename, W );. /uso del file */ utl_file.fclose(outf); 9
10 Un esempio completo con l uso delle funzioni di scruittura su file e riportato di seguito. /* Stampa dei prezzi su FILE Argomento: Uso dei file */ DECLARE Outdir char(200); Outfilename char(25); Outf UTL_FILE.FILE_TYPE; De Prodotto.Descrizione%TYPE; Forn Prodotto.Fornitore%TYPE; Cst Prodotto.Costo%TYPE; Ricavo number (12); counter number(9) := 0; cursor cname( Thresh Prodotto.Costo%TYPE ) is select * from Prodotto where Costo >= Thresh; Prd cname%rowtype; BEGIN commit; open cname(30000); DBMS_OUTPUT.enable(200000); Outdir := C:\Documenti\Robertob\Didattica\BasidiDati\Esempio ; Outfilename := Mio.dat ; DBMS_OUTPUT.PUT_LINE ( Trying to open < trim(outdir) \ Outfilename ); Outf := utl_file.fopen(outdir, Outfilename, W ); loop fetch cname into Prd; exit when cname%notfound; Cst := Prd.Costo; De := Prd.Descrizione; Ricavo := Cst * 1.25; DBMS_OUTPUT.PUT_LINE( Il Prodotto: trim(de) ha un prezzo di to_char(ricavo) ); utl_file.putf( Outf, Il prodotto <%s> ha un prezzo di Lt. %s\n, trim(de), to_char(ricavo) ); utl_file.fflush(outf); counter := counter + 1; end loop; close cname; DBMS_OUTPUT.PUT_LINE( Sono stati analizzati to_char(counter) prodotti ); 10
11 END; / utl_file.fclose(outf); EXCEPTION WHEN utl_file.invalid_path THEN DBMS_OUTPUT.PUT_LINE ( Path << trim(outdir) >> Wrong ); WHEN utl_file.write_error THEN DBMS_OUTPUT.PUT_LINE( Write error!! ); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE ( File << Outfilename >> not Found ); 11
12 8 Uso complesso dei cursori Il seguente esempio illustra l uso annidato di cursori. Il programma si propone di raggruppare diversi prodotti in fasce di prezzo. La fascia di prezzo e centrata sul prezzo X di un prodotto contiene tutti i prodotti che costano X piu o meno il 2O% di X. /* Raggruppamenti per Fascia di Prezzo Nov 2000 Argomento: Uso di cursori annidati *********************************** */ DECLARE BEGIN emp_found boolean := FALSE; ProdID Prodotto.PId%TYPE; De Prodotto.Descrizione%TYPE; Forn Prodotto.Fornitore%TYPE; Cst Prodotto.Costo%TYPE; Ricavo number (38); counter number(9); counter2 number(9); cursor cname( Thresh Prodotto.Costo%TYPE ) is select * from Prodotto where Costo >= Thresh ORDER BY Costo; Prd cname%rowtype; cursor pippo is select * from Prodotto; Prd1 cname%rowtype; Prd2 pippo%rowtype; Cost_Diff number(10,2); commit; DBMS_OUTPUT.enable(200000); counter := 0; for Prd in cname(30000) loop Cst := Prd.Costo; if Cst*1.25 > then De := Prd.Descrizione; Ricavo := Cst * 1.25; ProdId := Prd.PId; DBMS_OUTPUT.PUT_LINE( Analizzo il Prodotto: trim(de) ( trim(prd.fornitore) ) Ricavo: Ricavo ); DBMS_OUTPUT.NEW_LINE; counter2 := 0; for Prd2 in pippo loop Cost_Diff := abs(prd2.costo - Cst)/Prd2.Costo; if Cost_Diff <= 0.20 then 12
13 END; / DBMS_OUTPUT.PUT_LINE( Simile a: trim(prd2.descrizione) ( trim(prd2.fornitore) ) ); counter2 := counter2 + 1; end if; end loop; DBMS_OUTPUT.PUT_LINE( Raggruppati < to_char(counter2) > prodotti ); DBMS_OUTPUT.PUT_LINE( ); end if; counter := counter + 1; end loop; DBMS_OUTPUT.PUT_LINE( Sono stati analizzati to_char(counter) prodotti ); 13
Oracle - PL/SQL. Oracle: Prodotti
Oracle - PL/SQL Introduzione ad Oracle PL/SQL: Elementi di base Tecniche di programmazione uso delle variabili uso dei cursori uso delle funzioni/procedure I/O Oracle: Prodotti SQL*Plus - Interprete di
DettagliProcedure memorizzate SQL-2003/PSM. Forma base di PSM. Parametri in PSM
Procedure memorizzate SQL-2003/PSM Procedure memorizzate nel database Programmazione general-purpose Leggere sezione 8.2 di Garcia-Molina et al. Lucidi derivati da quelli di Jeffrey D. Ullman 1 Una estensione
DettagliOracle PL/SQL. Motivazioni
Oracle PLSQL Motivazioni Supponiamo che nella gestione del database Azienda ci venga chiesto di apportare le modifiche necessarie a far sì che ad ogni impiegato possa essere assegnato, alla fine di ogni
DettagliLA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE
LA REALIZZAZIONE DI APPLICAZIONI ALCUNE ARCHITETTURE Quattro parti: Gestione dati Client-Server Logica + interfaccia Logica + interfaccia Business rules Sistema di comunicazione Logica applicativa DBMS:
DettagliLA REALIZZAZIONE DI APPLICAZIONI. Quattro parti: Gestione dati. Business rules. Logica applicativa. Interfaccia utente. Molte possibili architetture
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
DettagliI file di dati. Unità didattica D1 1
I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità
DettagliCome trattare il risultato di un comando SQL (relazioni) che
USO DI SQL DA PROGRAMMI: PROBLEMI 1 Come collegarsi alla BD Come trattare gli operatori SQL Come trattare il risultato di un comando SQL (relazioni) che Come scambiare informazioni sull esito delle operazioni.
DettagliVolumi di riferimento
Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di
DettagliBasi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL
Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,
DettagliDBMS (Data Base Management System)
Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire
DettagliDescrizione di un algoritmo
Descrizione di un algoritmo Un algoritmo descrive due tipi fondamentali di oper: calcoli ottenibili tramite le oper primitive su tipi di dato (valutazione di espressioni) che consistono nella modifica
DettagliPL/SQL PL/SQL. Ordine degli elementi dei triggers di Oracle. Differenze nei triggers. Versione dei trigger e PSM di Oracle
Versione dei trigger e PSM di Oracle Lucidi derivati da quelli di Jeffrey D Ullman Oracle usa una variante di SQL/PSM che si chiama non consente solo di creare e memorizzare procedure e funzioni, ma puo
DettagliDatabase. Si ringrazia Marco Bertini per le slides
Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida
DettagliCorso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati
Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente
DettagliTEORIA sulle BASI DI DATI
TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere
DettagliCapitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2.
Capitolo Quarto...2 Le direttive di assemblaggio di ASM 68000...2 Premessa...2 1. Program Location Counter e direttiva ORG...2 2. Dichiarazione di dati: le direttive DS e DC...3 2.1 Direttiva DS...3 2.2
DettagliSQL 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
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 DEFINIZIONE Il concetto di vista 2 È una relazione derivata. Si specifica l espressione che genera il suo contenuto.
DettagliArchivi e Basi di Dati
Archivi e Basi di Dati A B C File Programma 1 Programma 2 A B C File modificati Programma 1 DBMS DB Programma 2 Informatica Generale (CdL in E&C), A.A. 2000-2001 55 Problemi nella gestione di archivi separati
DettagliIl DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari
Gubiani & Montanari Il DBMS Oracle 1 Il DBMS Oracle Express Edition Donatella Gubiani e Angelo Montanari Il DBMS Oracle Il DBMS Oracle Oracle 10g Express Edition Il DBMS Oracle (nelle sue versioni più
DettagliDispensa di database Access
Dispensa di database Access Indice: Database come tabelle; fogli di lavoro e tabelle...2 Database con più tabelle; relazioni tra tabelle...2 Motore di database, complessità di un database; concetto di
DettagliUso delle basi di dati DBMS. Cos è un database. DataBase. Esempi di database
Uso delle basi di dati Uso delle Basi di Dati Il modulo richiede che il candidato comprenda il concetto di base dati (database) e dimostri di possedere competenza nel suo utilizzo. Cosa è un database,
DettagliDDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione
SQL DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE SQL è più di un semplice linguaggio di interrogazione! Linguaggio di definizione dati (Data-definition language, DDL):! Crea/distrugge/modifica relazioni
DettagliOrganizzazione degli archivi
COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i
DettagliLezione 8. Metadati, Viste e Trigger
Lezione 8 Metadati, Viste e Trigger Pag.1 Metadati e catalogo di sistema I metadati sono dati a proposito dei dati (quali tabelle esistono?, quali campi contengono?, quante tuple contengono?, ci sono vincoli
DettagliInsegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati
Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7 Il trattamento dei dati database: il linguaggio SQL seconda parte Prof. Valle D.ssa Folgieri Lez9 15.11.06 Trattamento dati. Database: il
DettagliBasi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati
Basi di dati Il Modello Relazionale dei Dati Proposto da E. Codd nel 1970 per favorire l indipendenza dei dati Disponibile come modello logico in DBMS reali nel 1981 (non è facile realizzare l indipendenza
DettagliDATABASE. www.andreavai.it
Cos'è un database? Quando si usa? Differenze con i fogli elettronici Le tabelle: record, campi, tipi di dati Chiavi e indici Database relazionali (R-DBMS) Relazioni uno-a-uno Relazioni uno-a-molti Relazioni
DettagliUser Tools: DataBase Manager
Spazio di lavoro Per usare T-SQL Assistant selezionare il link Simple Query e spostare a piacere la piccola finestra dove un menu a tendina mostra i diversi comandi SQL selezionabili, il pulsante Preview
DettagliLezione 9. Applicazioni tradizionali
Lezione 9 Applicazioni tradizionali Pag.1 Sommario Concetti trattati in questa lezione: SQL nel codice applicativo Cursori API native ODBC Pag.2 SQL nel codice applicativo I comandi SQL possono essere
DettagliProgettaz. e sviluppo Data Base
Progettaz. e sviluppo Data Base! Progettazione Basi Dati: Metodologie e modelli!modello Entita -Relazione Progettazione Base Dati Introduzione alla Progettazione: Il ciclo di vita di un Sist. Informativo
DettagliI Sistemi Informativi
I Sistemi Informativi Definizione Un Sistema Informativo è un mezzo per acquisire, organizzare, correlare, elaborare e distribuire le informazioni che riguardano una realtà che si desidera descrivere e
DettagliIl linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf
Il linguaggio SQL: trigger Sistemi Informativi T Versione elettronica: 04.7.SQL.trigger.pdf DBMS attivi Un DBMS si dice attivoquando dispone di un sottosistema integrato per definire e gestire regole I
DettagliCorso sul linguaggio SQL
Corso sul linguaggio SQL Modulo L2B (SQL) 2.1 Comandi sui database 1 Prerequisiti Introduzione ai DB Linguaggi per database Tipi fondamentali di dati 2 1 Introduzione In questa Unità introduciamo il linguaggio
DettagliIl linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.
(Structured Query Language) : Il linguaggio è di fatto lo standard tra i linguaggi per la gestione di data base relazionali. prima versione IBM alla fine degli anni '70 per un prototipo di ricerca (System
DettagliAl giorno d oggi, i sistemi per la gestione di database
Introduzione Al giorno d oggi, i sistemi per la gestione di database implementano un linguaggio standard chiamato SQL (Structured Query Language). Fra le altre cose, il linguaggio SQL consente di prelevare,
DettagliEsercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:
Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R: Si consiglia di creare il data base, inserire i dati nelle tabelle, provare
DettagliIntroduzione al corso
Introduzione al corso Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: introduzione.pdf Sistemi Informativi L-B Docente Prof. Paolo Ciaccia
DettagliIntroduzione ai database relazionali
Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita
DettagliEXPLOit Content Management Data Base per documenti SGML/XML
EXPLOit Content Management Data Base per documenti SGML/XML Introduzione L applicazione EXPLOit gestisce i contenuti dei documenti strutturati in SGML o XML, utilizzando il prodotto Adobe FrameMaker per
DettagliData Base. Master "Bio Info" Reti e Basi di Dati Lezione 6
Data Base 1 Sommario I concetti fondamentali. Database Relazionale.. Query e SQL MySql, Creazione di un db in MySQL con PHPmyAdmin Creazione database e delle Tabelle Query Inserimento Ricerca Modifica
DettagliLinee guida per la programmazione di transazioni in PL/SQL
Linee guida per la programmazione di transazioni in PL/SQL Giuseppe Berio Giuseppe Berio DI - Unito 1 Esempio La transazione deve registrare l evasione di un ordine, rappresentato su più tabelle specializzate
DettagliGestione ed analisi di base dati nell epidemiologia. delle malattie infettive
Università degli Studi di Torino - Facoltà di Medicina Veterinaria Laboratorio di epidemiologia delle malattie infettive Scuola Specializzazione in Sanità Animale, Allevamento e Produzioni Zootecniche
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
DettagliAPPENDICE. Procedure in SQL (1)
APPENDICE Procedure in SQL Transazioni in SQL Embedded SQL Remote Procedure Call Appendice 1 Procedure in SQL (1) Standard SQL2 permette di definire procedure, associate a singoli comandi SQL, memorizzate
DettagliI database relazionali (Access)
I database relazionali (Access) Filippo TROTTA 04/02/2013 1 Prof.Filippo TROTTA Definizioni Database Sistema di gestione di database (DBMS, Database Management System) Sistema di gestione di database relazionale
DettagliLezione V. Aula Multimediale - sabato 29/03/2008
Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)
DettagliDATABASE RELAZIONALI
1 di 54 UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II DIPARTIMENTO DI DISCIPLINE STORICHE ETTORE LEPORE DATABASE RELAZIONALI Dott. Simone Sammartino Istituto per l Ambiente l Marino Costiero I.A.M.C. C.N.R.
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
DettagliTelerilevamento e GIS Prof. Ing. Giuseppe Mussumeci
Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme
DettagliProgrammazione in Java Parte I: Fondamenti
Programmazione in Java Parte I: Fondamenti Lezione 1 Dott. Marco Faella Riferimenti Testi consigliati: Progettazione del software e design pattern in Java di C.S. Horstmann Apogeo Gli esempi di codice
DettagliIntroduzione al Linguaggio C
Introduzione al Linguaggio C File I/O Daniele Pighin April 2009 Daniele Pighin Introduzione al Linguaggio C 1/15 Outline File e dati Accesso ai file File I/O Daniele Pighin Introduzione al Linguaggio C
DettagliFONDAMENTI di INFORMATICA L. Mezzalira
FONDAMENTI di INFORMATICA L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software
DettagliIl sistema operativo UNIX/Linux. Gli script di shell
Il sistema operativo UNIX/Linux Gli script di shell Introduzione Le shell permettono La gestione di comandi su linea di comando La shell comprende automaticamente quando il costrutto termina e lo esegue
DettagliLezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
DettagliLinguaggi e Paradigmi di Programmazione
Linguaggi e Paradigmi di Programmazione Cos è un linguaggio Definizione 1 Un linguaggio è un insieme di parole e di metodi di combinazione delle parole usati e compresi da una comunità di persone. È una
Dettagli1. BASI DI DATI: GENERALITÀ
1. BASI DI DATI: GENERALITÀ BASE DI DATI (DATABASE, DB) Raccolta di informazioni o dati strutturati, correlati tra loro in modo da risultare fruibili in maniera ottimale. Una base di dati è usualmente
DettagliDBMS. Esempi di database. DataBase. Alcuni esempi di DBMS DBMS. (DataBase Management System)
(DataBase Management System) Sistemi di ges3one di basi di da3 Un Database Management System è un sistema software progettato per consentire la creazione e manipolazione efficiente di database (collezioni
DettagliAutomatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione
Automatizzare i compiti ripetitivi I file batch Anno accademico 2000-01 1 Spesso capita di dover eseguire ripetutatmente una data sequenza di comandi Introdurli uno a uno da tastiera è un processo lento
DettagliOSSIF WEB. Manuale query builder
OSSIF WEB Manuale query builder - Maggio 2010 1) Sommario 1) SOMMARIO... 2 INTRODUZIONE... 3 Scopo del documento... 3 Struttura del documento... 3 Descrizione dell interfaccia grafica... 3 SELEZIONE DI
DettagliEsercitazione sulle libpq - libreria C per PostgreSQL
Esercitazione sulle libpq - libreria C per PostgreSQL Roberto Tronci roberto.tronci@diee.unica.it Basi di Dati A.A. 2007/2008 Tronci ( roberto.tronci@diee.unica.it ) Esercitazione libpq Basi di Dati 2007/2008
DettagliCOS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA
LINGUAGGI DI ALTO LIVELLO Si basano su una macchina virtuale le cui mosse non sono quelle della macchina hardware COS È UN LINGUAGGIO? Un linguaggio è un insieme di parole e di metodi di combinazione delle
DettagliDall Algoritmo al Programma. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni
Dall Algoritmo al Programma Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni IL PROGRAMMA Gli algoritmi sono modelli di descrizione astratti e per controllarne il funzionamento devono essere
DettagliOggetti Lezione 3. aspetti generali e definizione di classi I
Programmazione a Oggetti Lezione 3 Il linguaggio Java: aspetti generali e definizione di classi I Sommario Storia e Motivazioni Definizione di Classi Campi e Metodi Istanziazione di oggetti Introduzione
DettagliSuggerimenti per lo Sviluppo delle Applicazioni con PL/SQL. Simona Rotolo
Suggerimenti per lo Sviluppo delle Applicazioni con PL/SQL Simona Rotolo 2 Questo documento, rivolto a chi sviluppa codice in PL/Sql, è stato redatto al fine di fornire degli standard di sviluppo che aiuteranno
DettagliINFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
DettagliStored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma
Stored Procedures Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma Progetto di Applicazioni Software Stored Procedure e User Defined
DettagliISTITUTO TECNICO ECONOMICO MOSSOTTI
CLASSE III INDIRIZZO S.I.A. UdA n. 1 Titolo: conoscenze di base Conoscenza delle caratteristiche dell informatica e degli strumenti utilizzati Informatica e sistemi di elaborazione Conoscenza delle caratteristiche
DettagliLINGUAGGI DI PROGRAMMAZIONE
LINGUAGGI DI PROGRAMMAZIONE Il potere espressivo di un linguaggio è caratterizzato da: quali tipi di dati consente di rappresentare (direttamente o tramite definizione dell utente) quali istruzioni di
DettagliISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++
ISTITUTO TECNICO INDUSTRIALE STATALE G A L I L E O F E R R A R I S DIISPENSA DII IINFORMATIICA E SIISTEMII AUTOMATIICII LA GESTIONE DEI FILE DI TESTO IN C++ Le classi per la gestione dei file. Il C++ è
DettagliGestione delle tabelle
Linguaggio SQL: fondamenti Creazione di una tabella Modifica della struttura di una tabella Cancellazione di una tabella Dizionario dei dati Integrità dei dati 2 Creazione di una tabella (1/3) Si utilizza
DettagliAbilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere
Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.
DettagliProgettazione di Basi di Dati
Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello
DettagliL architettura di un DBMS
L architettura di un DBMS sources: Lucidi del corso di Lucidi del corso di Laboratorio di Basi di dati e sistemi informativi, Montesi, Magnani, Corso di laurea in Informatica per il management, Scienze
Dettagli(anno accademico 2008-09)
Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09) Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato
DettagliAccess. P a r t e p r i m a
Access P a r t e p r i m a 1 Esempio di gestione di database con MS Access 2 Cosa è Access? Access e un DBMS che permette di progettare e utilizzare DB relazionali Un DB Access e basato sui concetti di
DettagliVariabili e tipi di dato
Variabili e tipi di dato Tutte le variabili devono essere dichiarate, specificandone il tipo La dichiarazione deve precedere l uso Il tipo è un concetto astratto che esprime: L allocazione di spazio per
DettagliDati relazionali e XML
Dati relazionali e Introduzione (1) Memorizzazione dei dati Utilizzo dei dati Applicazione DBMS relazionale Applicazione Applicazione 2 Introduzione (2) Memorizzazione dei dati Utilizzo dei dati Applicazione
DettagliCorso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP
Corso Analista Programmatore Web PHP Corso Online Analista Programmatore Web PHP Accademia Futuro info@accademiafuturo.it Programma Generale del Corso Analista Programmatore Web PHP Tematiche Trattate
DettagliLa Metodologia adottata nel Corso
La Metodologia adottata nel Corso 1 Mission Statement + Glossario + Lista Funzionalià 3 Descrizione 6 Funzionalità 2 Schema 4 Schema 5 concettuale Logico EA Relazionale Codice Transazioni In PL/SQL Schema
DettagliCosa è un foglio elettronico
Cosa è un foglio elettronico Versione informatica del foglio contabile Strumento per l elaborazione di numeri (ma non solo...) I valori inseriti possono essere modificati, analizzati, elaborati, ripetuti
DettagliUso delle basi di dati. Informazione e dato. Cos è un database. Tabelle. Esempi di database
Uso delle basi di dati CORSO ECDL DataBase Il modulo richiede che il candidato comprenda il concetto di base dati (database) e dimostri di possedere competenza nel suo utilizzo. Cosa è un database, come
DettagliNozione di algoritmo. Gabriella Trucco
Nozione di algoritmo Gabriella Trucco Programmazione Attività con cui si predispone l'elaboratore ad eseguire un particolare insieme di azioni su particolari informazioni (dati), allo scopo di risolvere
DettagliCorso di Linguaggi di Programmazione
Corso di Linguaggi di Programmazione Lezione 19 Alberto Ceselli alberto.ceselli@unimi.it Dipartimento di Tecnologie dell Informazione Università degli Studi di Milano 18 Maggio 2010 idea: sfruttare i
DettagliGERARCHIE RICORSIVE - SQL SERVER 2008
GERARCHIE RICORSIVE - SQL SERVER 2008 DISPENSE http://dbgroup.unimo.it/sia/gerarchiericorsive/ L obiettivo è quello di realizzare la tabella di navigazione tramite una query ricorsiva utilizzando SQL SERVER
DettagliLinguaggio C. Fondamenti. Struttura di un programma.
Linguaggio C Fondamenti. Struttura di un programma. 1 La storia del Linguaggio C La nascita del linguaggio C fu dovuta all esigenza di disporre di un Linguaggio ad alto livello adatto alla realizzazione
DettagliGli algoritmi: definizioni e proprietà
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Gli algoritmi: definizioni e proprietà La presente dispensa e da
DettagliStored Procedures. Antonella Poggi, Claudio Corona. Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma
Stored Procedures Antonella Poggi, Claudio Corona Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico 2008-2009 Questi lucidi sono stati
DettagliSistema di Gestione di Basi di Dati DataBase Management System DBMS
Base di dati (accezione generica) collezione di dati, utilizzati per rappresentare le informazioni di interesse per una o più applicazioni di una organizzazione (accezione specifica) collezione di dati
DettagliIntroduzione a MySQL
Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da
DettagliLo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.
Progettazione logica Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. La progettazione logica è basata su un particolare modello logico dei
DettagliSviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.
Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL. 2ELHWWLYL GD UDJJLXQJHUH SHU JOL VWXGHQWL alla fine dell esercitazione gli studenti dovranno essere in grado di: 1. utilizzare
DettagliECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2
ECDL - Database European Computer Driving Licence - Modulo 5 - Database LEZIONE 2 Ripasso Introduzione - Ripasso Cosa si intende per dbms? e cosa per database? Quali sono gli elementi che lo compongono?
DettagliElementi di semantica operazionale
Elementi di semantica operazionale 1 Contenuti sintassi astratta e domini sintattici un frammento di linguaggio imperativo semantica operazionale domini semantici: valori e stato relazioni di transizione
DettagliIl Modello Relazionale
Il Modello Relazionale Basi di dati 1 Il Modello Relazionale Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine Il Modello Relazionale Basi di dati 2 Introduzione Il modello
DettagliSistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory
FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File
DettagliIl linguaggio SQL: query innestate
Il linguaggio SQL: query innestate Sistemi Informativi L-A Home Page del corso: http://www-db.deis.unibo.it/courses/sil-a/ Versione elettronica: SQLc-subquery.pdf Sistemi Informativi L-A DB di riferimento
DettagliIntroduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei
Introduzione Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei. ESEMPI DI INSIEMI DI DATI DA ORGANIZZARE ED USARE IN MANIERA EFFICIENTE Introduzione Più utenti con
DettagliCorso di Basi di Dati e Conoscenza
Corso di Basi di Dati e Conoscenza Gestione dei Dati e della Conoscenza Primo Emicorso - Basi di Dati Roberto Basili a.a. 2012/13 1 Obbiettivi Formativi Scenario Le grandi quantità di dati accumulate nelle
DettagliBasi di Dati Multimediali. Fabio Strocco
Basi di Dati Multimediali Fabio Strocco September 19, 2011 1 Contents 2 Introduzione Le basi di dati (o database) hanno applicazioni in molti campi, in cui è necessario memorizzare, analizzare e gestire
DettagliVerifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio
Test (o analisi dinamica) Verifica parte IIA Rif. Ghezzi et al. 6.3-6.3.3 Consiste nell osservare il comportamento del sistema in un certo numero di condizioni significative Non può (in generale) essere
Dettagli