Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Il DBMS Oracle
Express Edition Donatella Gubiani e Angelo Montanari
Il DBMS Oracle
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Il DBMS Oracle
Il DBMS Oracle (nelle sue versioni pi` u recenti 10g e 11g), ` e un DataBase Management System relazionale esteso presenta una struttura client/server ` e ampiamente compatibile con (ed estende) lo standard SQL g indica grid computing (il DBMS pu` o essere visto come una griglia di risorse, ossia come un insieme di macchine eterogenee interconnesse per formare un ambiente che privilegia scalabilit` a e condivisione)
Il DBMS Oracle
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Elementi Fondamentali
Una base di dati Oracle ` e una collezione di le (di sistema) fra loro collegati che Oracle utilizza per memorizzare e gestire insiemi di dati A livello sico, unistanza di una base di dati Oracle ` e composta da tre tipi principali di le:
- le di dati - le di log - le di controllo
Il DBMS Oracle
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Il DBMS Oracle
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Interfaccia
Il DBMS Oracle
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Interfacce e Programmazione
Fornisce le interfacce SQL e PL/SQL identiche alle altre versioni di Oracle 10g Aggiunge una vasta gamma di interfacce di programmazione in diversi ambienti (come JAVA, .NET, PHP) Consente lo sviluppo e limplementazione rapida di nuove applicazioni Web ` disponibile per sistemi operativi Windows a 32 bit e Linux E
Il DBMS Oracle
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Limitazioni
Pu` o servire un solo processore Gestisce un massimo di 4 GB di dati Utilizza un solo GB di RAM Su ogni macchina pu` o essere eseguita ununica istanza di base di dati
Il DBMS Oracle
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Lamministrazione della base di dati pu` o essere attuata attraverso linterfaccia di amministrazione di Oracle XE oppure attraverso linterfaccia di comandi SQL
Il DBMS Oracle
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Autenticazione
Laccesso alla base di dati avviene attraverso lautenticazione degli utenti
Il DBMS Oracle
10
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Utenti
Alcuni account con privilegi di amministrazione sono creati automaticamente in fase di installazione Gli amministratori possono creare e gestire altri account utente
Il DBMS Oracle
11
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Creazione utenti
Il DBMS Oracle
12
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Memoria - 1
Il DBMS Oracle
13
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Memoria - 2
Il DBMS Oracle
14
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Statistiche
Il DBMS Oracle
15
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Creazione di tabelle - 1
Si possono creare tabelle utilizzando il comando SQL CREATE TABLE Con Oracle Database XE tale operazione pu` o essere fatta in due modalit` a
- usando linterfaccia per eseguire codice SQL (singoli comandi o script) - creando la tabella mediante lapposito tool Browser Oggetti
Il DBMS Oracle
16
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Creazione di tabelle - 2
Il DBMS Oracle
17
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Creazione di tabelle - 3
Il DBMS Oracle
18
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Vincoli
Specicano le propriet` a che devono essere soddisfatte da ogni istanza Tipi di vincoli:
PRIMARY KEY FOREIGN KEY CHECK UNIQUE NOT NULL
Possono essere deniti in fase di creazione (CREATE TABLE) o attraverso la successiva modica di tabelle (ALTER TABLE)
Il DBMS Oracle
19
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Il DBMS Oracle
20
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Il DBMS Oracle
21
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Modifica di tabelle
In Oracle Database XE, una tabella pu` o essere modicata:
- utilizzando il Browser degli Oggetti - utilizzando comandi SQL
Il DBMS Oracle
22
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Il DBMS Oracle
23
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Il DBMS Oracle
24
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Il DBMS Oracle
25
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Aggiornamenti e interrogazioni
Oracle Database XE prevede una serie di meccanismi per la memorizzazione, la gestione e il recupero delle informazioni
- aggiornamento dei dati - interrogazione della base di dati
Il DBMS Oracle
26
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Le operazioni di inserimento, aggiornamento e cancellazione possono essere eettuate attraverso i costrutti standard SQL
- INSERT: per aggiungere righe ad una tabella - UPDATE: per modicare le righe di una tabella - DELETE: per cancellare righe da una tabella
Il DBMS Oracle
27
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Il DBMS Oracle
28
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Sintassi INSERT
Il DBMS Oracle
29
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Il DBMS Oracle
30
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Il DBMS Oracle
31
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Il DBMS Oracle
32
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Interrogazione
In Oracle Database XE, ` e possibile specicare un comando di tipo SELECT sia scrivendo in modo esplicito (testuale) uninterrogazione SQL sia utilizzando lo strumento Query Builder/Costruzione Guidata Query
Il DBMS Oracle
33
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Query Builder - 1
Il DBMS Oracle
34
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Query Builder - 2
Il DBMS Oracle
35
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
` PL/SQL? Cose
PL/SQL sta per SQL Procedural Language ed ` e unestensione procedurale di SQL PL/SQL mette a disposizione un ambiente di programmazione robusto che consente di utilizzare i costrutti tipici dei linguaggi imperativi e tecniche di programmazione object-oriented (incapsulamento, information hiding, function overloading)
Il DBMS Oracle
36
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
` PL/SQL? Perche
PL/SQL prevede:
- variabili, costanti e tipi - costrutti di selezione e di iterazione
Il DBMS Oracle
37
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Il DBMS Oracle
38
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Programmi PL/SQL
Un programma PL/SQL ` e composto da uno o pi` u blocchi Esistono tre tipi di blocchi:
- blocchi anonimi (anonymous blocks): blocchi inseriti in unapplicazione o deniti interattivamente - procedure: blocchi che accettano in input un insieme di valori per un insieme (eventualmente vuoto) di parametri necessari allesecuzione dei comandi e non restituiscono (in modo esplicito) un valore in uscita - funzioni: blocchi che accettano in input un insieme di valori per un insieme (eventualmente vuoto) di parametri e restituiscono (in modo esplicito) un valore in uscita
Il DBMS Oracle
39
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Trigger - 1
I trigger permettono di aggiungere funzionalit` a che devono essere eseguite al vericarsi di speciche condizioni (operazioni sulla base di dati) Esempi:
- il sistema solleva uneccezione/errore in quanto il nuovo dato che si vuole inserire in una tabella e il contenuto corrente della tabella (della base di dati) sono inconsistenti (va eseguito un rollback della transazione) - nel momento in cui viene inserito un dato in una tabella, va modicato un altro dato
Il DBMS Oracle
40
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Trigger - 2
I trigger possono essere usati per:
- eettuare controlli di sicurezza - assicurare lintegrit` a dei dati
Tipi di trigger:
- trigger applicativi: eseguiti nel momento in cui si verica uno specico evento legato ad una data applicazione - trigger di base di dati: eseguiti quando si verica un particolare evento che coinvolge i dati presenti nella base di dati (ad esempio, inserimento) o un evento di sistema (ad esempio, login/logout o shutdown)
Il DBMS Oracle
41
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Il DBMS Oracle
42
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Esempio Trigger
Un esempio. Aggiungiamo un attributo (derivato) numEmp alla tabella Department che memorizza il numero di dipendenti di ogni dipartimento. Aggiorniamo la tabella sulla base dei dati correnti e, successivamente, associamo alla tabella Employee i trigger necessari per mantenere lattributo derivato numEmp sempre aggiornato.
Il DBMS Oracle
43
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Il DBMS Oracle
44
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Il DBMS Oracle
45
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Procedure e funzioni sono blocchi di codice che raggruppano sequenze di comandi SQL e/o PL/SQL Permettono il riuso del codice
Il DBMS Oracle
46
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
CREATE PROCEDURE
Una procedura pu` o essere creata con il comando CREATE PROCEDURE
Il DBMS Oracle
47
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Parametri
I parametri sono utilizzati per trasferire valori fra lambiente chiamante e quello della procedura I parametri possono essere passati secondo tre metodologie:
- IN: passa un valore dal chiamante alla procedura - OUT: passa un valore dalla procedura al chiamante - IN OUT: passa un valore dal chiamante alla procedura e un valore, eventualmente diverso, dalla procedura al chiamante mediante lo stesso parametro
Il DBMS Oracle
48
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Una procedura che aggiorni la tabella Department inserendo il numero degli impiegati del dipartimento Nota: ` e quanto avevamo fatto in precedenza con una semplice istruzione SQL
Il DBMS Oracle
49
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Il DBMS Oracle
50
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Il DBMS Oracle
51
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Una procedura che, dato un dipartimento, incrementa il valore di numEmp di 1 Nota: ` e quanto avevamo fatto in precedenza con il (corpo del) trigger
Il DBMS Oracle
52
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Il DBMS Oracle
53
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Il DBMS Oracle
54
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
CREATE FUNCTION
Una funzione ` e un blocco PL/SQL con degli eventuali parametri che restituisce un valore Una funzione pu` o essere creata con il comando CREATE FUNCTION
Il DBMS Oracle
55
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Una funzione che, dato il numero di matricola di un dipendente, restituisce il nome del dipartimento per cui lavora
Il DBMS Oracle
56
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Il DBMS Oracle
57
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
Il DBMS Oracle
58
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
IF THEN IF THEN ELSE IF THEN ELSIF CASE LOOP (EXIT - EXIT WHEN) WHILE LOOP FOR LOOP GOTO
Il DBMS Oracle
59
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
PL/SQL: Cursori
Il DBMS Oracle
60
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Inserimento, modica e cancellazione dei dati Interrogazione della base di dati PL/SQL, trigger, procedure e funzioni
PL/SQL: Esempio
Il DBMS Oracle
61
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Application Builder
LApplication Builder ` e un componente APEX (Oracle Application Express) che pu` o essere utilizzato per la creazione rapida di applicazioni/interfacce HTML
Il DBMS Oracle
62
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Altri ambienti
PHP Developer: per lo sviluppo di applicazioni che utilizzano PHP per laccesso e la modica dei dati Java Developer: per lo sviluppo di applicazioni Java che accedono e modicano i dati utilizzando Java e JDBC .NET Developer: per lo sviluppo di applicazioni per laccesso e la modica dei dati .NET
Il DBMS Oracle
63
Introduzione Amministrazione della base di dati Denizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti
Riferimenti
Sito di riferimento Oracle: http://www.oracle.com Documentazione specica Oracle Database XE: http://www.oracle.com/technology/xe/documentation
Il DBMS Oracle
64