| Il micro database SQLite sulla SX ARM LINUX | Data di pubblicazione: 08-12-2006 | Articolo | Livello | Versione Italiana | (No English Version) Parole chiave: - Linux - |
In questo articolo mostriamo come compilare un programma in C per la SX ARM Linux che integri il micro database SQLite. La scelta di questo database open
source è consigliata in tutti quei sistemi in cui è richiesta la potenza di un sistema SQL ma non si dispone di molto spazio.

Questo articolo oltre a presentare brevemente il database SQLite descrivendone pregi e difetti, mostra come caricare nell'ambiente di sviluppo della SX ARM Linux
la libreria necessaria per compilare programmi in C che utilizzino quesot micro database.
Per il nostro esempio, oltre ad una scheda SX ARM Linux, è necessario un PC Windows o Linux su cui sia stato precedentemente installato il compilatore per
microprocessori arm.
Una breve guida introduttiva sul compilatore è disponibile al seguente link Guida all'utilizzo della SX ARM Linux.
SQLite
SQLite è una libreria scritta in C che implementa un DBMS (Database Management System) SQL completamente Open source incorporabile all'interno di una applicazione.
Essendo una libreria e non un processo standalone, SQLite non è utilizzabile di per sé, ma deve essere utilizzato all'interno di un'altro programma. Tale programma può essere realizzato con qualsiasi linguaggio che fornisca il binding alla libreria, ad esempio C/C++, Python o Tcl. SQLLite èintegrato anche nella versione 5 di PHP, il diffusissimo linguaggio di scripting Web.
Tra le caratteristiche più interessanti di SQLite:
- dimensioni molto ridotte. L'intera libreria ha una dimensione che non arriva a 250KB
- molto veloce, quasi come MySQL e PostgreSQL
- il codice sorgente è liberamente disponibile, chiaro e ben commentato
- è in grado di interpretare stringhe SQL, supporta buona parte dello standard SQL92
- è multipiattaforma
- il database consiste di un unico file il cui formato interno è indipendente dalla piattaforma
- supporta database che possono essere anche molto grandi; attualmente il limite è 2TB
Ci sono, naturalmente, anche degli svantaggi:
- non possiede stored procedures, nè gestione dei permessi
- non ha una vera gestione della concorrenza (le applicazioni che lo utilizzano, se necessario, devono implementarla)
- non offre alcuna cache per le query
- non ha protocolli di rete
- non supporta alcuni importanti comandi SQL:
- RIGHT e FULL OUTER JOIN
- sotto query variabili
- transazioni annidiate
- ALTER TABLE offre pochissime possibilità
Una sua peculiarità è quella di poter gestire i "tipi" in modo molto flessibile: ogni campo può contenere qualsiasi tipo di dato.
Installazione delle API SQLite
Nella sezione Download presente in fondo a questo articolo è possibile scaricare le API SQLite precompilate, da usare con il compilatore per
processori della famiglia arm
L'installazione delle API è molto semplice; è infatti sufficiente decomprimere il file SQLite_API_arm.zip e copiare il contenuto delle due cartelle lib e include rispettivamente nelle cartelle:
\usr\local\arm-linux\lib
e
\usr\local\arm-linux\include
presenti nella cartella di installazione del compilatore.
Sempre nel file scaricato viene fornito un comodo un tool (sqllite3) per creare e gestire i file-database SQLite.
Il tool sqlite3 viene eseguito in linea di comando e si lancia con la sintassi:
./sqlite3 <nome del db-file>

Di seguito è riportato un esempio di impiego del tool sqlite:
root@SX_ARM_Linux />/home/sqlite/sqlite3 db_prova
SQLite version 3.3.6
Enter ".help" for instructions
sqlite>
sqlite> create table tbl(value1 varchar(10),value2 smallint);
sqlite> insert into tbl values('hello',10);
sqlite> insert into tbl values('goodbye',20);
sqlite> select * from tbl;
hello|10
goodbye|20
sqlite> .quit
Compilare ed eseguire un programma di test
Una volta caricate le librerie nell'ambiente di sviluppo possiamo cominciare a scrivere il nostro programma in C in grado di creare e gestire un database SQLite, effettuando normali query SQL quali SELECT per accedere ai dati, INSERT per inserire nuovi dati, UPDATE per modificare dati già salvati o DELETE per cancellare.
La documentazione completa di tutte le funzioni messe a disposizione dalle API sono descritte all'url
http://www.sqlite.org/capi3.html
Una volta scritto il nostro programma possiamo passare alla fase di compilazione. Questa viene eseguita tramite l'arm-linux-gcc, usando la sintassi
riportata di seguito:
arm-linux-gcc -lm -o nome_programma sorgente.c /usr/local/arm-linux/lib/libsqlite3.a

Il file che otterremo dalla compilazione (nome_programma) deve poi essere ulteriormente processato con il programma arm-linux-strip
arm-linux-strip.exe nome_programma
A questo punto abbiamo il nostro file compilato che può essere caricato nella memoria della SX ARM Linux effettuando una semplice connessione FTP verso l'IP
assegnato a quest'ultima.
L'ultima operazione rimasta da fare è quella di rendere eseguibile il nostro file; a tale scopo ci colleghiamo tramite Telnet o SSH alla nostra SX ARM Linux
ed impartiamo il comando:
chmod 755 nome_programma
Ora il nostro programma è pronto e possiamo eseguirlo con il comando:
./nome_programma database_file "query da eseguire"

Download
Librerie SQLite,
pre compilate per ARM: SQLite_API_arm.zip
Sorgente di
esempio: test_sqlite.zip
Parole chiave: - Linux -
|