Yo NO me relaciono

Y no es que sea una antisocial, anacoreta que le guste vivir en un monte aislada de cualquier signo de humanidad, no, ¡todo lo contrario! Sino que hoy voy a hablar de unas bases de datos peculiares, que aun no siendo nuevas, puede que sean bastante desconocidas para una gran mayoría.

NoSQLNos, los documentalistas, por nuestro oficio, poco beneficio, y quehaceres diarios o al menos los tradicionales, estamos acostumbrados a manejar bases de datos (y sí, no Excell, que total hay quien piensa que es lo mismo); y principalmente las basadas en un modelo entidad-relación, llamadas relacionales, que no vienen sino a ser unas herramientas que interconectan los datos entre sí a través de las diferentes tablas que los almacenan. ¿Pero que os parecería que después de años trabajando con un modelo de este tipo, cuando has aprendido a hacer buenas querys, cuando te has aprendido todos los comandos para crear una bd y su pantallita en negro con letras en blanco, incluso opinando sobre el diseño de la bd, cuando te has tenido que pelear con MySQL y buscar las diferencias con SQL, PL/SQL y MySQL, ¡van y lo cambian!? Pues os presento a las nuevas bd, que como dirían los de las revistas femeninas, son la “it girls” del momento: las NoSQL.

¿Qué es y cuándo nació NoSQL?

Al concepto de NoSQL (Not Only SQL) se le atribuyen más de una definición, pues por un lado se le denomina al conjunto de bases de datos no relacionales creadas con una serie de características, pero también al movimiento surgido en torno a esta nueva tecnología. Lo que hay que tener muy claro de este concepto es que son bases de datos con un lenguaje NO estructurado, no que no estén basadas en SQL o MySQL (en cuanto a marca me refiero).

Aunque el término fue empleado por primera vez en 1998 no fue hasta 2009 cuando se volvió a rescatar de la mano de Johan Oskarsson al celebrar una reunión donde se hablaba de bases de datos en código abierto no relacionales. Realmente no están consideradas como “bases de datos” sino como almacenes y aunque la gramática española pueda considerar ambos términos sinónimos para los desarrolladores de esta tecnología no lo son.

Diferencias con una bbdd relacional

Al principio fue el Verbo o las bases de datos relacionales que permitían realizar interconexiones entre los datos de las diferentes tablas que la componían. Cubrían las necesidades de aquellas instituciones que tenían en su bd su piedra angular, evitaban duplicidades en las tablas y los campos, lo que disminuía la redundancia (tal y como los mortales no-informáticos la entendemos)  y favorecía la normalización de los datos.

Pero al séptimo día nació la Web, el cloud computing, y los software ofrecido como servicio y las bd relacionales se quedaron pobres debido a su configuración estática y la escasa escalabilidad favoreciendo el nacimiento de las NoSQL. Por eso, las bd no relacionales han surgido por la necesidad de muchos desarrolladores Web de almacenar grandes cantidades de datos, en donde su uso en las bd relacionales creaban problemas de escalabilidad ó se requería rapidez en el acceso.

Estas son algunas características específicas que las diferencia de aquellas creadas en SQL que ya recogió el Sr. Tramullas en su blog:

1. están basadas en código abierto (¡que viva el software libre!)
2. soportan la escritura de un gran volumen de datos simultáneamente
3. no tienen un sistema rígido de tablas
4. consistencia eventual: la modificación en un nodo (un campo de la tabla) no implica la comunicación a todos aquellos nodos que lo repliquen. Un ejemplo: si se trabaja con una bbdd relacional y  necesitas cambiar un dato de una tabla, aquella te “obliga” a cambiar el mismo dato en todas las tablas en las que aparezca.
5. escalabilidad horizontal: se pueden añadir más máquinas al sistema
6. tolerancia a fallos, esto es, que si se estropea puede seguir funcionando
7. Alta velocidad en la respuesta de las peticiones

¡Venga vamos a verlo en gráficos! el primero de ellos es un ejemplo de una bd relacional:

 

NoSQL 1

Y este es un ejemplo muy gracioso de cómo funciona una bd no relacional —una NoSQL— salido de Infoq.com:

 

NoSQL 2

Fijaros que ninguno está contenido en una tabla y relacionado con otra, sino que cada uno actúa de manera independiente y que algunos se relacionan y otras no.

Tipos de NoSQL

Todo aquello que no sea una base de datos relacional entra dentro de esta categoría así que tenemos diferentes bases de datos:

1. Documentales: estas nos interesarían especialmente a los documentalistas porque permiten indexar a texto completo. Ejemplos: CouchDB, MongoDB, IMB Lotus Domino,…
2. Orientada a grafos: íntimamente ligada a la teoría de grafos. AllegroGraph, OrientDB,
3. Orientadas a objetos: la información se representa por un objeto como en la programación orientada a objetos. Zope Object Database
4. Clave-valor: se obtienen y se insertan valores a través de una clave única. Ej.:Cassandra de Apache, Big Table de Google, Dynamo de Amazon.
5. Multidimensional: usadas principalmente para crear aplicaciones del Business Intelligence. Ej.: OpenQM
6. Tabulares: almacenan la información en tablas multidimensionales donde la mayoría de las celdas están sin utilizar. Ej.: HBase de Apache, BigTable de Google.

Quién utiliza esta tecnología

Realmente para mencionar a todos aquellos que utilizan esta tecnología tendría que escribir otro post más largo y denso que este, si cabe. Las NoSQL están presentes en la mayoría de las redes sociales, buscadores, portales de empleo, en algunos servidores, periódicos digitales ¡e incluso factorías de dibujos! La lista es tan grande que sorprende la cantidad de detractores que hay de estas tecnologías. Os voy a poner una pequeña lista de algunos que las utilizan:

Facebook                           Twitter
MTV Networks                 Foursquare
The New York Times       Disney Interactive
Google                                Amazon
Linkedin                            AOL
Ask                                     Adobe
Ebay                                  FOX
Last.fm                             Telefónica
Yahoo                               Cisco
Accenture                        Spotify
IBM                                   Symantec
Accenture                        etc.

¿Qué, a que es pequeña la lista? Pues hay más… pero os dejo que seáis vosotros quienes las descubráis.

¿Y existen dentro de la documentación?

Of course, my dear Watson! Para empezar, de la lista mencionada anteriormente hay que decir que muchas empresas, bibliotecas, archivos y centros de documentación utilizan Facebook o Twitter o tienen software de Symantec o usan Google (¿y quién no?); así que, aunque sea de manera indirecta, podríamos decir que existen casos sobre el uso de esta tecnología en nuestra disciplina.

Pero independientemente de ella hay algunos proyectos en los que se intentan adaptar las NoSQL al mundo de la documentación, como el descrito en el artículo de Tramullas que os mencioné, hablaban del experimento de exportar registros a CouchDB y han quedado satisfechos.

Otros ejemplos más cercanos los encontramos en la base de datos de la Biblioteca Digital de la Universidad Complutense de Madrid llamada Dialogyca BDDH, la editorial Aranzadi o el proyecto ADMYTE (Archivo Digital de Manuscritos Y Textos Españoles).

Y por último…

La necesidad actual de guardar cantidades ingentes de datos, procesarlos, almacenarlos y consultarlos está haciendo de las NoSQL la tecnología más apropiada por la cantidad de ventajas que presentan y a medida que sigan desarrollándose irán mejorándolas. Así que si en algún momento queréis cambiar de un sistema relacional a uno no-relacional, esta es vuestra tecnología; pero ¡ojo! estas bases de datos no son la panacea y si por el contrario necesitáis que vuestros datos estén más estructurados seguir apostando por el clásico modelo de bd, que es como tener un vestido negro de fondo de armario (o eso dicen), un imprescindible.

Esti Gómez

Es posible que escriba sobre... edición literaria (tanto papel como electrónica), ciencias historiográficas, biblioteconomía, bibliotecas, etc.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *