Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4 Créditos
2 horas semanales
● Datos
○ Seguridad
○ Disponibilidad
○ Consistencia Total vs Eventual
○ Restricciones
● Diseño
○ SCHEMALESS
○ PERFORMANCE
○ ESCALABILIDAD
○ Orientado a API vs Orientado a Dominio
Aspectos involucrados
● Infraestructura
○ Cpu, Almacenamiento, Ram, Red, Nodos, Cluster
● Administración
○ Replica, Shard, Sharding, Nodos Virtuales, Roles (usuarios, nodos)
● Desarrollo
○ CRUD Simple
○ Lenguaje simple
○ Pensar en Objetos
○ Librerías Cliente
○ Lógica y restricciones en capa de Datos o en capa de Aplicación
Escalabilidad Horizontal y Vertical
RDBMS
Las BD relacionales
• Utilizan un modelo de datos simple (basado en tablas y relaciones)
• Ofrecen herramientas para garantizar la integridad de datos y la consistencia de
la información (ACID)
• Utilizan un lenguaje de interrogación estándar, simple y potente
• Proporcionan utilidades para asegurar el acceso, manipulación y la privacidad
de los datos
Impulsores NoSql
las 3 V’s (2013)
• Volume: gran cantidad de datos
• Velocity: necesidad de ser analizados rápidamente
• Variety: datos estructurados y no estructurados, densos y
dispersos, conectados y desconectados
• Consistencia, todos los nodos vean los mismos datos al mismo tiempo
• Disponibilidad, garantizar que los clientes encuentra una copia de los datos
solicitados aunque haya nodos caídos en el cluster.
• Tolerancia a la partición, el sistema continúa funcionando a pesar de la
pérdida de mensajes o fallos parciales del sistema.
ACID
• Soft state, los datos en las diferentes réplicas no tienen que ser
mutuamente consistentes en todo momento.
● Consistencia eventual
● Arquitectura distribuida donde los datos están almacenados
de forma redundante en varios servidores.
● Estructuras de datos simples como arrays asociativos
● Las consultas se realizan exclusivamente por key.
● Las consultas complejas se realizan mediante una
infraestructura de procesamiento externo como MapReduce
o Filtros.
Utilizar Nosql cuando:
● Solución de Caché
● Implementa una solución Memory Driven Hash Table distribuida que se
coloca por delante de una base de datos relacional para acelerar las
consultas, cacheando los accesos recientes de la ram.
Clave Valor
● Administración
○ Request Coordinator
○ Consistent Hashing Schemes
○ Replicación y redundancia
○ Estabilización (Se agregan o eliminan nodos)
Clave Valor
Recomendada para:
• Información de sesión en aplicaciones web
• Perfiles y preferencias de usuario
• Cache
• Carritos de la compra
Recomendadas para
• Blogs
• Event logging
• Meta datos para aplicaciones web y móviles
• Alternativas a RDBMS sin consultas complejas
No recomendadas para
• Consistencia para un conjunto de documentos
Almacén de Documentos - Consultas
Los datos se almacenan en familias de columnas donde cada fila tiene una
clave y una o varias columnas. Las columnas no tienen que ser las mismas en
cada fila. Dispone de Operaciones atómicas a nivel de fila .
Familia de columnas
Familia de columnas - Casos de Uso
Recomendadas para
● Análisis de Datos
• Tiempo de validez por columna
No recomendadas
• Transacciones ACID para operaciones de lectura/escritura
Grafos
Recomendadas para:
• Almacenar datos conectados
• Aplicaciones espaciales o de rutas
• Motores de recomendación
No recomendadas para
• Actualizaciones frecuentes de todos o un subconjunto de propiedades de
nodos y enlaces
• Requisitos de escalabilidad horizontal
Otras categorías NoSql
● XML
● Orientadas a Objetos
● Bases de Datos Espaciales
● Bases de Datos Probabilísticas
Más comentarios
Eric Redmond. Seven Databases in Seven Weeks: A Guide to Modern Databases and the
NoSQL Movement.
Ian Robinson, Jim Webber, and Emil Eifrém. Graph Databases 2nd Edition. 2015. O'Reilly
Media
Harrison et al. Next Generation Databases: NoSQL, NewSQL, and Big Data. 2015. Apress.