Oracle Database

Oracle Database è uno tra i più famosi software di database management system sviluppato da Oracle Corporation. Scritto in linguaggio C, che fa parte dei cosiddetti RDBMS (Relational DataBase Management System) ovvero di sistemi di database basati sul modello relazionale affermatosi come…

Oracle Database è uno tra i più famosi software di database management system sviluppato da Oracle Corporation. Scritto in linguaggio C, che fa parte dei cosiddetti RDBMS (Relational DataBase Management System) ovvero di sistemi di database basati sul modello relazionale affermatosi come standard di riferimento dei database a partire dagli anni 80 del XX secolo.

Tipicamente gli aggiornamenti e le interrogazioni su Oracle Database avvengono attraverso l'uso del linguaggio SQL.

Descrizione

La società informatica che lo produce, la Oracle Corporation, è una delle più grandi del mondo, fondata nel 1977 da Lawrence J. Ellison (attuale amministratore delegato, Chief Technology Officer ed importante azionista), Bob Miner e Ed Oates, con sede centrale in California. La prima versione del database disponibile pubblicamente risale al 1979, da allora sono state introdotte numerose modifiche e miglioramenti per seguire gli sviluppi tecnologici.

Struttura del database

Una base di dati Oracle comprende istanze e dati memorizzati. Un'istanza è costituita da un insieme (set) di processi di sistema e strutture di memoria che interagiscono con i dati memorizzati. Tra questi processi i seguenti sono necessari per il funzionamento dell'istanza:

SMON (monitor di sistema)

DBWR (scrive nei datafile)

LGWR (scrive nei logfile)

CKPT (scrive i checkpoint controllandone la consistenza)

ARCH (archiviatore dei log delle transazioni per il DB in modalità archive log mode)

Un compito importante è svolto dalla System Global Area (SGA), una regione di memoria condivisa che contiene dati ed informazioni per il controllo di un'istanza Oracle. La SGA si occupa della cache, i dati bufferizzati, i comandi SQL e informazioni sull'utente.

Le strutture fisiche fondamentali per un'istanza sono:

control files: qui sono memorizzate informazioni essenziali al corretto funzionamento del database. Tra queste il DBID identificativo dell'istanza, il valore di CKPT per la sincronizzazione dei datafile e dati relativi ad alcune viste V$ da interrogare quando il DB stesso non è in stato di Open. È necessario averne almeno uno associato all'istanza; per maggior sicurezza possono esserne creati più di uno, il database stesso si occuperà della loro sincronizzazione, in modo da poter avviare il DB anche in stato di mount ed avviare un recovery.

l'archivio delle transazioni (online redo logs): i redo logs sono necessari per il funzionamento del Db stesso, il numero minimo di redo logs è 2.

i rollback/undo segments

il tablespace system

un tablespace di tipo "temporaneo"

Oracle memorizza i dati sia logicamente, sotto forma di tablespace, sia fisicamente, sotto forma di file (datafile). Un tablespace, formato da uno o più datafile, contiene vari tipi di segment; ogni segment a sua volta si suddivide in uno o più extent. Ogni extent comprende gruppi contigui di blocchi di dati (data block), questi ultimi sono la più piccola informazione memorizzabile da Oracle. A livello fisico, i file comprendono almeno due o più extent. Fino alla versione 8i la dimensione del blocco di dati era stabilita alla creazione del database e non poteva più essere modificata; dalla versione 9i in poi i blocchi di dati possono essere di dimensione variabile, sebbene ogni tablespace debba necessariamente essere costituita da datafile con la stessa dimensione di blocco dati.

Oracle tiene traccia dei dati memorizzati tramite l'aiuto di informazioni presenti nelle tabelle di sistema. Esse contengono il dizionario dei dati e se presenti indici e cluster. Un dizionario dati consiste di una collezione di tabelle che contengono informazioni riguardo a tutti gli oggetti del database.

La funzionalità RAC (Real Application Clusters) consente a più computer di eseguire contemporaneamente il software Oracle RDBMS accedendo a un singolo database, garantendo così il clustering. Questo scenario può offrire numerosi vantaggi, tra cui maggiori performance, scalabilità e ridondanza a discapito di una maggiore complessità di configurazione e gestione.

Tra le varie potenzialità possiamo memorizzare ed eseguire stored procedure e funzioni. Grazie al PL/SQL, un'estensione procedurale del linguaggio SQL, sviluppato da Oracle, e a Java possiamo scrivere funzioni, procedure, trigger e package. Se si sta invece programmando in C o C++, allora è possibile sviluppare funzioni con query preimpostate grazie al precompilatore Pro*C/C++.

Oracle è un RDBMS che se configurato e gestito in maniera appropriata, garantisce una sicurezza dei dati molto elevata. È possibile attivare a questo proposito la modalità detta ARCHIVING (o ARCHIVELOG MODE). Essa consiste nel registrare tutte le transazioni che avvengono nel DB anche in file di sistema operativo che dovranno essere utilizzati in caso di DB RECOVERY dovuta a crash totale o parziale del sistema. In questa modalità è possibile sfruttare l'HOT BACKUP ossia il salvataggio dei dati a sistema acceso senza effettuare fermi. Le modalità per il backup a caldo (hot backup) sono diverse. Quella standard Oracle è denominata RMAN ossia Recovery Manager. Nulla vieta comunque all'amministratore del DB di gestire il backup/restore delle istanze Oracle in maniera manuale o automatica tramite scripting.

Edizioni

Express Edition (XE) 18 è totalmente gratuito, orientato a studenti e programmatori. Ha alcune limitazioni: l'ultima versione, 18, disponibile da ottobre 2018, può salvare al massimo 12 Gb dati, usare al massimo 2 Gb Ram, 2 CPU Thread, un solo host client.

Standard Edition (SE) è l'ideale per le medie aziende.

Standard Edition One (SEO) progettato per le medie imprese e dipartimenti aziendali (funziona su server a due processori).

Enterprise Edition (EE) è l'ideale per le industrie e grandi aziende.

Servizi correlati

Altre voci

C

Code smell

Nell'ingegneria del software, e in particolare nel contesto dello sviluppo agile e dell'extreme programming, l'espressione code smell (letteralmente "puzza del codice") viene usata per indicare una serie di caratteristiche che il codice sorgente può avere e che sono generalmente riconosciute…

Leggi la voce →
A

Applicazioni Contabili Gestionali

Applicazioni Contabili Gestionali (ACG) è stata una divisione di IBM che ha fatto la storia nel panorama IT italiano con la sua gamma di software gestionali destinati alle PMI.

Leggi la voce →
A

Architettura multi-tier

Nell'ingegneria del software, il termine architettura multi-tier o architettura multi-strato (spesso definita con l'espressione inglese n-tier architecture) indica un'architettura software di tipo client/server per sistemi distribuiti, in cui le varie funzionalità del software sono logicamente…

Leggi la voce →
Paradox (database)P

Paradox (database)

Paradox è un'interfaccia software per la gestione di basi di dati di tipo relazionale (RDBMS) che sfrutta le Borland Database Engine e che integra nativamente in sé un modulo per lo sviluppo rapido di applicativi (RAD, Rapid Application Development) gestionali, attualmente distribuito da Corel…

Leggi la voce →
Pair programmingP

Pair programming

La programmazione in coppia, meglio nota come pair programming, è una metodologia di sviluppo del software di tipologia agile nella quale due programmatori lavorano insieme sulla stessa postazione di lavoro. I due solitamente hanno due ruoli distinti che possono scambiarsi: uno, detto…

Leggi la voce →
P

Platform as a service

Platform as a service (PaaS) è una tipologia di architettura a servizi che consiste nel servizio di messa a disposizione di piattaforme di elaborazione (Computing platform) e di solution stack. Gli elementi del PaaS permettono di sviluppare, sottoporre a test, implementare e gestire le…

Leggi la voce →