Date post: | 26-Oct-2015 |
Category: |
Documents |
Upload: | pedro-pairazaman-silva |
View: | 51 times |
Download: | 4 times |
ADMINISTRACIÓN DE BASE DE DATOSTEMA: SQLITE
INTEGRANTES:
Pedro Pairazamán Silva
Luís Ramón Zúñiga
PROFESOR:
Ing. Manuel Velarde Carpio
2013-II
Tabla de contenido
INTRODUCCIÓN..................................................................................................................................2
HISTORIA............................................................................................................................................2
DESCRIPCIÓN TÉCNICA.......................................................................................................................3
DESCRIPCIÓN Y LICENCIA...............................................................................................................3
CARACTERÍSTICAS...........................................................................................................................3
PROGRAMAS QUE USAN SQLITE....................................................................................................4
COMANDOS USADOS POR SQLITE......................................................................................................5
COMANDOS BÁSICOS.....................................................................................................................6
1. CREATE...............................................................................................................................6
2. DROP..................................................................................................................................7
3. INSERT................................................................................................................................7
4. SELECT................................................................................................................................8
5. UPDATE..............................................................................................................................9
6. DELETE..............................................................................................................................10
7. ALTER TABLE.....................................................................................................................10
SENTENCIAS SQL NO IMPLEMENTADAS EN SQLITE......................................................................11
EMPRESAS QUE USAN SQLITE..........................................................................................................12
CONCLUSIONES................................................................................................................................14
BIBLIOGRAFÍA...................................................................................................................................14
INTRODUCCIÓN
Hablar de SQLite es hablar de uno de los motores de base de datos más 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, características, 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. Según é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 habían tenido problemas para hacer una
reconfiguración cuando el sistema se reiniciaba.
Luego cambiaron a PostgreSQL, pero administrar la base de datos era un poco más 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 más tarde, Hipp comenzó a escribir las primeras versiones de lo que hoy conocemos
como SQLite, con el pensamiento de que sería útil en algún 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 informáticos, ya sea en ambientes de prototipos de
sistemas como así también en complejos y robustos software.
DESCRIPCIÓN TÉCNICA
DESCRIPCIÓN Y LICENCIA
SQLite es una librería “en proceso” programada en lenguaje C, que implementa un sistema de
gestión de base de datos relacional, sin servidor (interactúa directamente con archivos) y cero
configuración.
En cuestiones de licencia, SQLite es de dominio público, por lo cual cualquier persona es libre de
copiar, modificar, publicar, usar, compilar, vender o distribuir el código SQLite original, ya sea en
forma de código o como un ejecutable compilado, para cualquier propósito (comercial o no
comercial), con todo lo que esto implique. Sin embargo, el que haga uso del código y
documentación de SQLite debe respetar los derechos morales del autor.
CARACTERÍSTICAS
Las transacciones son atómicas, consistentes, aisladas y durables (ACID) aun con fallos
propios del sistema o fallas de energía.
Cero configuración, no se necesita una instalación previa para su uso.
Implementa la mayoría del estándar SQL-92. (algunas características no son soportadas)
Una base de datos complete puede ser almacenada en un archivo símple 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 características omitidas.
Más rápido que otros motores de base de datos cliente/servidor más populares para la
mayoría de operaciones cotidianas.
Posee un API fácil de usar.
Escrito en ANSI-C. Referencias TCL incluidas. Referencias a otros lenguajes disponibles por
separado.
Código fuente comentad con 100% test cubierto por branches.
Disponible como un archivo de código fuente ANSI-C simple si deseas incluirlo en otro
proyecto.
Autónomo: no posee dependencias externas.
Multiplataforma: Unix (Linux, Mac OS-X, Android, iOS) y Windows (Win32, WinCE, WinRT)
soportados. Fácil de portar a otros sistemas.
Viene con un cliente de interfaz de línea 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, además de usar
métodos y funciones proporcionados por la librería <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 características, SQLite usa una adaptación del estándar SQL-92, por lo
cual entiende la mayoría del lenguaje SQL. Además, adapta nuevas características propias, como
los comandos “dot commands”, ejecutables desde la consola de SQLite. Acá les mencionamos
unos cuantos:
.backup ?DB? FILE Backup DB (default "main") to FILE
.bail ON|OFF Detenerse al mostrar error. Por defecto OFF
.databases Lista los nombres y archivos de las bases de datos adjuntas
.dump ?TABLE? Vacía una determinada table de una base de datos
.echo ON|OFF Activa o desactiva el comando “echo”
.exit Salir de la consola de SQLite
.header(s) ON|OFF Activa o desactiva el mostrar cabeceras
.help Ayuda de SQLite
.import FILE TABLE Importa datos desde FILE a TABLE
.indices ?TABLE? Muestra los nombres de todos los índices. Si TABLE es especificado, muestra los índices correspondientes de esa tabla
.load FILE ?ENTRY? Carga una librería
.mode MODE Muestra el modo de muestra de las tablas, donde MODE puede ser:csv Valores separados por comas ‘,’column Columnas alineadas a la izquierdahtml Código HTMLinsert Sentencia SQL para tablaline Un valor por línealist Valores determinados por una cadena .separatortabs Valores separados por una tabulacióntcl Elementos de lista TCL
.nullvalue STRING Imprime una cadena en reemplazo de valores NULL
.output FILENAME Manda resultado a un archivo, donde FILENAME es el nombre del archivo
.output stdout Manda resultado a la pantalla
.print STRING... Imprime STRING a la pantalla
.prompt MAIN CONTINUE
Reemplaza el prompt de la consola
.quit Salir de la consola SQLite
.read FILENAME Ejecuta SQL en FILENAME
.schema ?TABLE? Muestra las sentencias CREATE. Si TABLE está especificado, se muestra las sentencias de la tabla especificada
.separator STRING Define separador, usado por .import y .mode
.show Muestra los valores actuales para diversas configuraciones
.stats ON|OFF Activa/desactiva el mostrar los estados
.tables ?PATTERN? Lista nombres de tablas de acuerdo al valor de PATTERN
.timeout MS Íntenta abrir una cantidad de tablas cerradas en MS milisegundos
.width NUM NUM Define el ancho para el modo “column”, definido en .mode
.timer ON|OFF Activa/desactiva medición del tiempo del CPU
COMANDOS BÁSICOS
Estos comandos los podemos emplear desde la consola de SQLite como desde otro tipo de interfaz
añadida 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”, además de crear una tabla en esta DB, llamada “datos” con las siguientes
características:
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 gráfico anterior, al listar las tablas creadas, podemos ver que la tabla “datos” ya ha sido
creada con las características 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. Después 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 DATOid 1apellido Ramonnombre Luisdocumentos 20092120Bobservaciones 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 inserción de datos, para hacer la comprobación, procederemos a mostrarlos con
el comando SELECT. Para eso, en la consola usamos el siguiente comando:
Como podemos observar, la inserción 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.
Aplicándolo 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 DATOid 2apellido Valentinnombre Bithiahdocumentos 20094057Fobservaciones 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 cómo 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 añadir 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 instrucción:
Como pueden ver, primero mostramos las tablas que están en la BD para poder ver el nombre de
la tabla que queremos cambiar. Luego aplicamos el comando ALTER TABLE con el añadido
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 mayoría de las características de SQL, sin embargo, hay sentencias que no
están implementadas. Las sentencias no implementadas son las siguientes:
SENTENCIA OBSERVACIÓNRIGHT y FULL OUTER JOIN LEFT OUTER JOIN está implementado, pero no así
RIGHT OUTER JOIN o FULL OUTER JOIN.Soporte complete de ALTER TABLE Solo RENAME TABLE y ADD COLUMN están
soportadas. Otros tipos de operaciones de ALTER TABLE como DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT, y otras más se han omitido.
Soporte completo de Triggers Solo están soportados los triggers FOR EACH ROW pero no los triggers FOR EACH STATEMENT.
Escribir a vistas 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.
GRANT y REVOKE Como SQLite lee y escribe las bases de datos en un archivo de disco, los únicos permisos que se pueden asignar a esta BD son los que permita asignarle el sistema operativo, por lo cual, no tendría sentido implementar los comandos GRANT y REVOKE.
EMPRESAS QUE USAN SQLITE
Acá les mostramos una lista de las empresas más reconocidas a nivel mundial que usan SQLite en
sus soluciones informáticas:
Adobe usa SQLite como el formato de archivo de aplicación para su producto Photoshop Lightroom. Además, SQLite es un componente estándar de Adobe Integrated Runtime (AIR). Se ha reportado también 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 también 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 número de control de exportación de EE.UU. para SQLite. Se presume que GE está usando SQLite en algún product que están exportando. Nadie (fuera de GE) puede confirmar qué producto puede ser.
Se conoce que Google usa SQLite en su aplicación 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 además en otra gran cantidad de productos que ellos no desean especificar. Ingenieros de Google hacen una gran cantidad de contribuciones al código de búsqueda de texto con SQLite.
McAfee usa SQLite en sus aplicaciones antivirus.
Viene con compatibilidad para SQLite2 y SQLite3 por defecto.
SQLite viene como un módulo en el lenguaje de programación Python desde su versión 2.5.
El entorno de programación REALbasic viene equipado con una versión de SQLite que soporta encriptación 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 programación que
soportan SQLite, lo transforman no solo en una alternativa, sino en una opción robusta y decisiva
para la implementación de sistemas que requieren almacenamiento de información en un formato
altamente dinámico con soporte para SQL, con planes de escalabilidad, portabilidad y rapidez,
sobre todo cuando se utilizan lenguajes de programación dinamicos, algo muy común en la
actualizad, más aún cuando se hace necesario utilizar un motor pequeño y liviano que no requiera
mayor configuración o administración como es el caso de dispositivos empotrados.
BIBLIOGRAFÍA
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-del-como