Sei sulla pagina 1di 10

Introduccin a SQLite

Carrera: Ingeniera (E) en Informtica V Semestre Asignatura: Base de Datos Profesor: Hctor Schulz P. Alumno: Oscar Valenzuela B.

INTRODUCCIN A SQLITE

NDICE DE CONTENIDO
INTRODUCCIN A SQLITE...................................................................................................................1 INTRODUCCIN A SQLITE: ............................................................................................................3 SQLITE Y SU ORIGEN EN LA ARMADA DE USA: ......................................................................3 CARACTERSTICAS PRINCIPALES: ..............................................................................................4 SQLite posee un diseo simple e integrado: ....................................................................................4 SQLite como gestor de bases de datos ACID: .................................................................................4 SQLite es un proyecto comunitario en el dominio pblico: ............................................................5 PRINCIPALES VENTAJAS DE SQLITE: .........................................................................................5 Cero configuracin: .........................................................................................................................5 Simplicidad y sencillez: ...................................................................................................................6 Base de datos en un archivo multiplataforma :.................................................................................6 SQLite el motor de base de datos ms compacto :...........................................................................6 Registros de largo variable: .............................................................................................................6 Tipos de datos dinmico en SQLite: ................................................................................................7 Extensiones al lenguaje SQL: ..........................................................................................................7 SQLITE Y SUS DESVENTAJAS: ......................................................................................................8 LENGUAJES DE PROGRAMACIN QUE SOPORTAN SQLITE: ................................................8 QUINES UTILIZAN SQLITE EN LA ACTUALIDAD: .................................................................8 CONCLUSIN: ...................................................................................................................................9 BIBLIOGRAFA: ...............................................................................................................................10

Universidad de Los Lagos, Campus Santiago. Repblica #517, Santiago

Pgina 2 de 10

INTRODUCCIN A SQLITE

INTRODUCCIN A SQLITE:
Uno de los motores de bases de datos ms utilizados hoy en da, aunque tambin uno de los menos conocidos, es SQLite, un sistema de gestin de base de datos relacional creado por el Doctor Richard Hipp, compatible con la norma ACID y con soporte SQL, cuya sencillez, portabilidad, soporte transaccional, velocidad (2 veces ms rpido que MySQL y PostgreSQL) y tamao (alrededor de 250KBs con todas sus funcionalidades habilitadas) lo convierten en el motor de base de datos preferido de la industria de productos con software empotrado tales como equipos de telefona mvil, televisores de ltima generacin, refrigeradores inteligentes, dispositivos de control electrnicos, computadores de automviles, centrales de pago de estacionamientos, sistemas de enrutamiento de redes, sistemas de control de horario y asistencia, terminales de pago de tarjetas electrnicas, etc. Esto gracias a que su desarrollo es patrocinado por grandes lideres de la industria tecnolgica tales como Adobe, Google y Oracle, quienes no slo aportan econmicamente al proyecto, sino tambin con cdigo y nuevas funcionalidades, incluso llegando a lanzar productos derivados que utilizan este motor principalmente gracias a que su cdigo se encuentra bajo dominio pblico, lo qu le ha llevado rpidamente a su versin 3 que incluye la capacidad de almacenamiento y manejo de hasta 2 Terabytes, permitiendo utilizarlo en todo tipo de implementaciones y proyectos mucho ms all de dispositivos de software empotrado.

SQLITE Y SU ORIGEN EN LA ARMADA DE USA:


En Marzo del 2000 el Doctor Richard Hipp quien en ese entonces trabajaba para General Dynamics bajo un contrato de la Armada de Estados Unidos, diseo un motor de base de datos que hoy conocemos como SQLite, en reemplazo de la arquitectura existente en ese entonces basada en sistemas HP-UX con gestores de Base de Datos IBM Informix, orientados a servir como cuadros de mando y control de los buques destructores que portaban misiles dirigidos remotamente. El objetivo principal al crear este reemplazo, era contar con un motor de base de datos que no necesitase instalacin o administracin avanzada para funcionar. Posteriormente, en agosto del mismo ao, la versin 1.0 de SQLite fue liberada, la

Universidad de Los Lagos, Campus Santiago. Repblica #517, Santiago

Pgina 3 de 10

INTRODUCCIN A SQLITE cual se basaba en GDBM (GNU Database Manager), sin embargo este fue reemplazado en la siguiente publicacin (2.0) por una versin modificada de Btree, agregando soporte transaccional. Finalmente la versin de SQLite 3.0, fue publicada gracias a un aporte de la compaa de telecomunicaciones America Online, agregando capacidades de internacionalizacin y otras mejoras importantes.

CARACTERSTICAS PRINCIPALES: SQLite posee un diseo simple e integrado:


A diferencia del modelo cliente-servidor tradicional de los sistemas de gestin de base de datos, SQLite no es una aplicacin independiente que se ejecuta y otros se comunican con esta, sino por el contrario se integra con el programa pasando a formar parte integral del mismo, de forma que las libreras que la conforman pueden ser llamadas dinmicamente. De esta forma el programa utiliza las funcionalidades realizando llamadas, generalmente nativas a su propio lenguaje de programacin, lo que permite reducir la latencia en el acceso a la base de datos, ya que la llamada a una funcin es mucho ms eficiente que la comunicacin entre diferentes procesos. Las definicines de tablas, ndices y los propios datos, son almacenados en un archivo hospedado en el mismo servidor. Este sencillo funcionamiento se logra bloqueando el archivo de datos al principio de cada transaccin de escritura.

SQLite como gestor de bases de datos ACID:


SQLite posee las caractersticas que le catalogan en cumplimiento con ACID. Un motor de bases de datos es considerado bajo la norma ACID cuando son transaccionales y poseen Atomicidad, Consistencia, Aislamiento y Durabilidad (ACID - Atomicity, Consistency, Isolation and Durability) correspondiente a la norma ISO/IEC 10026-1: 1992 seccin 4. Esta norma involucra entonces, algunos requisitos claves a conocer para entender la importancia que SQLite sea catalogada en cumplimiento con ACID: Atomicidad: Asegura que la operacin se ha realizado o no, y por lo tanto ante un fallo del sistema la operacin no puede quedar a medias. Consistencia: Permite asegurar que slo se empieza aquello que se puede acabar. Por lo Pgina 4 de 10

Universidad de Los Lagos, Campus Santiago. Repblica #517, Santiago

INTRODUCCIN A SQLITE tanto se ejecutan aquellas operaciones que no van a romper la reglas y directrices de integridad de la base de datos. Aislamiento: Establece que una operacin no puede afectar a otras para que la realizacin de dos transacciones sobre la misma informacin sean independientes y no generen ningn tipo de error o conflicto. Durabilidad: Garantiza que una vez realizada la operacin, sta persistir y no se podr deshacer aunque falle el sistema.

SQLite es un proyecto comunitario en el dominio pblico:


SQLite es un motor de bases de datos que puede ser explotado, modificado, implementado, redistribuido, por cualquier persona o corporacin, respetando los derechos morales (de paternidad), al encontrarse bajo una figura legal denominada Dominio Pblico (abreviado en ingls como PD - Public Domain). Esta figura legal ha permitido que grandes empresas utilicen SQLite y publiquen productos derivados o implementaciones derivadas como productos propios. Entre los contribuidores e integradores ms importantes se cuentan a Adobe, Google, Mozilla, Oracle, entre otros. Es importante destacar, que aunque la disponibilidad del cdigo de SQLite se encuentre bajo Dominio Pblico y por tanto permite incluirle en otros proyectos de Software Libre, los productos y proyectos derivados o que incluyen SQLite no pueden ser catalogados como Software Libre en general debido a que al estar bajo dominio pblico no siempre posee un Copyleft robusto y pueden existir algunas obras cuyo modelo de distribucin no respeta las 4 Libertades Esenciales de la definicin de Software Libre entregada por la Free Software Foundation.

PRINCIPALES VENTAJAS DE SQLITE: Cero configuracin:


El motor de bases de datos SQLite no requiere ser "instalado" antes de ser utilizado, ya que no existe un procedimiento de instalacin, as tambin no requiere que algn proceso o programa servidor sea iniciado, detenido o configurado en forma alguna, inclusive no requiere un procedimiento de recuperacin ante problemas y cadas, puesto que no hay sistema alguno que se caiga desde la perspectiva del motor de base de datos. Universidad de Los Lagos, Campus Santiago. Repblica #517, Santiago Pgina 5 de 10

INTRODUCCIN A SQLITE

Simplicidad y sencillez:
SQLite simplemente trabaja, carece de un proceso separado que funcione como servidor. Los programas que necesitan acceder a la base de datos no necesitan comunicarse con otra clase de interproceso de comunicacin (tpicamente TCP/IP) para enviar solicitudes y recibir los resultados. En el caso de SQLite simplemente leen y escriben directamente sobre la base de datos almacenada en el disco.

Base de datos en un archivo multiplataforma :


El formato del archivo que conforma la base de datos que maneja SQLite es multiplataforma, este archivo puede ser escrito en una mquina, copiado a otra y ledo sin problemas, incluso con una arquitectura de 32-bit o 64-bit y sistema operativo diferentes. Adicionalmente, los desarrolladores se han comprometido a mantener el mismo formato de archivo compatible con versiones anteriores, de forma que nuevas versiones de SQLite pueden leer y escribir versiones anteriores de los archivos que componen la base de datos, a diferencia de otros motores que requieren que los datos sean exportados e importados desde una versin antigua a una nueva como proceso de actualizacin o migracin.

SQLite el motor de base de datos ms compacto :


Cuando se habla de optimizacin en cuanto a tamao, SQLite con todas sus funcionalidades habilitadas pesa menos de 275KBs e incluyendo la posibilidad de deshabilitar algunas funciones para alcanzar un tamao de slo 190KBs. Lo que le diferencia con la mayora de los motores SQL que son mucho ms grandes y pesados, por ejemplo IBM menciona su reciente lanzamiento de CloudScape, un motor de base de datos que pesa alrededor de 2MBs contenido en un nico archivo JAR, es decir, comprimido. Firebird por otro lado, posee una librera cliente cuyo peso es de 350KBs, lo que es un 50% mayor al de SQLite y no contiene un motor de base de datos, sino slo las libreras de acceso. La librera de base de datos Berkeley cuya propiedad pertenece a Oracle pesa alrededor de 450KBs, pero no posee soporte para SQL, otorgando a los desarrolladores slo un acceso a pares basado en llaves y pares.

Registros de largo variable:


La mayora de las bases de datos SQL reservan montos fijos de espacio en disco para cada linea y columna, ejecutando trucos especiales para manejar registros tipo BLOBs y CLOBs los cuales pueden variar significativamente con su largo. Esto es debido a que en la mayora de los motores de base de datos, si se declara una

Universidad de Los Lagos, Campus Santiago. Repblica #517, Santiago

Pgina 6 de 10

INTRODUCCIN A SQLITE columna como VARCHAR(100) el motor reserva 100Bytes de espacio en disco sin importar cuanta informacin haya sido almacenada en esa columna. SQLite en contraste, utiliza slo el espacio en disco que efectivamente ha sido utilizado para almacenar informacin en una lnea. Por ejemplo si se almacena un nico carcter en una columna declarada como VARCHAR(100), entonces slo un Byte de espacio en disco es consumido, a diferencia del caso anterior. Este modelo implementado en SQLite que permite almacenar registros de largo variable, tiene un variado nmero de ventajas: 1. Resulta en un archivo de base de datos ms pequeo. 2. Permite que la base de datos se ejecute rpidamente, ya que existe menos informacin que mover desde y hacia el disco. 3. El uso de registros de largo variable, permite a SQLite implementar escritura en un sistema de tipo dinmico en vez de uno esttico, algo que ser cubierto a continuacin.

Tipos de datos dinmico en SQLite:


La mayora de los motores de Base de datos utilizan tipos de columnas estticas, es as entonces que una columna asociada como tipo de datos enteros, soporta nicamente almacenamiento de enteros. Por el contrario SQLite soporta asignacines dinmicas de tipo de datos, permitiendo por ejemplo almacenar un string en una columna declarada como de tipo entero (a pesar de que SQLite desde la versin 3 intentar en primera instancia convertir el dato a entero). Para algunos este tipo de funcionamiento es un inconveniente, ya que la tcnica no es portable a otros motores, sin embargo la mayora de los usuarios consideran esto como una innovacin convirtiendo a SQLite en un motor de base de datos ms til, sobre todo al usar lenguajes de programacin dinmicos como Tcl y Python.

Extensiones al lenguaje SQL:


El motor SQLite provee un nmero de mejoras al lenguaje SQL, mejoras que no son encontradas normalmente en otros motores de base de datos, por ejemplo la clave EXPLAIN permite desplegar en forma detallada como el motor interpreta el lenguaje SQL y lo convierte en lenguaje ejecutable, otorgando la posibilidad de una depuracin a todo nivel a los desarrolladores. Adems SQLite provee instrucciones como REPLACE y ON CONFLICT, clusulas que permiten agregar control sobre las resoluciones de conflictos por restricciones. Otros comandos aadidos son ATTACH y DETACH que permiten utilizar mltiples bases de datos en forma conjunta e independiente en la misma consulta. Finalmente las definiciones

Universidad de Los Lagos, Campus Santiago. Repblica #517, Santiago

Pgina 7 de 10

INTRODUCCIN A SQLITE de la API de SQLite permiten al usuario agregar nuevas funciones SQL y cotejar secuencias.

SQLITE Y SUS DESVENTAJAS:


Uno de los puntos que se seala como una desventaja, es que el modelo tradicional de utilizar un proceso servidor ofrece mayor proteccin ante aplicaciones que utilizan la base de datos y que pudieran tener fallos de programacin, esto ya que un mal manejo de punteros en un cliente no pueden llegar a corromper la memoria en el servidor, en cambio al ser SQLite parte integral de la aplicacin que utilizamos, un problema de programacin podra transferir las consecuencias al medio que contiene la informacin almacenada. Por otro lado, un proceso servidor que funcione como un nico proceso persistente, posee un mejor control de acceso y ms precisin respecto a una fina definicin del manejo de bloqueos y por tanto una mejor concurrencia.

LENGUAJES DE PROGRAMACIN QUE SOPORTAN SQLITE:


Existe un largo nmero de lenguajes de programacin que soportan SQLite, incluyendo Basic, C, C++, Clipper, Common Lisp, C#, Curl, D, Delphi, Haskell, Java, Lua, NewLisp, Objetive-C (para Mac OS X e iOS de los Iphones e Ipad), OCaml, Perl, PHP, Pike, Python, REBOL, R, REALbasic, Ruby, Scheme, Smalltalk, TCL y Visual Basic. Adems existe un encapsulamiento para ActiveX (COM) que permite que SQLite sea accesible mediante lenguajes de scripting como Javascript y VBScript en sistemas operativos de Microsoft Windows, en otros sistemas operativos es soportado por defecto dependiendo de la funcionalidad de los navegadores.

QUINES UTILIZAN SQLITE EN LA ACTUALIDAD:


SQLite es una eleccin popular para almacenamiento local de datos cuyo acceso es mediante SQL y que sea pequeo, gracias a sus implementaciones que van desde un sitio web comn, hasta aplicaciones instaladas en todo tipo de dispositivos. Los lderes ms importantes en esta rea utilizan SQLite como parte de sus proyectos, e incluso lanzando versiones modificadas del mismo cdigo,

Universidad de Los Lagos, Campus Santiago. Repblica #517, Santiago

Pgina 8 de 10

INTRODUCCIN A SQLITE algunos ejemplos ms concretos son: 1. El popular navegador Mozilla Firefox usa SQLite para almacenar: cookies, favoritos, historial, direcciones de red vlidas entre otros. 2. Yellow dog Updater comnmente conocido como Yum, la herramienta de gestin de paquetes de los sistemas GNU/Linux basados en RPM, ha cambiado a SQLite y pysqlite para el almacenamiento de datos de los paquetes de software. 3. Varias aplicaciones de Apple utilizan SQLite, incluyendo Apple Mail y el gestor de RSS que se distribuye con OS X, asi tambin otras aplicaciones utilizadas en sus dispositivos basados en iOS como el popular Iphone y el Ipad. 4. El software Aperture de Apple guarda la informacin de las imgenes en una base de datos SQLite, utilizando la Interfaz de programacin de aplicaciones o API de SQLite. 5. Adobe Photoshop Elements utiliza SQLite como motor de base de datos desde su versin 6.0 del producto en sustitucin del Microsoft Access, utilizado en las versiones anteriores. 6. Android usa SQLite para almacenamiento de datos estructurados. 7. Google Gears es un proyecto de Google que permite convertir aplicaciones web tradicionales en potentes soluciones, que incluso pueden funcionar desconectadas de internet.

CONCLUSIN:
SQLite es sin lugar a dudas uno de los sistemas de gestin de base de datos ms utilizados gracias a la popularidad de dispositivos electrnicos inteligentes de todo tipo, a su inclusin por defecto en los lenguajes de programacin dinmicos y a su uso en dispositivos empotrados. Finalmente, por las ventajas descritas y la gran cantidad de lenguajes de programacin que soportan SQLite, lo transforman no slo en una alternativa, sino en una opcin robusta y decisiva para la implementacin de sistemas que requieren almacenamiento de informacin en un formato altamente dinmico con soporte para SQL, con planes de escalabilidad, portabilidad y rapidez, sobre todo cuando se utilizan lenguajes de programacin dinmicos, algo muy comn en la actualidad, ms an cuando se hace necesario utilizar un motor pequeo y liviano que no requiera mayor configuracin o administracin como es el caso de dispositivos empotrados.

Universidad de Los Lagos, Campus Santiago. Repblica #517, Santiago

Pgina 9 de 10

INTRODUCCIN A SQLITE

BIBLIOGRAFA:
Wikipedia, Enciclopedia Libre: http://en.wikipedia.org/wiki/SQLite Sitio oficial proyecto SQLite: http://www.sqlite.org/

Universidad de Los Lagos, Campus Santiago. Repblica #517, Santiago

Pgina 10 de 10