☰ UF2213-Menú

UA4. Modelos avanzados de BD

4. Modelos Avanzados de Bases de Datos

Evolución de los Modelos de Datos

Los modelos avanzados surgen para cubrir necesidades específicas que el modelo relacional tradicional no puede resolver eficientemente:

  • Datos espaciales y temporales
  • Procesamiento analítico a gran escala
  • Estructuras flexibles (documentos, grafos)
  • Computación distribuida

Bases de Datos Deductivas

Características Principales

  • Combinan datos con reglas lógicas
  • Permiten inferencia de nuevo conocimiento
  • Usan lenguajes como Datalog
// Ejemplo de regla deductiva
ancestro(X,Y) :- padre(X,Y).
ancestro(X,Y) :- padre(X,Z), ancestro(Z,Y).

Casos de Uso

  • Sistemas expertos
  • Análisis de redes sociales
  • Procesamiento de reglas de negocio complejas

Bases de Datos Temporales

Modelado del Tiempo

  • Tiempo válido: Cuando los datos son ciertos en la realidad
  • Tiempo de transacción: Cuando se registraron en el sistema
  • Soporte para consultas históricas
CREATE TABLE empleados (
  id INT,
  nombre VARCHAR(100),
  salario DECIMAL(10,2),
  fecha_inicio DATE,
  fecha_fin DATE
);

Bases de Datos Geográficas (GIS)

Funcionalidades Clave

  • Almacenamiento de objetos espaciales (puntos, líneas, polígonos)
  • Operaciones como distancias, intersecciones, áreas
  • Índices especializados (R-trees)
-- Consulta PostGIS (PostgreSQL)
SELECT nombre 
FROM ciudades 
WHERE ST_Distance(
  ubicacion, 
  ST_MakePoint(-3.703790, 40.416775)
) < 100000;

Bases de Datos Distribuidas

Arquitecturas

Tipo Característica Ejemplo
Fragmentación Tablas divididas en nodos Clientes por región
Replicación Datos duplicados en nodos Catálogo de productos

Bases de Datos Analíticas (OLAP)

Bases de Datos Analíticas (OLAP)

Modelo Multidimensional

  • Cubos OLAP: Datos organizados por dimensiones
  • Operaciones: drill-down, roll-up, slice, dice
  • Enfoque columnar para mejor compresión
┌───────────────┐
│   VENTAS     │
├───────────────┤
│ Medidas:      │
│ - cantidad    │
│ - importe     │
│               │
│ Dimensiones:  │
│ - tiempo      │
│ - producto    │
│ - región      │
└───────────────┘

Modelos NoSQL

Tipos Principales

  • Documentales: MongoDB, Couchbase (JSON/BSON)
  • Clave-Valor: Redis, DynamoDB
  • Columnas: Cassandra, HBase
  • Grafos: Neo4j, Amazon Neptune

Bases de Datos XML

Características

  • Almacenamiento nativo de documentos XML
  • Consultas con XPath/XQuery
  • Índices sobre estructura XML
<producto id="123">
  <nombre>Smartphone X</nombre>
  <especificaciones>
    <pantalla>6.5"</pantalla>
  </especificaciones>
</producto>

Bases de Datos Incrustadas (Embedded)

Casos de Uso

  • SQLite: Para aplicaciones móviles/desktop
  • LevelDB: Almacenamiento clave-valor embebido
  • H2: BD relacional en memoria

Nuevas Tendencias

Tecnologías Emergentes

  • Bases de datos multimodelo: Combina varios enfoques
  • Bases de datos en memoria: SAP HANA, Redis
  • Bases de datos blockchain: Almacenamiento inmutable
  • Bases de datos vectoriales: Para IA/ML

Actividad Práctica

Actividad Práctica

Ejercicio: Para cada caso, identificar el modelo más adecuado:

  1. Sistema de recomendaciones basado en relaciones sociales
  2. Aplicación IoT que procesa datos de sensores en tiempo real
  3. Sistema de reporting histórico de ventas con análisis multidimensional

Solución

1. Base de datos de grafos (para modelar relaciones complejas)
2. Base de datos de series temporales (como InfluxDB)
3. Data Warehouse columnar (como Snowflake o Redshift)
↑ Volver arriba

Técnicas de Recuperación de Información

Objetivo de la Actividad

Identificar, formular y aplicar técnicas de recuperación de información adecuadas según el modelo de datos y tipo de gestor implementado en un sistema de información.

Metodologías de Recuperación

Búsqueda Estructurada
  • Consultas SQL en bases relacionales
  • Operadores lógicos (AND, OR, NOT)
  • Filtros por campos específicos
  • Joins entre tablas relacionadas
SELECT WHERE JOIN
Búsqueda Full-Text
  • Indexación de contenido completo
  • Búsqueda por palabras clave
  • Stemming y thesaurus
  • Relevancia y ranking
MATCH() AGAINST() Elasticsearch
Búsqueda por Similitud
  • Algoritmos de distancia (Levenshtein)
  • Búsqueda difusa (fuzzy)
  • Recomendaciones basadas en contenido
  • Modelos vectoriales
LIKE % pg_trgm Word2Vec
Búsqueda Geográfica
  • Índices espaciales (R-tree)
  • Consultas por proximidad
  • Polígonos y áreas de interés
  • Geocodificación inversa
ST_Distance GeoJSON PostGIS
Búsqueda Semántica
  • Análisis de contexto
  • Ontologías y taxonomías
  • NLP para entender intención
  • Knowledge Graphs
SPARQL BERT Neo4j
Búsqueda Multimodal
  • Búsqueda por contenido visual
  • Reconocimiento de audio
  • Análisis de video
  • Metadata embedding
CBIR TensorFlow OpenCV

Técnicas por Tipo de Gestor

Tipo de Gestor Técnicas Principales Ejemplo de Consulta Ventajas
Relacional (SQL) Joins, subconsultas, vistas, procedimientos almacenados SELECT c.nombre, COUNT(p.id)
FROM clientes c JOIN pedidos p
ON c.id = p.cliente_id
WHERE p.fecha > '2023-01-01'
GROUP BY c.nombre
HAVING COUNT(p.id) > 5;
Precisión, consistencia, estandarización
Documental (NoSQL) Consultas embebidas, operadores de array, índices multikey db.productos.find({
  precio: {$lt: 100},
  categorias: "electrónica",
  stock: {$gt: 0}
}).sort({valoracion: -1});
Flexibilidad, rendimiento con datos anidados
Grafos Traversals, pattern matching, algoritmos de grafos MATCH (u:Usuario)-[:COMPRÓ]->(p:Producto)
WHERE p.categoría = "libros"
RETURN u.nombre, COUNT(p) AS total
ORDER BY total DESC LIMIT 10;
Eficiencia en relaciones complejas
Búsqueda (Search) Full-text, faceting, highlighting, fuzzy search GET /productos/_search
{
  "query": {
    "multi_match": {
      "query": "smartphone 5g",
      "fields": ["nombre^3", "descripcion"]
    }
  }
}
Relevancia, escalabilidad, análisis de texto

Caso Práctico: Sistema de Biblioteca Universitaria

Requisitos de Recuperación:

  • Búsqueda exacta por ISBN, autor, título
  • Búsqueda semántica en resúmenes
  • Recomendaciones basadas en préstamos anteriores
  • Búsqueda geográfica de bibliotecas con ejemplares

Implementación Relacional

-- Búsqueda semántica con PostgreSQL
SELECT id, titulo, autor,
  ts_rank_cd(
    to_tsvector('spanish', resumen),
    plainto_tsquery('spanish', 'machine learning')
  ) AS relevancia
FROM libros
WHERE to_tsvector('spanish', resumen) @@
  plainto_tsquery('spanish', 'machine learning')
ORDER BY relevancia DESC;
Índice GIN para acelerar búsquedas full-text:
CREATE INDEX idx_libros_resumen ON libros USING GIN(to_tsvector('spanish', resumen));

Implementación Híbrida

// Búsqueda en Elasticsearch
POST /biblioteca/_search
{
  "query": {
    "bool": {
      "must": [
        {"match": {"titulo": "inteligencia artificial"}},
        {"range": {"año_publicacion": {"gte": 2015}}}
      ],
      "should": [
        {"match": {"resumen": "aprendizaje profundo"}}
      ]
    }
  },
  "aggs": {
    "por_tema": {"terms": {"field": "tematica.keyword"}}
  }
}

Laboratorio: Optimización de Recuperación

Ejercicio 1: E-commerce con 1M+ productos

Proponer técnicas para:

  1. Búsqueda instantánea (typeahead) en nombres de productos
  2. Filtrado por múltiples atributos (marca, precio, valoración)
  3. Búsqueda difusa para corrección de errores
  4. Recomendaciones basadas en historial

Solución Propuesta:

  1. Typeahead: Índice n-gram (trigram) en nombres + Elasticsearch Completion Suggester
  2. Filtrado: Campos faceted en Elasticsearch/Solr + rangos predefinidos
  3. Búsqueda difusa: Fuzzy matching con distancia de Levenshtein (fuzziness: 2)
  4. Recomendaciones: Collaborative filtering con Redis como store de sesiones
// Ejemplo de fuzzy search en Elasticsearch
GET /productos/_search
{
  "query": {
    "fuzzy": {
      "nombre": {
        "value": "iphnoe",
        "fuzziness": "AUTO"
      }
    }
  }
}

Ejercicio 2: Sistema de Salud con Historiales Médicos

Diseñar estrategias para:

  • Búsqueda estructurada por diagnósticos (CIE-10)
  • Búsqueda semántica en notas médicas
  • Alertas por patrones en historiales
  • Protección de datos sensibles

Evaluación de Competencias

Criterios:

  1. Identificación correcta de técnicas según modelo de datos
  2. Formulación adecuada de estrategias de recuperación
  3. Optimización de consultas según estándares del mercado

Proyecto Final:

Diseñar un sistema de recuperación para:

  • Plataforma de noticias con 100K+ artículos diarios
  • Búsqueda en tiempo real con tendencias
  • Clasificación automática por temas
  • Detección de noticias relacionadas

Entregables:

  1. Arquitectura de recuperación propuesta
  2. Técnicas específicas para cada necesidad
  3. 3 ejemplos de consultas optimizadas
  4. Estrategia para actualización en tiempo real


↑ Inicio del Curso
↑ Volver arriba

Distribución de Bases de Datos

Introducción

Las bases de datos distribuidas permiten gestionar datos que están repartidos en distintos nodos de red, ofreciendo ventajas como redundancia, escalabilidad y disponibilidad. En esta unidad se revisan sus formas, arquitectura, mecanismos de distribución y gestión de transacciones distribuidas.

Contenido y Ejemplos Prácticos

🔗 Formas de Distribución

Los datos pueden distribuirse de diferentes formas: replicación, fragmentación o una combinación.

Paso 1: Una base de datos se fragmenta horizontalmente: clientes de Europa en un nodo y de América en otro.
Paso 2: Se replica la tabla de productos en ambos nodos para mayor disponibilidad.
Paso 3: El sistema gestiona consultas automáticamente según localización del usuario.
🏗️ Arquitectura ANSI/X3/SPARC

Define tres niveles: interno (físico), conceptual (lógico), externo (vistas de usuario).

Paso 1: Nivel interno define cómo se almacenan físicamente los datos.
Paso 2: Nivel conceptual describe entidades, relaciones y restricciones.
Paso 3: Nivel externo presenta vistas personalizadas para usuarios o aplicaciones.
🔐 Transacciones Distribuidas

Involucran múltiples nodos. Se requiere control de concurrencia y recuperación.

Paso 1: Usuario transfiere fondos desde banco A (España) a banco B (EE.UU.).
Paso 2: El sistema inicia una transacción en ambos nodos con protocolo 2PC.
Paso 3: Ambas operaciones se confirman juntas o se cancelan para garantizar integridad.
📦 Mecanismos de Distribución de Datos

Incluyen técnicas como el middleware de replicación, control de ubicación y catálogo distribuido.

Paso 1: Se configura un middleware que conecta aplicaciones con bases de datos distribuidas.
Paso 2: El catálogo distribuido registra qué datos están en qué nodo.
Paso 3: Al hacer una consulta, el sistema enruta la petición al nodo adecuado.

✅ Buenas Prácticas

  • Evitar la duplicación innecesaria de datos mediante replicación selectiva.
  • Planificar la distribución para minimizar el tráfico de red.
  • Utilizar protocolos de compromiso (como 2PC) para garantizar integridad.
  • Documentar la ubicación y fragmentación en catálogos distribuidos.


↑ Inicio del Curso
↑ Volver arriba

📘 Distribución de Bases de Datos

📌 En los sistemas modernos, las bases de datos ya no se almacenan únicamente en un servidor central. Para mejorar el rendimiento, la disponibilidad y la escalabilidad, se emplea la distribución de bases de datos, una estrategia que permite repartir los datos entre múltiples ubicaciones físicas.

💡 En este documento exploraremos los conceptos clave relacionados con esta distribución:

  • 🧩 Formas de distribución: cómo dividir o replicar los datos.
  • 🏗️ Arquitectura ANSI/X3/SPARC: modelo en niveles para gestionar BD.
  • 🔄 Transacciones distribuidas: operaciones coordinadas en múltiples nodos.
  • 🔧 Mecanismos de distribución: técnicas como fragmentación y replicación.

✅ Cada sección incluye un Ejemplo On-Off paso a paso para facilitar la comprensión.

🧩 Formas de Distribución

Existen distintas formas de distribuir una base de datos según cómo se dividen o replican los datos en distintas ubicaciones.

Paso 1: Supongamos una empresa con sedes en Lima, Arequipa y Cusco.
📂 Paso 2: Tipos de distribución:
  • 🔸 Fragmentada: cada sede almacena solo sus propios datos.
  • 🔸 Replicada: todas las sedes tienen una copia completa.
  • 🔸 Híbrida: combinación de ambas.
🚀 Paso 3: Esto mejora el acceso local y reduce fallos de red.

🏗️ Arquitectura ANSI/X3/SPARC

Modelo de referencia que separa la base de datos en tres niveles para facilitar su diseño y seguridad.

Paso 1: Niveles de arquitectura:
  • 📦 Interno: cómo se almacenan físicamente los datos.
  • 🧠 Conceptual: estructura lógica de la base de datos.
  • 👤 Externo: vistas específicas para usuarios.
👓 Paso 2: Ejemplo On-Off:
  • El administrador ve el esquema completo.
  • El cliente solo accede a sus facturas.
🔐 Paso 3: Cada nivel es independiente, lo que mejora la seguridad y la flexibilidad.

🔄 Transacciones Distribuidas

Transacciones que involucran operaciones en múltiples bases de datos ubicadas en diferentes nodos.

Paso 1: Un cliente realiza una compra online.
🏬 Paso 2: La transacción afecta:
  • 📦 El almacén (resta stock).
  • 💳 El banco (cobro al cliente).
🛡️ Paso 3: Se usa el protocolo 2PC (Two Phase Commit) para asegurar integridad.

🔧 Mecanismos de Distribución de Datos

Técnicas usadas para fragmentar, replicar y mantener sincronizados los datos en diferentes nodos.

Paso 1: Mecanismos disponibles:
  • 🔹 Fragmentación (horizontal o vertical).
  • 🔹 Replicación (completa o parcial).
  • 🔹 Sincronización entre nodos.
🌍 Paso 2: Ejemplo On-Off: datos de clientes distribuidos por país.
🔗 Paso 3: Las consultas acceden al nodo correspondiente con información actualizada.


↑ Inicio del Curso
↑ Volver arriba