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
ANALYZE
jueves, 27 de diciembre de 2007
Publicado por Daniel Maldonado en 21:53
Etiquetas: De SQL a SQLite
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.
Publicado por Daniel Maldonado en 11:33
Etiquetas: De SQL a SQLite
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:
- ALTER TABLE
- ANALIYZE
- ATTACH DATABASE
Publicado por Daniel Maldonado en 10:40
Etiquetas: De SQL a SQLite
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.
Publicado por Daniel Maldonado en 18:39
Etiquetas: Usos No apropiados
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.
Publicado por Daniel Maldonado en 18:31
Etiquetas: Usos No apropiados
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.
Publicado por Daniel Maldonado en 6:29
Etiquetas: Usos No apropiados
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.
Publicado por Daniel Maldonado en 19:59
Etiquetas: Usos No apropiados
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 DetalleClass.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/
Publicado por Gerard en 7:22
Etiquetas: SQLite y Java
Configurando Eclipse y SQLite
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.
Se deben de copiar también los archivos .so para Linux y .dll para Window$
Publicado por Gerard en 6:51
Etiquetas: SQLite y Java
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.
Publicado por Daniel Maldonado en 20:22
Etiquetas: Practica y Ejemplos, SQLite y 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.
Publicado por Daniel Maldonado en 6:30
Etiquetas: Usos apropiados
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.
Publicado por Daniel Maldonado en 6:23
Etiquetas: Usos apropiados