RSS

Bases de Datos Internas o Temporales

jueves, 29 de noviembre de 2007

Para los programas que tienen un gran volumen de datos que debe ser ordenado de diversas maneras, a menudo es más fácil y más rápida de cargar los datos en una memoria en la base de datos SQLite y el uso y se une a las preguntas con cláusulas ORDER BY para extraer los datos de la Forma y el orden en lugar de tratar de código de las mismas operaciones manualmente.

El uso de una base de datos SQL internos de esta manera el programa también ofrece una mayor flexibilidad ya que las nuevas columnas (atributos) y los índices pueden ser añadidos sin tener que reprogramar cada consulta.

Sitios Web

miércoles, 28 de noviembre de 2007

SQLite normalmente trabajará como el gran motor de base de datos de baja y media del tráfico en Internet (es decir, el 99,9% de todos los sitios Web). La cantidad de tráfico web que SQLite puede manejar depende, por supuesto, sobre la forma en el sitio web utiliza en gran medida su base de datos. En general, cualquier sitio que recibe menos de 100.000 visitas / día debe funcionar bien con SQLite. El 100.000 visitas / día cifra es una estimación conservadora, y no de un duro límite superior. SQLite se ha demostrado que trabajar con 10 veces la cantidad de tráfico.

Aplicaciones y Dispositivos Embebidos

lunes, 26 de noviembre de 2007

Porque una base de datos SQLite requiere poco o prácticamente nada de la administración, SQLite es una excelente opción para los dispositivos o servicios que deben trabajar sin vigilancia o sin apoyo humano. SQLite es una buena elección para su uso en teléfonos móviles, PDAs, set-top boxes, y / o electrodomésticos. También funciona bien como una Base de Datos incorporados en descargar aplicaciones de consumo.

Aplicación en Formato de Archivo

domingo, 25 de noviembre de 2007

Nuevamente mostrando casos de éxitos de SQLite en las cuales cómodamente podría ser reemplazo de los grande Motores de Bases de Datos, tenemos las aplicaciones en formato de archivo.

Este es el caso de las aplicaciones de escritorio que normalmente lo utilizamos para desempeñar una tarea específica, como herramienta de Análisis Financiero, los paquetes de CAD, programas de mantenimientos de registros, etc.

Las tradicionales operación como Archivo/Abrir se realizaría con sqlite3_open(), posteriormente se ejecuta un BEGIN TRANSACTION para obtener un acceso exclusivo al contenido. en la operación Archivo/Guardar se hace con un COMMIT seguido por otro BEGIN TRANSACTIO. Es importante considerar el uso de las transacciones ya que garantiza que las actualizaciones de las aplicaciones sean atómicas, aisladas y por sobre todas las cosas coherentes.

Seguramente más adelante vamos a mostrar mas características de casos exitosos y de las cuales vas a poder sacar tus conclusiones a la hora de pensar en migrar esas aplicaciones con otros motores de base de datos a SQLite.

Los usos apropiados de SQLite

sábado, 24 de noviembre de 2007

Quizás este tema lo hablamos pero muy por arriba y ahora llego la oportunidad para explicar mejor las prestaciones de SQLite para los usuarios.

Como ya sabemos SQLite es diferente a la mayoría de los otros motores de Base de Datos SQL en donde ya conocemos estos objetivos:

  • Simple de Administrar.
  • Simple para Operar.
  • Simple para fusionarlo con aplicaciones más amplias.
  • Fácil de mantener y personalizar.
Las personas que utilicen SQLite encontrarán en él un Pseudo Motor pequeño y rápido, y también van a encontrar que SQLite es muy confiable. La fiabilidad es una consecuencia de la simplicidad. Si bien posee estas características SQLite desde sus inicios se esfuerza por ser por sobre todas las cosas S I M P L E.

La simplicidad de este Pseudo Motor puede ser como ya sabemos una Fortaleza o una debilidad, en función de que es lo que el usuario desea hacer con el mismo. Con el afán de lograr la máxima simplicidad tubo que sacrificar otros aspectos que algunos usuarios los notan útiles, como la alta concurrencia, un rico y amplio conjunto de funciones incorporadas, procedimientos almacenados, etc. Si necesitas algunas de estas características y no cuenta con la complejidad añadida que traen, entonces SQLite NO es probablemente el Motor de Base de Datos. La intención de SQLite no es la de ser una empresa de Motores de Bases de Datos y competir con Oracle o PostgreSQL.

La regla de oro para saber cuando es apropiado utilizar SQLite es la siguiente:
El uso de SQLite en situaciones en la que la sencillez de la administración, implementación y mantenimientos son más importantes que las innumerables características complejas que las empresa proporcionará a los Motores de Bases de Datos.

En la práctica, las situaciones en que la simplicidad es la mejor opción, son más comunes de las que muchos creen.

Review de SQLite - Parte II

jueves, 22 de noviembre de 2007

Aprendamos algunos comandos especiales para movernos sobre SQLite

La mayoría de las veces SQLite lee las lineas de entrada y los transforma al de la libreria SQLite para luego ejecutarlas. Si una línea de entrada empieza con un Punto (".") es interpretado inmediatamente por el intérprete de SQLite, estos puntos se utiliza normalmente para cambiar el formato de salidas de las consulta, la cual veremos más adelante

Para obtener una lista de los comandos disponibles, podemos tipear en cualquier momento ".help" y nos arrojaría la siguiente lista:

sqlite> .help

.bail ONOFF Stop after hitting an error. Default OFF
.databases List names and files of attached databases
.dump ?TABLE? ... Dump the database in an SQL text format
.echo ONOFF Turn command echo on or off
.exit Exit this program
.explain ONOFF Turn output mode suitable for EXPLAIN on or off.
.header(s) ONOFF Turn display of headers on or off
.help Show this message
.import FILE TABLE Import data from FILE into TABLE
.indices TABLE Show names of all indices on TABLE
.load FILE ?ENTRY? Load an extension library
.mode MODE ?TABLE? Set output mode where MODE is one of:
csv Comma-separated values
column Left-aligned columns. (See .width)
html HTML code
insert SQL insert statements for TABLE
line One value per line
list Values delimited by .separator string
tabs Tab-separated values
tcl TCL list elements
.nullvalue STRING Print STRING in place of NULL values
.output FILENAME Send output to FILENAME
.output stdout Send output to the screen
.prompt MAIN CONTINUE Replace the standard prompts
.quit Exit this program
.read FILENAME Execute SQL in FILENAME
.schema ?TABLE? Show the CREATE statements
.separator STRING Change separator used by output mode and .import
.show Show the current values for various settings
.tables ?PATTERN? List names of tables matching a LIKE pattern
.timeout MS Try opening locked tables for MS milliseconds
.width NUM NUM ... Set column widths for "column" mode
sqlite>


Realicemos una introducción para poder manipulas las salidas o configurarla, además cabe destacar que SQLite3 es capaz de mostrar los resultados de una consulta en ocho diferentes formatos: "csv", "column", "html", "insert", "line", "tabs", and "tcl". Podes usar en .mode para lograr estas diferentes salidas.

Bueno, comencemos con la modalidad por defecto en la cual SQLite nos muestra los datos tras una consulta realizada previamente, esta consulta estandart es separada por este símbolo (""), este ejemplo que vamos a realizar tomamos como base la Review I.

Para acceder a la base de datos creada anteriormente

$ sqlite3 prueba.db

Una ves dentro de la misma podemos realizar:

sqlite> .mode list
sqlite>
select * from personal;
1DanyxMaldoandoYYYXXXZZZ
2LaRepaWebZZZXXXYYY
sqlite>


Ahora bien si utilizas ".separator" va a cambiar el modo de separación de la consulta, por ejemplo lo vamos a hacer cambiar por una coma y un espacio ", "

sqlite> .separator ", "
sqlite>
select * from personal;
1, Danyx, Maldoando, YYYXXXZZZ
2, LaRepa, Web, ZZZXXXYYY
sqlite>


Bueno por el momento lo vamos a dejar ahy, de este modo vamos captando la estructura de SQLite3, como decimos un PseudoMotor muy potente y liviano. Será hasta la próxima y muchas gracias por acompañarnos.
Autor: Maldonado Daniel Martin (LaRepaWeb)

SQLite - Extensiones del Lenguaje SQL

domingo, 18 de noviembre de 2007

SQLite proporciona una serie de mejoras en el lenguaje SQL, que no se encuentran normalmente en otros Motores de Bases de Datos, sean comerciales o no. SQLite provee declaraciones como REPLACE y ON CONFLICT, clausulas que permiten añadir para el control de la limitación de resolución de conflicto.

SQLite soporta ATTACH y DETACH, que son comando que permiten a múltiple Bases de Datos independientes sean utilizadas en una misma consulta. Por último SQLite define las API que permite al usuario añadir nuevas funciones SQL y el cotejo de las secuencia

SQLite - De dominio PÚBLICO

jueves, 15 de noviembre de 2007

Sencillamente el código fuente de SQLite es de dominio público.Ninguna reivindicación se hace de los derechos de autor se hace en cualquier parte del núcleo del código fuente. Todos los contribuyentes que participaron de SQLite, han firmado una declaración jurada específicamente que desmiente cualquier interés de derecho de autor en el código. Esto significa que nadie es capaz de hacer lo que quiera con el código fuente de SQLite.

Existe otros motores de Bases de Datos basados en SQL liberados de licencias que permiten al código ser ampliamente utilizados y libremente. Pero estos motores se siguen rigiendo por la ley de derechos de autor. SQLite es diferente ya que en el derecho de autor la ley simplemente no se aplica.

Los archivos de código fuente para los otros motores de Bases de Datos SQL, generalmente comienzan con un comentario que describe su licencia de derechos para leer y copiar el archivo en cuestión. En SQLite el código fuente no contiene ninguna licencia ya que como decíamos no se rige por el derecho de autor.

En lugar de una licencia el código fuente de SQLite ofrece una bendición:
  • Hacer el bien y NO el mal.
  • Se puede encontrar el perdón para ti y perdonar a los demás.
  • Se puede compartir libremente, no teniendo más de lo que dan.

Review de SQLite - Parte I

miércoles, 14 de noviembre de 2007


Vamos a comenzar a hacer un HOWTO acerca de SQLite, gracias a un amigo Gerardo Cabero y las influencias de mucha gente involucrada en todo este tema.

Entendamos algunos conceptos antes de comenzar:
SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, y que está contenida en una relativamente pequeña librería en C. SQLite es un proyecto de dominio público creado por D. Richard Hipp.

Rapidamente instalemos nuestro PseudoMotor SQLite en su version 3 (apodado de esa forma por Gerardo), en un sistema GNU/Linyx utilizando alguna Kosole o Terminal

$ sudo apt-get install sqlite3

una ves instalado hagamos algunas pruebas, nos dirijamos hacia algún directorio y ahora a crear una Base de Datos

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

Ahora insertemos algunos datos de la siguiente manera:

sqlite> insert into personal values(1, 'Danyx', 'Maldonado', 'YYYXXXZZZ');
sqlite> insert into personal values(2, 'LaRepa', 'Web', 'ZZZXXXYYY');

Hagamos nuestra primera consulta sobre la tabla "personal"

sqlite> select * from personal;
1DanyxMaldoandoYYYXXXZZZ
2LaRepaWebZZZXXXYYY
sqlite>

para poder salir de la edición por consola

sqlite> .quit

Más adelante voy a estar mostrando algunas opciones que nos brinda SQLite y el manejo de este PseudoMotor formatear salidas, exportar, etc.

Este fragmento lo Obtubimos desde del Sitio: LaRepaWeb - Gracias Daniel Maldonado y Luis -

SQLite - Sentencias SQL Compiladas en la Máquina Virtual

martes, 13 de noviembre de 2007


Cada Motor de Base de datos SQL 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. Pero en la mayoría de los Motores SQL interno que la estructura de los datos es una compleja red de estructuras y objetos relacionados entre sí. En SQLite, compilar la forma de las declaraciones es de un breve programa en un lenguaje de máquina como representación. Los usuarios de la base de datos puede ver esta Máquina Virtual de lenguaje por EXPLAIN ante poniéndole esta palabra clave para una consulta. Más adelante veremos estos ejemplos.

El uso de una Máquina Virtual en SQLite ha sido un gran beneficio para el desarrollo de la biblioteca. La Máquina Virtual proporciona una crujiente, bien definido el cruce entre la interfaz de usuario de SQLite (en la parte que analiza las sentencias SQL y genera el código máquina virtual) y la parte de atrás de final (la parte que ejecuta la máquina virtual de código y calcula un resultado. ) La máquina virtual permite a los desarrolladores para ver claramente y en una forma de fácil lectura SQLite es lo que intentamos hacer con cada declaración compila, que es una gran ayuda en la depuración.

Dependiendo de la forma en que se compila, SQLite también tiene la capacidad de rastreo de la ejecución de la máquina virtual de impresión de cada máquina virtual de instrucción y su resultado, ya que se ejecuta.

SQLite - De código Legible

viernes, 9 de noviembre de 2007

El código fuente de SQLite estás diseñado y codificado para ser legible y accesible hasta para un programador medio. Todos sus procedimientos, estructuras de datos y variables están cuidadosamente comentadas con información útil e integral para que de esa forma se pueda comprender su estructura y el significado de cada una de las partes de la aplicación.

Elegí tu Banner y ayudanos a difundir la Comunidad SQLite-Latino

jueves, 8 de noviembre de 2007


SQLite-Latino





SQLite-Latino





SQLite-Latino


SQLite - Registros de Longitud Variable

miércoles, 7 de noviembre de 2007

La mayoría de los motores de Bases de Datos SQL, asignan una cantidad fija de espacio en disco para cada fila en la mayoría de los Campos de una determinada Tabla. Tomemos un clásico ejemplo para entender este concepto sencillo, tomemos un Campo de tipo VARCHAR(100), esto significa que el motor de Base de Datos asignará 100 Bytes de espacio en disco fijo, independientemente de la cantidad de de información que se almacene en ese Campo.

SQLite por el contrario, utiliza únicamente la cantidad de espacio de disco necesario para almacenar realmente la información en ese Campo. Tomando el ejemplo anterior, si quisiera almacenar un solo caracter en un Campo definido como VARCHAR(100), entonces solo un único byte de espacio de disco se consume, realmente una característica especial para ahorrar espacios en memorias.

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. También hace que la Base de Datos funcione más rápidamente, debido a que hay menos información desperdiciada que leer y recorrer.

SQLite - Tipado Dinámico

martes, 6 de noviembre de 2007

La mayoría de los Motores de Bases de Datos SQL utilizan un tipado estático de datos. ¿Qué significa esto? Un dato se asocia con cada columna de una tabla de valores y solo ese tipo de dato se permite almacenar en esa columna. SQLite, por el contrario rompe con este pensamiento, imponiendo el concepto del Tipado Dinámico, diciendo que el dato es un valor de la propiedad en sí, no de la columna en la que se va a almacenar el valor.

Por lo tanto SQLite permite al usuario almacenar cualquier valor de cualquier dato en cualquier columna, independientemente de la declaración del tipo de la columna.

El uso de este nuevo concepto fue una deliberada decisión de diseño que ha demostrado en la práctica ser más fiable y más fácil de usar, especialmente cuando se utilizan en combinación con lenguajes de programación como Python, Ruby, Tcl entre otros que implementan esta características desde sus inicios.

MiniFAQ - Dudas y Preguntas sobre SQLite

domingo, 4 de noviembre de 2007

¿Que es SQLite?

SQLIte es una nueva generacion de Motores de Base Datos llamados ,
Seudo-Motores . 0 Configuracion , Mas Rapido Usar- Vease SeudoMotores -

¿Que tipo de Licencia tiene SQLite?
Dominio Publico - Permite usarlos en productos comeciales y no comerciales -

¿Que tipo de aplicacion esta Orientado SQLite - Alta, Mediana , Baja?
SQLite esta destinado a cualquir tipo de aplicacion, medianas o Semi Complejas ej aplicacioes desktop ,bibliotecas,padrones ,respaldo de datos, web site.

¿Que tamaño max puede tener una Base de datos con SQLite?
2 Tb - TeraBytes-

¿Que tamaño max puede tener una tabla de datos con SQLite?
1 Gb. -GigaByte -

¿SQLite soporta multiUsuarios?
Puden haber varios , usuarios accediendo simultaneamente a la DB pero solo uno podra escribir en un instante de tiempo ,posee un sistema um lock , el cual nos dira si se encuntra ocupado atraves del mensaje SQLITE_BUSY

¿SQLite Vs Oracles, Posgrest , MySql , FireBird?
Podemos sitar e algunas de sus ventajas,
NO tener que esta instalado un servidor de base datos,
NO existe una arquitectura cliente/servidor
Insersiones , Modificaciones, Eliminacion 8 veces mas Rapidas
Facil de Usar

¿Desventaja de SQLite?
No Poser Itegridad referecial -No portada Aun -
Pocas comunidades de usarios

¿SQLite Soporta datos tipo BLOB?
Desde la version 3, podemos asigar este tipo de datos.
Para los que no estan muy familiarizados con el tema los BLOB (Binary Large OBjects, grandes objetos binarios), son elementos utilizados en las Bases de Datos para almacenar datos de gran tamaño que cambian de forma dinámica.

¿SQLite esta escrito en ?
Esta escrito en el Lenguaje de Programación C++

¿SQLite con que Lenjuage puedo utilizarlo?
Podemos hace uso de estos lenguajes:
Java, Groovy,Python, C++, Ruby, Tcl,etc

Cuando usar SQLite

Situaciones donde SQLite Funciona Bien

  1. Mayoria de los Web Site (menos de 100 mil visitas diarias).
  2. Subtituto de archivos de uso especifico.
  3. Base de datos Internas o Temporarias.
  4. Aplicaciones Locales.
  5. Subtituto de base de Datos de gran porte en pruebas, demostraciones y prototipos.
  6. Formato para archivos de programas.
  7. Dispositivos y programas enbebidos.
  8. Base datos de Respaldo o Backup.

Donde SQLite No rinde un 100 %
  1. Aplicaciones Cliente/Servidor.
  2. Mayoria de los Web Site (mas de 1 millon visitas diarias).
  3. Aplicacione de alto concurrencia.

SQLite - Compacto

Cuando se pensó en optimizar el código SQLite en cuanto a su tamaño, toda la librería funcional es menor de 225 KiB (medido en una ix86 utilizando el tamaño de utilidad del compilador GNU), de este modo es posible desactivar en tiempo de compilación numerosas características innecesarias para poder reducir aún más el tamaño de la biblioteca llegando mas o menos a 170 KiB

La mayoría de otros motores de Bases de Datos SQL, son muchísimos mas grandes que este. Inclusos motores de Bases de Datos sin todas las características y las funcionalidades e inclusives comprimidos son el doble de pesados que SQLite.

SQLite - Único archivo de Base de Datos

jueves, 1 de noviembre de 2007

Una Base de Datos SQLite es un único archivo de disco ordinario y que además puede estar situado en cualquier parte del directorio dentro de las jerarquías de directorios. Esto trae como ventaja que el archivo de Base de Datos puede ser fácilmente copiado en algún dispositivo de memoria por ejemplo en USB o por correo electrónico.

Otros motores de Bases de Datos tienden por lo general a almacenar gran cantidad o colección de archivos, que solo el motor de la Base de Datos puede llegar a tener acceso a las mismas, esto hace que los datos sean más seguro y más difíciles de acceder.

Algunos motores de Base de Datos SQL proporciona la opción de escribir directamente en el disco y pasar por el sistema de ficheros todos juntos. Esto aporta una mayor rendimiento, pero a costa de una considerable complejidad de instalación y mantenimiento.

Presentacion de SQLITE

Aqui una trasparencia de sqlite...

SQLite - Serverless

La mayoría de los motores de base de datos SQL se ejecutan como un proceso separado del servidor. Los programas que quieren acceder a la base de datos para comunicarse con el servidor mediante el uso de algún tipo de comunicación (normalmente TCP/IP) para enviar peticiones al servidor y recibir de vuelta los resultados. Entendido esto podemos decir que SQLite no trabaja de esa manera. Con SQLite, el proceso que quiere acceder a la base de datos lee y escribe directamente de los archivos de base de datos en el disco. No existe un intermediario proceso servidor.

Existe muchas ventajas y desventajas con respecto a los servidores, La principal ventaja es que no existe ningún proceso de instalación de servidor, como así también su configuración, inicialización, etc. Por ello es una de las razones por la cuanl SQLite - Configuración [0]. Cualquier programa que sea capaz de acceder al disco se puede utilizar una base de datos SQLite.

Por otro lado, un motor de base de datos que utiliza un servidor puede proporcionar una mejor protección frente a fallos en la aplicación del cliente - se dirige a los punteros en un cliente no puede corromper la memoria en el servidor.

La mayoría de los motores de base de datos SQL son cliente/servidor. De los que son servidores, SQLite es el único que sabe de este autor que permite que múltiples aplicaciones puedan acceder a la misma base de datos al mismo tiempo.