24 Nov 2022 🦂
Modelo y SGBD Relacional
- Peristencia
 - Control de concurrencia
 - Control de integridad y seguridad
 - Productividad
 - Integración de aplicaciones
 - Agnosticismo en consultas: no darle vueltas a consultas enormemente parecidas, tendrán un rendimiento muy disperso
 - Es un modelo conocido y estandarizado
 
Desventajas del modelo relacional
- No siempre es la mejor solución
- Adaptación a necesidades de aplicaciones
- Esquema flexible (personas de distinto tipo)
 - Muchos tipos de objeto
 - Objetos complejos
 
 - Desadaptación de impedancias
 
 - Adaptación a necesidades de aplicaciones
 - Evaluar alternativas
- Sistemas con compromisos de diseño diferentes
 
 - Persistencia políglota (tener distintas bases de datos dependiendo de cada necesidad de conjunto)
 
Hacia otros modelos de datos
- Bases de datos de aplicación no compartidas (microservicios)
 - Big Data
 - Rendimiento para sitios web masivos
 - Escalabilidad horizontal (clusters (añadir servidores))
 - Distribución
 
NoSql
- NoSql es un término “paraguas” (no tiene una definición exacta), Not only SQL
 - Características:
- Modelo de datos no relacional, basado en agregados
 - Esquema flexible (schemaless)
 - Orientación a clusters
 - Open Source
 - Orientación a los problemas de los grandes servicios web
 
 - No es una solución mágica
- Están menos desarrolladas
 - Atomicidad elemental sin transacciones o transacciones de bajo nivel
 - Funcionalidad típica de bases de datos limitada
- Sin control de seguridad
 - Sin control de integridad
 - Consultas elementales
 - Sin lenguaje especializado
 
 - Orientado a procesos → no agnóstico en consultas (hay consultas que en función de cómo se hagan pueden cambiar)
 
 - Implementación del resto de funcionalidad típica en la aplicación
 
Principales modelos de datos NoSQL
- Clave-valor
 - Documental
 - Almacenamiento en columnas
 - Grafo
 
Modelos de datos orientados a agregados
- Agregado: conjunto de objetos relacionados tratado como unidad
 - Unidad típica para:
- Persistencia (almacenamiento)
 - Consistencia/atomicidad (transacciones)
 - Distribución (los datos han de estar en un único nodo, no pueden estar particionados)
 
 - Denormalización habitual
 
Almacenes Clave-Valor
- Asociación clave-valor
 - Recuperación de valor buscando por clave
 - Valor es un agregado opaco a la base de datos
- Sin semántica, tipo void
 - La aplicación da semántica
 
 - Unidad de consistencia/atomiciddad
 
Bases de datos documentales
- Sistema clave-valor
 - Valor no opaco, documento agregado con estructura (un json, un gif, un .txt …)
 - Consulta por clave
 - Consulta por contenido del documento
 
Bases de datos de grafo
- Estructura de datos de grafo
- Nodos con propiedades
 - Relaciones entre nodos (arcos)
- También tienen propiedades
 - Unidireccionales/bidireccionales
 
 
 - Diferente al resto de NoSQL
- Poco orientadas a distribución
 - Transacciones ACID
 - Énfasis en relaciones
 - Consultas complejas
 
 
1 Dic 2022 🪺
Bases de datos en grafo
- 
Escalabilidad de datos:
- Vertical: para pequeñas empresas
 - Horizontal: para empresas grandes (añades más clústers)
 
 - 
Distribución de datos:
- Los datos se reparten entre distintos servidores
 - Mayor rendimiento, disponibilidad
 - Mayor complejidad
 
 - 
Alternativas distribución
- Servidor único (con o sin fragmentación y replicación)
 
 - 
Fragmentación (sharding): fragmentar los datos y repartirlos entre servidores. Cada servidor es responsable de un fragmento (adecuado para datos necesarios en el mismo servidor (agregados)).
 - 
Replicación Maestro-Esclavo: replicar los datos entre los nodos. Estro proporciona escalabilidad en lecturas
- Maestro: gestiona actualizaciones, retransmite actualizaciones a esclavos, defimnidos manualmente o automáticamente
 - Esclavos: repiten los datos
 
 - 
Replicación entre iguales: todas son réplicas equivalentes (todas pueden hacer actualizaciones y escrituras). Mayor robustez, pues no hay un maestro único.
 - 
Fragmentación + replicación: almacenamiento en columnas
 
TEOREMA CAP
libro → https://www.amazon.es/NoSQL-Distilled-Emerging-Polyglot-Persistence/dp/0321826620
