Sei sulla pagina 1di 15

ADMINISTRACIN DE BASE DE DATOS

TEMA: SQLITE
INTEGRANTES: Pedro Pairazamn Silva Lus Ramn Ziga

PROFESOR: Ing. Manuel Velarde Carpio

2013-II

Tabla de contenido
INTRODUCCIN ................................................................................................................................... 2 HISTORIA ............................................................................................................................................. 2 DESCRIPCIN TCNICA ........................................................................................................................ 3 DESCRIPCIN Y LICENCIA ................................................................................................................ 3 CARACTERSTICAS............................................................................................................................ 3 PROGRAMAS QUE USAN SQLITE ..................................................................................................... 4 COMANDOS USADOS POR SQLITE ...................................................................................................... 5 COMANDOS BSICOS ...................................................................................................................... 6 1. 2. 3. 4. 5. 6. 7. CREATE ................................................................................................................................ 6 DROP ................................................................................................................................... 7 INSERT ................................................................................................................................. 7 SELECT ................................................................................................................................. 8 UPDATE ............................................................................................................................... 9 DELETE ............................................................................................................................... 10 ALTER TABLE ...................................................................................................................... 10

SENTENCIAS SQL NO IMPLEMENTADAS EN SQLITE ...................................................................... 11 EMPRESAS QUE USAN SQLITE ........................................................................................................... 12 CONCLUSIONES ................................................................................................................................. 14 BIBLIOGRAFA .................................................................................................................................... 14

INTRODUCCIN
Hablar de SQLite es hablar de uno de los motores de base de datos ms usados del mundo, pues es usado en una gran cantidad de aplicaciones; algunas de estas son proyectos de alto nivel ejecutados por grandes transnacionales. Entonces, por qu es poco conocido? En este informe, les hablaremos sobre su historia, caractersticas, modo de uso y algunos casos de empresas que usan este poderoso motor.

HISTORIA
Cuando D. Richard Hipp trabajaba desarrollando software para la fuerza naval de los Estados Unidos, comenz a desarrollar SQLite. Segn l cuenta con sus propias palabras: El proyecto SQLite surgi de una necesidad personal, para mi propio uso. D. Richard Hipp En enero de 2000 D. Richard Hipp estaba trabajando con su equipo del 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 funcionaba muy bien, pero haban tenido problemas para hacer una reconfiguracin cuando el sistema se reiniciaba. Luego cambiaron a PostgreSQL, pero administrar la base de datos era un poco ms complejo. Fue en ese momento cuando surgi la idea de escribir un simple motor de base de datos SQL que permitiera leer los archivos del disco duro, y luego ser llamados en diferentes solicitudes. Cinco meses ms tarde, Hipp comenz a escribir las primeras versiones de lo que hoy conocemos como SQLite, con el pensamiento de que sera til en algn problema similar. Es claro que SQLite tiene la capacidad de reemplazar a grandes motores de Bases de Datos y acoplarse al desarrollo de muchos proyectos informticos, ya sea en ambientes de prototipos de sistemas como as tambin en complejos y robustos software.

DESCRIPCIN TCNICA
DESCRIPCIN Y LICENCIA
SQLite es una librera en proceso programada en lenguaje C, que implementa un sistema de gestin de base de datos relacional, sin servidor (interacta directamente con archivos) y cero configuracin. En cuestiones de licencia, SQLite es de dominio pblico, por lo cual cualquier persona es libre de copiar, modificar, publicar, usar, compilar, vender o distribuir el cdigo SQLite original, ya sea en forma de cdigo o como un ejecutable compilado, para cualquier propsito (comercial o no comercial), con todo lo que esto implique. Sin embargo, el que haga uso del cdigo y documentacin de SQLite debe respetar los derechos morales del autor.

CARACTERSTICAS
Las transacciones son atmicas, consistentes, aisladas y durables (ACID) aun con fallos propios del sistema o fallas de energa. Cero configuracin, no se necesita una instalacin previa para su uso. Implementa la mayora del estndar SQL-92. (algunas caractersticas no son soportadas) Una base de datos complete puede ser almacenada en un archivo smple multiplataforma. Soporta bases de datos de hasta 2 TB, cadenas de dimensiones de GB y objetos binarios grandes (Binary Large Objects BLOBs). Ocupa poco espacio en memoria: menos de 500kB totalmente configurado o menos, con algunas caractersticas omitidas. Ms rpido que otros motores de base de datos cliente/servidor ms populares para la mayora de operaciones cotidianas. Posee un API fcil de usar. Escrito en ANSI-C. Referencias TCL incluidas. Referencias a otros lenguajes disponibles por separado. Cdigo fuente comentad con 100% test cubierto por branches. Disponible como un archivo de cdigo fuente ANSI-C simple si deseas incluirlo en otro proyecto.

Autnomo: no posee dependencias externas. Multiplataforma: Unix (Linux, Mac OS-X, Android, iOS) y Windows (Win32, WinCE, WinRT) soportados. Fcil de portar a otros sistemas. Viene con un cliente de interfaz de lnea de comandos (command-line interface -CLI) que puede ser usado para administrar diversas bases de datos SQLite.

PROGRAMAS QUE USAN SQLITE


Aqu mostramos un ejemplo de programa en C++ que usa SQLite:

Como se puede observar, se considera a la base de datos como un archivo, adems de usar mtodos y funciones proporcionados por la librera <sqlite3.h>. El caso puede variar, dependiendo del tipo de lenguaje que se implemente para usar esta base de datos.

COMANDOS USADOS POR SQLITE


Como se mencion en las caractersticas, SQLite usa una adaptacin del estndar SQL-92, por lo cual entiende la mayora del lenguaje SQL. Adems, adapta nuevas caractersticas propias, como los comandos dot commands, ejecutables desde la consola de SQLite. Ac les mencionamos unos cuantos:
.backup ?DB? FILE .bail ON|OFF .databases .dump ?TABLE? .echo ON|OFF .exit .header(s) ON|OFF .help .import FILE TABLE .indices ?TABLE? .load FILE ?ENTRY? .mode MODE Backup DB (default "main") to FILE Detenerse al mostrar error. Por defecto OFF Lista los nombres y archivos de las bases de datos adjuntas Vaca una determinada table de una base de datos Activa o desactiva el comando echo Salir de la consola de SQLite Activa o desactiva el mostrar cabeceras Ayuda de SQLite Importa datos desde FILE a TABLE Muestra los nombres de todos los ndices. Si TABLE es especificado, muestra los ndices correspondientes de esa tabla Carga una librera Muestra el modo de muestra de las tablas, donde MODE puede ser: csv Valores separados por comas , column Columnas alineadas a la izquierda html Cdigo HTML insert Sentencia SQL para tabla line Un valor por lnea list Valores determinados por una cadena .separator tabs Valores separados por una tabulacin tcl Elementos de lista TCL Imprime una cadena en reemplazo de valores NULL Manda resultado a un archivo, donde FILENAME es el nombre del archivo Manda resultado a la pantalla Imprime STRING a la pantalla Reemplaza el prompt de la consola Salir de la consola SQLite Ejecuta SQL en FILENAME Muestra las sentencias CREATE. Si TABLE est especificado, se muestra las sentencias de la tabla especificada Define separador, usado por .import y .mode Muestra los valores actuales para diversas configuraciones Activa/desactiva el mostrar los estados Lista nombres de tablas de acuerdo al valor de PATTERN ntenta abrir una cantidad de tablas cerradas en MS milisegundos Define el ancho para el modo column, definido en .mode Activa/desactiva medicin del tiempo del CPU

.nullvalue STRING .output FILENAME .output stdout .print STRING... .prompt MAIN CONTINUE .quit .read FILENAME .schema ?TABLE? .separator STRING .show .stats ON|OFF .tables ?PATTERN? .timeout MS .width NUM NUM .timer ON|OFF

COMANDOS BSICOS
Estos comandos los podemos emplear desde la consola de SQLite como desde otro tipo de interfaz aadida que trabaje con este motor. 1. CREATE Se puede usar de las siguientes formas: CREATE INDEX CREATE TABLE CREATE TRIGGER CREATE VIEW CREATE VIRTUAL TABLE

Para este caso, usaremos el CREATE TABLE. Usaremos la consola para crear una nueva base de datos llamada test, adems de crear una tabla en esta DB, llamada datos con las siguientes caractersticas: id entero (3) [PRIMARIA, NO NULO] apellido cadena(30) [NO NULO] nombre cadena(30) [NO NULO] documentos cadena(30) [NO NULO] observaciones cadena(60) [NO NULO]

En el grfico anterior, al listar las tablas creadas, podemos ver que la tabla datos ya ha sido creada con las caractersticas mencionadas al comienzo. 2. DROP Este comando nos sirve para eliminar tablas de la base de datos. Para esto, supongamos que tenemos otra base de datos llamada Otra, la cual eliminaremos con el comando DROP TABLE Otra.

Antes de ejecutar el comando, mostramos las tablas existentes. Despus de ejecutar el comando, al volver a mostrar las tablas, vimos que ya no se mostraba la tabla que hemos eliminado. 3. INSERT Insertaremos los siguientes datos en la tabla Datos: CAMPO id apellido nombre documentos observaciones DATO 1 Ramon Luis 20092120B Ninguna que destacar

Al ejecutar el comando INSERT en la base de datos, lo hacemos de la siguiente forma:

4. SELECT Luego de hacer la insercin de datos, para hacer la comprobacin, procederemos a mostrarlos con el comando SELECT. Para eso, en la consola usamos el siguiente comando:

Como podemos observar, la insercin anterior se hizo sin problemas, los datos se grabaron en la tabla tal como se insertaron.

5. UPDATE A veces es necesario hacer cambios en algunos datos. Para esto usamos el comando UPDATE. Aplicndolo en nuestro ejemplo:

Haciendo un SELECT para ver los nuevos datos actualizados:

6. DELETE Supongamos que tenemos un registro adicional con los siguientes datos: CAMPO id apellido nombre documentos observaciones DATO 2 Valentin Bithiah 20094057F Deportada

Y deseamos eliminar el registro anterior. Para esto, usaremos el comando DELETE de la siguiente forma:

Antes de utilizar DELETE, hicimos un SELECT para poder observar todos los registros que se encuentran en la BD. Luego de ejecutar, hicimos otro SELECT para observar cmo qued la tabla. Como se esperaba, el registro seleccionado fue eliminado. 7. ALTER TABLE Ac podemos modificar datos de la propia tabla, como renombrarla o aadir una nueva columna (otras opciones no pueden ejecutarse, lo cual se explicar en el siguiente punto). En este caso vamos a renombrar la tabla, de datos a usuarios. Para eso, en la consola, ejecutamos la siguiente instruccin:

Como pueden ver, primero mostramos las tablas que estn en la BD para poder ver el nombre de la tabla que queremos cambiar. Luego aplicamos el comando ALTER TABLE con el aadido RENAME TO, esto para cambiar el nombre de la tabla. Luego revisamos y vemos que el nombre ya se cambi.

SENTENCIAS SQL NO IMPLEMENTADAS EN SQLITE


SQLite implementa la mayora de las caractersticas de SQL, sin embargo, hay sentencias que no estn implementadas. Las sentencias no implementadas son las siguientes: SENTENCIA RIGHT y FULL OUTER JOIN Soporte complete de ALTER TABLE OBSERVACIN LEFT OUTER JOIN est implementado, pero no as RIGHT OUTER JOIN o FULL OUTER JOIN. Solo RENAME TABLE y ADD COLUMN estn soportadas. Otros tipos de operaciones de ALTER TABLE como DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT, y otras ms se han omitido. Solo estn soportados los triggers FOR EACH ROW pero no los triggers FOR EACH STATEMENT. Vistas en SQLite son de solo lectura. No puedes ejecutar operaciones DELETE, INSERT, o UPDATE en una vista. Sin embargo, puedes crear un trigger que dispare en un intento DELETE, INSERT, o UPDATE a una vista y hacer lo que deseas en el cuerpo del trigger. Como SQLite lee y escribe las bases de datos en un archivo de disco, los nicos permisos que se pueden

Soporte completo de Triggers Escribir a vistas

GRANT y REVOKE

asignar a esta BD son los que permita asignarle el sistema operativo, por lo cual, no tendra sentido implementar los comandos GRANT y REVOKE.

EMPRESAS QUE USAN SQLITE


Ac les mostramos una lista de las empresas ms reconocidas a nivel mundial que usan SQLite en sus soluciones informticas:

Adobe usa SQLite como el formato de archivo de aplicacin para su producto Photoshop Lightroom. Adems, SQLite es un componente estndar de Adobe Integrated Runtime (AIR). Se ha reportado tambin que Acrobat Reader usa SQLite.

Airbus confirma que SQLite es usado en el software de vuelo de la familia de aviones A350 XWB.

Apple usa SQLite para muchas funciones implementadas en Mac OS X, incluyendo Apple Mail, Safari, y Aperture. Apple tambin usa SQLite en iPhone, en el iPod touch y en el software iTunes.

El popular sistema de almacenamiento de archivos en la nube Dropbox reporta que usa SQLite como la forma primaria de almacenamiento de datos por el lado del cliente.

SQLite es el formato primario de metadatos en el explorador web Firefox y en el cliente de correo Thunderbird, ambos de Mozilla.

Flame es un programa detector de malware que hace uso intensivo de SQLite.

Se cree que General Electric usa SQLite en alguno de sus productos porque se comunicaron con los desarrolladores de SQLite solicitando el nmero de control de exportacin de EE.UU. para SQLite. Se presume que GE est usando SQLite en algn product que estn exportando. Nadie (fuera de GE) puede confirmar qu producto puede ser.

Se conoce que Google usa SQLite en su aplicacin de escritorio para Mac, en Google Gears, en el sistema operativo Android y en el explorador web Chrome. La gente presume que Google usa SQLite adems en otra gran cantidad de productos que ellos no desean especificar. Ingenieros de Google hacen una gran cantidad de contribuciones al cdigo de bsqueda de texto con SQLite.

McAfee usa SQLite en sus aplicaciones antivirus.

Viene con compatibilidad para SQLite2 y SQLite3 por defecto.

SQLite viene como un mdulo en el lenguaje de programacin Python desde su versin 2.5.

El entorno de programacin REALbasic viene equipado con una versin de SQLite que soporta encriptacin AES.

Se ha detectado SQLite en las versiones de escritorio para MacOS y Windows.

CONCLUSIONES
Finalmente, por las ventajas descritas y la gran cantidad de lenguajes de programacin que soportan SQLite, lo transforman no solo 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 dinamicos, algo muy comn en la actualizad, 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.

BIBLIOGRAFA
http://www.sqlite.org http://es.wikipedia.org/wiki/SQLite http://geotux.tuxfamily.org/index.php/es/geo-blogs/item/319-sqlite-spatialite-el-porque-delcomo

Potrebbero piacerti anche