2. SQLite
SQLite es una pequeña librería programada en lenguaje C que implementa
un completo motor de base de datos multiplataforma que no precisa
configuración. Se distribuye bajo licencia de dominio público. Es muy
rápido y la ventaja fundamental es que permite utilizar un amplio
subconjunto del lenguaje estándar SQL.
A diferencia de los sistema de gestión de base de datos cliente-servidor, el
motor de SQLite no es un proceso independiente con el que el programa
principal se comunica. En lugar de eso, la biblioteca SQLite se enlaza con el
programa pasando a ser parte integral del mismo. El programa utiliza la
funcionalidad de SQLite a través de llamadas simples a subrutinas y
funciones. Esto reduce la latencia en el acceso a la base de datos, debido a
que las llamadas a funciones son más eficientes que la comunicación entre
procesos. El conjunto de la base de datos (definiciones, tablas, índices, y los
propios datos), son guardados como un sólo fichero estándar en
la máquina host. Este diseño simple se logra bloqueando todo el fichero de
base de datos al principio de cada transacción.
3. Características de SQLite
SQLite goza de un par de características que lo hacen único, alguna de
ellas se detallan a continuación.
Cero Configuración
De la forma en que fue concebido y diseñado SQLite, NO necesita ser
instalado
No prender ,reiniciar o apagar un servidor, e incluso configurarlo. Esta
cualidad permite que no haya un administrador de base de datos para
crear las tablas, vistas, asignar permisos. O bien la adopción de medidas
de recuperación de servidor por cada caída del sistema.
4. Portabilidad
SQLite puede ser ejecutado en diferentes sistemas operativos, como ser
Windows, Li-nux, BSD, Mac OS X, Solaris, HPUX,AIX o estar embebido en
muchos otros como QNX, VxWorks, Symbian, Palm OS, Windows CE. se pude
notar que muchos de ellos trabajan a16, 32 y 64 Bits. La portabilidad no está
dada en sí por el software, sino por la base de datos condensada en un solo
archivo, que puede estar situado en cualquier directorio, trayendo como
ventaja que la base de datos puede ser fácil-mente copiada a algún dispositivo
USB o ser enviada vía correo electrónico. En cambio, los motores de base de
datos tienden por lo general a almacenar la colección de archivos, al que sólo el
motor de la base de datos puede llegar a tener acceso. Esto hace que los datos
sean más seguros y más difíciles de acceder. Algunos proporcionan la opción
de escribir directamente en el disco y pasar por el sistema de ficheros todos
juntos. Esto aporta un mayor rendimiento, pero a costa de una considerable
complejidad de instalación y mantenimiento.
5. Registros de longitud variable
Generalmente los motores asignan una cantidad fija de espacio en disco
para cada fila en la mayoría de los campos de una determinada tabla. Por
ejemplo, tomemos un campo de tipo VARCHAR(100), esto significa que el
motor le asignará 100 bytes de espacio fijo en disco, independientemente
de la cantidad de información que se almacene en ese campo. En
cambio, SQLite realizará todo lo contrario, utilizando para ello la cantidad
de espacio en disco necesario para almacenar la información real del campo.
Tomando el ejemplo anterior, si quisiera almacenar un solo carácter en un
campo definido como VARCHAR(100), entonces un único byte de espacio de
disco se consume. Realmente una característica especial para ahorrar espacio
en memoria.
6. Pedagógico
Algunas veces cuando se está en un ámbito educativo, se tiende a enseñar SQL
para administrar las bases de datos. Muchas veces transportar una base a casa
no es tarea fácil, por eso SQLite está siendo adoptado de una forma
pedagógica. Por ejemplo, los estudiantes pueden enviar vía e-mail las bases de
datos a los docentes para su presentación y los docentes realizarán
las observaciones necesarias. Para los estudiantes más avanzados que están
interesados en el estudio de cómo trabaja un RDBMS, el código SQLite puede
servir como una buena base. Esto no quiere decir que es un modelo exacto de
la forma en que los motores de bases de datos se apliquen, sino una forma en la
que un estudiante que entiende cómo funciona SQLite puede comprender
los principios operativos de otros sistemas
7. Formas de uso
• Como gestor de base de datos local en un PC. De esta forma
podemos gestionar bases de datos con SQLite igual que si
estuviéramos trabajando con un sistema gestor de base de datos como
MySQL sin necesidad de instalar nada, ya que SQLite se compone de
un
único
archivo
ejecutable.
• Como una extensión más de PHP, utilizando las funcionalidades de
SQLite configuradas, o bien como módulo de PHP, o como librería; sin
necesidad de tener instalado o conectar con un servidor de base de
datos. Ofrece un rápido interfaz de base de datos almacenado en
archivo de texto plano.
8. SQLite como extensión de PHP
Una de las opciones de utilización de SQLite es como extensión de
base de datos para php
Esta opción, ofrece un rápido interfaz de base de datos, al igual que
ofrecen otras bases de datos como MySQL, pero con la ventaja de no
tener la necesidad de tener instalado o conectar con un servidor de
base de datos. SQLite tiene prácticamente las mismas funcionalidades
y rapidez que el resto de gestores de base de datos, y los datos se
almacenan
en
un
archivo
de
texto
plano.
SQLite dispone de un completo interfaz orientado a objetos, con
distintas funciones que nos facilitan la manipulación de datos.
Funciones muy similares a las que podemos manejar con MySQL.
9. Por lo general SQLite:
puede funcionar perfectamente para sitios de tráfico bajo-medio, lo
cual se traduce en el 99,9% de los sitios web actuales.
es mono-usuario, es decir, no permite concurrencia de conexiones,
aunque he leído varias cosas diferentes sobre esto. Si un usuario está
modificando datos, otro no podrá hacerlo hasta que el anterior no
termine.
no es una base de datos, sino un fichero con datos debidamente
organizados (esto me recuerda al Access de Microsoft). Para hacer una
copia o migrar la aplicación basta con mover el fichero de sitio y listo.
no tiene tipos de datos. Puedes meter una cadena de texto en un
campo que estás utilizando como numérico. Esto me lleva a pensar en
la cantidad de problemas que pueden ocurrir.
no hay gestión de usuarios. La seguridad se basa en el sistema de
permisos de ficheros establecido por Unix/Linux.
10.
Se pueden observar algunas claras ventajas, como lo es la presencia de
las extensiones, para casi todos los lenguajes que existen. Cuando
Daniel y yo pusimos a prueba SQLite, lo realizamos frente a los
colosos del software libre MySQL y PostgreS-QL. Notamos que SQLite
es muy rápido en respuesta cuando se realizan las consultas del
manejo de los datos. Esto se debe a que no existe un proceso
intermedio para la comunicación con el motor. Cosa que sí realizan los
ya mencionados motores. Algunos puntos fuertes fueron la carencia de
configuraciones y el tener una base de datos en un solo archivo. No
obstante, hay que aclarar que SQLite tiene algunos puntos flacos como
ser que no es apropiado para realizar aplicaciones cliente/servidor
o para implementaciones de gran escala, como puede ser un padrón
electoral. Puesto que SQLite se satura.