NoSQL significa "No sólo SQL". La idea de nombrar un principio con una posibilidad negativa parece curiosa, como si demostrara que se ha superado una limitación. Siga la guía...
SQL (Lenguaje de Consulta Estructurado) : Lenguaje informático normalizado utilizado para manejar bases de datos relacionales.
Base de datos relacional: conjunto de información desglosada y organizada en matrices denominadas relaciones o tablas. El contenido de la base de datos puede procesarse mediante operaciones de álgebra relacional como la intersección, la unión y el producto cartesiano.
Los sistemas de gestión de bases de datos relacionales (RDBMS) deben cumplir los principios ACID
A C I D
- Atomicidad: una "transacción" no puede dividirse.
- Consistencia: una transacción siempre preserva la integridad de la base de datos y respeta todas las reglas de la base de datos. O bien se completa, o bien nunca ha tenido lugar.
- Aislamiento: aunque varias transacciones se completen simultáneamente, su efecto final debe ser el mismo que si se hubieran completado una tras otra. Si una transacción da lugar a un error, éste no tendrá ningún efecto sobre ninguna otra transacción.
- Durabilidad: si una transacción se ha completado, debe permanecer completada, incluso si el sistema se bloquea inmediatamente después. La base de datos debe almacenarse en una memoria no volátil.
Sin embargo, debido a la explosión de la cantidad de datos a procesar y, sobre todo, a su puesta en red en la nube, nos hemos topado con las condiciones demasiado rígidas de ACID. Eric Brewer demostró que es imposible que un sistema distribuido pueda garantizar más de dos de las tres condiciones de Coherencia, Disponibilidad y Tolerancia a la Partición en un momento dado. El Teorema CAP sirvió de base para el desarrollo de NoSQL.
Cuando se emparejan dos bases de datos, hay que duplicar varios elementos para cumplir las condiciones ACID, pero si hay que emparejar 20 o 200 elementos, rápidamente se convierte en una imposibilidad de hardware.
NoSQL garantiza que se cumplan al menos dos de las tres condiciones siguientes
- que todos los nodos del sistema vean exactamente los mismos datos exactamente al mismo tiempo ;
- que todas las consultas reciban una respuesta
- que ningún fallo menos importante que una interrupción total de la red impedirá que el sistema responda correctamente. Si la red se divide en subredes, cada una puede funcionar de forma independiente.
De este modo, en general se da prioridad a la disponibilidad, la velocidad de procesamiento es prodigiosa y las respuestas se proporcionan con los datos más actualizados posibles.
Para el mundo de la educación
Inicialmente concebidas para alcanzar una velocidad de procesamiento de grandes volúmenes de datos o para tratar datos no estructurados, estas posibilidades son cada vez más comunes para las instituciones educativas.
Cuando se trata de procesar datos en tiempo real procedentes de plataformas de gestión de cursos, o de conseguir que decenas de bases de datos de distintos departamentos y en distintos sistemas se comuniquen entre sí, para nuevos usos, para utilizar datos no estructurados como fotos o vídeos, NoSQL ofrece una solución flexible y fácil de alcanzar para los programadores que hayan comprendido sus principios. Existen varios cursos introductorios y tutoriales.
MongoDB es un software noSQL de código abierto.
Por último, elejemplo de la compañía de seguros MetLife es edificante. En sólo tres meses han conseguido con NoSQL lo que llevaban años intentando sin éxito. Varias universidades y campus se encuentran en la misma situación. Existe una solución.
Ilustración: pisotskii - ShutterStock
Referencias
NoSQL: 5 minutos para entenderlo - Amine Chaghal - Neoxia
http://blog.neoxia.com/nosql-5-minutes-pour-comprendre/
10 minutos para entender...NoSQL - Masclet
http://davidmasclet.gisgraphy.com/post/2010/06/09/10-minutes-pour-comprendre...NoSQL
ACID - Wikipedia
http://en.wikipedia.org/wiki/ACID
Base de datos relacional - Wikipedia
http://fr.wikipedia.org/wiki/Base_de_donn%C3%A9es_relationnelle
CAP - Wikipedia
http://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_CAP
Tutoriales NoSQL
http://nosql.developpez.com/cours/
Mongo DB - Base de datos NoSQL
http://www.mongodb.org/
MetLife utiliza NoSQL para su servicio de atención al cliente - Doug Henschen - InformationWeek
http://www.informationweek.com/software/information-management/metlife-uses-nosql-for-customer-service-breakthrough/d/d-id/1109919?