Informix

Informix e' un database relazionale molto diffuso in ambiente Unix e disponibile anche in ambiente Windows-NT.

Informix vanta una diffusione notevole (spesso viene distribuito con applicazioni) una grande numero di terze parti e di clienti che lo conoscono approfonditamente ed una presenza sul mercato pluriennale.

 

I motori

Il cuore del database Informix e' il "motore" che gestisce la base dati. I motori di Informix sono tre:

Nel seguito del documento si fara' riferimento alla versione on-line che e' maggiormente diffusa. Le differenze tra i motori sono comunque limitate. Di recente introduzione e' la versione per sistemi multiprocessori.

 

Di recente e' stato commercializzato un prodotto on-line for workgroup. Si tratta del normale motore dell'on-line ma con un numero di licenze ed un prezzo concorrenziali sul mercato, ora sempre piu' interessante, dei sistemi NT e dei micro Unix (Oracle for Workgroup, SQL Server).

 

Le differenze tra versioni sono comunque limitate.

 

SQL

L'SQL di Informix e' molto "pulito". In effetti e' uno degli SQL piu' vicini agli standard ANSI e che piu' velocemente si e' adeguato alle linee di standard emerse nel tempo.

Sono comunque presenti diverse particolarita' utili ai programmatori.

 

Oggetti

Naturalmente con Informix e' possibile creare tabelle. Non e' tuttavia l'unico tipo di oggetto che Informix mantiene. Tra gli altri: viste, indici, ruoli, trigger, stored procedures, ...

Tipi di dato

Informix permette l'utilizzo di diversi tipi di dato (una ventina circa).

Tra i principali:

 

Dizionario dati

Il dizionario dati o System Catalog, come preferisce Informix, contiene tabelle di sistema che riportano tutte le informazioni su tutti gli oggetti presenti nella base dati.

Le tabelle del Data Dictionary sono una trentina ed hanno sempre il prefisso SYS (eg. SYSTABLES, SYSCOLUMNS, SYSTRIGGERS, SYSUSERS, SYSVIEWS).

Naturalmente le tabelle del Data Dictionary non debbono essere modificate manualmente poiche' sono mantenute automaticamente da Informix.

L'ottimizzatore

Informix utilizza un ottimizzatore cost-based per la valutazione del percorso d'accesso da utilizzare nell'esecuzione delgi statement SQL. Per altro l'ottimizzatore di Informix e' utilizzato da molti anni e ha raggiunto un notevole grado di sofisticazione e di robustezza.

Per farsi riportare il piano di esecuzione di uno statemente e' sufficiente utilizzare il SET EXPLAIN.

 

Gli ottimizzatori cost-based utilizzano le dimensioni delle tabelle e gli istogrammi di distribuzione degli indici e dei dati per determinare il percorso ottimale. Con Informix lo statement UPDATE STATISTIC ricalcola i valori necessari all'ottimizzatore. Naturalmente deve essere lanciato periodicamente e quando sono effettuati pesanti modifiche ai dati.

 

Transazioni

La gestione delle trasazioni e' fondamentale su un RDBMS. Informix gestisce le trasazioni con gli statement classici di COMMIT e ROLLBACK.

L'instruzione di SET LOG consente di specificare il tipo di logging utilizzato.

Locking

Per una corretta gestione della concorrenza e' necessario l'utilizzo dei lock. Due transazioni non possono infatti motificare contemporaneamente gli stessi dati in modo non coordinato (cfg. ACID).

Le possibilita' offerte da Informix sono diverse ed e' importante riportarne gli elementi principali.

Lock Scope

Il lock scope e' il livello a cui viene posto un lock.. Il lock scope puo' essere a livello di riga, pagina o tabella. Il default e' a livello di pagina (poiche' piu' efficiente). Il lock a livello di riga consente una maggior concorrenza ed il lock a livello di tabella ha il peso minore ma permette un livello di concorrenza limitato.

Il lock scope puo' essere definito all'atto della creazione di una tabella.

Lock Mode

Il lock mode e' la modalita' per cui viene richesto un lock. Un lock puo' essere shared, exclusive e promotable. Se si utilizza l'istruzione di SELECT ... FOR UPDATE viene richiesto un lock promotable che viene trasformato in exclusive al momento della modifica.

SET LOCK MODE

L'istruzione di SET LOCK MODE consente di definire se, a fronte di un lock su una risorsa, si vuole attendere la sua liberazione oppure farsi restituire un codice d'errore.

Concorrenza

L'accesso concorrente agli stessi dati presenta diverse possibilita' con Informix. E' infatti possibile impostare l'isolation level ai seguenti valori:

I valori sono stati riportati in ordine crescente di isolamento e di complessita'.

L'isolation level viene impostato con lo statement SET TRANSACTION.

 

 

Utility

Sono disponibili diversi programmi e funzioni di utilita':

 

Configurazione

La configurazione di Informix, come pure la sua installazione, e' piuttosto semplice e si limita al settaggio di alcuni veriabili di ambiente (INFORMIXDIR, PATH) ed ad alcuni eventuali parametri. Se servono maggiori indicazioni potete leggere il documento Amministrare Informix su Linux.

La preparazione all'installazione e' banale: vanno creati l'utente informix ed il gruppo informix ed assegnati al File Systeme che poi (per default) ospitera' il DB. Il software viene distribuito generalmente come tar file e deve essere scaricato sul sistema ospite. Quindi e' necessario settare le due variabili d'ambiente indicate e, come utente root, lanciare lo script di installazione (eg. installse).
A questo punto l'ambiente e' installato. Basta configurare l'ambiente (eg. .profile) dell'utente informix e utilizzare i normali comandi per operare sul DB (eg. dbaccess).

Il tuning, a livello di sistema, della base dati dipende dal tipo di engine:

Con Informix, come con altri RDBMS, e' fondamentale il tuning a livello di SQL ed il corretto disegno degli indici.

 

Altri prodotti

Oltre all'RDBMS Informix distribuisce diversi altri prodotti:

...

Nel tempo alcuni prodotti hanno cambiato nome (eg. On Line --> IDS) e si sono arricchiti di funzionalita' (eg. interfaccia web). Ma i concetti di base non sono cambiati.

 

 

Nuove funzionalita'

Dall'introduzione dell'engine on-line sul mercato sono state notevoli i miglioramenti e le nuove funzionalita' inserite nel prodotto.

Come punti di forza sono sicuramente da ricordare:

Tali caratteristiche fanno di Informix una buona scelta sia per le basi dati di uso gestionale che per complessi (ed enormi) database di Dataware House.

 

Informix Net

Il prodotto per l'utilizzo di Informix in rete (e quindi nelle diffusissime configurazioni client/server o in configurazione di database distribuito) e' Informix Net.

Da diverso tempo sono inoltre disponibili driver ODBC per l'utilizzo di informix con pacchetti o applicazioni standard (per cosi' dire).


Testo: Informix
Data: 16 Ottobre 1997
Versione: 1.0.3
Autore: mail@meo.bogliolo.name