Que son Base de datos no relacionadas o NoSQL

Base de datos no relacionadas – Muchas veces nos hemos topado que a la hora de crear nuestras aplicaciones o sistemas necesitamos elegir una base de datos para nuestro proyecto y siempre pensamos en las bases de datos como SQL server o Mysql.

Pero el mundo de la programación cambia rápidamente y las bases de datos no son la excepción, en los últimos años tenemos grandes avances y cada vez los desarrolladores optan por usar una base de datos no relacionadas.

SQL

Para entender que son los NoSQL o Base de datos no relacionadas hay que entender el principio básico.

Structured Query Language o Lenguaje de consulta estructurada, es una forma de gestionar  bases de datos de manera estructural, es decir tenemos que relacionar información con otra información.

Las bases de datos podemos hacer actualizaciones, altas, bajas etc, y todo esto lo hacemos por la relación y la estructura de la información, estos se componen mediante tablas que llevan una union a otras tablas, en ocaciones no podemos hacer modificaciones o borrar un elemento porque esto afecta a las tablas adyacentes, esto se llaman tambien SGBDR (Sistema de Gestión de Bases de Datos Relacionales).

NoSQL o base de datos no relacionadas

Carlo Strozzi usó el término NoSQL en 1998 para referirse a su base de datos. Era una base de datos open-source, ligera, que no ofrecía un interface SQL, pero sí seguía el modelo relacional1​ (Strozzi sugiere que, ya que el actual movimiento NoSQL «Se sale completamente del modelo relacional, debería, por tanto, haberse llamado ‘NoREL’, o algo así.»)2

Eric Evans, un empleado de Rackspace, reintrodujo el término NoSQL cuando Johan Oskarsson de Last.fm quiso organizar un evento para discutir bases de datos distribuidas de código abierto. El nombre intentaba recoger el número creciente de bases de datos no relacionales y distribuidas que no garantizaban ACID, atributo clave en las SGBDR clásicas.

fuente: wikipedia

 

NoSQL no es nuevo, es un concepto que se viene trabajando, pero nace de la necesidad de mover y administrar valores sin tanta problemática.

Ejemplo mas practico es el de google, hace unos años y con la creciente tan grande del buscador de google decidieron cambiar sus bases de datos con noSQL las búsquedas son mas rápidas y están ordenados de una forma mas eficiente, la carga del servidor y de sus productos se realizaban de forma mas rápida.

Pero no solo esta gran empresa cambio a nosql, si no grandes de la industria como Amazon, twitter, facebook hicieron el mismo cambio por la creciente tan grande que tenían en el consumo de información.

En NoSQL tenemos los siguientes tipos:

  • Documentos
  • Clave valor
  • Grafos
  • Columnas

Donde la mas popular es por documentos y  mayormente se usa JSON como la respuesta de retorno.

Desventajas de NoSQL

Ya hemos tocado sobre las ventajas de las base de datos no relacionadas:

  • Rápida
  • ligeras
  • mayor escalabilidad
  • Menos procesos
  • se trabaja con documentos y es mas fácil agregar nuevos campos
  • no hay relaciones con otras tablas
  • puedes tener mucha información en un solo documento

pero cuales son las desventajas de ellas

Una de las desventajas son las llamadas transacciones, Generalmente estan en documentos y en estos vienen toda la información, es decir que pueden llegar a ser bastante mas fácil de tener estos datos, modificar y quedar archivos con errores, a diferencia de las transacciones que si algo falla todo vuelve a la normalidad.

Otra desventajas son los costos, ya que nosql no lo aguanta cualquier servidor estos tienen un costo mas elevado en los hosting, amazon, google y azure tienen servidores que aguantan esta tecnología pero los costos son un poco elevado aún.

Si no eres ordenado o no tienes bien estructurado como se guardara la información puedes hacer que tus llamadas tarden o tengas que hacer procesos mas largos.

En conclusión

SQL y Nosql no están peleados, podemos dividir las tareas aunque aveces implica un poco mas de trabajo para nosotros.

Usemos NOSQL para proyectos donde necesitemos hacer consultas rápidas de información por ejemplo perfiles, configuraciones, posición de GPS , búsquedas etc.

Usemos SQL para pagos, servicios, datos que necesiten tener relaciones, compras etc.

Esto queda en la imaginación del programador y las especificaciones del proyecto.

 

 

 

 

por Cesar Flores

Programador de tiempo completo, Gamer de medio tiempo y fotógrafo ocasionalmente, me gusta el front-end y mi framework favorito es angular aunque no por eso le hago el feo a un nuevo lenguaje.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.