Oracle Express (XE)

Oracle Express (XE) [NdE OracleXE 10gR2] e' la versione Free del piu' diffuso RDBMS commerciale: Oracle. Si tratta di una versione (Edition per essere precisi) con alcuni limiti ma per il resto analoga e perfettamente compatibile con le altre versioni commerciali di Oracle. E' quindi sicuramente interessante per un utilizzo come ambiente di sviluppo, per usi accademici, nella distribuzione di applicazioni per ISV, ...

Sull'RDBMS Oracle si trova moltissima ottima documentazione... tra cui documentazione (appena decente NdR) scritta dal sottoscritto in italiano come: C'era una volta Oracle, I piu' comuni errori su Oracle, Secure Your Oracle DB by breaking into!, Le 10 cose che vi faranno impazzire di Oracle 10g, Oracle Application Server, Installare Oracle 11g su Linux Red Hat, ... ma non voglio annoiarvi con la mia logorrea, controllate gli ultimi aggiornamenti su Internet!

Nel seguito sono riportati alcune informazioni di interesse su Oracle Express... gli argomenti sono organizzati in semplici paragrafi: Installazione Utilizzo Applicazioni License Edition.

Installazione

Scaricato il software da www.oracle.com l'installazione e' particolarmente semplice. Nella versione per Windows di si tratta di un eseguibile autoinstallante:

XE Installazione ... XE Termine installazione

Basta rispondere a qualche semplice domanda di cortesia... impostare la password di amministrazione (attenzione a non dimenticarla!) e l'installazione termina senza problemi.
La versione piu' recente [NdA 11gR2] e' disponibile su questo link. Le altre differenze tra le due versioni sono riportate nel seguito.

Utilizzo

L'utilizzo di Oracle XE per un novizio e' molto semplice.

XE GUI

Si tratta di un'interfaccia grafica utilizzabile da web con icone e menu molto semplici. Per accedere si puo' utilizzare l'entry del menu o richiamare sul browser l'indirizzo: http://localhost:8080/apex

Nonostante l'apparente semplicita' dietro c'e' un RDBMS Oracle completo in tutti i sui componenti: un potente SQL, un completo linguaggio di programmazione PL/SQL, dati organizzabili in tabelle, indici, oggetti con tutte le possibili strutture come con tutte le altre versioni di Oracle.
Per i piu' curiosi questo e' il risultato dell'installazione su Windows Vista.
E' possibile configurare una sola istanza ed il SID e' fissato: XE. L'utilizzo da remoto e' del tutto analogo a quello delle altre edizioni. E' quindi possibile connettersi via NetX alla base dati da un qualsiasi client utilizzando la porta 1521 ed il SID xe.
Tutte le interfacce di programmazione operano come verso un'altra versione di Oracle senza differenze: C, Java, PHP, ...
Con XE non sono disponibili l'Enterprise Manager, alcuni tool avanzati (eg. AWS, ASM, RAC, ...) e l'utilizzo di Java Stored Procedure.

Gli altri strumenti e tool di Oracle sono tutti presenti. Per i nostalgici dell'interfaccia a carattere e' sempre disponibile l'SQL*Plus ;-)
Piu' spesso gli utenti sfruttano l'interfaccia grafica web. E se questa andasse in conflitto con altri ambienti che utilizzano la stessa porta? Basta seguire questi semplici passi...

SQL> begin
 2 dbms_xdb.sethttpport('8090');
 3 end;
 4 /
PL/SQL procedure successfully completed.

SQL> select dbms_xdb.gethttpport from dual;
GETHTTPPORT
-----------
8090

Application Express

Con XE viene fornito anche l'ambiente Application Express (APEX) che consente la costruzione di semplici applicazioni di data entry e reportistica con un'interfaccia guidata da wizard.

Oracle XE Application Express GUI

Come tutte le interfacce grafiche e' piu' semplice da utilizzare che da spiegare a parole...
Oracle Database Express Edition 10g (Oracle XE) contiene Oracle Application Express 2.1 (APEX).

Oracle Database Express Edition 11gR2 (Oracle XE) contiene Oracle Application Express 4.0. Ecco la nuova interfaccia grafica:

Oracle XE 11g Application Express GUI

La versione piu' recente di APEX e' la 4.2 ed e' opportuno effettuare l'upgrade se vi vogliono sfruttare tutte le funzionalita' piu' recenti.
L'aggiornamento e' semplice. Effettuato il download si decomprime il contenuto in una directory quindi, nella stessa directory, si lancia sqlplus e ci si collega come utente SYS. Vanno quindi lanciati:

@apexins SYSAUX SYSAUX TEMP /i/
@apxldimg.sql APEX_HOME
@apxchpwd
A questo punto e' possibile collegarsi all'URL http://localhost:8080/apex/apex_admin con l'utente ADMIN e la password appena impostata.

Oracle APEX 4.2

License

Innanzi tutto e' necessario chiarire un aspetto: Free significa gratuito, non libero! Oracle Express Edition puo' essere utilizzato gratuitamente ma il suo uso e' condizionato dal rispetto della sua licenza. Naturalmente bisogna fare riferimento alla licenza ufficiale ma puo' essere utile riassumere qualche punto...

Vi sono alcuni limiti tecnici:

Questo documento e' stato scritto quando la versione Oracle Express disponibile era la 10g R2, ora (2011) risulta disponibile la 11g R2, le eventuali differenze sono indicate ove appropriato. XE e' disponibile solo su alcune piattaforme: Linux e Windows e solo nella versione 32bit... [N.d.A. Linux x86-64 nella versione 11g R2]

L'utilizzo di XE e' riservato a:

e... BASTA!

Edition

L'RDBMS Oracle e' disponibile in diverse Edition. Anche se la mia preferenza va sugli aspetti tecnici, a volte anche qualche elemento sugli aspetti commerciali e' importante. Quanto riportato nel seguito e' indicativo, soggetto a cambiamento e va quindi verificato ogni volta sul listino prezzi ufficiale Oracle... pero' probabilmente utile!

Riassumendo con Oracle e' possibile scegliere l'Edition piu' adatta all'applicazione/ambiente che si vuole supportare con la garanzia di poter scalare sulle edizioni piu' avanzate poiche' le funzionalita' di base (ed i sorgenti del codice) sono gli stessi.
Nella valutazione va tenuto in dovuto conto l'Edition, gli eventuali componenti opzionali, il tipo di licenza se named user o processor (ed in questo caso del numero di core), ... Non ufficiale, ma chiara ed esaustiva e' questa FAQ.


Testo: Oracle Express (XE)
Data: 8 Dicembre 2007
Versione: 1.0.8 - 1 Maggio 2013
Autore: mail@meo.bogliolo.name