Tecnología NoSQL
NoSQL es un termino para describir BD que son diferentes a las BD relacionales
Esquema prescindible y desnormalización en especial
En 1998 por Carlo Strozzi e instaurado por en 2009 por Eric Evans
En los 80 almacenaban datos en gestores relacionales
- Aplicaciones de banca - CRM (Costumer Relationip Magagement) - Sistemas sanitarios - Sistemas académicos - ERP (Enterprise ResoursePlanning)
Subtopic
- Esquema prescindible - Desnormalización - Escalan horizontalmente - No garantiza ACID
Big Data
3 V's (2013)
- Volume: gran cantidad de datos - Velocity: necesidad de análisis rápidamente - Variety: datos estructurados
7 V's (2016)
- Variability: datos cuyo significado cambia constante - Veracity: veracidad y precisión - Visualisation: presentar los datos de forma comprensible - Value: extraer información para la toma de decisiones
Principios de NoSQL
El control transaccional ACID no es importante
Los JOINS tampoco lo son. En especial los complejos y distribuidos.
Algunos elementos relacionales son necesarios y aconsejables como las claves (Keys).
Gran capacidad de escabilidad y de replicación en múltiples servidores.
Arquitectura
Proveen consistencia débil
Emplean una arquitectura distribuida
Generalmente ofrecen estructuras de datos simple
Las consultas se realizan exclusivamente por key o índice
Teorema CAP
- Consistencia - Disponibilidad - Tolerancia a la partición
Modelos de consistencia
- Basically Available - Soft state - Eventually Consistent
Las características BD clave-valor
- El valor asociado con la key es opaco - Operaciones atómicas a nivel de key - Los datos se almacenan basados en una única clave (key), en un hash-map
BD clave-valor: casos de uso
- Información de sesión en aplicaciones web - Perfiles y preferencias de usuario - Carritos de la compra
Aplicaciones que requieren
- Datos interconectados (Servicios de redes sociales) - Consistencias para un conjunto de keys - Búsquedas para la información almacenada en valor
Características de BD documental
- Datos almacenados, como documentos - Esquema flexible - Escalabilidad horizontal atráves de shading - Operaciones atómicas a nivel de documento - Documentos contienen su propio metadatos
Casos de uso
- Blogs - Event logging - Datos operacionales a metadatos para apps web y móviles
- Consistencia para un conjunto de documentos
Familias de columnas: casos de uso
- Blogs - Event logging - Contadores - Tiempo de validez por columna (Time-To-Live)
Aplicaciones
Transacciones ACID para operaciones de lectura/escritura
Características de BD
- Los datos se almacenan como nodos (vértices) y enlaces (links-relationships) - ACID es similar a las BD relacionales - Tiene escalabilidad vertical
BD grafos: casos de uso
- Almacenar datos conectados - Aplicaciones especiales o de rutas - Motores de recomendación
Aplicaciones
- Actualizaciones frecuentes de todas las propiedades de nodos y enlaces - Requisitos de escabilidad horizontal
Ventajas
- Masivamente escalables - Alta disponibilidad - Esquema flexible, adecuado para datos dispersos y semiestructurados - (Generalmente) elasticidad predecible
Incovenientes
- Capacidad de interrogación limitada - Consistencia eventual - su programación no es intuitiva - El desarrollo de aplicaciones clientes más complejas