SQLite3
Upcoming SlideShare
Loading in...5
×
 

SQLite3

on

  • 17,212 views

Seminario-presentación sobre el SGBD de dominio público SQLite3.

Seminario-presentación sobre el SGBD de dominio público SQLite3.

Statistics

Views

Total Views
17,212
Views on SlideShare
15,918
Embed Views
1,294

Actions

Likes
2
Downloads
305
Comments
0

21 Embeds 1,294

http://a2super.blogspot.com 1080
http://www.slideshare.net 61
http://ivelaval.tumblr.com 52
http://a2super.blogspot.mx 38
http://a2super.blogspot.com.es 16
http://a2super.blogspot.com.br 12
http://a2super.blogspot.com.ar 9
http://www.linkedin.com 6
http://blog.andresmartinezsoto.es 5
http://a2super.blogspot.jp 3
https://www.linkedin.com 2
http://a2super.blogspot.de 1
http://a2super.blogspot.com.au 1
http://theoldreader.com 1
http://a2super.blogspot.co.uk 1
http://a2super.blogspot.pt 1
http://a2super.blogspot.ro 1
http://a2super.blogspot.kr 1
http://webcache.googleusercontent.com 1
http://www.a2super.blogspot.com 1
http://www.slideee.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

SQLite3 SQLite3 Presentation Transcript

  • SQLite3 Seminarios de Formación PolinuX València – 23 de Abril de 2009 Andrés Ignacio Martínez Soto anmarso4@fiv.upv.es
  • SQLite3
  • Contenido del seminario ¿Qué es SQLite3?  Características básicas de SQLite3  Usuarios de SQLite3  Usos de SQLite3  Instalación y herramientas  SQLite3 en Detalle  Tipos de datos y soporte de SQL:92  Funciones de agregación y fecha  Transacciones , triggers y vistas  Demo: ”Facturas”  View slide
  • SQLite3 View slide
  • SQLite3 Datos básicos  de SQLite3
  • SQLite3 ¿Qué es SQLite3? Sistema de Gestión de Bases de Datos relacionales  creado por D. Richard Hipp Es de dominio público  Escrito en C en una biblioteca de <500kb y muy ligero  D Richard Hipp autor de SQLite3
  • SQLite3 Características básicas de SQLite3 Multiplataforma:  Windows  Linux  Mac Os  Muy portable (la base de datos es el fichero y nada más):  Servidores  Workstations  PDAs  Teléfonos móviles  Otros sistemas embebidos 
  • SQLite3 Características básicas de SQLite3 (II) Sin configuración (Zero-Conf)  La base de datos es el fichero, y no se necesita nada más que acceso al  mismo. ”Serverless”:  No necesaria infraestructura cliente-servidor pesada (MySQL, Oracle,  PostgreSQL … ) Transacciones ACID {Atomicity, Consistency, Isolation and  Durability} Soporte de triggers  Bases de datos de hasta 2 TB de tamaño 
  • SQLite3 Características básicas de SQLite3 (III) Disponibilidad como biblioteca estática o dinámica  Disponibilidad de una API para la mayoría de  lenguajes de programación C/C++  PHP  Python  C# … Java  Ruby  Es fácilmente embebible en un programa de  gestión
  • SQLite3 Usuarios de SQLite3 Adobe: Photoshop LightRoom, Air …  Apple: Aperture, Safari, Iphone, Ipod Touch …  Mozilla: Firefox  Google: Gears …  Symbian  Muchos proyectos de Software Libre 
  • SQLite3 Usos de SQLite3 Base de datos ”personal” (¿sustituto de Access?)  Base de datos para educación (para aprender y  comprender como funcionan las bases de datos) Base de datos temporales  Base de datos para demostraciones  Base de datos para dispositivos embebidos  Base de datos para aplicaciones web 
  • SQLite3 No utilizar SQLite3 … Donde haya mucha concurrencia de accesos  Aplicaciones Cliente-Servidor ”grandes”  Tablas con campos de tamaño grande 
  • SQLite3
  • SQLite3 Instalación  herramientas
  • SQLite3 Instalación de SQLite3 Gnu-Linux:  Ubuntu/Debian:  sudo apt-get install sqlite3 libsqlite3-dev  Otros:  Bajar binarios de SQLite3 y/o compilarlos  Windows:  Bajar cli y dll de SQLite3  Mac os X:  Bajar binarios de SQLite3 
  • SQLite3 Herramientas para SQLite3 SQLite3 Command Line Interface:  Consola para manejar una base de datos SQLite3  SQLite Browser:  Cliente gráfico de SQLite3 http://sqlitebrowser.sourceforge.net/  SQLite Administrator:  Cliente gráfico de SQLite3 http://sqliteadmin.orbmu2k.de/  SQLiteman:  Cliente gráfico de SQLite3 http://sqliteman.com/  SQLite Manager: Extensión para Firefox que permite manejar bases de datos SQLite3:  https://addons.mozilla.org/ca/firefox/addon/5817
  • SQLite3 Herramientas para SQLite3 (II) SQLite3 CLI
  • SQLite3 Herramientas para SQLite3 (III) SQLite Administrator
  • SQLite3 SQLite3 en detalle
  • SQLite3 Tipos de datos soportados por SQLite3 SQLite3 utiliza tipado dinámico para los valores de las  columnas... NULL: Para valores nulos  INTEGER: Para valores numéricos de 32 bits con signo  REAL: Para valores numéricos de 32 bits con signo en formato IEEE  TEXT o VARCHAR: Para cadenas de texto en UTF-8  BLOB: Para datos binarios 
  • SQLite3 Cosas de SQL:92 no soportadas por SQLite3 Claves ajenas/integridad referencial:  Pueden implementarse mediante triggers ver  http://justatheory.com/computers/databases/sqlite/foreign_key_triggers.html Triggers:  Triggers con ”FOR EACH STATEMENT”, Triggers que se disparan por otro  Trigger. Modificar tablas:  Solo rename table y add column.  Joins:  RIGHT y FULL OUTER JOIN no están soportados.  Vistas actualizables (solo vistas de solo lectura)  Grant y Revoke 
  • SQLite3 Funciones de columna y agregadas en SQLite3 SQLite3 permite uso de GROUP BY ,y HAVING  SELECT COUNT(*) AS cuantos,nota FROM NotasAlumnoAprobados GROUP BY( nota ) HAVING ( nota>5 ) ORDER BY 1 DESC; También se permite el uso de:  AVG (columna)  COUNT (columna)  MAX (columna) y MIN (columna)  SUM (columna) 
  • SQLite3 Funciones de fecha en SQLite3 SQLite3 tiene como funciones para fechas y horas a  strftime( formato, string, modificador, modificador, … ); date( string, modificador, modificador, …) ; time( string, modificador, modificador, …) ; datetime( string, modificador, modificador, …) ; current_time , current_date y current_timestamp SELECT COUNT(*), STRFTIME('%Y',fecha) FROM Facturas GROUP BY( STRFTIME('%Y',fecha) ) HAVING ( STRFTIME('%Y','now')-STRFTIME('%Y',fecha)=1 );
  • SQLite3 Transacciones en SQLite3 Las transacciones en SQLite3 cumplen el estándar  ACID (Atomicity, Consistency, Isolation and Durability): Atomicity (Atomicidad): O se ejecutan todas las tareas de la transacción o  ninguna Consistency (Consistencia): Garantiza que sólo se ejecutan las  operaciones que mantienen la integridad de la base de datos Isolation (Aislamiento): Asegura que una operación no puede ver ni influir  otras Durability (Durabilidad): Una vez realizada una operación, ésta persistirá y  no se podrá deshacer aunque falle el sistema.
  • SQLite3 Transacciones en SQLite3 (I) Todas las transacciones comienzan por  BEGIN { DEFERRED/INMEDIATE/EXCLUSIVE } TRANSACTION  (DEFERRED por defecto) Luego se colocan las operaciones de la transacción  Por último se hace un COMMIT; O END; TRANSACTION  Y si fuera necesario, un ROLLBACK a un SAVEPOINT (punto de guardado) 
  • SQLite3 Transacciones en SQLite3 (II) Ejemplos de transacciones:  BEGIN TRANSACTION; CREATE TABLE Alumno (id INTEGER PRIMARY KEY,nombre TEXT); INSERT INTO Alumno VALUES(1,”Fulanito”); INSERT INTO Alumno VALUES(2,”Menganito”); DELETE FROM Alumno WHERE nombre LIKE '%anito'; SELECT COUNT(*) FROM Alumno; COMMIT; BEGIN TRANSACTION; UPDATE Alumno SET nombre=”*ito”; SELECT * FROM Alumno; COMMIT; ROLLBACK;
  • SQLite3 Triggers en SQLite3 Creación de Triggers 
  • SQLite3 Triggers en SQLite3 (I) CREATE TRIGGER TR_Alumno BEFORE DELETE ON Alumno FOR EACH ROW BEGIN INSERT INTO Old_Alumnos VALUES (OLD.id,OLD.nombre); END; CREATE TRIGGER UpdateCustAddress AFTER UPDATE OF address ON Customer FOR EACH ROW BEGIN UPDATE orders SET address = new.address WHERE customer_name=old.name; END;
  • SQLite3 Triggers en SQLite3 (II) Función RAISE (emite un error)  CREATE TRIGGER TRProyecto BEFORE DELETE ON Proyectos WHEN OLD.id IN ( SELECT id FROM Tareas ) BEGIN SELECT RAISE(ROLLBACK,”Existen tareas de éste proyecto … ”); END;
  • SQLite3 Vistas en SQLite3 CREATE VIEW ClientesValenciaFacturas AS SELECT codcli,nombre,telefono,direccion FROM Clientes WHERE codcli IN ( SELECT codcli FROM Facturas ) AND (codpostal LIKE '46%');
  • SQLite3
  • SQLite3      Demo    de SQLite3  ” FACTURAS ”
  • SQLite3 Base de datos ”Facturas”
  • SQLite3
  • SQLite3 ¿Preguntas?
  • SQLite3 CTRL+C