Qué son las bases de datos NoSQL
En este artículo hablaremos sobre las bases de datos NoSQL de forma fácil y sencilla sin entrar en grandes tecnicismos de forma que cualquiera pueda hacerse una idea de que son las bases de datos NoSQL y que nos ofrecen.
Hasta hace poco cuando hablábamos de bases de datos para una aplicación web casi pensábamos instantáneamente en MySQL o PostgreSQL (yo personalmente uso MariaDB), pero esto tiene que cambiar con la aparición de las bases de datos NoSQL. Cuando hablamos de NoSQL nos estamos refiriendo a todas las bases de datos de este tipo y no un tipo concreto de base de datos.
Características principales de las bases de datos NoSQL
Las bases de datos relacionales que conocíamos hasta ahora tenían el inconveniente de sufrir cuellos de botella y para solucionarlos se echaba mano de la escalabilidad vertical (esto es añadir a un nodo más recursos de hardware como memoria o disco duro más rápido). Con estas bases de datos NoSQL se puede echar mano de la escalabilidad horizontal (esto es añadir más nodos para mejorar el rendimiento) a la que las bases de datos SQL no se terminan de adaptar.
Otra característica importante es que las bases de datos NoSQL no nos imponen un esquema predeterminado de datos formado por tablas y relaciones, sino que nos permiten almacenar los datos en otros formatos como pares clave-valor, documentos, grafos, etc…
Una característica o ventaja de las bases de datos NoSQL frente a las bases de datos relacionales es que permiten trabajar con grandes cantidades de información de forma muy eficiente, de ahí que grandes compañías como Amazon, Twitter, Facebook y otras usen este tipo de bases de datos.
A la hora de realizar consultas a estas bases de datos NoSQL no se emplea el lenguaje SQL por lo general, aunque hay algunas que emplean uno prácticamente igual (Google BigTable con GQL).
Tipos de bases de datos NoSQL
Se podría decir que las bases de datos NoSQL se pueden clasificar en cinco tipos:
- Key-Value (clave-valor): son las más típicas y en estas bases de datos cada elemento está identificado por una llave única. Esto permite encontrar información de una forma muy rápida y además son las más eficientes tanto para lectura como para escritura. Algunos ejemplos de este tipo de bases de datos serían: Google BigTable, Hadoop o Amazon SimpleDB.
- Basada en documentos: en este tipo de bases de datos la información se guarda como un documento y una clave única. En este caso se guarda cierta similitud con las bases de datos del tipo Key-Value pero en este caso el valor es un fichero. En este caso se trata del tipo de base de datos más versátil. Algunos ejemplos de este tipo son: MongoDB y CouchDB.
- Basada en grafos: estas almacenan la información en forma de grafos y son útiles para guardar información en modelos con muchas relaciones. Dentro de este tipo encontramos algunas como: neo4j o Infinite Graph.
- Orientadas a Columnas: este tipo de bases de datos almacena los valores en columnas en lugar de filas. Nos proporcionan una gran velocidad en la lectura de información pero son lentas en las escrituras. El ejemplo más conocido es Cassandra.
Espero que os haya gustado el artículo y ya iremos hablando sobre el tema en futuros artículos ya que creo que darán mucho de que hablar este tipo de base de datos.