Web BizarroWeb Bizarro

Suscríbete a nuestro Newsletter

X

Únete a nuestra lista de correos para recibir semanalmente actualizaciones de nuestro contenido.

Bases de datos NoSQL, cuando usarlas

Bases de datos NoSQL, cuando usarlas 28.SEP.15

Alvaro José Rios Ch
Fundador WebBizarro

Muchos de ustedes ya deben conocer las bases de datos NoSQL, pero para los que no déjenme contarles un poco. Este concepto no es nada nuevo, ya se venia manejando desde 1960 sin embargo se ha vuelto popular en los últimos años gracias a proyectos como MongoDB, Redis o Apache Cassandra, la principal ventaja de este tipo de bases de datos es la velocidad y flexibilidad.

Contrario a lo que pueden llegar a pensar las bases de datos NoSQL no suprimen del todo el uso de sentencias SQL por eso comenzaron a referirse a ellas como No only SQL, del mismo modo no son mejores o peores que las bases de datos SQL, simplemente depende el uso que le demos, finalmente debemos destacar que las bases de datos SQL están comenzando a tomar algunas características de NoSQL y viceversa.

Entonces que opción debemos tomar para nuestro proyecto y la respuesta es depende, ¿de qué? Simple, de la naturaleza del proyecto y de los datos que vamos a manejar, por ejemplo si los datos varían enormemente como un perfil de contacto por ejemplo entonces la base de datos NoSQL es una buena opción.

Las bases de datos NoSQL son muy flexibles ya que en ellas los datos se guardan en documentos clave valor, no hay un esquema definido, generalmente no usan joins, permiten guardar datos de cualquier tipo en cualquier momento sin verificación, son escalables y usan JSON para hacer las consultas.

Por lo que si tu sistema no debe preocuparse de cosas como la integridad de los datos y no puedes definir los requerimientos (en cuanto a los datos que necesitas) entonces las bases de datos NoSQL son para ti.

Un caso de estudio claro puede ser una red social, un blog o como les decía antes un perfil de contacto, les explico un poco mejor que campos puede tener un perfil de contacto, Nombre, Email, teléfono, dirección, pero que pasa si tengo más de un teléfono y quiero colocar el de mi casa, mi oficina, igual con los emails o las direcciones, con una base de datos SQL tendríamos que crear varias tablas y hacer joins para consultar estos datos y los queries serían mucho más lentos, con las bases de datos NoSQL no tenemos ese problema ya que al no tener un esquema definido podemos guardar lo que deseamos sin ningún problema, no necesitamos crear joins y las consultas son mucho más rápidas ya que todos los datos están en el mismo documento.

{

    "nombre": "nombre",
    
    "telefono": {
    
        "home": "111-111-1111",
        
        "work": "222-111-2222"
    
    },

    "email": {
    
        "work":"email1@demo.com",
        
        "home":"email2@demo.com"
    
    },

    "direccion": {
    
        "home":"dirección 1"
    }
}

Sin embargo hay momentos en que los sistemas NoSQL no son una buena opción como cuando es importante la integridad de los datos, cuando guardamos números telefónicos o algun comentario en un post no es tan importante validarlo, sin embargo si hablamos de un sistema de gestión de almacenes o un sistema bancario la cosa cambia ya que esos datos son importantes (a nadie le gusta que no aparezca el dinero correcto en su cuenta), para estos casos las bases de datos SQL son la mejor opción.

Bueno espero que les haya sido informativo y estos artículos relacionados con el desarrollo MEAN los voy a ir dejando poco a poco ya que pidieron más información la última vez pero es un tema amplio así que vamos con calma.