Skip to main content

Tema 2 - NoSQL

Page 1

NoSQL


NoSQL - Resumen


Datos Estructurados y No Estructurados ► ►

v v v v v

Los datos en forma tabular son más comprensibles (están estructurados) Semiestructurados y No estructurados (85%) No se ajustan al modelo de bases de datos relacionales No tienen un esquema No utilizan SQL ni permiten los joins No garantizan la propiedad ACID Escalan horizontalmente


Tipo de bases de datos ►

Clave-valor simples

►

Clave-valor sofisticadas

►

Documentos

►

Grafos


Teorema CAP ►

Consistencia

►

Disponibilidad

►

Tolerancia a Particiones


SQL ► ►

►

Interpretación de datos Usos: v Almacenar datos v Consultar datos v Consistencia v Normalización (3N) Limitaciones: v Capacidad del proceso v Necesidad de disco

OLTP (On-Line Transactional Processing): v Es un sistema que gestiona aplicaciones orientadas a transacciones online. v Es un sistema de modificación de base de datos online. OLAP (On-Line Analytical Processing): v Es un sistema en línea que reporta a consultas analíticas multidimensionales como informes, pronósticos, etc. v Es un sistema de respuesta de consulta de base de datos online.


SQL - OLTP ►

► ►

Bases de datos orientadas al procesamiento de transacciones. Una transacción genera un proceso atómico (que debe ser validado con un commit, o invalidado con un rollback). Puede involucrar operaciones de inserción, modificación y borrado de datos CRUD. El proceso transaccional es típico de las bases de datos operacionales. q

q

q

q

El acceso a los datos está optimizado para tareas frecuentes de lectura y escritura. (Por ejemplo, la enorme cantidad de transacciones que tienen que soportar las BD de bancos o hipermercados diariamente). Los datos se estructuran según el nivel aplicación (programa de gestión a medida, ERP o CRM implantado, sistema de información departamental...). Los formatos de los datos no son necesariamente uniformes en los diferentes departamentos (es común la falta de compatibilidad y la existencia de islas de datos). El historial de datos suele limitarse a los datos actuales o recientes.


SQL - OLAP ►

►

Bases de datos orientadas al procesamiento analítico. Este análisis suele implicar la lectura de grandes cantidades de datos para llegar a extraer algún tipo de información útil: tendencias de ventas, patrones de comportamiento de los consumidores, elaboración de informes complejos… etc. Este sistema es típico de los datamarts. q

q

q q

El acceso a los datos suele ser de sólo lectura. La acción más común es la consulta, con muy pocas inserciones, actualizaciones o eliminaciones. Los datos se estructuran según las áreas de negocio, y los formatos de los datos están integrados de manera uniforme en toda la organización. El historial de datos es a largo plazo, normalmente de dos a cinco años. Se suelen alimentar de información procedente de los sistemas operacionales existentes, mediante un proceso de extracción, transformación y carga (ETL).


SQL ►

Normalización: eliminar redundancia de datos

►

SQL: lenguaje de consulta estructurado, para recuperar la información

►

Modelo Entidad Relación para diseñar

►

Formas normales: son aplicadas a las tablas de una base de datos. v 1FN: atributos atómicos (es atómico si los elementos son simples e indivisibles). ü No debe existir variación en el número de columnas. ü Esta forma normal elimina los valores repetidos dentro de una base de datos. v

2FN: cada fila debe ser asociada a una única clave irrepetible.

v

3FN: sin dependencias transitivas dentro de una tabla.


SQL

3FN

1FN 2FN

Modelo Relacional

PK


SQL ► ►

Algebra relacional RDBMS: Atómica, Consistente, Aislada, Durable

Proyección

Group By/Aggregate

Filtros

Join


NoSQL ► ► ► ► ► ► ►

No se ajustan al modelo de bases de datos relacionales. No tienen un esquema. No utilizan SQL ni permiten los joins. No garantizan la propiedad ACID. Escalan horizontalmente. Usan la memoria principal del computador. Resuelven el problema de los altos volúmenes de información y la inmensa cantidad de consultas y transacciones diarias, pero, no son relacionales.


Tipología BD NoSQL 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.

Grafos

Clave Valor

Wide Column

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.

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.

hacen hincapié en la simplicidad y son ú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.

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. Cassandra o HBase, permiten realizar consultas en grandes conjuntos de datos y almacenan los datos en columnas, en lugar de filas.


MongoDB ► ► ► ► ► ► ► ► ► ► ►

Fue creado por 10gen en el 2009 (ahora mongodb). Almacena documentos semiestructurados tipo JSON. Orientado a desarrollo web (JSON con JavaScript). Filosofía de almacenar los datos de manera cercana al paradigma OOP (no es relacional). Optimizada para operaciones OLTP sobre un solo documento. Esquema “Flexible” y semi estructurado, facilita las listas y anidaciones. Escalable a billones de documentos, tamaño óptimo de los documentos 16MB. Open source. Los despliegues en vertical y en modo clúster son eficientes. Gestión variada: Atlas, On-Premise. Entorno visual: MongoDB Compass, MongoBooster, Robot3T, otros… https://docs.mongodb.com/manual/introduction/

https://developer.mongodb.com/quickstart/cheat-sheet/


Modelado con MongoDB ► ► ► ►

Modelo normalizado No tiene operación Join Actualización de datos eficiente Consulta de datos algo ineficiente


Modelado con MongoDB ► ► ► ►

Desnormalizado Embebido Actualización de datos ineficiente Consulta de datos eficiente


Preparando el entorno de MongoDB


Preparando el entorno de MongoDB


Turn static files into dynamic content formats.

Create a flipbook
Tema 2 - NoSQL by DIRECCIÓN DE EDUCACIÓN EN LINEA - UDLA - Issuu