RSS
Mostrando entradas con la etiqueta Prensa. Mostrar todas las entradas
Mostrando entradas con la etiqueta Prensa. Mostrar todas las entradas

Adelantos del nuevo e-Book de SQLite por El Tribuno

lunes, 23 de febrero de 2009


Hoy 23 de Febrero del 2009 apareció en la portada de uno de los más reconocidos periódicos reconocidos en el noroeste Argentino como es El Tribuno, una entrevista al sr. Gerardo Cabero, integrante fundador de la comunidad SQLite – Latino, dando a conocer algunos adelantos de los proyectos que ya están encaminados y en edición para toda la comunidad, se trata de un eBook para conocer SQLite a fondo, llamado "La Cocina de SQLite".

Desde ya están invitados a leer esta entrevista, sin dejar de agradecer tanto al Periódico El Tribuno como así también a su periodista Fernando Quiros, por el apoyo a este proyecto y la difusión del mismo.

Para más información les dejamos el blog de Fernando Quiros contando más detalles

Entrevista a Daniel Maldonado de SQLite-Latino

sábado, 14 de febrero de 2009


Esta entrevista fue realizada hace algun tiempo, por el Sr. Franco Rivero de la Revista TuxInfo .
www.tuxinfo.com.ar , desde ya Agrademos que nos dejen publicar dicha Entrevista....

Estuvimos con el Sr. Daniel Maldonado, quien junto con Gerardo Cabero están llevando adelante este interesante proyecto desde hace unos meses.

Franco Rivero: FR
Daniel Maldonado: DM

FR: Daniel, contanos un poco de que se trata este nuevo proyecto

DM:SQLite-Latino trata de dar a conocer esta excelente herramienta para el desarrollo de aplicaciones ya sea consideradas de complejidad media como así también los de grandes proyectos o sistemas.
Queremos hacer llegar a toda la gente de habla hispana la información referida a SQLite,
con respecto a sus características, ventajas, compatibilidad con diversos Lenguajes de Programación y demás curiosidades de lo que hemos denominado como el Pseudo Motor de Bases de Datos SQLite.

FR:Para los que no saben de que hablamos ¿Qué es SQLite?

DM:: Según D. Richard Hipp )creador de SQLite(, SQLite son librerías escritas en C
que implementa un motor de base de datos para SQL92 empotrable, Wikipedia también comparte y adopta este concepto, pero según el organizador de
esta comunidad )Gerardo Antonio Cabero(, SQLite permite dar otro tipo de enfoque a las bases de datos, y dejar de ser librería para convertirse en Pseudo
Motor - Aparenta ser un motor pero no lo es un nuevo concepto tomado como válido y que lo utilizamos como premisa para la Comunidad SQLite - Latino.
En tal sentido, Gerardo Antonio Cabero dice:
“Siempre he pensado que hay que dar un nuevo enfoque al desarrollo de las Base de datos, dejando a un lado ese carácter de librería para convertirse en algo más complejo como un Pseudo Motor de Bases de Datos.” Te comento que yo he intentado hablar con D. Richard Hipp y le he comentado de las caracterásticas de SQLite y que el da un nuevo enfoque al desarrollo de las bases datos a través de lo que hemos denominado Pseudo Motor . pero no e Tenido Exito...
SQLite tiene varias funcionalidades, que se entiende como las de un Motor de Base de datos Ejemplo, y con la carencias de otras. Tal es el Caso de La
integridad referencial. (La que actualmente se puede Simular)

FR: ¿Cuáles son las expectativas del proyecto SQLite Latino América a corto y a largo plazo?
DM Básicamente las primeras expectativas de este proyecto es dar a conocer las cualidades más destacadas de SQLite a toda Latino América y de algún modo captar su atención y alentarlos a probar este nuevo concepto para el desarrollo no sólo de prototipos de sistemas sino también de sistemas de alta complejidad.
Además, dar un espacio para que los interesados formulen sus preguntas, dudas y de algún modo generar un espacio de debate de usuarios expertos como así también de novatos en un plano .Por eso los invitamos a que nos visiten y nos acompañen a aprender junto a ustedes.

FR: ¿Quienes llevan adelante el proyecto y con que idea se reunieron a trabajar?
DM: El proyecto comenzó de la mano de Gerardo, al comienzo de todo lo tenía un poco bandonado, hasta que nos conocimos en una charla que el dió, sobre SQLite en Jujuy en las II Jornadas de Software Libre y luego al volver a tener contacto nuevamente en las II Jornadas de Software Libre en Salta. De ese modo realizó, como Gerardo la llamó, “la propuesta Indecente” de ser un administrador y formar juntos y con más fuerza la Comunidad de SQLite Latino y de algún modo continuar colaborando con la comunidad de Software Libre.

FR: Por último, ¿Cómo pueden colaborar los interesados?
DM: Bueno a todos los interesados desde ya le agradecemos sus visitas a la comunidad http://sqlite-latino.blogspot.com, Otro modo de colaborar con este fin es ayudando a traducir la documentación, enviarnos sus Review de SQLite y el comportamiento con otros lenguajes de programación y fomentando el uso de SQLite en el desarrollo de sistemas.

Desde ya agradecemos a Daniel por su tiempo, y queremos ofrecerles desde Tuxinfo a todos los proyectos independientes un espacio para que puedan difundir su trabajo y sus pensamientos, desde nuestra revista alentamos los proyectos que tanto bien hacen a nuestra comunidad y sepan que aquí tienen un espacio para la difusión....
Realizado por : Franco Rivero
Revista: TuxInfo www.tuxinfo.com.ar

Uso de SQLite por Alejandro Sandoval

domingo, 25 de enero de 2009

Hola Comunidad de SQLite Latino, Feliz comienzo de año 2009. hace unos dias El Sr. Alejandro Sandoval nos envio un articulo relacionado con SQLite. Agradecemos su aporte, Asi tambien todo estan invitados a participar de SQLite Latino

Espero que sea de su agradao. Hasta la proxima
Uso de SQLite 

SQLite es un pequeño 'sistema' de base de datos: es una biblioteca que sobre un archivo almacena el esquema de la base de datos y los datos propiamente tal. En términos generales presenta un buen rendimiento, y está aconsejada para quienes requieren almacenar un volumen medio de datos en sus aplicaciones, utilizando un esquema relacional.En el caso de querer incluir la API SQLite en tu proyecto de programación, puedes incluir en tu programa C/C++ a sqlite.h, compilar a sqlite.c y listo.
Dentro de lo que podemos llamar una desventaja de SQLite es que no implementa la integridad referencial, es decir, no disponemos de claves foráneas (puedes declararlas, pero el intérprete ignorará tu declaración). De todas formas, SQLite si implementa triggers, así que hay algunas formas de implementar la integridad referencial de esa forma.
¿Un ejemplo? Pero con mucho gusto... de todas maneras, el ejemplo está pensado solo para mostrar las características de SQLite, así que no esperes un buen diseño ni nada por el estilo...
Por ejemplo, imagínese una pequeña empresa de buses que requiere almacenar información acerca de sus viajes. Para ello, supongamos que tenemos la tabla buses (con información de los buses), viaje (con los datos de un viaje) y pasajero (con los datos de un pasajero). Una propuesta entonces podría ser la siguiente:

create table buses(
  id integer primary key not null autoincrement,
  matricula text not null,
  ano integer not null,
  capacidad integer not null); 

create table pasajero(
  cedula text primary key not null,
  nacimiento date not null);

create table viaje(
  id_bus integer not null,
  cedula text not null);
Bueno, hay algunas cosas por explicar de acá:

SQLite implementa el incremento automático de un campo (autoincrement), el que perfectamente pude indicarse para el primary key.
Las claves foráneas, como ya mencioné, no están implementadas aún en SQLite, así que no las agrego.
La primary key de la tabla viaje será su OID.
SQLite, para almacenar una tupla en una tabla, utiliza el sistema de OID, es decir, asigna secretamente un identificador para cada tupla, que facilita su búsqueda en el arbol B (la estructura de datos usada por SQLite para almacenar los datos en archivo). No necesito declarar el OID, pero puedo consultarlo en cualquier tabla; pronto un ejemplo de eso.
Ahora, insertemos algunos datos, para hacer las pruebas.
insert into buses values(null, 'ABCD-01', 2008, 40);
insert into buses values(null, 'JANO-05', 2007, 27);
insert into buses values(null, 'INSQ-35', 2007, 20);
insert into pasajero values('123ASD-K', 1980-05-23);
insert into pasajero values('237QSD-3', 1970-03-28);
insert into pasajero values('135QTW-3', 1989-08-05);
Con esos datos, podemos ver en acción el sistema de los OID:
sqlite>select oid,* from buses;
1|1|ABCD-01|2008|40
2|2|JANO-05|2007|27
3|3|INSQ-35|2007|20

sqlite>select oid,* from pasajero;
1|123ASD-K|1980-05-23
2|135QTW-3|1989-08-05
3|237QSD-3|1970-03-28

Puede parecer extraño lo que ocurre con la tabla buses, puesto que ya existe su primary key, y esta se autoincrementa. Bien, pues de todas formas se genera un OID... pero cuando se define una primary key autoincrementable de tipo integer, el OID tendrá el mismo valor que dicha clave. No ocurre lo mismo en la tabla pasajero, puesto que su primary key es un texto, y no un entero. Nota también que en los campos que se autoincrementan, el siguiente valor se genera insertando un null.

Gracias a esta característica es que he definido la tabla viajes sin primary key: confío en el OID (lo que no es recomendado, por cierto).

Ahora, la parte artística: ¿y las claves foraneas? Como mencioné, para eso disponemos de los triggers...

create trigger fki_viaje_buses
before insert on viaje
for each row
begin
  select raise(rollback, 'Inserción en viaje viola restricción fki_viaje_buses')
  where (select id from buses where id=new.id_bus) is null;
end;

Luego de eso, intentemos insertar un viaje para un bus no válido:

sqlite> insert into viaje values(5, '123ASD-K');

SQL error: Inserción en viaje viola restricción fki_viaje_buses

El trigger para la actualización (update) es exactamente igual, pero en el caso de la eliminación tenemos un problema: si quiero eliminar un bus ¿qué hago con los viajes? Por como se definió la base de datos, no se pueden eliminar buses o pasajeros mientras hayan viajes, así que manos al trigger:

create trigger fkd_viaje buses
before delete on buses
for each row
  begin
    select raise(rollback, 'No se puede eliminar bus')
    where (select id_bus from viaje where old.id = id_bus) is not null;
end;
Ahora, si yo he insertado los siguientes datos de viaje
insert into viaje values(1, '135QTW-3');
insert into viaje values(1, '123ASD-K');
el trigger impedirá que eliminemos un bus, lo que generaría un estado inconsistente en la base de datos

sqlite> delete from buses where id = 1;
SQL Error: No se puede eliminar bus
 
Como se puede apreciar, SQLite es una alternativa interesante cuando se necesita un acceso a datos rápido y sencillo. Aunque me parece que SQLite es muy bueno, no me atrevería aún a usarlo en un entorno más de producción... aunque en la medida que lo voy usando, más me convence.

Autor: Alejandro Sandoval
Urls : http://esteparioprogramador.bligoo.com

:::NOTA COMPLEMENTARIA:::

Basándose en el ejemplo, el análisis es el siguiente: viaje es una tabla intermedia para la relación de muchos a muchos entre buses y pasajero. Por lo tanto, y siendo los campos de la tabla viaje claves foráneas, no puedo permitir la inserción de un viaje si el bus o el pasajero no existen: si lo permitiera, no tendría integridad referencial, dejando inconsistente la base de datos.

Por esa razón, se crean los triggers, y esa es la lógica que están siguiendo en este caso. Despedacemos el primer trigger pa que quede más claro:

create trigger fki_viaje_buses : Con eso, creo el famosillo trigger, y su nombre es fki_viaje_buses

before insert on viaje : Esto nos asegura la pega: el trigger será ejecutado antes de insertar en la tabla viaje. Eso te garantiza que la inserción no generará un estado inconsistente.

for each row : Está diciendo... puro traducir: repetir el trigger para cada fila insertada. Lo que se va a ejecutar está dentro del begin - end, por si acaso.

select raise(rollback, 'Inserción en viaje viola restricción fki_viaje_buses') 
 where (select id from buses where id=new.id_bus) is null;

Aquí está el detallito: le estamos diciendo que lance un error (y ejecute un rollback) cuando se cumpla la condición del where, es decir, si no hay ninguna tupla en la tabla buses que tenga un ID igual al ID del bus que está en la nueva tupla de viaje (la variablenew se ocupa para designar a la tupla que se intenta insertar). Como ves, es exáctamente lo que definimos en palabras antes de comenzar el análisis del problema.

La actualización es la misma situación, puesto que es en el fondo una inserción. De hecho, la única diferencia entre ambos triggers son los mensajes y el nombre.

La eliminación es ligeramente diferente, y pensemos en el caso de eliminar un bus. ¿Qué haré con los viajes asociados?

Las soluciones ahí son:

  • on delete set null: poner los id_bus de viaje en null (lo que en una tabla intermedia no es factible, puesto que las FK son PK además).
  • on delete cascade: si elimino un bus, elimino todos sus viajes.
  • on delete restrict: no puedo eliminar un bus mientras hayan viajes asociados.

El trigger implementado al respecto sigue la última filosofía: no te dejará eliminar un bus mientras hayan viajes registrados con ese bus. En ese esquema, la lógica es al revés: hago el rollback si HAY viajes con el mismo bus_id que tiene old.id (como imaginarás, oldindica la tupla a eliminar).

El tema de los triggers para simular las FK no es tan complejo... pero igual hay que dedicarle su tiempo (en mi caso, significó aprender triggers primero, porque era materia nueva). Aún así, creo que no me demoré mucho en aprender lo necesario.Espero que hayas quedado más claro. Si hay más dudas, pregunta nomás: yo feliz de ayudar dentro de lo que pueda.

Sqlite Latino Presente

martes, 6 de mayo de 2008

Hace algunos meses enviamos nuestro abastrar para estar presentes en Las 2das Jornadas de SL en la localidad de San Francisco provincia de Cordoba , y gracias a Dios nuestra charla a sido seleccionada para este importante evento.

Sqlite en la revista Linux+


Mucho de este tiempo le hemos dedicado, esfuerzo conjunto, Daniel y Yo. En escribir, una Guia Completa de sqlilte, para la revista linux+ , la mayor revista europea especializada en gnu/linux.

Richard Hipp en FLOSS

jueves, 13 de marzo de 2008

Hace alguanos dia aparecio este audio comentario de richard hipp en un podcats, el adudio desafortunadamente esta en ingles.. la direccion urls es la siguiente http://www.twit.tv/floss26
Saludos Gerardo Antonio

Adoble se une a la SQLite Consortium

jueves, 28 de febrero de 2008

Adobe se ha unido a Mozilla y a Symbian para soportar el trabajo del SQLite Consortium, que es asegurar el que los desarrolladores de SQLite tienen los recursos ($) suficientes para continuar mejorando esta base de datos tan pequeña como poderosa, flexibile y popular.

Esta decisión coincide oportunamente con el lanzamiento del nuevísimo Adobe Integrated Runtime (AIR), el entorno de ejecución para crear aplicaciones ricas para Internet usando Flash, Flex, HTML y Ajax que también pueden instalarse como aplicaciones para el escritorio, de una manera similar a como también puede hacerlo el Silverlight de Microsoft.

Adobe también usa SQLite en su producto Photoshop Elements desde su versión 6.0 en lugar del Microsoft Access que usaba antes.

Articulo completo The Register

Sqlite Video de Richard Hipp

domingo, 24 de febrero de 2008

Aqui les dejo un video de Richard Hipp el creador de Sqlite, recomiendo que lo vean puesto que explica muchos sobre el funcionamiento interno de sqlite, el unico inconveninete es que tiene subitulos en ingles, desde ya invito a que alguien nos ayude a traducirlo..

Saludos Gerardo Antonio

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.