0% encontró este documento útil (0 votos)
1K vistas13 páginas

Trabajo SQLite

Este documento trata sobre SQLite, una base de datos relacional contenida en una pequeña biblioteca en C. Explica que SQLite no requiere configuración y almacena toda la base de datos en un solo archivo. También describe las características de SQLite como su portabilidad, uso de registros de longitud variable y arquitectura basada en una máquina virtual. Brevemente menciona cómo instalar SQLite y administrarlo a través de una consola o herramientas gráficas.

Cargado por

Dj_Dexter
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
1K vistas13 páginas

Trabajo SQLite

Este documento trata sobre SQLite, una base de datos relacional contenida en una pequeña biblioteca en C. Explica que SQLite no requiere configuración y almacena toda la base de datos en un solo archivo. También describe las características de SQLite como su portabilidad, uso de registros de longitud variable y arquitectura basada en una máquina virtual. Brevemente menciona cómo instalar SQLite y administrarlo a través de una consola o herramientas gráficas.

Cargado por

Dj_Dexter
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 13

Trabajo de Investigacion SQLite

Nombre: Helmuth Andrés Schmelzer Campos


Curso: 2do Ingenieria en Informatica
Instituto: Instituto Diego Portales
Fecha de Entrega: 27/04/2011
Indice
Introducción Pág 3
¿Qué es SQLite? Pág 4
Breve Historia de SQLite Pág 4
Razones para elegir SQLite Pág 5
Caracteristicas de SQLite Pág 5-6
Introducción al uso de SQLite Pág 6-7
Primeros Pasos con SQLite Pág 7-8
SQLite y los lenguajes de programación: Pág 8-9
Productos que usan SQLite Pág 9
Conclusión Pág 10
Bibliografia Pág 11
Introducción
Cada vez que los desarrolladores nos enfrentamos a nuevos desafíos, es primordial
saber optar por la mejor herramienta para el tratamiento de los datos.
Desde que en la informática se comenzó a trabajar con datos, la mayor preocupación
e interrogante fue cómo manipular esos datos. Hace décadas era dificil para el programador
manipular esos datos. Eso causo que surgieran alternativas, para separar al programa de los datos,
así surgió los primeros motores de base de datos.

Podemos encontrar grandes titanes, como Oracle, Informix, PostgreSQL, MySQL y Firebird., entre
otros.

SQLite surgió de la necesidad, de buscar sencillez, robustez, y sobretodo Cero Configuración.


¿Qué es SQLite?
SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, contenida en
una relativamente pequeña (~275 kiB)2 biblioteca en C. SQLite es un proyecto de dominio público
creado por D. Richard Hipp.

A diferencia de los sistema de gestión de bases 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.

Breve Historia de SQLite


Cuando D. Richard Hipp trabajaba desarrollando software para la fuerza naval de los Estados
Unidos, comen zó a desarrollar SQLite , según él cuenta con sus propia s palabras: SQLite surgió de
una necesidad personal, para mi propio uso.

En enero de 2000 yo estaba trabajando con un equi po de la General Dynamics en la Fuerza naval
de los Estados Unidos, en un proyecto de software, el cual se conectaba a una base de datos
Informix, el motor fun cionaba muy bien, pero habíamos tenido problemas para hacer una
reconfiguración cuando el sistema se reinicia ba. Luego cambiamos a PostgreSQL, pero administra
la base de datos era un problema. Si bien aún estaba luchando para hacer frente a estas cuestiones,
surgió la idea de escribir un simple motor de base de datos SQ L que permitiera leer los archivos del
disco duro, y lueg o ser llamados en diferentes solicitudes. Cinco meses más tarde, yo estaba sin un
contrato por algunos meses y por lo que comencé a escribir SQLite, con el pensamiento de que sería
útil en algún problema similar, más adelante.

(Extracto del Prólogo de SQLite escrito por Richard Hipp).


Razones para elegir SQLite
Se presentan varias ventajas de SQLite:

Tamaño: SQLite tiene una pequeña memoria y una única biblioteca es necesaria para acceder a
bases de datos, lo que lo hace ideal para aplicaciones de bases de datos incorporadas .
Rendimiento de base de datos: SQLite realiza operaciones de manera eficiente y es más rápido que
MySQL y PostgreSQL .

Portabilidad: SQLite se ejecuta en muchas plataformas y sus bases de datos pueden


ser fácilmente portadas sin ninguna configuración o administración

Estabilidad: SQLite es compatible con ACID, reunión de los cuatro criterios de Atomicidad,
Consistencia, Aislamiento y Durabilidad

SQL: SQLite implementa un gran subconjunto de la ANSI - 92 SQL estándar, incluyendo


subconsultas, generación de usuarios, vistas y triggers

Interfaces: SQLite cuenta con diferentes interfaces del API, las cuales permiten trabajar con C++,
PHP, Perl, Python, Tcl, groovy, etc.

Costo: SQLite es de dominio público, y por tanto, es libre de utilizar para cualquier propósito sin
costo y se puede redistribuir libremente.

Caracteristicas de SQLite
SQLite goza de unas caracteristicas que lo hacen unico, algunos se detallan a continuacion:

Cero Configuración
De la forma en que fue concebido SQLite, NO necesita ser instalado
reiniciar o apagar un servidor, No Prender, reiniciar o apagar un servidor, e incluso configurarlo.
Esta cualidad permite que no haya un administrador de base de datos para crear tablas, vistas,
asignar permisos. O bien la adopción de medidas de recuperación por cada caída del sistema.

Portabilidad:
SQLite puede ser ejecutado en diferentes sistemas operativos: Windows, Linux, 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 a 16, 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ácilmente copiada a algún dispositivo USB o ser enviada vía correo electrónico.

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.
El uso de registros de longitud variable por SQLite, tiene una serie de ventajas, entre ellas el
resultado de un pequeño archivo de base de datos y optimización de la velocidad de la misma,
puesto que hay menos información desperdiciada que leer y recorrer.

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.

La arquitectura SQLite
Cada motor de base de datos compila cada sentencia SQL en algún tipo de estructura de datos
interna que luego se utilizará para llevar a cabo la labor de la declaración. En SQLite, compilar la
forma de las declaraciones es un breve programa en un lenguaje de máquina como representación.
Los usuarios podemos ver la máquina virtual antes poniendo EXPLAIN como palabra clave para
una consulta. El uso de la VM dentro de SQLite ha sido un gran beneficio para el desarrollo de la
biblioteca, ya que proporciona un cruce entre la interfaz de usuario que analiza las sentencias SQL y
la parte en la cual la máquina virtual ejecuta el código para calcular el resultado, así también utilizar
la capacidad de rastreo de la ejecución de la VM en cada sentencia e imprimir las mismas.

Limitaciones
Una vez escuché decir que no existía un software al cual no se le encontraran limitaciones. SQLite
no está exento de esto, algunas de las limitaciones son las siguientes:
• Limitaciones en Where: esta limitación está dada por el soporte para clausuras anidadas.
• Falta de Clave Foránea: se hace caso omiso
de las claves foráneas; esto quiere decir, cuando se realice la creación de la tabla desde el modo
consola, está permitiendo el uso de la clausura, aunque no realizara el chequeo de la misma.
• Falta de documentación en español: es muy escasa la documentación disponible en español sobre
SQLite.

Introducción al uso de SQLite


SQLite, al igual que muchos de los motores de bases de datos, posee su administración predefinida
a través del uso de la consola o terminal, aquellas personas que pudieron administrar antes
otros motores como por ejemplo es el caso de MySQL, sabrán que no es el único administrador
que se conoce sino más bien existen una amplia gama para la elección, por ejemplo phpMyAdmin.
Con SQLite sucede lo mismo: es posible administrarlo desde varios sistemas, como es el caso de
phpSQLiteAdmin, Visual SQLite, entre otras

Instalación:
Su instalación se puede realizar por medio de los repositorios o a través de su fuente:
En Debian o derivados:
#aptitude install sqlite3
Gentoo:
#emerge sqlite (como es metadistribucion, bajara las dependencias, al sqlite y los configurara,
compilara e instalara )

Si contamos con los códigos fuentes descargados desde el sitio oficial de SQLite
http://www.sqlite.org/download.html, simplemente deberemos realizar los siguientes pasos:
• Descomprimimos los fuentes de SQLite
en alguna carpeta con tar xzf sqlite.tar.gz
• Ejecutamos el script ./configure
• Ejecutamos make install para realizar la instalación en el sistema (ese método en lo personal no
me gusta).

Si se desea instalar en Windows, la instalación se realizará de la siguiente forma: descargamos los


ejecutables de SQLite, usamos la consola de línea de comandos
de Windows cmd, nos posicionamos en la carpeta y ejecutamos el archivo sqlite3.exe, el cual
disparará la consola de sqlite3.

Primeros Pasos con SQLite


Una vez que hemos instalado SQLite en nuestro sistema, nos posicionaremos en algún directorio
vacío y realizaremos la creación de una nueva base de datos. Recordemos que él, a diferencia de los
otros motores de bases de datos, se encapsula en un sólo archivo que vamos a crear. Como habrán
podido observar en el ejemplo, una vez creado el archivo prueba.db (de ahora en adelante nuestra
base de datos) y con la ayuda del lenguaje SQL, hemos creado una tabla llamada personal con
cuatro campos (id, nombre, apellido, dirección).

$sqlite3 prueba.db
SQLite version 3.7.5
Enter ".help" for instructions
sqlite> CREATE TABLE personal (
...> id smallint primary key,
...> nombre varchar(25),
...> apellido varchar(25),
...> direccion varchar(25)
...> );
sqlite>

Estructura Sql :
CREATE TABLE nombre (campo1 tipo, campo2 tipo, campo3 tipo,.., campoN tipo);

Podemos observar que la forma de escritura es más cómoda, puesto que podemos escribir de
manera prolija el armado de una tabla, con los delimitadores en sentencia “,” y el fin de la misma a
través del limitador”;”. Ahora realizaremos la inserción de algunos datos para el ejemplo que hemos
creado de la siguiente manera:

sqlite> INSERT INTO personal VALUES(1, 'Juan', 'Perez', 'YYYXXXZZZ');


sqlite> INSERT INTO personal VALUES(2, 'Ramon', 'Gomez', 'ZZZXXXYYY');
Estructura en SQL:
INSERT INTO TABLA
VALUES(val1,val2,val3,.., valn);

Nuevamente observemos la inserción de los datos


con la sentencia INSERT de SQL, haciendo referencia a la tabla y posteriormente los valores
para el nuevo registro.
Seguramente en algún momento vamos a contar con la necesidad de realizar consultas sobre las
tablas creadas. Para este fin podemos realizarlo de la siguiente manera:

sqlite> SELECT * FROM personal;


1|Juan|Perez|YYYXXXZZZ
2|Ramon|Gomez|ZZZXXXYYY
sqlite>
Estructura en SQL:
SELECT Campo1, Campo2,.., Campo4 FROM Tabla ;

La consulta realizada anteriormente lista todos los campos y todos los registros de la tabla personal,
pero es posible listar únicamente los campos que deseamos que aparezcan en la consulta.
Para ello los separamos por medio del “,” y además podemos agregarle la cláusula WHERE para
poder filtrar registros que cumplan con una determinada condición, por ejemplo:

sqlite> SELECT id, nombre, apellido FROM personal WHERE id <= 2;


1|Juan|Perez
2|Ramon|Gomez
sqlite>

Una vez creada la base de datos, si se quiere cerrar SQLite, se debe tipear lo siguiente:

sqlite>.quit

con ello cerramos al programa.

SQLite: ser o no ser un motor


Ésta es la pregunta que todos deben realizarse en este punto. Muchos de los usuarios de software
libre y desarrolladores, al ver el funcionamiento de SQLite, afirman que es un motor de base de
datos, aunque en realidad no lo es, puesto que no posee la integridad referencial. En palabras más
simples: la integridad referencial es el control de la clave foránea. Si bien en SQLite, cuando se crea
una tabla, se pude invocar a la palabra reservada
forean key. Pero el compilador realizará caso omiso de la misma dentro de su estructura. A pesar de
ser considerado una librería, SQLite ha abierto un nuevo ENTORNO Y ENFOQUE al tratamiento
de base de datos, pasó de ser una simple librería a un esquema mucho más amplio.

SQLite reune las características de un pseudomotor, algo que aparenta ser un motor pero no lo es.
Esto se debe a que contiene dentro de sí mismo muchas características de los grandes motores de
base de datos, como ser: la creación de usuarios, vistas, triger, etc, otra característica es la capacidad
de poder definir la integridad referencial a través de los trigger, haciéndolo casi similar a un motor
de base de datos, pero manteniendo la sencillez y simplicidad de una librería.

SQLite y los lenguajes de programación


La biblioteca puede ser usada desde programas en C/C++, aunque enlaces para Tcl y muchos otros
lenguajes de programación interpretado están disponibles.

SQLite se encuentra embebido en el REALbasic framework, haciendo posible que aplicaciones


desarrolladas en REALbasic para Windows, Linux o Mac OS X usen la base de datos SQLite.

Existe un módulo DBI/DBD para Perl disponible en CPAN, DBD::SQLite, no es una interface para
SQLite, sino que incluye el motor completo de SQLite en sí mismo por lo cual no necesita ningún
software adicional.

Hay también un módulo para Python llamado PySQLite.3


. Hay otro módulo para Visual Basic 6 llamado VBSqlite.
Desde Delphi se puede usar SQLite a través de los componentes libres ZeosLib

PHP incluye SQLite, desde la versión 5. SQLite también funciona con PHP 4 pero no viene incluido
en él. Para más detalles vea el manual y PECL info.

Desde Java se puede acceder mediante el driver de SQLiteJDBC

Desde Lazarus 0.9.8 y Free Pascal 2.0.0, SQLite está disponibles para programadores de Pascal.
Mac OS X v10.4 incluye SQLite, y es una de las opciones en la Core Data API de Apple.
AppleScript puede abrir, crear, y manipular base de datos SQLite por medio de la aplicación de
ayuda "Database Events" de Mac OS X 10.4.
BlitzMAX posee un MOD que permite trabajar con bases de datos SQLite. Para más detalles y
descarga del MOD
El componente de base de datos (gb.db) de Gambas soporta SQLite en sus versiones 1, 2 y 3

El lenguaje de programación de vídeo juegos Bennu tiene un mod de SQlite disponible.

Productos que usan SQLite


Desde hace tiempo Mozilla Firefox usa SQLite para almacenar, por ejemplo, las cookies, los
favoritos, el historial, las direcciones de red válidas.
SQLite es usado por el entorno de base de datos Kexi como un motor de base de datos interno por
defecto.
SQLite se ha usado para guardar el índice para un set de DVD conteniendo todos los números
publicados de la revista The New Yorker.
El cliente de mensajeria instantánea que usa el protocolo Jabber (XMMP) Gajim, utiliza SQLite
para guardar el historial en formato SQLite3

Los desarrolladores de OpenOffice.org han considerado embeber SQLite en el modelo de base de


datos de Base, pero esto depende en gran manera del progreso de sqlite-sdbc-driver, que está
todavía en estado de alpha. Actualmente han decidido [5] usar HSQLDB, pero la opción está
todavía abierta siempre y cuando el driver sqlite-sdbc acabe siendo maduro y de confianza.
Clementine usa SQLite para guardar su colección de datos por defecto.
Adobe Photoshop Elements utiliza SQLite como motor de base de datos en su última versión del
producto (la 6.0) en sustitución del Microsoft Access, utilizado en las versiones anteriores.
Open Outlook Connector, un conector open source de Microsoft Outlook/MAPI ha sido hecho
usando SQLite.

Varias aplicaciones de Apple utilizan SQLite, incluyendo Apple Mail y el gestor de RSS que se
distribuye con OS X. El software Aperture de Apple guarda la información de las imágenes en una
base de datos SQLite, utilizando la API Core Data.
Conclusión
Día a día se avanza a pasos agigantados en el desarrollo, pero siempre existe ese desafío que hace al
desarrollador definir la herramienta que ha de utilizar para realizar el manejo de los datos dentro de
su implementación. Se pueden ver claras ventajas con SQLite, frente a otros motores de base de
datos, una mayor velocidad en la consulta, o el manejo de datos, se debe al no haber un proceso
intermedio, para la comunicación con el motor de la BD.
Los puntos fuertes de SQLite son su Cero configuración, y tener la DB en un solo archivo, con lo
cual la base de datos es mas portable.
Pero tiene puntos débiles, como por ejemplo al intentar implemantarlo para aplicaciones cliente-
servidor o implementaciones en escala mayor. Aunque existen motores de base de datos colosos, el
querer implementarlas para base de datos pequeñas o menos extensas lo hace mas complejo, eso
causo la busqueda de una implementacion mas pequeña pero funcional, y sin las dessoventajas de
ellas.
Bibliografia
La información del siguiente informe, fue sacada de los siguientes sitios:
http://es.wikipedia.org/wiki/SQLite
http://sqlite-latino.blogspot.com/
Anexos
Consola de SQLite, al hacer uso del query de SQL: select from, para acceder a la base de datos del
historial, del cliente de mensajeria instantánea Gajim:
Consulta de la base de datos en sqlite, Prueba.db

Contenido de la base de datos Prueba.db usando un comando de SQLite (.dump):

También podría gustarte