|
Livello di difficoltà: |
|
picoSQL è un DBMS tutto italiano che consente l'archiviazione di dati. E' un database giovane ma molto promettente, che supporta subquery, store procedures, ODBC, JDBC e il classico linguaggio SQL.
|
| |
Installazione
Guida a picoSQL
L'installazione è particolarmente semplice:
se avete la distribuzione binaria, è sufficiente estrarre
i file archiviati in una directory qualsiasi
(\ per Windows NT/2000/XP) ed eseguire
startTestDb.sh (Unix/Linux)
startTestDb.bat (Windows)
per attivare il DB con un database di test già configurato.
N.B. su Windows NT/2000/XP viene attivato lo script setReg.js che
inserisce alcune informazioni nel registry file. Fra tali informazioni
è compresa la directory col DB di test che risulta corretta
solo se si installa sotto \
A questo punto se si dispone di Java sul proprio computer, si può
lanciare
iSQLViewerTest.sh (Unix/Linux)
iSQLViewerTest.bat (Windows)
per interrogare e amministrare il DB.
Se non dispone di Java si può usare il programma
picosql.sh (Unix/Linux)
picosql.bat (Windows)
che consente di inviare al DB delle query SQL da riga di comando.
La directory d'installazione contiene le seguenti sottodirectory:
- bin dove risiedono tutti
i programmi eseguibili;
- lib dove risiedono le
librerie (solo Unix/Linux);
- inc dove risiedono le
gli header files per le compilazioni;
- java dove risiede
il driver JDBC e le applicazioni scritte con linguaggio Java.
- doc dove risiede
la documentazione.
PicoSQL consiste fondamentalmente in un programma,
picosqld,
da attivare tramite inetd (o xinetd) oppure picoserv.
In tal modo diventa un servizio di rete legato a una porta,
cioè a un numero intero compreso tra 1 e 65535;
questo numero (per esempio 6789) deve essere sempre specificato
sulla linea di comando di picosqld.
Per esempio:
picosqld 6789
Per l'attivazione con inetd (o xinetd), si rimanda alla
documentazione relativa. picoserv
è un semplice programma che sostituisce inetd, principalmente
per scopi di test o debugging: il suo uso è il seguente
picoserv [-f] <lineDiComando> <porta>
Nel nostro caso l'attivazione di picosqld
può essere ottenuta con il comando seguente:
picoserv "picosqld 6789" 6789
Notare come il numero di porta è specificato due volte, una come
argomento di picosqld e una
come argomento di picoserv.
Quando viene fatta una richiesta di connessione
picoSQL legge un file di configurazione dove trova le informazioni necessarie.
Questo file è un file in formato testo su Unix/Linux mentre su Windows
è il registry file di sistema e deve essere modificato con il programma
regedit.
- Unix/LunixViene ricercato il file
$HOME/.picosql.ini
oppure, in mancanza di questo,
/etc/picosql.ini
In questo file possono essere presenti più sezioni, caratterizzate
da un nome racchiuso tra parentesi quadre su una singola linea.
Ciascuna sezione può contenere più attributi, caratterizzati
da un nome (il nome attributo), un segno di uguale (=) e un valore che
termina all'interruzione della linea di testo.
Le linee che iniziano con il carattere punto e virgola (;) oppure diesis (#)
vengono considerati commenti.
Ciascuna sezione corrisponde a un database e comprende informazioni come
utente, password e locazione del DB.
Nell'esempio seguente sono dichiarati due database, il primo, chiamato
picoSqlTest, accessibile a chiunque
mentre il secondo, chiamato rubrica
può essere acceduto solo fornendo l'appropriato nome utente e password.
[picoSqlTest]
DataDirectory=/home/test.db
[rubrica]
DataDirectory=/home/rubrica.db
User=pico
Password=soft
PicoOdbcTrace=NO
SuspensiveLock=YES
; for picosql client only
server=localhost
port=6789
- Windows NT/2000/XP
Su Windows la configurazione viene letta dal registry file a partire
dalla chiave:
HKEY_CURRENT_USER\Software\PicoSoft\PicoSQL
oppure, in mancanza di questa,
HKEY_LOCAL_MACHINE\Software\PicoSoft\PicoSQL
Ogni chiave in questa sezione può corrispondere a un database.
Sotto la chiave corrispondente al database possono essere definite
delle stringhe, ciascuna delle quali corrisponde a un attributo del
database, come utente, password e locazione del DB.
Nell'esempio seguente sono dichiarati due database, il primo, chiamato
picoSqlTest, accessibile a chiunque
mentre il secondo, chiamato rubrica
può essere acceduto solo fornendo l'appropriato nome utente e password.
[HKEY_CURRENT_USER\Software\PicoSoft\PicoSQL\picoSqlTest]
DataDirectory=C:\home\test.db
[HKEY_CURRENT_USER\Software\PicoSoft\PicoSQL\rubrica]
DataDirectory=C:\home\rubrica.db
User=pico
Password=soft
PicoOdbcTrace=NO
SuspensiveLock=YES
server=localhost
port=6789
Un DB è semplicemente una
directory del disco che contiene tutte le tabelle create dall'utente
più altre tre, __TABLES __COLUMNS e __VIEWS, create automaticamente alla
prima connessione al DB e contenenti il data dictionary.
Gli attributi che modificano il comportamento di picoSQL sono i seguenti:
| Nome Attributo |
Descrizione |
Valori ammessi |
DataDirectory |
Indica dove debbono essere memorizzati i files che contengono
i dati. Questo attributo è l'unico obbligatorio. |
Nome completo di una directory |
User |
Indica che per l'accesso a questo DB è necessario presentarsi
con lo specificato nome utente, altrimenti si ha un rifiuto della
connessione. |
Nome utente |
Password |
Indica che per l'accesso a questo DB è necessario
fornire la password specificata, altrimenti si ha un rifiuto della
connessione. |
Stringa di caratteri |
PLogFile |
Indica un file nel quale viene memorizzata la traccia di tutte le
operazioni eseguite. Tale file può essere utilizzato dal
programma pIrecover per
ricostruire il DB sulla base dell'ultimo back-up.
Per attivare questo comportamento, è necessario anche mettere
il database in modalità AUTOCOMMIT=OFF tramite le opportune
chiamate ODBC o JDBC.
N.B. Nella presente release le operazioni sui BLOB non
vengono completamente annullate da una rollback |
Nome completo di un file |
PTransaction |
Attiva la modalità commit/rollback senza file di traccia.
Per attivare questo comportamento, è necessario anche mettere
il database in modalità AUTOCOMMIT=OFF tramite le opportune
chiamate ODBC o JDBC.
N.B. Nella presente release le operazioni sui BLOB non
vengono completaente annullate da una rollback |
Y o N (default) |
SuspensiveLock |
Quando un programma cerca di bloccare una riga di tabella già
bloccata da un altro programma, per esempio usando una "SELECT ...
FOR UPDATE", esso riceve per default una
segnalazione di errore opportuna. Mettendo questo attributo a Y,
picoSQL rimane in attesa fin tanto che la riga non diventa disponibile.
|
Y o N (default) |
SysUser |
Impostando questo parametro a Y, ogni volta che viene stabilita una
connessione l'utente del DB diventa anche l'utente di sistema e
agisce con i permessi di quest'utlimo. Affinchè questa
opzione funzioni, il demone deve essere eseguito da un utente
con sufficienti autorizzazioni (utente root per Linux/Unix,
privilegi SeTcbPrivilege, SeAssignPrimary e SeIncreaseQuota su
Windows; in Windows l'utente e la password devono corrispondere
con quelle dell'utente di sistema).
|
Y o N (default) |
MaxOpenCache |
Con questa opzione si può specificare il numero massimo
di file da tenere aperti per velocizzarne il riuso. Il valore
di default è 10
|
Un numero maggiore o uguale a 0 |
PicoOdbcTrace |
Attiva un file di traccia delle operazioni eseguite sul DB
a scopo di debugging o ottimizzazione. Il file di traccia
ha nome /tmp/PICOSQL<pid>.log.
|
Y o N |
|
| |