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.

No hay comentarios:

Publicar un comentario