Bases de Datos NoSQL
- NoSQL: Tipos y Beneficios
- Cómo elegir una base de datos NoSQL
- Bases de datos NoSQL para empresas
NoSQL es un enfoque de las bases de datos que representa un cambio de los tradicionales sistemas de gestión de bases de datos relacionales. Para definir NoSQL, es útil comenzar describiendo SQL, que es un lenguaje de consulta utilizado por las BBDD relacionales.
Las bases de datos relacionales se basan en tablas, columnas, filas o esquemas para organizar y recuperar datos. Por el contrario, las bases de datos NoSQL no se basan en estas estructuras y utilizan modelos de datos más flexibles.
NoSQL puede significar "no SQL" o "no sólo SQL".
Dado que las BBDD SQL han estado fallando cada vez más en satisfacer las necesidades de rendimiento, escalabilidad y flexibilidad que necesitan las aplicaciones de la próxima generación que requieren datos intensivos, las empresas mainstream han adoptado bases de datos NoSQL.
NoSQL es particularmente útil para almacenar datos no estructurados, que están creciendo mucho más rápidamente que los datos estructurados y no encaja en los esquemas relacionales y sus tipos de datos establecidos.
Los tipos comunes de datos no estructurados incluyen: datos de usuario y sesión; Chat, mensajería y datos de registro, datos de series de tiempo tales y datos de dispositivos además de objetos grandes como video e imágenes.
Tipos de base de datos NoSQL
Se han creado varias variedades de bases de datos NoSQL para soportar necesidades específicas y casos de uso. Éstos se dividen en cuatro categorías principales:
Bases de datos de valores clave: las bases de datos NoSQL de valor-clave hacen hincapié en la simplicidad y son muy útiles para acelerar una aplicación que admita el procesamiento de alta velocidad de lectura y escritura de datos no transaccionales. Los valores almacenados pueden ser cualquier tipo de objeto binario (texto, video, documento JSON, etc.) y se accede a través de una clave. La aplicación tiene control total sobre lo que se almacena en el valor, convirtiéndolo en el modelo NoSQL más flexible. Los datos se comparten y se replican en un clúster para obtener escalabilidad y disponibilidad. Por esta razón, las bases de datos de valores clave a menudo no admiten transacciones. Sin embargo, son muy eficaces en aplicaciones de escala que se ocupan de datos de alta velocidad y no transaccionales.
Base de datos de documentos: Las bases de datos de documentos suelen almacenar documentos JSON, XML y BSON. Son similares a las bbdd de valores clave, pero en este caso, un valor es un solo documento que almacena todos los datos relacionados con una clave específica. Los campos populares del documento pueden indexarse para proporcionar una recuperación rápida sin conocer la clave. Cada documento puede tener la misma estructura o una estructura diferente.
Bases de datos de columnas anchas: Las bases de datos NoSQL de columnas anchas almacenan datos en tablas con filas y columnas similares a las BBDD relacionales, pero los nombres y los formatos de las columnas pueden variar de fila a fila en la tabla. Las columnas de columnas anchas agrupan columnas de datos relacionados juntos. Una consulta puede recuperar datos relacionados en una sola operación porque sólo se recuperan las columnas asociadas con la consulta. En una BBDD, los datos estarían en diferentes filas almacenadas en diferentes lugares del disco, requiriendo múltiples operaciones de disco para su recuperación.
Bases de datos de grafos: una base de datos de grafos utiliza estructuras de grafos para almacenar, correlacionar y consultar relaciones. Proporcionan una adyacencia libre de índice, de modo que los elementos adyacentes se unen entre sí sin usar un índice.
Las bases de datos multimodales aprovechan alguna combinación de los cuatro tipos descritos anteriormente y, por lo tanto, pueden soportar una gama más amplia de aplicaciones.
Beneficios de NoSQL
Las bases de datos NoSQL ofrecen a las empresas ventajas importantes sobre el RDBMS tradicional, entre ellas:
• Escalabilidad: las bases de datos NoSQL utilizan una metodología de escala horizontal que facilita la adición o reducción de la capacidad de forma rápida y sin interrupciones con el hardware de los productos básicos. Esto elimina el tremendo costo y complejidad de la fragmentación manual que es necesaria al intentar escalar.
• Rendimiento: Simplemente agregando recursos dinámicamente, las empresas pueden aumentar el rendimiento con las bases de datos NoSQL. Esto permite a las organizaciones continuar ofreciendo experiencias de usuario rápidas y confiables con un retorno de inversión previsible.
• Alta disponibilidad: las bases de datos NoSQL generalmente están diseñadas para garantizar la alta disponibilidad y evitar la complejidad que viene con una arquitectura típica que se basa en nodos primarios y secundarios. Algunas bases de datos NoSQL distribuidas utilizan una arquitectura que distribuye automáticamente los datos de forma equitativa entre varios recursos para que la aplicación permanezca disponible para las operaciones de lectura y escritura incluso cuando falla un nodo.
• Disponibilidad: Al replicar automáticamente los datos a través de múltiples servidores, centros de datos o recursos de la nube, las bases de datos NoSQL distribuidas pueden minimizar la latencia y garantizar una experiencia de aplicación consistente dondequiera que se encuentren los usuarios.
Sección NoSQL: