Oracle 8i è una soluzione integrata e completa per lo sviluppo di applicazione di gestioni di dati in rete. relazioni e tipi di dati astratti.



Documenti analoghi
Introduzione a Oracle

Introduzione a Oracle 9i

DBMS (Data Base Management System)

Organizzazione degli archivi

Capitolo 13. Interrogare una base di dati

Capitolo 1 Oracle: la società e il software Terminologia Oracle Corporation: la storia L offerta corrente 12 1.

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Corso di Amministrazione di Reti A.A. 2002/2003

Le Basi di Dati. Le Basi di Dati

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

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

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

Introduzione alla teoria dei database relazionali. Come progettare un database

Database. Si ringrazia Marco Bertini per le slides

1. BASI DI DATI: GENERALITÀ

Mac Application Manager 1.3 (SOLO PER TIGER)

SOSEBI PAPERMAP2 MODULO WEB MANUALE DELL UTENTE

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

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

Dispensa di database Access

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

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

Caratteristiche principali. Contesti di utilizzo

Airone Gestione Rifiuti Funzioni di Esportazione e Importazione

Volumi di riferimento

Laboratorio di Basi di Dati e Web


CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

File system II. Sistemi Operativi Lez. 20

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

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Lezione V. Aula Multimediale - sabato 29/03/2008

Indice. Introduzione PARTE PRIMA L ARCHITETTURA DEI DATABASE 1

Access. P a r t e p r i m a

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

DATABASE RELAZIONALI

Introduzione all Architettura del DBMS

Manuale Amministratore Legalmail Enterprise. Manuale ad uso degli Amministratori del Servizio Legalmail Enterprise

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Il File System. Il file system

BASE DI DATI: introduzione. Informatica 5BSA Febbraio 2015

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Ottimizzazione delle interrogazioni (parte I)

Regione Toscana. ARPA Fonte Dati. Manuale Amministratore. L. Folchi (TAI) Redatto da

PROGRAMMA DI CLASSE 5AI

19. LA PROGRAMMAZIONE LATO SERVER

Indice generale. Capitolo 3 Introduzione a PHP...43 Sintassi e istruzioni di base Variabili, operatori e commenti Array...

Servizi Remoti. Servizi Remoti. TeamPortal Servizi Remoti

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

EXPLOit Content Management Data Base per documenti SGML/XML

Progettazione di Basi di Dati

Gestione delle tabelle

Protezione. Protezione. Protezione. Obiettivi della protezione

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Progettaz. e sviluppo Data Base

I database relazionali (Access)

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

HBase Data Model. in più : le colonne sono raccolte in gruppi di colonne detti Column Family; Cosa cambia dunque?

Archivi e Basi di Dati

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

Operazioni sui database

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Gestione Iter Manuale Sistemista. Gestione Iter Manuale Sistemista

Informatica per le discipline umanistiche 2 lezione 10

Inizializzazione degli Host. BOOTP e DHCP

Tecnologia di un Database Server (centralizzato) Introduzione generale

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

Modello di Controllo dell Accesso basato sui ruoli (RBAC)

Sommario. Oracle Database 10g (laboratorio) Grid computing. Oracle Database 10g. Concetti. Installazione Oracle Database 10g

Concetti fondamentali dei database database Cos'è un database Principali database

Il Modello Relazionale

Progetto: ARPA Fonte Dati. ARPA Fonte Dati. Regione Toscana. Manuale Amministratore

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Definizione di domini

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

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

SISTEMI OPERATIVI DISTRIBUITI

Base Dati Introduzione

Il sistema IBM DB2. Sistemi Informativi T. Versione elettronica: L01.1.IntroduzioneDB2.pdf

Corso BusinessObjects SUPERVISOR

Organizzazione delle informazioni: Database

Manuale Utente Albo Pretorio GA

Esercitazione 1. Sistemi Informativi T. Versione elettronica: L01.2.DDLDMLbase.pdf

Sistemi Informativi e Basi di Dati

Obiettivi d esame PHP Developer Fundamentals on MySQL Environment

I Sistemi Informativi

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Data Base. Prof. Filippo TROTTA

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

Compilatore risorse display grafico LCD serie IEC-line

ALICE AMMINISTRAZIONE UTENTI WEB

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

FIRESHOP.NET. Utilizzare il FireSoft. Rev

Finalità della soluzione Schema generale e modalità d integrazione Gestione centralizzata in TeamPortal... 6

Transcript:

ORACLE 8i 8i è una soluzione integrata e completa per lo sviluppo di applicazione di gestioni di dati in rete. l DBMS ORACLE 8i DBMS relazionale a oggetti: permette di creare database contenenti relazioni e tipi di dati astratti. Possibilità di sviluppo a oggetti: è dotato di un linguaggio procedurale a oggetti. Ambiente di sviluppo integrato: diversi tool integrati nel sistema consentono lo sviluppo di applicazioni complesse. Logica client-server a tre livelli 1 2

L architettura L architettura L architettura di 8i è centrata sul concetto di istanza e di database. Un database è composto da un insieme di file in cui vengono memorizzati i dati. Ogni host può ospitare più database a ognuno dei quali corrisponderà un server. HOST Un server di database, detto istanza, è costituito da una serie di strutture in memoria e di processi eseguiti in background che accedono ai file del database. Server SGA Server SGA Server SGA (System Global Area Processi in background Processi in background Processi in background Database Database Database File del database File del database File del database Le due istanze saranno percepite come completamente indipendenti e potranno comunicare mediante i medesimi protocolli utilizzati da istanze residenti su host separati. Per ogni database attivo su un host esistono un insieme di servizi che ne gestiscono tutte le funzionalità. 8i non è percepito come un sistema centralizzato dotato di un processo che controlla tutti i dati e gli utenti ma piuttosto come una federazione di sistemi ognuno dei quali controlla un singolo database con i propri utenti e le proprie applicazioni. 3 4

L architettura stanza di database: la memoria L architettura di 8i permette di realizzare molteplici tipologie di connessione in rete a seconda dell obiettivo che deve essere raggiunto: Reti di database utilizzati per query remote Database distribuiti Server di database in parallelo che accedono allo stesso database Query parallele in cui più CPU eseguono la stessa operazione Database client/server a 2 e 3 livelli Database accedibili tramite web Database replicati.. HOST HOST Server SGA Processi in background NET 8 Server SGA Processi in background L area di memoria SGA (System Global Area è la principale area di memoria utilizzata da un server ORACLE, essa conserva le informazioni più utili sulla struttura del database, sulle operazioni che vengono effettuate dagli utenti e viene utilizzata come blackboard per lo scambio di informazioni. Buffer dei blocchi dati Buffer del redo log SGA Cache del dizionario Pool SQL condiviso Cache per i blocchi di disco (Data Block Buffer Cache: utilizzata per contenere i blocchi dati letti dal database (es. tabelle, indici, ecc. gestiti con politica LRU (Least Recently Used. Cache del dizionario dati: contiene le informazioni sugli elementi del database memorizzate su disco in apposite tabelle che nel loro complesso formano il dizionario dei dati. È gestita con politica LRU. Buffer del registro di REDO: contiene le informazioni relative al REDO non ancora salvati nell apposito file in linea. Database File del database Database File del database Pool SQL condiviso: contiene le informazioni relative alle istruzioni SQL utilizzate più di frequente. l buffer è condiviso da tutti gli utenti e permette di evitare il calcolo dei piani di esecuzioni delle interrogazioni effettuate con maggiore frequenza. È gestita con politica LRU. Ogni utente ha a disposizione una area di memoria separata denominata PGA (Program Global Area. Client equipaggiati con NET 8 5 6

stanza di database: i processi Le relazioni fra le strutture fisiche e di memoria del database vengono gestite e guidate da processi eseguiti in background. Questi processi appartengono al database e il loro numero può variare a seconda delle configurazioni, i più importanti sono elencati di seguito: SMON (System Monitor: all avvio dell istanza esegue il ripristino dell istanza mediante il registro di REDO. Al processo è inoltre demandato il compito di deframmentare le aree di disco occupate dal database. stanza di database La figura mostra alcuni dei legami tra i principali elementi che costituiscono una istanza di database. Processi Utente PMON (Program Monitor: libera le risorse occupate dagli utenti quando un loro processo fallisce. DBWR(Database Writer: gestisce la cache dei blocchi e del dizionario. LGWR(Log Write: gestisce la scrittura sul file in linea del registro di REDO del relativo buffer in memoria. SGA Cache blocchi disco Cache dizionario dati Buffer registro REDO Pool SQL PGA Utente PGA Utente PGA CKPT (checkpoint: si occupa di inserire nei file dati e nel dizionario dati i checkpoint: marcatori che garantiscono la sicurezza degli aggiornamenti effettuati prima di un dato istante. n questo modo il ripristino di un database sarà necessario solo per le operazioni eseguite dopo l ultimo checkpoint. SMON CHKPT RECO PMON ARCH: se il sistema funziona in modalità ARCHVELOG il processo si occupa di creare un backup dei file creati da LGWR prima che quest ultimo li sovrascriva. DBWR LGWR ARCH RECO: risolve i fallimenti delle transazioni sui database distribuiti File dati File dizionario File registri REDO in linea File backup registri REDO 7 8

Struttura interna dei dati Struttura interna dei dati L elemento principale di suddivisione logica dei dati memorizzati all interno di un database è il tablespace. Ogni database ha almeno un tablespace SYSTEM; ogni tablespace è costituito da uno o più file che possono appartenere a un solo tablespace. È consigliabile memorizzare gli oggetti di un database in più tablespace per: Rispettare la separazione logica delle informazioni memorizzate Ridurre le dimensioni dei singoli tablespace Ridurre il carico di /O dei singoli dispositivi di disco Ridurre il rischio di perdite di dati causate da guasti Tablespace SYSTEM Secondo Tablespace Terzo Tablespace Una corretta suddivisione degli oggetti del DB potrebbe essere la seguente: Tablespace SYSTEM Tabelle del dizionario dati (appartenenti all utente SYS Segmento di rollback Tablespace DATA Tabelle dei dati degli utenti Tablespace NDEXES ndici relativi ai dati memorizzati nel tablespace DATA Tablespace TOOLS Tabelle contenti il codice delle applicazioni: trigger e stored procedure Tablespace TEMP nformazioni, dinamiche e temporanee, utilizzate durante l esecuzione di operazioni sui dati del database (es. join, ordinamenti, select distinct, union, ecc. Data file Altri tablespace che potrebbero essere aggiunti modificando la precedente suddivisione sono: Tablespace RBS nformazioni che permettono di gestire le operazioni di rollback delle transazioni (non più memorizzate nel tablespace SYSTEM. Tablespace USERS Oggetti degli utenti nei database di sviluppo. 9 10

NET8 NET8 NET 8 (chiamato in versioni precedenti SQL*Net è lo strumento utilizzato dai database ORACLE per comunicare in rete ed è utilizzato sia per le connessioni server-server che client-server. La connessione tramite NET 8 è basata su TNS (Transparent Network Substrate che risolve tutti i problemi di connessione a livello server. NET 8 è indipendente dal protocollo di comunicazione utilizzato (es. TCP/P, TCP/P with SSL, SPX. Ogni oggetto in una rete ORACLE è individuato da un nome univoco (FQON Fully Qualified Object Name composto da: Nome dell host - Nome dell istanza - Proprietario - Nome dell oggetto Le parti relative al server e all istanza del nome FQON vengono identificate per mezzo di un descrittore di connessione (identificato tramite un sinonimo detto nome di servizio che specifica: l protocollo di comunicazione l nome dell host l nome dell istanza da utilizzare (SD System Dentifier Parametri aggiuntivi di configurazione #################################### # TNSNAMES.ORA Configuration File: # F:\oracle\ora81\NETWORK\ADMN\tnsnames.ora #################################### DB1 = (DESCRPTON (DESCRPTON = (ADDRESS_LST (ADDRESS_LST = (ADDRESS (PROTOCOL TCP(HOST gora(port 1521 (ADDRESS = (PROTOCOL = TCP(HOST = gora(port = 1521 (CONNECT_DATA (SERVCE_NAME DB1 (CONNECT_DATA = (SERVCE_NAME = DB1 Nome di servizio Descrittore di servizio OMERO_BACCO08.CSR.UNBO.T = (DESCRPTON = (ADDRESS_LST = (ADDRESS = (PROTOCOL = TCP(HOST = bacco.csr.unibo.it(port = 1521 (CONNECT_DATA = (SD = omero(server = DEDCATED l collegamento a una istanza è gestito tramite processi LSTENER che risiedono su ogni HOST e gestiscono il collegamento alle istanze: listener.ora stanza A Listener stanza B stanza C Listener stanza D Ogni LSTENER si pone in ascolto per le connessioni relative a un insieme di istanze. Quando un client o un altro HOST provano a connettersi a una istanza il listener preposto gestisce la connessione. L insieme dei processi listener attivi su un host e l insieme delle istanze che ognuno gestisce sono specificati nel file listener.ora. che contiene: L elenco dei listener attivi sull host e i parametri per la connesione. L associazione delle istanze ai listener. Altre informazioni relative all ottimizzazione dei collegamenti (es. bilanciamento del carico dei listener. 11 12

NET8 file del database Nel seguito è riportato un esempio per il file listener.ora # LSTENER.ORA Network Configuration File: F:\oracle\ora81\network\admin\listener.ora # Generated by configuration tools. LSTENER1 = (DESCRPTON_LST = (DESCRPTON = (ADDRESS_LST = (ADDRESS = (PROTOCOL = TCP(HOST = gora(port = 1521 (ADDRESS_LST = (ADDRESS = (PROTOCOL = PC(KEY = EXTPROC0 SD_LST_LSTENER1 = (SD_LST = (SD_DESC = (SD_NAME = PLSExtProc (ORACLE_HOME = F:\oracle\ora81 (PROGRAM = extproc (SD_DESC = (GLOBAL_DBNAME = DB1 (ORACLE_HOME = F:\oracle\ora81 (SD_NAME = DB1 (SD_DESC = (GLOBAL_DBNAME = DW1 (ORACLE_HOME = F:\oracle\ora81 (SD_NAME = DW1 Lista istanze associate a LSTENER1 Lista listener attivi sull host principali file in cui sono mantenute informazioni relativamente a uno specifico database (DB sono: file di controllo: gestiscono l architettura fisica del db. Memorizzano le informazioni di controllo sui file del db e vengono utilizzati per gestirne la coerenza interna. Vista l importanza di questi file ne vengono conservate più copie che dovrebbero essere memorizzate in dischi distinti. F:\oracle\oradata\DB\Controlxx.ctl file dati: i dati del db vengono memorizzati in appositi file con estensione.dbf. nomi dei file riportano il nome del tablespace a cui appartengono: F:\oracle\oradata\DB\Systemxx.dbf l file di configurazione: contiene i parametri di configurazione del db e viene letto in fase di inizializzazione dei processi ad esso correlati. F:\oracle\admin\DB\pfile\init.ora file relativi ai parametri NET 8: contengono i parametri relative alle informazioni per gestire il protocollo NET 8; in particolare i nomi dei listener attivi sull host e i SD dei diversi db D:\oracle\ora81\network\ADMN\tnsnames.ora D:\oracle\ora81\network\ADMN\listener.ora 13 14

file del database tool di accesso Per semplificare la gestione del database tutti i file ad esso associati dovrebbero essere memorizzati in directory create appositamente per quel db: F:\oracle\ ORACLE 8i propone un ampia suite di tool per l accesso ai dati, l amministrazione del sistema e lo sviluppo di applicazioni. n particolare: DBA Studio: amministrazione e controllo delle caratteristiche dei database. F:\oracle\oradata\DB F:\oracle\admin\DB Database Configuration Assistent: creazione e configurazione assistita dei database. SQLPlus Worksheet: interrogazione dei database. F:\oracle\admin\DB\pfile Anche la struttura delle directory del DBMS segue una precisa struttura ereditata dalle prime versioni nate per sistemi UNX. D:\oracle\ora81 NET8 Assistent: amministrazione e controllo delle caratteristiche di rete. NET8 Configuration Assistent: configurazione guidata delle caratteristiche di rete. SQLLoader: caricamento, importazione, esportazione dati. D:\oracle\ora81\Or a81\bin D:\oracle\ora81\Ora81 \ODBC D:\oracle\ora81\Net work\admn 15 16

Lo schema di un database Lo schema di un database L insieme degli oggetti che appartengono a un utente si chiama schema: L insieme degli oggetti che appartengono a un utente si chiama schema: Tabelle: sono i principali contenitori dei dati del database. Viste: forniscono una visione parziale dei dati contenuti in una o più tabelle e possono essere pensate come delle interrogazioni sulle tabelle stesse. Viste materializzate: memorizzano dati ridondanti ottenuti dai dati presenti nel database stesso. Vengono utilizzate principalmente in applicazioni di data warehousing, database distribuiti e mobile computing per memorizzare i dati maggiormente richiesti dalle applicazioni. Dimensioni: codificano delle relazioni gerarchie tra coppie di attributi. ndici: sono lo strumento di base per il miglioramento delle performance. Tra quelli messi a disposizione da ORACLE i più comunemente utilizzati sono i B + -Tree e i Bitmap. Cluster: indicano insiemi di tabelle memorizzate assieme per motivi prestazionali. Sequenze: vengono utilizzate per semplificare il lavoro del programmatore e forniscono un elenco sequenziale di valori univoci. Procedure: sono blocchi di istruzioni PL/SQL memorizzatoe nel dizionario dei dati e richiamabili dalle applicazioni. Le procedure permettono di memorizzare in un database le logiche applicative utilizzate frequentemente. Funzioni: come le procedure sono composte da blocchi di istruzioni PL/SQL. A differenza delle prime possono restituire dei valori al programma chiamante. Package: riuniscono le funzioni e le procedure in raggruppamenti logici. Trigger: sono procedure che si eseguono al verificarsi di un evento nel database. Sinonimi: semplificano l identificazione degli oggetti (es. nei database distribuiti e vengono utilizzati per motivi di sicurezza (rendono trasparente la locazione di un oggetto o il suo proprietario. Privilegi e ruoli: definiscono le modalità di accesso di un utente a un oggetto del db. 17 18

Gli utenti privilegi L accesso a un database ORACLE è basato sul concetto di utente identificato da un username e da una password. Per ogni utente è definito un insieme di parametri che ne definiscono le caratteristiche: Username: definisce univocamente l utente all interno del sistema. Password: realizza il principale meccanismo di verifica dell identità dell utente. Tablespace di default: è il tablespace in cui vengono salvati gli oggetti creati nello schema. Tablespace temporaneo: è il tablespace in cui vengono salvati i segmenti temporanei utilizzati durante le transazioni. Avere un account (essere un utente su un database non è di per se sufficiente a eseguirvi operazioni poiché questa possibilità varia in base all insieme di privilegi che l utente possiede. Un privilegio definisce la possibilità di eseguire un certo tipo di operazione. privilegi possono essere definiti: A livello di sistema: vale per tutti gli oggetti del tipo indicato. Per concedere un privilegio di sistema è necessario avere abilitato il privilegio WTH ADMN OPTON. Su uno specifico oggetto: vale per lo specifico oggetto indicato. Per concedere un privilegio di sistema è necessario avere abilitato il privilegio WTH GRANT OPTON. grant select on mpiegato to GOLFARELL with grant option; Quota: limita la dimensione massima occupabile dagli oggetti creati dall utente. Profilo: specifica il profilo dell utente. Ruolo: definisce i ruoli dell utente. grant select on mpiegato to ROSS; Le caratteristiche e i privilegi di un utente sono validi solo per il database a cui l utente appartiene. Esistono però degli utenti, detti Enterprise User, le cui caratteristiche e i cui privilegi sono validi in tutti i database del sistema. privilegi di un Enterprise User vengono definiti in modo centralizzato in una specifica directory. n questo modo si evita confusione nella confusione delle caratteristiche di questi utenti. n un database, tutti gli oggetti su cui un utente ha dei privilegi formano lo schema dell utente. 19 20

privilegi La tabella mostra alcuni dei privilegi di sistema assegnabili in base al tipo di oggetto. Privilegio Consente di ndici Creare nello schema di colui che assegna il privilegio un indice CREATE NDEX sulle proprie tabelle. CREATE ANY Creare in ogni schema, ad eccezione di quello di SYS un indice NDEX di dominio o un indice su qualsiasi tabella. DROP ANY NDEX Cancellare gli indici di ogni schema ad eccezione di SYS. Procedure CREATE Creare nello schema di colui che assegna il privilegio una PROCEDURE procedura o funzione. CREATE ANY Creare nello schema di colui che assegna il privilegio una PROCEDURE procedura o funzione. ALTER ANY Modificare procedure e funzioni in qualsiasi schema a PROCEDURE esclusione di quello di SYS. Profili CREATE PROFLE Creare dei profili. ALTER ANY ROLE Alterare i profili. Ruoli CREATE ROLE Creare i ruoli. ALTER ANY ROLE Modificare i ruoli. Tabelle CREATE ANY Creare tabelle in ogni schema ad eccezione di SYS. TABLE ALTER ANY Modificare una tabella o una vista dello schema. TABLE SELECT ANY Eseguire interrogazioni su tabelle o viste in qualsisi schema ad TABLE eccezione di SYS. Altre SYSDBA Eseguire le operazioni di STARTUP e SHUTDOWN. Eseguire le operazioni di STARTUP, SHUTDOWN, SYSOPER ALTERDATABASE OPEN/MOUNT/BACKUP. privilegi La tabella mostra i privilegi assegnabili agli oggetti e i tipi di oggetti per cui essi hanno senso. L unico utente ad avere sempre tutti i privilegi su un oggetto è il proprietario. Privilegio Tabelle Viste Sequenze Procedure Viste Directory Librerie materializ. 22 Tipi definiti dall utente Operatori ALTER DELETE EXECUTE NDEX NSERT READ REFERENCES SELECT UPDATE Tipi ndici 21

Ruoli Per semplificare la gestione dei privilegi è possibile definire dei ruoli ossia degli insiemi di privilegi che definiscono un tipo di utente. ruoli sono definibili in modo personalizzato ma ORACLE ne fornisce alcuni di default. RUOLO CONNECT, RESOURCE e DBA DELETE_CATALOG_ROLE EXECUTE_CATALOG_ROLE SELECT_CATALOG_ROLE EXP_FULL_DATABASE MP_FULL_DATABASE AQ_USER_ROLE AQ_ADMNSTRATOR_ROLE SNPAGENT SCOPO Vengono utilizzati per compatibilità con le precedenti versioni. Potrebbero essere abbandonati nelle versioni future quindi è conveniente sostituirli con ruoli più specifici. Consentono di accedere alle viste esportate del dizionario dati e ai pacchetti. Consentono di fruire delle funzionalità di importazione ed esportazione. Utilizzati per sfruttare le modalità avanzate di interrogazione. È il ruolo utilizzato da OEM. RECOVERY_CATALOG_OWNER Consente di utilizzare un utente che possieda un catalogo di ripristino. HS_ADMN_ROLE Utilizzato da amministratori per sfruttare le funzionalità Heterogeneous Services. Come nel caso degli utenti è possibile definire dei ruoli le cui caratteristiche sono valide per tutti i database del sistema, si parlerà in questo caso di Enterprise Role. La definizione di un Enterprise Role viene fatta definendo i parametri in una specifica directory. Profili profili vengono utilizzati per limitare le quantità di risorse del sistema e del database utilizzabili da un utente. Risorsa Descrizione SESSONS_PER_USER l numero di sessioni simultanee che un utente può avere in un istanza. CPU_PER_SESSON l tempo di CPU che una sessione può utilizzare. CPU_PER_CALL l tempo di CPU che un analisi o un esecuzione possono utilizzare. CONNECT_TME l numero di minuti per cui una sessione può rimanere connessa al database. DLE_TME l numero di minuti per cui una sessione può rimanere connessa al database senza utilizzarlo attivamente. LOGCAL_READS_PER_SESSON l numero di blocchi del database che possono essere letti in una sessione. LOGCAL_PER_CALL l numero di blocchi del database che che un analisi o un esecuzione. PRVATE_SGA La quantità di spazio privato che una sessione può allocare nel Shared SQL Pool della SGA. COMPOSTE_LMT Un limite composto basato sui precedenti. FALED_LOGN_ATTEMPS l numero di tentativi di connessione consecutivamente falliti dopo cui l account viene bloccato. PASSWORD_LFE_TME l numero di giorni di validità della password. PASSWORD_REUSE_TME l numero di giorni che devono trascorrere prima che la password possa essere riutilizzata. PASSWORD_REUSE_MAX l numero di password da cambiare prima che una già usata possa essere riutilizzata. PASSWORD_LOCK_TME Numero di giorni per cui resta bloccato un account se si supera FALED_LOGN_ATTEMPS. PASSWORD_GRACE_TME La lunghezza del periodo durante il quale una password scaduta può essere cambiata. PASSWORD_VERFY_FUNCTON l nome di una funzione utilizzata per verificare la complessità della password. Se in un database non viene creato alcun profilo, verrà utilizzato quello di default che prevede risorse illimitate per tutti gli utenti. 23 24

l Data Dictionary l Data Dictionary l cuore di un database è il data dictionary che descrive completamente la struttura del database tramite un insieme di tabelle. l data dictionary contiene: La definizione di tutti gli oggetti dello schema Lo spazio allocato per ogni elemento dagli oggetti dello schema valori di default per le colonne vincoli di integrità nomi degli utenti ORACLE Privilegi e ruoli ricoperti dagli utenti nformazioni di auditing Le statistiche sui dati l data dictionary è memorizzato nel tablespace SYSTEM, le sue tabelle, di proprietà di SYS, sono in sola lettura per tutti gli altri utenti del database. La struttura del data dictionary è composta da: Tabelle di base: sono le tabelle che memorizzano le informazioni vere e proprie in forma normalizzata. Vista la loro complessa struttura sono normalmente lette e scritte solo da ORACLE. Viste: riassumono le informazioni memorizzate nelle tabelle di base in modo da renderle più facilmente fruibili agli utilizzatori. l data dictionary ha tre utilizzi primari accede al data dictionary per trovare le informazioni relative agli utenti, agli schemi e alle strutture di memorizzazione. modifica il data dictionary ogni volta che un istruzione del DDL viene eseguita Ogni utente può accedere al data dictionary (con modalità read-only per recuperare le informazioni relative al database. Le viste utilizzate dagli utenti per accedere al data dictionary si suddividono in: ALL_: sono viste create nella prospettiva di tutti gli utenti. Queste viste contengono informazioni relative a oggetti, diversi dai propri, a cui gli utenti hanno accesso mediante GRANT espliciti, privilegi e ruoli. Esempio: Tutti gli oggetti a cui ho accesso : SELECT owner, object_name, object_type FROM ALL_OBJECTS; USER_: sono le viste create nella prospettiva del singolo utente. Fanno quindi riferimento agli oggetti propri dell utente (es. oggetti dello schema, grant, ecc. e quindi mostrano un sottoinsieme dei dati delle viste ALL_. Esempio: Tutti gli oggetti del mio schema : SELECT object_name, object_type FROM USER_OBJECTS; DBA_: possono essere interrogate solo dal DBA o da chi possiede il privilegio SELECT ANY TABLE. Forniscono una visione globlale dell intero database 25 26

Static Data Data Dictionary Views Le viste ALL_, DBA_ e USER_ sono dette statiche poiché il loro contenuto cambia solo a fronte di un cambiamento dei dati del data dictionary. Nel seguito sono elencate alcune delle tabelle su cui lavoreremo. Per una descrizione completa del loro contenuto si veda il manuale 8i Reference. La sintassi??? indica che le tabelle sono disponibili sia in versione USER che ALL.???_ND_COLUMNS: mantiene le informazioni sulle colonne delle tabelle in cui sono costruiti indici???_nd_tables: mantiene le informazioni sulle tabelle in cui sono costruiti indici???_tab_cololumns: mantiene le informazioni sulle colonne delle tabelle???_tab_col_statstcs: mantiene le statistiche sulle colonne delle tabelle Dynamic Performance Tables Sono continuamente aggiornate mentre il sistema è in funzionamento e contengono principalmente informazioni relative alle performance. Sebbene siano percepite come tali, non sono memorizzate come tabelle nell accezione relazionale del termine e non possono essere interrogate mediante operazioni di raggruppamento, join e ordinamento Sono identificate dal prefisso V_$ ma il loro sinonimo pubblico (interrogabile è V$ Nel seguito sono elencate alcune delle tabelle. Per una descrizione completa del loro contenuto si veda il manuale 8i Reference. V$TRANSACTON: lista delle transazioni attive V$SESSON: lista delle sessioni attive V$LOCK: lista dei lock in atto V$SGA: descrizione della dimensione dell area SGA V$SQL: informazioni sull area condivisa SQL???_TABLESPACES: descrive i tablespace accedibili dall /dagli utente/i???_role_prvs: descrive i ruoli disponibili all /agli utente/i???_col_prvs: descrive i privilegi disponibili all /agli utente/i 27 28

Data Type Data Type: DATE Ogni valore manipolato da ORACLE deve essere associato a un tipo di dato che ne specifica le caratteristiche (es. valori ammessi, valori massimi, minimi, ecc. Tra i diversi tipi di dati che utilizzeremo più di frequente (vedi 2.2 8i SQL Reference distinguiamo: Tipi di dati built-in - CHAR(size stringa a lunghezza fissa definita da size < 2000. - VARCHAR2(size stringa a lunghezza variabile definita da size < 4000 - NUMBER(precision,scale a virgola fissa con scale cifre decimali e precision-scale cifre intere (es. NUMBER(3,2 1.24; NUMBER(3=NUMBER(3,0 122; NUMBER floating point - DATE - ROWD stringa esadecimale che contiene l indirizzo univoco di una tupla all interno di una tabella. Tipi di dati ANS: molti tipi di dati standard ANS sono supportati e convertiti in tipi di dati ORACLE ANS ORACLE CHARACTER(size CHAR(size CHARACTER VARYNG(size VARCHAR(size NUMERC(precision,scale NUMBER(precision,scale NTEGER NUMBER(38 FLOAT(size NUMBER l tipo DATE memorizza le informazioni relative a data e orario fino al secondo (vedi 2.14 8i SQL Reference: Se l orario non viene specificata il default è 12:00:00 AM Se la data non specificata il default è SYSDATE (la data corrente l formato standard utilizzato per la data è specificato nella variabile di sistema NLS_DATE_FORMAT Funzioni per la gestione di valori di tipo DATE TO_DATE(stringa[,formato]: converte un campo di testo (CHAR o VARCHAR2 contenente una data espressa nel formato formato in un dato di tipo DATE VARCHAR2(50 v_string:= January 15, 1989, 11:00 A.M. ; DATE v_date:= TO_DATE(p_date, Month dd, YYYY, HH:M A.M. TO_CHAR(data[,formato]: converte un campo data contenente una data espressa nel formato formato in una stringa di tipo VARCHAR2 SELECT TO_CHAR(HREDATE, Month DD, YYYY "New date format" FROM emp WHERE ename = BLAKE ; SYSDATE: restituisce la data corrente SELECT ENAME FROM DUAL WHERE HREDATE=SYSDATE; 29 30

Data Type: Conversione di tipi Data Definition Language Una espressione ORACLE deve essere svolta su operatori con lo stesso tipo di dato. Nel caso in cui i tipi di dati siano diversi è necessario effettuare una conversione che può essere implicita o esplicita. Conversioni implicite: Quando nelle operazioni di NSERT e UPDATE il dato da inserire viene convertito nel tipo di dato dell attributo corrispondente. Quando viene utilizzata una funzione SQL o un operatore con un parametro di tipo diverso da quello del valore che viene fornito in input, converte il tipo di dato del valore in quello del parametro. Quando viene utilizzato un operatore di comparazione tra due valori di tipi diversi. converte il tipo di uno dei due operandi. SELECT sal + 10 FROM emp; SELECT ename FROM emp WHERE empno = 7936 ; SELECT ename FROM emp WHERE hiredate = 12-MAR-1993 ; Conversioni esplicite: CHAR DATE: TO_DATE CHAR NUMBER: TO_NUMBER(stringa[,formato] converte stringa tipo CHAR o VARCHAR2 in un numero di tipo NUMBER NUMBER CHAR: TO_CHAR(val[,formato] converte val di tipo NUMBER in una stringa di tipo VARCHAR2. E la porzione di SQL che permette la creazione/eliminazione degli oggetti dello schema, i principali costrutti che utilizzeremo sono: Creazione di tabelle ( vedi 10.7 8iServer and SQL*Plus CREATE TABLE nometabella ( nomecol DATATYPE, nomecol DATATYPE, nomecol DATATYPE, PRMARY KEY (nomecol,,nomecol [,FOREGN KEY (nomecol,,nomecol REFERENCES nometabella (nomecol,,nomecol]; dove DATATYPE è uno dei tipi di dati previsti da ORACLE Eliminazione di tabelle (vedi 11.7 8iServer and SQL*Plus DROP TABLE nometabella; Creazione di sequenze (vedi 9.157 8iServer and SQL*Plus CREATE SEQUENCE nomesequenza START WTH primovalore NCREMENT BY incremento;; Eliminazione di sequenze (vedi 11.3 8iServer and SQL*Plus DROP SEQUENCE nomesequenza; (ATTENZONE: per reinizializzare una sequenza a un valore diverso da quello corrente è necessario e ricrearla ex-novo 31 32

Data Definition Language Creazione di indici (vedi 11.7 8iServer and SQL*Plus CREATE NDEX [UNQUE,BTMAP] nomeindice ON nometabella (nomecol,,nomecol; Eliminazione di indici (vedi 10.136 8iServer and SQL*Plus DROP NDEX nomeindice; Creazione di procedure (vedi 9.132 8iServer and SQL*Plus CREATE [OR REPLACE] PROCEDURE nomeprocedura [(nomepar DATATYPE,, nomepar DATATYPE] S Blocco codice PL-SQL; 33