RSS

ANALYZE

jueves, 27 de diciembre de 2007

El comando ANALYZE reúne estadísticas sobre los índices y las almacena en un especial de tablas en la base de datos donde el optimizador de consultas puede utilizar para ayudar a hacer un mejor índice de opciones. Si no se dan argumentos, todos los índices en todas las Bases de Datos adjuntos se analizan. Si un nombre de base de datos se da como argumento, todos los índices en una Base de Datos que se analizan. Si el argumento es un nombre de tabla, entonces sólo los índices asociados a una tabla que se analizan.

Sql-declaración:: = ANALYZE
Sql-declaración:: = ANALYZE nombre de la base de datos
Sql-declaración:: = ANALYZE [nombre de la base de datos.] nombre de la tabla

ALTER TABLE

martes, 25 de diciembre de 2007

En SQLite, la version del comando ALTER TABLE permite al usuario cambiar el nombre o agregar una nueva columna a una Tabla ya existente, no es posible eliminar una columna de una Tabla.

La sintaxis es la siguiente:
Declaracion-sql :: = ALTER TABLE [nombre de la base de datos .] Tabla
Alteración :: = RENAME TO nuevo nombre de la Tabla
Alteración :: = ADD [nombre de la columna] descripción


La sintaxis RENAME TO se usa para cambiar el nombre de la Tabla escogida por un nuevo nombre que le queramos asignar. Con este comando no se puede mover una Tabla entre las Bases de Datos adjuntas, sólo para cambiar el nombre de una Tabla dentro de la misma Base de Datos.

El comando ADD [nombre de la columna] se utiliza para gregar una nueva columna o atributo a la Tabla existente. Esta nueva columna es agregada siempre al final de la lista como último atributo.

El tiempo de ejecución del comando ALTER TABLE es independiente de la cantidad de datos en la Tabla. El comando ALTER TABLE se ejecuta con la mayor rapidez sobre una Tabla con 10 millones de filas como lo hace sobre una Tabla con 1 sola fila.

Ejemplo propuesto:

Para este ejemplo vamos a suponer que contamos con una Base de Datos ya creada en la cual además hemos creados otras tablas, ingresamos a la base de datos he intentemos cambiar el nombre y agregar una columna a algunas de sus tablas.

En mi caso les muestro las tablas que tengo ejecutando:
sqlite> .tables
personal
sqlite>


y ahora les muestro cual es su esquema:
sqlite> .schema personal
CREATE TABLE 'personal' (
id smallint primary key,
apellido varchar(100),
nombre varchar(100),
direccion varchar(200)
);
sqlite>


bueno ahora intentemos cambiarle el nombre:
sqlite> ALTER TABLE personal
...> RENAME TO personales;
sqlite>


ahora con el nuevo nombre de la Tabla, agreguemos una columna:
sqlite> ALTER TABLE personales
...> ADD telefono varchar(15);
sqlite>


Entonces de esta manera tan simple pudimos no solamente modificar el nombre de la tabla si no que además agregarle un campo a la misma.

De SQL a SQLite

SQLite entiende la mayor parte de la lengua estándar SQL. Lo que pasa es que se omitan algunas características, al mismo tiempo, añadiendo algunas características de su propia.

Lo que vamos a ver a partir de ahora es intenta describir con precisión qué partes del lenguaje SQL son similares a SQLite y cuáles no. Una lista de palabras clave también es proporcionada.

Es por ello que para comenzar a ver estas sintaxis vamos a listar muchas de las palabras claves y comando que vamos a utilizar y de ese modo vamos a particularizarlos a cada uno.

SQLite implementa las siguientes sintaxis:

Gracias a TuxInfo!!!!

jueves, 20 de diciembre de 2007


Les comentamos que en el día de la fecha la gente de la revista digital TuxInfo, nos realizó una antrevista comentando y apoyando esta comunidad de SQLite Latino. Una entrevista en donde tratamos de presentarles e informarles hacerca de este proyecto y la manera en la cual pueden colaborar.

En primer lugar queríamos agradecerles a Franco quien fue el que realizo la entrevista muy amablemente y como una propuesta de él.

Tambíen queremos agradecer a la gente que trabaja en TuxInfo y en especial a Ariel director de la misma por el apoyo constante al Movimiento del Software Libre.

Y por último los invitamos a que vean no solamente la nota sino también que disfruten y se informen con esta revista mensual.

Uso No apropiado con Alto Concurrencia

lunes, 10 de diciembre de 2007

SQLite utilizando lector/escritor esclusas de la totalidad del archivo de las Base de Datos. Esto significa que si cualquier proceso es la lectura de cualquier parte de la base de datos, todos los demás procesos se impide a la escritura de cualquier otra parte de la base de datos.

Del mismo modo, si un proceso es cualquier escrito a la base de datos, todos los demás procesos se impide que la lectura de cualquier otra parte de la base de datos. Cada aplicación de Base de Datos hace su trabajo y pasa rápidamente, y no de bloqueo dura más de algunas decenas de milisegundos.

Sin embargo, hay algunas aplicaciones que requieren una mayor concurrencia, y las aplicaciones pueden necesidad de buscar una solución diferente.

Uso No apropiado con Datos muy Grandes

Cuando se inicia una operación de SQLite (lo que sucede automáticamente antes de cualquier operación de escritura que no está dentro de una explícita BEGIN ... COMMIT) el motor tiene que asignar un mapa de bits de páginas sucias en el archivo de disco para ayudarle a manejar su revertir la revista. SQLite necesidades de 256 bytes de RAM para cada 1MiB de base de datos (asumiendo un 1024 bytes tamaño de página: menos memoria se utiliza con mayor tamaño de la página, por supuesto).

Para bases de datos más pequeñas, la cantidad de memoria necesaria no es un problema, pero cuando la base de datos comenzó a desarrollarse en el multi-gigabyte gama, el tamaño del mapa de bits puede conseguir bastante grande. Si tiene que almacenar y modificar más de algunas decenas de GB de datos, usted debería considerar la posibilidad de utilizar otro Motor de Base de Datos.

Uso No apropiado en Sitios web de Alto Volúmen

viernes, 7 de diciembre de 2007

SQLite normalmente funciona bien como el de Base de Datos a un sitio web. Pero si este Sitio Web es tan ocupados que están pensando en su división de componentes fuera de la Base de Datos en una máquina separada, entonces usted debería considerar el uso de un Motor de Base de Datos de tipo cliente/servidor en lugar del Motor de Base de Datos de SQLite.

Usos no Apropiados para usar SQLite - Aplicaciones Cliente/Servidor

miércoles, 5 de diciembre de 2007

Seguramente si tienes muchos programas clientes que acceden a una Base de Datos común en una Red, usted debería considerar el uso de un Motor de Base de Datos Cliente/Servidor en lugar de SQLite.

SQLite trabajará a través de una red de archivos, pero debido a la latencia asociado con la mayoría de sistemas de archivos de red, el rendimiento no será grande. Asimismo, el bloqueo de archivos lógica de muchos sistemas de ficheros de red contiene errores de aplicación (en ambos Unix y ventanas). Si el bloqueo de ficheros no funciona como debería, podría ser posible que dos o más programas cliente para modificar la misma parte de la misma base de datos al mismo tiempo, la corrupción en la base de datos resultante. Debido a que este problema se debe a fallos en el sistema de ficheros subyacente aplicación, no hay nada SQLite puede hacer para evitarlo.

Una buena regla general es que usted debe evitar el uso de SQLite en situaciones en las que la misma Base de Datos será accesible al mismo tiempo de muchas computadoras a través de una red de archivos.

Java y SQLite - Parte I

martes, 4 de diciembre de 2007

Desde hace mucho tiempo -Varias Lunas- en sqlite-latino, de la mano de daniel se viene realizado la entrega teórica de sqlite, por trabajar con el , ventaja , desventajas, ect. y Las reviws correspondientes del mismo, como hacer un uso eficiente del mismo atraves del conocimiento de sus sintaxis, esto se realizo con el siguiente motivo , para poder dar el enfoque teórico.
Pero desde hace unos días se comenzó con la aplicación de sqlite, en los diferente lenguajes. Ahora es el turno de Java.
Java hace uso de las librerías JDBC para poder realizar la comunicación con la DB. desde hace tiempo están disponibles SqliteJDBC.
En el site SQLiteJDBC (http://www.zentus.com/sqlitejdbc/) podemos encontrar wrappers de SQLite para Java en las plataformas Linux, Max OS, y windows .
Imaginemos la siguiente aplicación "Digamos que se desea crear una lista de todo nuestro amigos y sus fechas de cumpleaños con su correo y sus teléfonos"
Muy Sencillo el problema pero imaginemos como seria la estructura de la base de datos
Para llevar a cabo este ejemplo -Un par de Entregas- necesitaremos realizar una simple conexión, con java, esto se realiza por medio de una clase la cual lameremos "Coneccion" y su Estructura es esta

package pruebaBD;
import org.sqlite.*;
import java.sql.Connection;
import java.sql.Statement;

public class Coneccion {
private Connection varConeccion;
private Statement varSentencia;
public Coneccion(String nombreDB) throws ClassNotFoundException, SQLException{
Class.forName("org.sqlite.JDBC");
this.varConeccion = DriverManager.getConnection("jdbc:sqlite:" + nombreDB);
this.varSentencia = this.varConeccion.createStatement();
}
}

En Detalle
Class.forName("org.sqlite.JDBC"); : Se indica el nombre de conector que se utilizará.
this.varConeccion = DriverManager.getConnection("jdbc:sqlite:" + nombreDB); : Aquí se indica el driver con que trabajaremos: sqlite y el nombre de la Base de Datos "nombreDB" -En el Ejemplo Lo trafiero por parametro -
this.varSentencia = this.varConeccion.createStatement(); : Abre un canal para realizar las sentencias.
hasta aqui solo hemos creado la clase que realiza la conexión. con Sqlite, en los próximas entregas de realizaremos el resto de las clases.
Link
http://www.pysquared.com/files/Java/JavaSQLiteExample/ http://www.zentus.com/sqlitejdbc/

Configurando Eclipse y SQLite

Hace algunos dias, recibí un mail donde me preguntaban

"Como configuro eclipse , para trabajar con Sqlite y Java"

Muchos nos hemos complicado alguna ves con la inclusión de los .jar , es muy simple, siguiendo estos pasos se debe de descargar el archivo jdbc desde el sito de SqliteJDBC - (http://www.zentus.com/sqlitejdbc/) -
Una ves obtenido lo descomprimimos , y copiamos el .jar en el nuestro workspace el .jar y luego realizamos clic sobre el .jar y botón derecho y nos vamos a la opción donde dice add build -> Seleccionamos la opcion Add build path.

Si queremos podemos realizarlo de otra manera también seria correcta ir a menú Proyect -> Propiedades -> y luego a la pestaña donde dice -> Add external Jar y de allí seleccionamos el lugar donde se encuentra el .jar , aceptamos y lo tendremos instalado listo par usar.
Nota:
Se deben de copiar también los archivos .so para Linux y .dll para Window$

Python - SQLite

sábado, 1 de diciembre de 2007

Bueno, ahora llego el momento de comenzar a ver la parte práctica de SQLite, dijimos en todo este tiempo que las Bases de Datos es compatible con muchos Lenguajes de Programación, en esta oportunidad vamos a ver la integración de SQLite con Python, para aquellos que no están al tanto, Python es un Lenguaje de Programación interpretado creado por Guido van Rossum, en los sistemas GNU/Linux es muy popular, tienen como principal característica que es totalmente orientado a objetos, fácil de aprender y muy potente.

Bueno para poder llevar a cabo la integración necesitamos que en Python tengamos instalado unas librerías que nos va a servir como interface para conectar las Bases de Datos SQLite. Para ello hacemos lo siguiente:

$ sudo apt-get install python-pysqlite2

Con esto ya contamos con estas librerías y podemos realizar la conexión fácilmente.
Para continuar y realizar nuestro primer ejemplo sencillo de esta integración, les recomendamos que vean las Review I y Review II de SQLite y creen una Base de Datos con aunquesea una tabla, a modo de ejemplo.

Vamos a suponer dos cosas: Que la Base de datos o el archivo lo llamamos "prueba.db" y que como les decia a modo de prueba creamos una tabla llamada "personal".

Ahora bien creamos un archivo en python con nuestro editor preferido y lo llamamos "prueba01.py"

# Importa librerias de SQLite
from pysqlite2 import dbapi2 as sqlite

# Realiza la coneccion con la db colocando el Path
# donde se encuentra el archivo de la Base de datos
coneccion = sqlite.connect('prueba.db')

# Crea un objeto cursor para trabajar
cursor = coneccion.cursor()

# Ejecuta la consulta SELECT, tal y como lo haríamos en SQL
cursor.execute('SELECT apellido, nombre FROM personal order by id')

# Muestra todos los datos de la consulta
for (apellido, nombre) in cursor:
    print 'Apeliido y Nombre: %s, %s.' % (apellido, nombre)

Ahora bien una ves almacenado el archivo "prueba01.py" vamos a preceder a ejecutarlo convocando al interprete de la siguiente manera:
$ python2.4 prueba01.py


Bueno, más adelante vamos a continuar con mas ejemplos de aplicación, por el momento con este magnifico Lenguaje de Programación llamado Python.

Base de datos de Pedagogía o Enseñanza

Porque es fácil de configurar y usar (la instalación es trivial: tan sólo la copia, SQLite o sqlite.exe ejecutable a la máquina de destino y ejecutarlo) SQLite hace un buen Motor de Base de Datos para su utilización en la enseñanza de SQL.

Los estudiantes o aquellas personas que están aprendiendo pueden fácilmente crear tantas Bases de Datos como a ellos les gusta y puede enviarse entre ellos un correo electrónico a las Bases de Datos de instructores para la presentación de observaciones o de clasificación y de eso modo compartirlas de manera muy fácil.

Para los estudiantes más avanzados que están interesados en el estudio de cómo un RDBMS se ejecuta, el modular y bien comentado y documentado SQLite código puede servir como una buena base. Esto no quiere decir que SQLite es un modelo exacto de la forma en que otros motores de bases de datos se apliquen, sino más bien a un estudiante que entiende cómo funciona SQLite pueden comprender más rápidamente los principios operativos de otros sistemas.

Base de Datos durante las pruebas o demostraciones en empresas

Si está escribiendo una aplicación cliente para el motor de Base de Datos de una empresa, tiene sentido utilizar un genérico de Base de Datos que le permite conectarse a muchos tipos distintos de los Motores de Base de Datos SQL.

Es aún mejor de seguir adelante implementándolo y SQLite incluir en la mezcla de base de datos y el apoyo a linkar o enlazar en el motor SQLite con el cliente. De esa forma, el programa cliente puede ser usado con un archivo de datos SQLite para probar o para manifestaciones.