Molto spesso durante lo sviluppo di un sito internet abbiamo bisogno di gestire piccole quantità di dati, tali da non giustificare l'acquisto di spazio su database Sql Server o MySql. La soluzione sicuramente più immediata, che per essere implementata, tuttavia, ci costringe a scrivere molto codice e soprattutto ci preclude l'uso di un linguaggio di interrogazione semplice, potente e flessibile come SQL, consiste nell'utilizzo di file di testo o XML come base di dati. Una soluzione alternativa e, tutto sommato, poco conosciuta risiede invece nell'uso di SQLite.
SQLite è una piccola libreria scritta in C (ma di cui sono disponibili port per molti linguaggi e piattaforme) che implementa un vero e proprio motore di database. La versione stabile più recente nel momento in cui scrivo è la 3.5.1. Le principali caratteristiche di SQLite sono:
È bene notare che, nonostante vanti molti pregi, proprio a causa della sua leggerezza SQLite porta con se anche alcuni difetti, come l'esclusione di alcune instruzioni SQL (ad esempio manca il supporto a FOREIGN KEY e CONSTRAINT), oppure problemi di prestazioni in scenari di utilizzo caratterizzati da accessi molto frequenti a quantità di dati di dimensione notevole.
Prima di proseguire con l'articolo penso siano d'obbligo alcune precisazioni che potranno evitarvi molti grattacapi in futuro.
SQLite 3.x supporta soltanto 5 tipi di dati: NULL, INTEGER, REAL, TEXT, BLOB e, ad esclusione del campo Integer con attributo PRIMARY KEY, ogni colonna può contenere qualsiasi tipo di dato. Quindi inserire una stringa in un campo intero non genererà errori.
Per facilitare la convivenza con basi di dati più fortemente tipizzate, SQLite ha introdotto, con la versione 3.0, la Column Affinity, un sistema che trasforma automaticamente, ad esempio, un campo definito come VARCHAR in uno TEXT. La query:
CREATE TABLE test ( t VARCHAR(200) );
verrà quindi trasformata, senza che si verifichino errori, in:
CREATE TABLE test ( t TEXT);
Ovviamente perderemo il controllo sulla lunghezza del campo, che non sarà più di 200 caratteri. Per maggiori informazioni sulla Column Affinity vi rimando alla documentazione ufficiale.
Guida Windows Azure Code SnippetsLe migliori pratiche per far girare le applicazioni "in the cloud",... |
Guida ASP.NET MVC Best PracticesUn workflow dettagliato e ricco di suggerimenti pratici per... |
Guida ASP.NET Starter KitUn modo semplice per imparare ad utilizzare le tecnologie Microsoft... |
Ogni giovedì, direttamente nella tua e-mail: articoli, guide, tutorial e script ASP, ASP.Net, SQL server e IIS.
Iscriviti alla newsletter
|
|
Amministratore di Reti Windows Server 200820 Febbraio 2012 a Milano |
|
Nessun corso previsto |