Una visión al ligero motor de base de datos SQLite
SQLite es un “pequeño” sistema de gestión de base de datos relacionales que opera sobre un único archivo binario, encapsulado en una pequeña librería de funciones y disponible en muchos lenguajes (a través de módulos).
¿Por qué consideramos a SQLite “pequeño” ?
Es pequeño desde el punto de vista de “consumos de recursos” frente a otros “grandes” sistemas de base de datos tradicionales, ya que SQLite es una librería relativamente liviana, la cual encapsula todo el acceso a la base de datos en funciones que operan directamente sobre el archivo binario de la base datos. En contraste a conectarse a una base de datos tradicional, la que generalmente opera sobre un paradigma cliente-servidor junto a sockets, etc.
¿Como opera SQLite?
SQLite (al igual como la mayoría de las base de datos) operan sobre una (o mas) estructura de datos llamadas Arboles, las que representan una estructura de datos que relaciona información entre los nodos (como las hojas de un árbol).
Un Árbol (en el contexto de estructura de datos) bien diseñado, nos permite encontrar o acceder a la información con un costo muy menor frente a otras estructura de datos de acceso “secuencial” como las listas o stacks.
Entonces SQLite almacena toda la base de datos en un único archivo binario, en donde mezcla el árbol de indices, datos, etc.
Ventajas y Desventajas
Por las características de SQLite, es recomendable en muchos contextos de aplicación, todo depende del nivel de acceso a la base de datos, ya que si la alicación realiza distintos accesos simultáneos, gran demanda de consultas, etc. lo mas recomendable seria migrar a una base de datos tradicional cliente-servidor, en caso contrario, SQLite ofrece una gran pero ligera solución para nuestros datos.
SQLite en distintos lenguajes de programación
SQLite en PHP
SQLite está disponible nativamente desde la versión 5 de PHP, mientras que en PHP4, solo es accesible habilitando el modulo.
Hay varias formas para acceder a una base de datos sqlite (directamente con las funciones del modulo sqlite, utilizando una capa de abstración de datos, etc.), pero siempre es necesario tener activo el modulo sqlite.
<?php // Example SQLite by deerme.org // PEAR in the Include Path $pear = "./pear"; ini_set("include_path",ini_get("include_path").";$pear"); // Remember ':' for like unix system and ';' in windows system require_once("DB.php"); // Sqlite $dsn = array( 'phptype' => "sqlite", 'hostspec' => "localhost", 'database' => "./db/friends.db", 'username' => "", 'password' => "" ); $dbh = DB::connect($dsn); if (PEAR::isError($dbh)) die("Error 1".$dbh->getMessage() ); // Create Database $dbh->query("CREATE TABLE IF NOT EXISTS friends (id INTEGER NOT NULL PRIMARY KEY, name VARCHAR(128) NULL, phone VARCHAR(128) NULL )"); // List my Friend $q = $dbh->query("SELECT * FROM friends"); if (PEAR::isError($q)) die("Error 2".$q->getMessage() ); while( $row = $q->fetchRow(DB_FETCHMODE_ASSOC) ) { echo $row["name"]."-".$row["phone"]."\n"; } // Add Friend $dbh->query(" INSERT INTO friends ( name , phone ) VALUES ('Cat Kitty','523621422') ; "); unset($dbh); ?>
SQLite en Python
# Example SQLite by deerme.org import sqlite3 , time # Create the connection con = sqlite3.connect('test.db') # Create de Cursor cur = con.cursor() # Create table cur.execute("CREATE TABLE IF NOT EXISTS friends (id INTEGER NOT NULL PRIMARY KEY, name VARCHAR(128) NULL, phone VARCHAR(128) NULL )") con.commit() # Add Data friends = [ ('Pedro', '14512412412'), ('Jose Ignacio', '412412412412')] for p in friends: cur.execute('INSERT INTO friends (name,phone) VALUES (?,?)', p) con.commit() # Get Data cur.execute('SELECT * FROM friends') for row in cur: print row cur.close() con.close()
Echa un vistazo a una herramienta gratuita – Valentina Studio. Producto asombroso! OMI es el mejor gestor de SQLite para todas las plataformas. http://www.valentina-db.com/en/valentina-studio-overview