martes, 24 de enero de 2012

SQLite

¿Qué es SQLite?

SQLite es una base de datos SQL relacional, ligera, fácil de utilizar, muy confiable y libre. Es muy sencilla de utilizar porque basta con descargar las librerías de su sitio web, desenziparlas y listo, ya es posible construir una base de datos desde una terminal de Windows y haciendo uso de los comandos de SQL apropiados para ello.

Esta es una de las ventajas más grandes de esta base de datos, pues es posible comenzar a crear una aplicación sin perder tiempo en la configuración de un servidor de bases de datos en nuestra computadora. Trabajar con SQLite es como instalar una aplicación y poder utilizarla inmediatamente.

Otra de las características distintivas de SQLite es su portabilidad. SQLite trabaja de manera similar a Java: utiliza una máquina virtual que procesa bytecode generado durante el proceso de compilación. Esta modalidad, perimite que SQLite sea independiente del sistema operativo dentro del que está trabajando.

¿Quién utiliza SQLite?

SQLite es usado en varios productos importantes. Entre ellos podemos mencionar el sistema operativo Mac OS X, el navegador Safari, la base de datos para los contactos en el iPhone, Firefox, Thunderbird, el sistema operativo Android para dispositivos móviles, así como en algunas aplicaciones para dichos dispositivos.

¿Cómo utilizar SQLite?

Primero deberás descargar los archivos necesarios de la página de SQLite: http://sqlite.org/. En este sitio web, podrás encontrar tanto las versiones precompiladas como el código fuente si es que tú mismo quieres compilarlo. En este post, explicaremos brevemente cómo obtener los archivos precompilados para usuarios de Windows (aunque también hay instrucciones para los usuarios de otros sistemas operativos). Primero hay que dirigirse al sitio de SQLite y dar clic en el enlace "Download" (descargar). Esto te llevará a la página de descargas.

Ubica la sección donde aparecen los archivos precompilados para Windows (Precompiled Binaries for Windows) y descarga el archivo con extensión .zip. Puedes agregar el ejecutable al Path de Windows para poder utilizarlo mediante la línea de comandos desde cualquier directorio o puedes dejar dicho ejecutable en el fólder de tu preferencia, abrir una consola o línea de comandos y ubicarte en la dirección de ese fólder.

Una vez que te encuentras en la dirección correcta en la línea de comandos, teclea "sqlite3" seguido del nombre que quieres dar a la base de datos con la que deseas trabajar utilizando la extensión .db, como se muestra a continuación:

Si ya existe una base de datos con ese nombre, SQLite abrirá esta base de datos para que continúes trabajando con ella. Si no es así, se creará una base de datos nueva con este nombre.

Ahora ya puedes comenzar a construir tus tablas. Siguiendo con el ejemplo, supongamos que queremos crear una tabla con los IDs, nombres y capitales de varios países. Para hacer esto, ocuparemos las sentencias de SQL "CREATE TABLE" e "INSERT INTO... VALUES(...)":

No olvides terminar cada enunciado de SQL con un punto y coma (";").

Hay un par de detalles en esta imagen que me gustaría comentar: primero, observa que la columna IDPais es la llave primaria, es de tipo entero y además le coloqué un atributo que incrementa automáticamente el valor de este campo. De esta manera, al insertar los valores correspondientes dentro de la tabla, puedo olvidarme de insertar el valor de la llave primaria y dejar que SQLite los genere automáticamente. El segundo detalle es el comando ".table", con él puedes obtener los nombres de las tablas que has creado en esta base de datos.

Podemos verificar toda la información introducida hasta el momento realizando la siguiente consulta:

Observa que el formato por defecto en el que SQLite despliega la información de la tabla es un tanto ilegible. Puedes cambiar este formato de la siguiente manera:

Como se muestra en la imagen, es posible establecer el ancho para cada columna. Esto es muy útil cuando se tienen valores muy grandes o muy pequeños en alguna columna.

En este post introducimos el concepto de SQLite, sus ventajas, sus usuarios más destacados y la manera en la que puedes comenzar a trabajar con él. Existen muchas otras herramientas que puedes utilizar y muchos otros comandos de configuración que también pueden serte útiles dependiendo de la aplicación que estés desarrollando.

Un muy buen tutorial de SQLite lo puedes encontrar en la siguiente liga:

http://zetcode.com/databases/sqlitetutorial/

Por supuesto, también debes tomar en cuenta la documentación de SQLite:

http://sqlite.org/docs.html

Finalmente, si quieres trabajar con SQLite y Java, puedes encontrar el código y los pasos necesarios para conectarte a SQLite mediante Netbeans en la siguiente dirección:

http://stackoverflow.com/questions/41233/java-and-sqlite

martes, 17 de enero de 2012

Sitios web protestan contra SOPA

Mañana 18 de Enero de 2012, varios sitios web (algunos de ellos bastante importantes) suspenderán sus servicios en protesta contra la propuesta de ley llamada SOPA (por sus siglas en inglés: Stop Online Piracy Act) que fue introducida en forma de propuesta en los Estados Unidos el 26 de Octubre de 2011.

Existe mucha controversia alrededor de este acto, ya que se sugiere, que de llevarse a cabo plenamente, será un paso decisivo hacia la violación del derecho a la libre expresión en internet en cualquiera de sus modalidades.

La controversia alrededor de este asunto ha escalado a tal punto que muchos sitios web planean suspender sus servicios mañana mismo. De acuerdo con mashable.com, esta es una lista de algunos sitios web que mañana no estarán disponibles:

  • Wikipedia
  • Reddit
  • Mozilla
  • WordPress.org
  • Cheezburger Network
  • MoveOn.org
  • Good Old Games
  • TwitPic
  • Minecraft
  • Free Press
  • Mojang
  • XDA Developers
  • Destructoid
  • Good.is

En cada uno de estos sitios se publicaron estas intenciones, por lo que si deseas saber más acerca de alguno de ellos, te recomiendo que lo visites directamente hoy mismo. Por supuesto esta lista probablemente esté incompleta.

Se había especulado acerca de la participación de Google, pero de acuerdo con el sitio International Business Times, Google no suspenderá sus servicios pero sí colocará un enlace en su página principal como apoyo a estas acciones de protesta.

Más información acerca de este acto legislativo se puede encontrar en las siguientes ligas (aunque hay muchas otras más):

What is SOPA?

Why SOPA is Dangerous?

En estos sitios se discute la naturaleza de esta propuesta e incluso hay ligas para obtener el texto original y completo. Formemos una opinión informada e inteligente en cuanto a este asunto.

sábado, 14 de enero de 2012

NOSQL: Más allá de SQL

Las bases de datos de tipo relacional, son las bases de datos más utilizadas y conocidas. Este modelo, ha servido por muchos años de manera satisfactoria para el tratamiento de la información, sin embargo, recientemente se ha comenzado a cuestionar su uso generalizado.

Con el crecimiento sumamente rápido de la información que algunos sectores manipulan día con día, se están buscando formas más eficientes capaces de manejar y organizar grandes volúmenes de datos (en el orden de los Petabytes o Zetabytes). Al grupo de alternativas que han surgido de esta búsqueda, se le conoce como NOSQL.

NOSQL significa "Not Only SQL", por lo que no se trata de descartar el uso de SQL. Es cierto que muchas bases de datos NOSQL no utilizan a SQL como lenguaje de consultas, sin embargo, una de las razones por las cuales surge esta alternativa para administrar grandes cantidades de información fue la flexibilidad que se necesita para cubrir distintas necesidades, por lo que en muchas ocasiones, se trata de combinar las bondades de SQL junto con otras formas de manipular la información.

Con NOSQL desaparecen los esquemas rígidos de las bases de datos relacionales. Esto quiere decir, que las bases de datos NOSQL no utilizan tablas de registros que contienen el mismo número de columnas, sino que usan otras técnicas para poder organizar la información. Con base en estas técnicas, se puede decir que existen las siguientes categorías:

  • Key-value stores: Este tipo de bases de datos organizan la información como pares de llaves y valores. Cada llave (o clave) se corresponde con un único valor o estructura de datos que contiene valores. Esta idea surgió en Amazon y fue implementada con el nombre de Dynamo. Algunos otros ejemplos de este tipo de base de datos son: Apache Cassandra, Project Voldemort, entre otros.
  • BigTable: Es un sistema propietario creado por Google. En este sistema, la idea es crear una especie de "tablas" cuyas filas pueden ser de distintas longitudes, dependiendo de las características de los datos que se vayan a almacenar. También utilizan llaves para identificar a los valores almacenados, por lo que quizá el término más acertado para definir la estructura de esta base de datos sea el de "un mapa multidimensional distribuido".
  • Document-oriented Databases: Son bases de datos que utilizan documentos para guardar sus registros. Los documentos pueden estar en forma de XML, documentos PDF, de procesadores de texto, etc. Cada documento contiene la información de una entrada. Para poder acceder a esta información, también se utilizan llaves que identifican a cada documento. Algunos ejemplos son: LotusNotes, CouchDB, MongoDB.
  • Graph Databases: Como su nombre lo indica, esta base de datos utiliza las cualidades y elementos de los grafos para almacenar la información. Son bases de datos muy apropiadas para manejar grandes cantidades de datos que además contienen un alto grado de complejidad. Ejemplos de este tipo de base de datos son: AllegroGraph, Neo4j, OrientDB.

El tratamiento de la información se encuentra en constante evolución. Si bien estas propuestas parecen prometedoras, debemos estar atentos a las innovaciones que se presentan en las mentes de los investigadores pues quizá a partir de ellas o a pesar de ellas pueda surgir otro método revolucionario capaz de satisfacer nuestras actuales necesidades de administración y presentación de la información.

martes, 10 de enero de 2012

El Explicador: un podcast para aprender a disfrutar la ciencia

Imagen: blog.elexplicador.info

La palabra Ciencia siempre ha inspirado un cierto temor e incluso aversión entre todos los que nos consideramos simples mortales. Cuando escuchamos alguna noticia relacionada con un trabajo científico normalmente nos encontramos con términos casi imposibles de pronunciar y que parecen ser aún más difíciles de comprender.

La sensación que produce toparse con los temas de la ciencia se parece más al temor que al asombro. Esto es natural si pensamos que uno de los miedos más naturales que puede experimentar un ser humano es el miedo a lo desconocido. Después de todo, no es a la oscuridad a lo que tememos sino al hecho de no saber qué horrores se esconden tras ella.

Pues bien, para conquistar estos temores y aprender a valorar, amar y sentir curiosidad por la ciencia, hoy quiero recomendar un programa de radio llamado El Explicador que está a cargo de los biólogos Enrique Ganem y María de los Ángeles Aranda. Este programa se transmite de Lunes a Viernes a las 20:00 hrs. a través de la estación de radio MVS y se puede escuchar también en línea en el sitio de la estación, así como descargarse en forma de podcast para aquéllos a los que se les dificulte el horario o los días de transmisión.

En este programa, se dan respuesta a preguntas que el público envía a su conductor, Enrique Ganem, vía correo electrónico. Los días martes se dedica la hora entera a desarrollar un tema que elige el público mediante votación también por correo electrónico. Lo que hace diferente a este programa es la claridad y la sencillez con que se abordan distintos temas científicos así como la riqueza en el contenido de éste. La forma en que Enrique Ganem parece conversar con quienes escuchamos, propicia la curiosidad, estimula el aprendizaje y provoca la admiración hacia lo que la mente y el talento de la humanidad han alcanzado a lo largo de su historia.

Entérate del lado humano y fascinante de quienes construyeron los bloques fundamentales de la ciencia así como de descubrimientos recientes en cuanto a medicina, astrofísica, biologia, tecnología, ciencias de la conducta, etc. Todo ello narrado de una manera amena y sumamente entretenida.

Si quieres además saber para qué es útil mirar hacia el espacio, cómo es que somos testigos de los destellos del nacimiento del universo sin siquiera sospecharlo o los colores de las alas de una mariposa que vivió hace cientos de millones de años, escucha el programa en alguna de sus modalidades (radio, internet o podcast) y descubrirás porqué la ciencia es el verdadero tesoro de la humanidad, algo muy cercano y cotidiano que no tiene nada de extraño ni difícil para aquéllos que se aventuran en ella.

Este es el enlace a la página de MVS:

http://www.noticiasmvs.com/podcasts/El-explicador

Este es el sitio del Podcast No oficial del Explicador donde puedes encontrar los episodios y suscribirte vía iTunes o RSS:

http://www.elexplicador.info/

Para iniciar bien el año: iniciemos aprendiendo algo nuevo todos los días.