SQLite
SQLite es una librería escrita en C que ofrece una base de datos relacional de motor accesible a través de SQL. SQLite implementa la mayor parte de las propiedades de SQL-92 estándar y ACID.
A diferencia de los servidores de bases de datos tradicionales, tales como MySQL o PostgreSQL, su peculiaridad es no reproducir el cliente-servidor de costumbre, pero que se integra directamente con el esquema de programación. Toda la base de datos (declaraciones, tablas, índices y datos) se almacena en un archivo independiente de la plataforma.
D. Richard Hipp, creador de SQLite, optó por poner la biblioteca y su código fuente en el dominio público, lo que permite el uso ilimitado, tanto en proyectos de código abierto en proyectos propios. El creador y parte de los principales desarrolladores de SQLite son utilizados por la Sociedad Americana de Hwaci.
SQLite es el motor de base de datos como distribuida en el mundo, gracias a su uso en muchos software de consumo como Firefox, Skype, Google Gears, en algunos productos y las bibliotecas estándar de Apple, Adobe y McAfee muchos lenguajes como PHP o Python. Con su extremadamente ligero (menos de 300 Kio), es también muy popular a bordo, incluidos los teléfonos inteligentes más modernos sistemas: el iPhone, así como los sistemas operativos móviles Android y Symbian lo utilizan como base. En total, podemos contar más de mil millones de copias conocido y bibliotecas declaradas.
La mayor parte de la base de datos de administración de sistemas se construye de acuerdo con el paradigma cliente-servidor, es decir, un software de biblioteca cliente se integra y se utiliza en una o más aplicaciones mientras funciona el motor de base de datos en un espacio de ejecución que está limpio, incluso en una máquina diferente, como de TI.
SQLite, por el contrario, está integrado directamente en la aplicación utilizando su biblioteca de software, con su base de datos del motor. El acceso a una base de datos SQLite se hace abriendo el archivo para esto: cada base de datos se almacena en un archivo propio, con sus declaraciones, las tablas y el índice.
Esta característica hace que SQLite interesante como una alternativa a archivos de texto, utilizado como un medio de almacenamiento incorporado en muchas aplicaciones (parámetros, historia, caché …), ya que hace que el acceso a los datos más estructurado más segura más rápido, más fácil y totalmente independiente de la plataforma, mientras que no afecta la facilidad de despliegue de la aplicación que lo utiliza.
La abolición de intermediario entre la aplicación y los datos también puede reducir ligeramente el acceso en comparación con los sistemas que utilizan el cliente de servidor de datos de latencia de paradigma.
Sin embargo, esta arquitectura plantea varios problemas:
– Cuando un gran número de clientes de acceso a la misma base de datos, si un cliente comienza a jugar un juego, toda la base de datos está bloqueado por escrito para otros clientes, y viceversa, si un cliente comienza a escribir parte, la totalidad de la base de datos está bloqueada para la lectura en los otros usuarios. Estos se ponen en espera durante este tiempo, que puede estar superando en contra;
– Es muy difícil de repartir la carga sobre varias máquinas que utilizan un sistema de archivos en las latencias de red y genera tráfico considerable, el hecho de que la base debe ser a cargo del cliente para cada abertura. Este problema es aún más importante con sitios Web donde la base se vuelve a abrir para cada página solicitada. Además, puede haber errores en sincronización en archivos que podrían permitir la escritura simultánea a dos clientes diferentes en el mismo lado de la base y por lo tanto conducir a la corrupción de la base de datos;
– Con grandes bases de datos, es imposible dividir la base en varias partes o archivos con el fin de distribuir la carga a través de múltiples máquinas. Algunos sistemas de archivos, como FAT 32, tienen un tamaño máximo de archivo que puede limitar rápidamente la expansión de una base.
No hay extensión SQLite base de datos, pero es común ver a extensiones como .sqlite o .db, a veces seguido por el número de versión de la biblioteca (.sqlite3, .db2, …). Es posible utilizar una base de datos si sólo se almacena en la memoria sin crear archivo de base de datos en el disco, a través del nombre de archivo especial: la memoria:.
En general, es recomendable utilizar SQLite donde los datos no se centralizan y donde la expansión del tamaño de la base no es probable que se convierta crítico. Si la base de datos es centralizada en una gran masa de datos y proporcionar un gran número de clientes, es preferible utilizar DBMS basados en el paradigma cliente-servidor. Vuelva a colocar el texto y no la base de datos de los servidores de bases de datos SQLite presenta objetivos tradicionales.