Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta...

64
Introduzione Amministrazione della base di dati Definizione dei dati Aggiornamenti e interrogazioni Applicativi Riferimenti Il DBMS Oracle – Express Edition – Donatella Gubiani e Angelo Montanari Gubiani & Montanari Il DBMS Oracle 1

Transcript of Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta...

Page 1: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Il DBMS Oracle– Express Edition –

Donatella Gubiani e Angelo Montanari

Gubiani & Montanari Il DBMS Oracle 1

Page 2: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Il DBMS OracleOracle 10g Express Edition

Il DBMS Oracle

Il DBMS Oracle (nelle sue versioni piu 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 puo essere visto come unagriglia di risorse, ossia come un insieme di macchineeterogenee interconnesse per formare un ambiente cheprivilegia scalabilita e condivisione)

Gubiani & Montanari Il DBMS Oracle 2

Page 3: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Il DBMS OracleOracle 10g Express Edition

Oracle 10g e 11g

Il DBMS Oracle 10g ha per primo introdotto funzionalita di gridcomputing.

Il DBMS Oracle 11g presenta funzionalita aggiuntive e offreprestazioni migliori (non modifica, pero le caratteristichefondamentali del sistema).In particolare, fornisce strumenti per il clustering di basi di dati,l’automazione di data center e la gestione dei workload. Sfruttandogriglie (grid) altamente scalabili, composte da server e risorse di memoriaa basso costo, consente di sviluppare applicazioni avanzate di datawarehousing, content management ed elaborazione transazionalecomplessa.

Nel seguito faremo riferimento al DBMS Oracle 10g.

Gubiani & Montanari Il DBMS Oracle 3

Page 4: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Il DBMS OracleOracle 10g Express Edition

Elementi Fondamentali

Una base di dati Oracle e una collezione di file (di sistema) fraloro collegati che Oracle utilizza per memorizzare e gestireinsiemi di dati

A livello fisico, un’istanza di una base di dati Oracle ecomposta da tre tipi principali di file:

- file di dati- file di log- file di controllo

Gubiani & Montanari Il DBMS Oracle 4

Page 5: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Il DBMS OracleOracle 10g Express Edition

Oracle 10g Express Edition

Oracle 10g Express Edition (abbreviato Oracle XE) e unaversione gratuita (leggera) del DBMS Oracle 10g

E facile da installare e gestire

Puo essere utilizzato attraverso un’intuitiva interfaccia webche permette di:

- amministrare la base di dati- creare tabelle, viste e altri schemi di oggetti- importare, esportare e visualizzare tabelle di dati- eseguire interrogazioni e script SQL- generare report

Gubiani & Montanari Il DBMS Oracle 5

Page 6: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Il DBMS OracleOracle 10g Express Edition

Interfaccia

Gubiani & Montanari Il DBMS Oracle 6

Page 7: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Il DBMS OracleOracle 10g Express Edition

Interfacce e Programmazione

Fornisce le interfacce SQL e PL/SQL identiche alle altreversioni di Oracle 10g

Aggiunge una vasta gamma di interfacce di programmazionein diversi ambienti (come JAVA, .NET, PHP)

Consente lo sviluppo e l’implementazione rapida di nuoveapplicazioni Web

E disponibile per sistemi operativi Windows a 32 bit e Linux

Gubiani & Montanari Il DBMS Oracle 7

Page 8: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Il DBMS OracleOracle 10g Express Edition

Limitazioni

Puo servire un solo processore

Gestisce un massimo di 4 GB di dati

Utilizza un solo GB di RAM

Su ogni macchina puo essere eseguita un’unica istanza di basedi dati

Gubiani & Montanari Il DBMS Oracle 8

Page 9: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Gestione utentiMemoriaStatistiche

Amministrazione della base di dati

I principali compiti dell’amministratore sono:

- settaggio dei parametri- gestione dei dati memorizzati- gestione della memoria della base di dati- gestione degli utenti- monitoraggio delle prestazioni della base di dati

L’amministrazione della base di dati puo essere attuataattraverso l’interfaccia di amministrazione di Oracle XEoppure attraverso l’interfaccia di comandi SQL

Gubiani & Montanari Il DBMS Oracle 9

Page 10: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Gestione utentiMemoriaStatistiche

Autenticazione

L’accesso alla base di dati avviene attraverso l’autenticazionedegli utenti

Gubiani & Montanari Il DBMS Oracle 10

Page 11: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Gestione utentiMemoriaStatistiche

Utenti

Alcuni account con privilegi di amministrazione sono creatiautomaticamente in fase di installazione

Gli amministratori possono creare e gestire altri accountutente

Gubiani & Montanari Il DBMS Oracle 11

Page 12: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Gestione utentiMemoriaStatistiche

Creazione utenti

Gubiani & Montanari Il DBMS Oracle 12

Page 13: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Gestione utentiMemoriaStatistiche

Memoria - 1

Gubiani & Montanari Il DBMS Oracle 13

Page 14: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Gestione utentiMemoriaStatistiche

Memoria - 2

Gubiani & Montanari Il DBMS Oracle 14

Page 15: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Gestione utentiMemoriaStatistiche

Statistiche

Gubiani & Montanari Il DBMS Oracle 15

Page 16: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Creazione di tabelleModifica delle tabelle

Creazione di tabelle - 1

Si possono creare tabelle utilizzando il comando SQLCREATE TABLE

Con Oracle Database XE tale operazione puo essere fatta indue modalita

- usando l’interfaccia per eseguire codice SQL(singoli comandi o script)

- creando la tabella mediante l’apposito tool Browser Oggetti

Gubiani & Montanari Il DBMS Oracle 16

Page 17: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Creazione di tabelleModifica delle tabelle

Creazione di tabelle - 2

Gubiani & Montanari Il DBMS Oracle 17

Page 18: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Creazione di tabelleModifica delle tabelle

Creazione di tabelle - 3

Gubiani & Montanari Il DBMS Oracle 18

Page 19: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Creazione di tabelleModifica delle tabelle

Vincoli

Specificano le proprieta che devono essere soddisfatte da ogniistanza

Tipi di vincoli:

- PRIMARY KEY- FOREIGN KEY- CHECK- UNIQUE- NOT NULL

Possono essere definiti in fase di creazione (CREATE TABLE)o attraverso la successiva modifica di tabelle (ALTER TABLE)

Gubiani & Montanari Il DBMS Oracle 19

Page 20: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Creazione di tabelleModifica delle tabelle

Sintassi CREATE TABLE - 1

Gubiani & Montanari Il DBMS Oracle 20

Page 21: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Creazione di tabelleModifica delle tabelle

Sintassi CREATE TABLE - 2

Gubiani & Montanari Il DBMS Oracle 21

Page 22: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Creazione di tabelleModifica delle tabelle

Modifica di tabelle

In Oracle Database XE, una tabella puo essere modificata:

- utilizzando il Browser degli Oggetti- utilizzando comandi SQL

Gubiani & Montanari Il DBMS Oracle 22

Page 23: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Creazione di tabelleModifica delle tabelle

Sintassi ALTER TABLE - 1

Gubiani & Montanari Il DBMS Oracle 23

Page 24: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Creazione di tabelleModifica delle tabelle

Sintassi ALTER TABLE - 2

Gubiani & Montanari Il DBMS Oracle 24

Page 25: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Creazione di tabelleModifica delle tabelle

Sintassi ALTER TABLE - 3

Gubiani & Montanari Il DBMS Oracle 25

Page 26: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Aggiornamenti e interrogazioni

Oracle Database XE prevede una serie di meccanismi per lamemorizzazione, la gestione e il recupero delle informazioni

- aggiornamento dei dati- interrogazione della base di dati

Gubiani & Montanari Il DBMS Oracle 26

Page 27: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Inserimento, modifica e cancellazione dei dati

Le operazioni di inserimento, aggiornamento e cancellazionepossono essere effettuate attraverso i costrutti standard SQL

- INSERT: per aggiungere righe ad una tabella- UPDATE: per modificare le righe di una tabella- DELETE: per cancellare righe da una tabella

Gubiani & Montanari Il DBMS Oracle 27

Page 28: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

INSERT, UPDATE e DELETE

In alternativa all’utilizzo dei comandi SQL, puo esseresfruttata l’interfaccia Browser degli Oggetti

Gubiani & Montanari Il DBMS Oracle 28

Page 29: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Sintassi INSERT

Gubiani & Montanari Il DBMS Oracle 29

Page 30: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Caricamento dei dati

Le utility presenti nell’interfaccia applicativa permettono dicaricare i dati anche con altre modalita:

- XML- da fogli di calcolo- da file di testo

Gubiani & Montanari Il DBMS Oracle 30

Page 31: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Registrazione o cancellazione delle modifiche

Per quanto riguarda la registrazione o la cancellazione dellemodifiche effettuate, si possono fare dei controlli sull’esitodelle transazioni e, successivamente, eseguire l’operazione diCOMMIT (che rende i cambiamenti effettuati permanenti) ol’operazione di ROLLBACK (che annulla i cambiamenti)

l’uso della modalita di autocommit (commit automatico)

Gubiani & Montanari Il DBMS Oracle 31

Page 32: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Interrogazione dei dati

Per accedere ai dati contenuti nelle tabelle bisogna utilizzare ilcomando SQL SELECT

Gubiani & Montanari Il DBMS Oracle 32

Page 33: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Interrogazione

In Oracle Database XE, e possibile specificare un comando ditipo SELECT sia scrivendo in modo esplicito (testuale)un’interrogazione SQL sia utilizzando lo strumento QueryBuilder/Costruzione Guidata Query

Gubiani & Montanari Il DBMS Oracle 33

Page 34: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Query Builder - 1

Gubiani & Montanari Il DBMS Oracle 34

Page 35: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Query Builder - 2

Gubiani & Montanari Il DBMS Oracle 35

Page 36: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Cos’e PL/SQL?

PL/SQL sta per SQL Procedural Language ed e un’estensioneprocedurale di SQL

PL/SQL mette a disposizione un ambiente di programmazionerobusto che consente di utilizzare i costrutti tipici dei linguaggiimperativi e tecniche di programmazione object-oriented(incapsulamento, information hiding, function overloading)

Gubiani & Montanari Il DBMS Oracle 36

Page 37: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Perche PL/SQL?

PL/SQL prevede:

- variabili, costanti e tipi- costrutti di selezione e di iterazione

I principali benefici dell’utilizzo del linguaggio PL/SQL sono:

- integrazione di costrutti procedurali in SQL- riduzione della congestione di rete (blocchi)- sviluppo modulare dei programmi- integrazione con altri strumenti di sviluppo e programmazione

(Oracle Forms, Oracle Reports, ..)- portabilita- gestione delle eccezioni

Gubiani & Montanari Il DBMS Oracle 37

Page 38: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Creazione di un blocco PL/SQL

Il costrutto di base in PL/SQL e il blocco

Un blocco e un insieme di comandi SQL o PL/SQL

Un blocco e composto da tre parti:

- dichiarazioni (opzionale)- componente eseguibile (necessaria)- gestione delle eccezioni (opzionale),

annidata all’interno dellacomponente eseguibile

Gubiani & Montanari Il DBMS Oracle 38

Page 39: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Programmi PL/SQL

Un programma PL/SQL e composto da uno o piu blocchi

Esistono tre tipi di blocchi:

- blocchi anonimi (anonymous blocks): blocchi inseriti inun’applicazione o definiti interattivamente

- procedure: blocchi che accettano in input un insieme di valoriper un insieme (eventualmente vuoto) di parametri necessariall’esecuzione dei comandi e non restituiscono (in modoesplicito) un valore in uscita

- funzioni: blocchi che accettano in input un insieme di valoriper un insieme (eventualmente vuoto) di parametri erestituiscono (in modo esplicito) un valore in uscita

Gubiani & Montanari Il DBMS Oracle 39

Page 40: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Trigger - 1

I trigger permettono di aggiungere funzionalita che devonoessere eseguite al verificarsi di specifiche condizioni(operazioni sulla base di dati)

Esempi:

- il sistema solleva un’eccezione/errore in quanto il nuovo datoche si vuole inserire in una tabella e il contenuto corrente dellatabella (della base di dati) sono inconsistenti (va eseguito unrollback della transazione)

- nel momento in cui viene inserito un dato in una tabella, vamodificato un altro dato

Gubiani & Montanari Il DBMS Oracle 40

Page 41: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Trigger - 2

I trigger possono essere usati per:

- effettuare controlli di sicurezza- assicurare l’integrita dei dati

Tipi di trigger:

- trigger applicativi: eseguiti nel momento in cui si verifica unospecifico evento legato ad una data applicazione

- trigger di base di dati: eseguiti quando si verifica un particolareevento che coinvolge i dati presenti nella base di dati (adesempio, inserimento) o un evento di sistema (ad esempio,login/logout o shutdown)

Gubiani & Montanari Il DBMS Oracle 41

Page 42: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Sintassi CREATE TRIGGER

Gubiani & Montanari Il DBMS Oracle 42

Page 43: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Esempio Trigger

Un esempio.

Aggiungiamo un attributo (derivato) numEmp alla tabella Departmentche 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 mantenerel’attributo derivato numEmp sempre aggiornato.

Gubiani & Montanari Il DBMS Oracle 43

Page 44: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Esempio Trigger - SQL

Gubiani & Montanari Il DBMS Oracle 44

Page 45: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Esempio Trigger - Browser degli Oggetti

Gubiani & Montanari Il DBMS Oracle 45

Page 46: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Utilizzo di procedure e funzioni

Procedure e funzioni sono blocchi di codice che raggruppanosequenze di comandi SQL e/o PL/SQL

Permettono il riuso del codice

Gubiani & Montanari Il DBMS Oracle 46

Page 47: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

CREATE PROCEDURE

Una procedura puo essere creata con il comando CREATEPROCEDURE

Gubiani & Montanari Il DBMS Oracle 47

Page 48: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

Parametri

I parametri sono utilizzati per trasferire valori fra l’ambientechiamante 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 chiamantemediante lo stesso parametro

Gubiani & Montanari Il DBMS Oracle 48

Page 49: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

CREATE PROCEDURE: Esempio - 1

Una procedura che aggiorni la tabella Department inserendo ilnumero degli impiegati del dipartimento

Nota: e quanto avevamo fatto in precedenza con una sempliceistruzione SQL

Gubiani & Montanari Il DBMS Oracle 49

Page 50: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

CREATE PROCEDURE: Esempio - 2

Gubiani & Montanari Il DBMS Oracle 50

Page 51: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

CREATE PROCEDURE: Esempio - 3

Gubiani & Montanari Il DBMS Oracle 51

Page 52: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

CREATE PROCEDURE con Parametri:Esempio - 1

Una procedura che, dato un dipartimento, incrementa il valoredi numEmp di 1

Nota: e quanto avevamo fatto in precedenza con il (corpodel) trigger

Gubiani & Montanari Il DBMS Oracle 52

Page 53: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

CREATE PROCEDURE con Parametri:Esempio - 2

Gubiani & Montanari Il DBMS Oracle 53

Page 54: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

CREATE PROCEDURE con Parametri:Esempio - 3

Gubiani & Montanari Il DBMS Oracle 54

Page 55: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

CREATE FUNCTION

Una funzione e un blocco PL/SQL con degli eventualiparametri che restituisce un valore

Una funzione puo essere creata con il comando CREATEFUNCTION

Gubiani & Montanari Il DBMS Oracle 55

Page 56: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

CREATE FUNCTION: Esempio - 1

Una funzione che, dato il numero di matricola di undipendente, restituisce il nome del dipartimento per cui lavora

Gubiani & Montanari Il DBMS Oracle 56

Page 57: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

CREATE FUNCTION: Esempio - 2

Gubiani & Montanari Il DBMS Oracle 57

Page 58: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

CREATE FUNCTION: Esempio - 3

Gubiani & Montanari Il DBMS Oracle 58

Page 59: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

PL/SQL: Strutture di Controllo

IF THEN

IF THEN ELSE

IF THEN ELSIF

CASE

LOOP (EXIT - EXIT WHEN)

WHILE LOOP

FOR LOOP

GOTO

Gubiani & Montanari Il DBMS Oracle 59

Page 60: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

PL/SQL: Cursori

Gubiani & Montanari Il DBMS Oracle 60

Page 61: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Inserimento, modifica e cancellazione dei datiInterrogazione della base di datiPL/SQL, trigger, procedure e funzioni

PL/SQL: Esempio

Gubiani & Montanari Il DBMS Oracle 61

Page 62: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Application BuilderAltri ambienti

Application Builder

L’Application Builder e un componente APEX (OracleApplication Express) che puo essere utilizzato per la creazionerapida di applicazioni/interfacce HTML

Gubiani & Montanari Il DBMS Oracle 62

Page 63: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Application BuilderAltri ambienti

Altri ambienti

PHP Developer: per lo sviluppo di applicazioni cheutilizzano PHP per l’accesso e la modifica dei dati

Java Developer: per lo sviluppo di applicazioni Java cheaccedono e modificano i dati utilizzando Java e JDBC

.NET Developer: per lo sviluppo di applicazioni per l’accessoe la modifica dei dati .NET

Gubiani & Montanari Il DBMS Oracle 63

Page 64: Il DBMS Oracle - users.dimi.uniud.itangelo.montanari/Oracle.pdf · Il DBMS Oracle 11g presenta funzionalit a ... Si possono creare tabelle utilizzando il comando SQL CREATE TABLE

IntroduzioneAmministrazione della base di dati

Definizione dei datiAggiornamenti e interrogazioni

ApplicativiRiferimenti

Riferimenti

Sito di riferimento Oracle:http://www.oracle.com

Documentazione specifica Oracle Database XE:http://www.oracle.com/technology/xe/documentation

Gubiani & Montanari Il DBMS Oracle 64