Database Oracle • È una collezione di dati collocati in uno o più file • Contiene strutture fisiche e logiche (oggetti) Accenni di Oracle Dr. Daniele Barone Dr. Simone Grega Tipi di tabelle in Oracle • Tabelle relazionali • Tabelle relazionali a oggetti: – sfrutta caratteristiche come l’ereditarietà dei tipi • Tabelle di solo indice: – crea una tabella che memorizza i dati in una struttura a indice, consentendo l’ordinamento dei dati stessi. • Tabelle esterne: – E’ possibile creare tabelle esterne per accedere a file esterni al database come se queste fossero memorizzate all’interno del database. – Tabelle: per la memorizzazione dei dati – Indici: per il recupero veloce dei dati –… • Per gli oggetti è possibile: – creare dei sinonimi, – limitarne l’accesso, – visualizzarli in database diversi (attraverso i database link) Tipi di tabelle in Oracle(2) • Tabelle partizionate: – E’ possibile dividere una tabella in più partizioni, che consentono di gestire separatamente ogni parte della tabella (semplifica e migliora le prestazioni di manutenzione e delle query) • Viste materializzate: – è una replica di dati recuperati tramite una query. 1 Tipi di tabelle in Oracle(3) • Tabelle temporanee • Tabelle riunite in cluster: – se due tabelle vengono interrogate insieme, è possibile memorizzarle fisicamente insieme tramite una struttura chiamata cluster. • Tabelle eliminate: – è possibile recuperare rapidamente le tabelle eliminate. Meta dati e tablespace • Per tutte le strutture logiche Oracle mantiene un dizionario dati che registra una serie di metadati per ciascun oggetto: – – – – Una definizione, Proprietario, I privilegi correlati, Etc. • Per gli oggetti che richiedono dello spazio fisico di memorizzazione, Oracle allocherà dello spazio in una tablespace. Tipi di Indici in Oracle • Indici B*-tree: – indice standard; utile per la selezione delle righe che soddisfano un criterio di equivalenza o di intervallo. • • • • • Indici bitmap Indici a chiave inversa Indici basati su funzioni Indici partizionati Indici di testo Struttura fisica del database Oracle (1) La struttura fisica di Oracle è composta dalle seguenti tipologie di file: – TABLESPACE: è costituita da uno o più file di dati (DataFile); un file di dati può far parte di una e una sola taplespace. Oracle Database 10g crea almeno due tablespace per ciascun database, SYSTEM e SYSAUX, a sostegno delle proprie esigenze di gestione interne. – DATAFILE: ogni database ne può avere vari; contengono tutti i dati del database (tabelle,indici,dati utente,ecc). Un datafile può essere associato a solo un database. Un insieme di datafile formano un unità logica chiamata tablespace; – CONTROLFILE: è necessario per specificare la struttura fisica del database. Ogni volta che viene avviata un’istanza, tale file si occupa, per esempio, di identificare il database e i file di log necessari; – REDOLOG: ogni database ha un insieme di due o più redolog file. Registrano tutti i cambiamenti effettuati sui dati; assicurano che tutti i cambiamenti siano registrati anche se, a causa di failure, non dovessero essere scritti sui datafile (operazione di rolling forward). 2 Istanza Oracle • Un istanza di Oracle è costituita da un ‘area di memoria chiamata area globale di sistema (SGA, System Global Area) e dai processi in background che interagiscono tra la SGA e i file del database sul disco. – In un Real Application Cluster (RAC) di Oracle lo stesso database viene utilizzato da più di un istanza. 3