Download CUÁL ES EL FUTURO DE LAS BASES DE DATOS EN

Document related concepts
Transcript
¿CUÁL ES EL FUTURO DE LAS BASES DE DATOS EN 10 AÑOS?
El panorama en el que vivimos es el de un mundo súper conectado, en el que se
generan millones de datos por segundo a través de aplicaciones, redes sociales,
blogs, foros, entre muchos otros sistemas.
La lluvia de información trae tantas soluciones como problemas a nuestras vidas,
pero muchos más a las personas que tienen que mantener la información de una
manera legible para los humanos, por lo tanto entender las bases de datos como
tan solo un almacén es un grave error en el que podemos estar incurriendo ahora
mismo.
El mundo conectado
Hace 20 años era fácil vivir sin un teléfono celular, sin una cuenta de correo
electrónico, sin acceder a Internet. Hoy en día esa desconexión es casi
impensable por la misma dinámica del sistema globalizado: la familia, amigos, las
empresas, los institutos usan redes sociales; las universidades utilizan sistemas
de e-learning, muchas empresas utilizan sistema de gestión para muchos de sus
procesos, los bancos apoyan el comercio electrónico, mercados financieros y
muchas otras actividades que demuestran que la dinámica está cambiando hacia
el acceso a todos los servicios a través de Internet, incluso se piensa en el futuro
sobre medicina a distancia y objetos conectados entre objetos (The Internet of
Things).
Esto parece una consecuencia de la hiperconexión; como efecto colateral se
generan datos que son almacenados en grandes repositorios de datos de los
proveedores de servicios, los ISPs y, porque no, la NSA.
La situación actual de los sistemas de bases de datos
Existen dos fuertes movimientos en el universo de las bases de datos: uno es el
movimiento “SQL” y otro el movimiento “NoSQL”, ambos con sus pros y contras.
A las bases de datos SQL también se les llama bases de datos relacionales, son
las que más se estudian en las carreras universitarias relacionadas con
computación e informática, han servido mucho para hacer aplicaciones
transaccionales en las que mantener y proteger la integridad de la información es
vital.
Por otro lado tenemos las “NoSQL” , acrónimo de Not Only SQL, que aboga más
por la evolución del Internet; no es exactamente un tipo de base de datos, sino un
conjunto de tipos de bases de datos, por ejemplo, con las bases de datos
documentales que son las más conocidas, se podría hacer prácticamente todo lo
que se hace actualmente con una relacional. Cabe destacar que en NoSQL no
existe ACID (Atomicity, Consistency, Isolation, Durability) como en las bases de
datos relacionales, pero existe algo llamado BASE (Basic Availability, Soft State,
Eventual Consistency) que da características para el manejo de datos.
En la mayoría de los sistemas se usan bases de datos relacionales, por ser las
más tradicionales y las que más se conocen. Muchos de los grandes sitios como
Facebook, Twitter, Google y Yahoo se han cimentado en MySQL o PostgreSQL,
pero en los últimos años se han dado cuenta de que esto no es suficiente y se
originó la llamada “Guerra de las bases de datos”.
Algunos de los protagonistas de esta guerra son empresas y organizaciones muy
conocidas: Facebook, Apache, 10gen, LinkedIn. Aunque muchos servicios
empiezan a usar NoSQL hay otros que son dependientes de SQL: el cambio
implicaría un costo enorme. Una de esas empresas es Twitter: emplea tanto SQL
como NoSQL en sus sistemas, con lo que se demuestra que ambas pueden
convivir perfectamente.
SQL como el pasado de las bases de datos
Las bases de datos relacionales son muy utilizadas actualmente, pero empiezan a
ser insuficientes respecto a la forma de almacenamiento de información en
Internet, con lo que se generan cuellos de botella y estructuras muy rígidas que
impiden un crecimiento constante, a la par con las fuentes de datos.
Hay personas tratando de mantener la llama encendida, como el proyecto
MariaDB (el famoso fork de MySQL) que ha introducido el motor de Cassandra
(una base de datos NoSQL) demostrando que muchas personas apuestan por la
interoperabilidad de SQL y NoSQL.
NoSQL como el futuro
Hablar hoy de NoSQL como el futuro de los sistemas de bases de datos puede
sonar un poco apresurado, pero hay movimientos importantes: el notable afán de
Facebook por crear motores de bases de datos como Cassandra y RocksDB, y el
uso de NoSQL en otras redes sociales como Twitter y Linkedin, que indican que
todo apunta hacia servicios que usen repositorios datos con NoSQL únicamente.
Pero hay dos problemas que retrasan este hecho. El primero es la resistencia al
cambio pues se piensa que los motores de bases de datos no pueden resolver
muchos problemas de la vida real (cabe señalar que la mayoría de los proyectos
no usan ni el 50% de las bondades que ofrece SQL), un ejemplo concreto radica
en los nuevos desarrollos, muchos piensan que con NoSQL no se garantiza la
integridad de los datos, o la consistencia, pero hay métodos para poder hacer esto
con bases de datos documentales por nombrar alguna.
El origen de este problema, en mi opinión es tomar el tema de NoSQL desde un
punto de vista SQL: es como comparar un automóvil con un helicóptero, ambos
sirven para transportarse hasta la ciudad, pero el funcionamiento de cada uno de
ellos no es similar, pilotar un helicóptero pensando que es automóvil es un grave
error.
El segundo gran problema es la diversidad de tipos de NoSQL que existen:
clave/valor, documentos, grafos, tabular, entre otras. Las personas se confunden y
abruman al tener que decidir cuál usar. Esa elección puede ser errada. Siempre
será una apuesta muy fuerte saber si tu proyecto se alineará adecuadamente con
el tipo de base de datos que se ha elegido.
Para hacer esta elección es recomendable tener claro lo siguiente:



Qué tipo de proyecto se hará, si es para Internet o para el uso en intranet.
Cuál es la cantidad esperada de usuarios y si muchas de las funciones
deben hacer uso de las transacciones complejas, o si, de lo contrario son
escrituras y lecturas manejadas desde el software.
Qué tecnología se va a usar para el desarrollo (si usa Django por ejemplo,
lo recomendable es usar BD Relacional, ya que es más natural el manejo
de los datos en aplicaciones hechas en ese framework).
Con esos tres puntos claro se puede ver en el catálogo de opciones qué base de
datos se adapta más a lo que se busca. Este es un sitio muy bueno para saber
información sobre los motores de BD NoSQL.
Derrumbando un gran mito
Existe un gran mito, muy difundido entre los PRO-SQL, y es que piensan y
pregonan que “en bases de datos NoSQL no existen estructuras”. Esta idea
podría hacer referencia a una frase célebre dicha en una telenovela venezolana de
los noventa llamada “Por Estas Calles” y decía así: “Como vaya viniendo, vamos
viendo”, haciendo referencia a la improvisación, pero no, en NoSQL, existen
estructuras, que las estructuras son más flexibles en comparación a SQL ya es
otra cosa y de aquí nace el término schema-free.