☰ UF2213-Menú

UA2. Introducción a las bases de datos

2. Introducción a las Bases de Datos

Concepto y Origen de las Bases de Datos

Una base de datos (BD) es un conjunto organizado de datos estructurados que se almacenan electrónicamente. Los Sistemas Gestores de Bases de Datos (SGBD) son el software que permite:

  • Crear y mantener bases de datos
  • Gestionar el acceso concurrente
  • Garantizar la integridad y seguridad

Origen: Surgen en los años 60 para resolver problemas de:

1. Redundancia en archivos planos
2. Inconsistencia de datos
3. Dificultad en acceso concurrente
4. Falta de estandarización

Evolución Histórica

Cronología

  • 1960s: Sistemas basados en archivos
  • 1970s: Modelos jerárquico y en red
  • 1980s: Revolución relacional (Codd)
  • 1990s: Objetos y SQL extendido
  • 2000s: NoSQL y Big Data

Hitos Tecnológicos

1969 - IMS (IBM) primer SGBD jerárquico
1970 - Modelo relacional de Codd
1979 - Oracle primera BD relacional comercial
1990s - MySQL, PostgreSQL
2000s - MongoDB, Cassandra

Objetivos y Servicios de un SGBD

Principales funciones que ofrece un SGBD moderno:

Servicios Esenciales

  • ABM: Altas, Bajas y Modificaciones
  • Consultas: Lenguajes como SQL
  • Transacciones: ACID (Atomicidad, Consistencia, Aislamiento, Durabilidad)
  • Seguridad: Autenticación y autorización

Ventajas vs Archivos Planos

+ Independencia lógica/física
+ Reducción de redundancia
+ Acceso concurrente controlado
+ Consultas complejas eficientes
+ Backup y recuperación

Resumen Comparativo

Modelo Fortalezas Debilidades
Jerárquico Rendimiento en estructuras fijas Rígido, difícil modificar estructura
Red Relaciones complejas Complejidad de implementación
Relacional Flexibilidad, estándar SQL Limitado con datos complejos
Orientado a Objetos Mapeo natural con OOP Menor adopción, curva aprendizaje
↑ Volver arriba

Modelos Lógicos de Bases de Datos

1. Modelo Jerárquico

Estructura de árbol donde cada registro tiene un único padre (excepto la raíz):

Empresa
├── Departamento
│   ├── Empleado
│   └── Proyecto
└── Sucursal

Uso actual: Sistemas legacy (ej. IMS de IBM)

2. Modelo en Red

Extensión del jerárquico que permite múltiples padres:

Estudiante ────┐
                ├── Curso
Profesor ──────┘

Ventaja: Mayor flexibilidad en relaciones

3. Modelo Relacional

Datos organizados en tablas con relaciones matemáticas:

┌────────────┐       ┌───────────────┐
│  CLIENTES  │       │    PEDIDOS    │
├────────────┤       ├───────────────┤
│ id (PK)    │──┐    │ id (PK)       │
│ nombre     │  └───>│ cliente_id(FK)│
└────────────┘       │ fecha         │
                     └───────────────┘

Ventaja: Sencillez conceptual y potencia

4. Modelo Relacional Extendido

Incorpora características OO al modelo relacional:

  • Tipos de datos complejos (arrays, JSON)
  • Herencia entre tablas
  • Métodos almacenados
CREATE TYPE direccion AS (
  calle VARCHAR(100),
  ciudad VARCHAR(50)
);

5. Modelo Orientado a Objetos

Los datos se modelan como objetos con atributos y métodos:

class Producto {
  String id;
  String nombre;
  List categorias;
  
  void actualizarPrecio() {...}
}

Ventaja: Perfecto para aplicaciones OOP

↑ Volver arriba

Actividad Práctica

Caso: Para un sistema de biblioteca, identificar qué modelo sería más adecuado considerando:

  1. Relaciones Libro-Autor (M:N)
  2. Necesidad de consultas complejas
  3. Posible crecimiento futuro

Solución Recomendada

Modelo Relacional es el más adecuado porque:
1. Permite relaciones M:N mediante tablas puente
2. SQL es ideal para consultas complejas
3. Es escalable y ampliamente soportado

Alternativa: Modelo Relacional Extendido si se necesitan
tipos complejos para almacenar, por ejemplo, 
capítulos de libros como JSON

Actividades: Diseños conceptuales de BD

Test 1

Model Data Concept

Cuestiones 1

Lenguajes de consulta

Test 2

Modelos de datos y SGBD

Cuestiones 2

Conceptos Básicos de Bases de Datos Relacionales

1. Base de Datos Relacional (RDBMS)

Es un sistema que organiza los datos en tablas relacionadas. Cada tabla representa una entidad y puede relacionarse con otras mediante claves.

+-----------------+ +------------------+ | Productos | | Categorías | +-----------------+ +------------------+ | id_producto |◄───────| id_categoria | | nombre | | nombre | | id_categoria | +------------------+ +-----------------+
2. Tabla

Es una estructura que almacena datos en filas y columnas. Cada tabla representa una entidad.

IDNombreEmail
1Anaana@mail.com
2Luisluis@mail.com
3. Clave Primaria

Identifica de forma única cada registro. No puede repetirse ni estar vacía.

Ejemplo: ID de usuario

4. Clave Foránea

Es un campo que conecta una tabla con la clave primaria de otra tabla.

+-------------+ +---------------+ | Pedidos | | Clientes | +-------------+ +---------------+ | id_pedido | | id_cliente | | id_cliente |──────►| nombre | | fecha | +---------------+ +-------------+
5. Relación

Tipos de relación:

  • Uno a Uno
  • Uno a Muchos
  • Muchos a Muchos (requiere tabla intermedia)
6. SQL (Structured Query Language)

Lenguaje para interactuar con bases de datos.

Ejemplo:

SELECT nombre FROM clientes WHERE ciudad = 'Madrid';
7. Consulta

Instrucción para recuperar datos.

Ejemplo:

SELECT * FROM productos WHERE precio > 100;
8. Normalización

Proceso que evita duplicación dividiendo los datos en tablas más pequeñas y relacionadas.

Ejemplo:

  • Tabla Clientes
  • Tabla Pedidos
  • Tabla Productos
9. Transacción

Conjunto de operaciones que se ejecutan como una unidad. Siguen el principio ACID:

  • Atómica: Todo o nada
  • Consistente: Mantiene reglas
  • Ísolada: No afecta otras transacciones
  • Duradera: Persisten los cambios
10. Índice

Estructura que acelera búsquedas, pero puede ocupar más espacio.

Tabla: Empleados Índice: apellido → posición en tabla
11. Vista

Es una tabla virtual basada en una consulta SQL. No almacena datos físicamente.

Ejemplo:

CREATE VIEW vista_activos AS SELECT nombre FROM productos WHERE estado = 'activo';
12. Integridad de Datos

Se logra mediante claves, restricciones y reglas de negocio.

  • Claves primarias y foráneas
  • Restricciones UNIQUE, NOT NULL
13. Respaldos y Restauración

Respaldo: Copia de seguridad

Restauración: Recuperación desde copia

mysqldump -u usuario -p base_datos > respaldo.sql mysql -u usuario -p base_datos < respaldo.sql
↑ Volver arriba

Tipos de Bases de Datos

Clasificación de Bases de Datos

📝 Por Modelo de Datos

📝 Por Criterios de Implementación

📝 Por Modelo de Procesamiento

📝 Por Licenciamiento

📝 Por Escalabilidad

📝 Criterios Comunes de Clasificación

Tipos más comunes:

Bases de Datos Deductivas     ➡️

📐 BD Deductivas

Las bases de datos deductivas combinan las capacidades de almacenamiento de datos de una base de datos tradicional con un motor de inferencia lógica que permite derivar nueva información a partir de hechos y reglas. Estas reglas se definen mediante una lógica declarativa, generalmente con un lenguaje como Datalog, una variante de Prolog adaptada a bases de datos.

A diferencia de las bases de datos relacionales, que solo responden a consultas explícitas sobre datos almacenados, las bases de datos deductivas pueden deducir hechos implícitos. Esto las hace ideales para sistemas expertos, sistemas de planificación, bases de conocimiento y aplicaciones en inteligencia artificial.

Una BD deductiva consta de:

  • Hechos: Información básica almacenada directamente (como tablas).
  • Reglas: Expresiones lógicas que permiten derivar nuevos hechos.
  • Consultas: Preguntas que se pueden resolver a partir de los hechos y reglas.

Ejemplo 1: Si sabemos que padre(juan, pedro) y padre(pedro, ana), y definimos la regla abuelo(X,Y) :- padre(X,Z), padre(Z,Y).
Entonces podemos deducir automáticamente que abuelo(juan, ana).
Ejemplo 2: En un sistema de control de acceso, podemos tener reglas como:
tienePermiso(U,R) :- esAdmin(U).
esAdmin(laura).
A partir de esto, la base deduce que Laura tiene permiso para acceder al recurso R sin que se almacene explícitamente.
Ejemplo 3: Consultas como: "¿Quién es abuelo de Ana?" serán respondidas aplicando las reglas sobre los hechos existentes.
Bases de Datos Temporales      ➡️

🕒 BD Temporales

Almacenan y consultan información relacionada con el tiempo, incluyendo validez histórica.

Definición

Sistemas que almacenan datos con información temporal, donde el tiempo es un aspecto explícito de los datos.

Características

  • Gestión explícita del tiempo en los datos
  • Mantienen historial de cambios
  • Soporte para consultas temporales
  • Dos tipos de tiempo: válido y de transacción

Tipos Principales

  • Transaccionales: Registran cuando los datos fueron modificados
  • De validez: Registran períodos de vigencia de los datos
  • Bi-temporales: Combina ambos enfoques

Ventajas vs Limitaciones

  • ✔ Historial completo de cambios
  • ✔ Consultas temporales complejas
  • ✗ Mayor almacenamiento requerido
  • ✗ Complejidad en consultas
Ejemplo: Saber el salario de un empleado entre 2010 y 2015 o registrar eventos con fechas efectivas y de transacción.

🗺️ BD Geográficas (GIS)

Especializadas en almacenar, consultar y analizar datos espaciales (coordenadas, mapas).

Definición

Sistemas especializados para almacenar, consultar y analizar datos espaciales/geográficos con atributos asociados.

Características Principales

  • Almacenan datos vectoriales (puntos, líneas, polígonos) y raster
  • Soporte para sistemas de referencia espacial (coordenadas)
  • Índices espaciales para búsquedas eficientes
  • Operaciones geográficas especializadas

Componentes Clave

  • Datos espaciales: Geometrías y ubicaciones
  • Atributos descriptivos: Información asociada
  • Sistemas de coordenadas: Proyecciones geográficas

Aplicaciones Comunes

  • 🛰️ Sistemas de información territorial
  • 🗺️ Cartografía digital
  • 🚦 Planificación urbana
  • 🌳 Gestión ambiental

Ventajas vs Desafíos

  • ✔ Análisis espacial avanzado
  • ✔ Visualización geográfica
  • ✗ Alta complejidad de datos
  • ✗ Requiere software especializado
Ejemplo: Consultar todos los restaurantes a menos de 5 km del usuario, usando coordenadas geográficas.
Bases de Datos Geográficas     ➡️

🗺️ BD Geográficas (GIS)

Especializadas en almacenar, consultar y analizar datos espaciales (coordenadas, mapas).

Definición

Sistemas especializados para almacenar, consultar y analizar datos espaciales/geográficos con atributos asociados.

Características Principales

  • Almacenan datos vectoriales (puntos, líneas, polígonos) y raster
  • Soporte para sistemas de referencia espacial (coordenadas)
  • Índices espaciales para búsquedas eficientes
  • Operaciones geográficas especializadas

Componentes Clave

  • Datos espaciales: Geometrías y ubicaciones
  • Atributos descriptivos: Información asociada
  • Sistemas de coordenadas: Proyecciones geográficas

Aplicaciones Comunes

  • 🛰️ Sistemas de información territorial
  • 🗺️ Cartografía digital
  • 🚦 Planificación urbana
  • 🌳 Gestión ambiental

Ventajas vs Desafíos

  • ✔ Análisis espacial avanzado
  • ✔ Visualización geográfica
  • ✗ Alta complejidad de datos
  • ✗ Requiere software especializado
Ejemplo: Consultar todos los restaurantes a menos de 5 km del usuario, usando coordenadas geográficas.
BD Distribuidas     ➡️

🌐 BD Distribuidas

Reparten datos entre múltiples nodos o servidores, manteniendo coherencia mediante replicación o fragmentación.

Definición

Sistema donde los datos se almacenan en múltiples nodos interconectados, pero se manejan como una única base de datos lógica.

Características

  • Datos distribuidos en varios servidores/nodos
  • Nodos conectados por red
  • Transparencia para el usuario
  • Autonomía local en cada nodo

Modelos Principales

  • Fragmentación: Dividir tablas (horizontal/vertical)
  • Replicación: Copiar datos en varios nodos

Ventajas vs Desafíos

  • ✔ Mayor disponibilidad
  • ✔ Mejor rendimiento local
  • ✗ Complejidad en transacciones
  • ✗ Mantener consistencia
Ejemplo: Una empresa con sede global guarda datos de clientes por continente en servidores distribuidos.

📊 BD Analíticas (OLAP)

Optimizadas para consultas complejas y análisis multidimensional de grandes volúmenes de datos.

Definición

Sistemas especializados para procesamiento analítico en línea (OLAP), diseñados para consultas complejas y análisis multidimensional de datos.

Características Principales

  • Estructura multidimensional (cubos OLAP)
  • Optimizadas para lectura y análisis
  • Agregación rápida de datos
  • Soporte para operaciones roll-up, drill-down, slice y dice

Modelos Principales

  • MOLAP: Cubos multidimensionales
  • ROLAP: Basado en tablas relacionales
  • HOLAP: Modelo híbrido

Ventajas Clave

  • ⚡ Velocidad en consultas complejas
  • 📊 Análisis multidimensional
  • 🔍 Capacidad de navegación jerárquica
  • 📈 Soporte para Business Intelligence

Diferencias con OLTP

  • OLAP: Análisis histórico - Lectura intensiva
  • OLTP: Transaccional - Escritura intensiva
Ejemplo: Analizar ventas por región, producto y trimestre mediante cubos OLAP.
BD de Columnas     ➡️

📁 BD de Columnas

Almacenan datos por columnas en lugar de filas, ideal para lecturas analíticas masivas (ej: Cassandra, ClickHouse).

Bases de Datos de Columnas

Definición

Sistemas que almacenan datos por columnas en lugar de filas, optimizados para consultas analíticas y procesamiento de grandes volúmenes de datos.

Características Principales

  • Almacenamiento orientado a columnas
  • Compresión eficiente de datos
  • Lecturas rápidas para consultas analíticas
  • Escalabilidad horizontal

Ventajas Clave

  • 📈 Alto rendimiento en consultas agregadas
  • 🗜️ Mejor compresión de datos
  • ⚡ Lecturas rápidas para columnas específicas
  • 📊 Ideal para data warehouses y BI

Casos de Uso Típicos

  • 🔍 Análisis empresarial
  • 📡 Procesamiento de big data
  • 📉 Sistemas de inteligencia de negocios
  • 📚 Almacenes de datos

Ejemplos Populares

  • Google BigQuery
  • Apache Cassandra
  • Amazon Redshift
  • ClickHouse
Ejemplo: Consultas sobre una sola columna (como precios) son más rápidas porque no se leen columnas innecesarias.
BD Documentales     ➡️

📄 BD Documentales

Basadas en documentos tipo JSON, permiten almacenar datos semiestructurados. Ejemplo: MongoDB.

Bases de Datos Documentales

Definición

Sistemas NoSQL diseñados para almacenar, recuperar y gestionar datos semiestructurados en formato de documentos (JSON, BSON, XML).

Características Principales

  • Almacenamiento en documentos autodescriptivos
  • Esquema flexible y dinámico
  • Modelo de datos jerárquico
  • Índices en campos anidados

Ventajas Clave

  • 🔄 Flexibilidad en estructuras de datos
  • ⚡ Rendimiento en lecturas
  • 📄 Modelado natural para datos complejos
  • 🔍 Consultas en documentos anidados

Modelo de Datos

  • Colecciones: Grupos de documentos
  • Documentos: Unidades básicas (JSON/BSON)
  • Campos: Pares clave-valor

Ejemplos Populares

  • MongoDB
  • CouchDB
  • Firestore
  • Elasticsearch

Casos de Uso Ideales

  • 📱 Aplicaciones web y móviles
  • 📝 Sistemas de gestión de contenidos
  • 📊 Catálogos de productos
  • 📑 Perfiles de usuario
Ejemplo: Un registro de cliente puede incluir nombre, emails y pedidos en un solo documento JSON.
BD XML     ➡️

📂 BD XML

Especializadas en almacenar, validar y consultar datos estructurados en XML.

Bases de Datos XML

Definición

Sistemas especializados para almacenar, consultar y procesar datos en formato XML, preservando su estructura jerárquica y semántica.

Características Principales

  • Almacenamiento nativo de documentos XML
  • Soporte para consultas XPath y XQuery
  • Validación de esquemas (XSD, DTD)
  • Índices para elementos y atributos XML

Tipos de Implementación

  • Nativas: Almacenamiento directo de XML
  • Híbridas: XML sobre sistemas relacionales
  • Orientadas a documentos: Énfasis en documentos completos

Ventajas Clave

  • 🌳 Estructura jerárquica preservada
  • 🔍 Búsquedas complejas con XQuery
  • 📄 Ideal para documentos semiestructurados
  • 🔄 Intercambio de datos estandarizado

Ejemplos Notables

  • eXist-db
  • BaseX
  • MarkLogic
  • Oracle XML DB

Casos de Uso Típicos

  • 📑 Gestión documental
  • 📚 Publicaciones digitales
  • 🏛️ Sistemas gubernamentales
  • ⚕️ Registros médicos
Ejemplo: Aplicaciones que gestionan configuraciones en XML pueden consultar con XPath o XQuery.
BD Incrustadas (Embedded)     ➡️

📦 BD Incrustadas (Embedded)

Integradas en aplicaciones. No requieren servidor. Ejemplo: SQLite.

Bases de Datos Incrustadas (Embedded)

Definición

Sistemas de bases de datos integrados directamente en aplicaciones sin necesidad de un servidor separado, funcionando como parte integral del software.

Características Principales

  • Sin arquitectura cliente-servidor
  • Biblioteca ligera integrada en la aplicación
  • Bajo consumo de recursos
  • Acceso directo sin capa de red

Ventajas Clave

  • ⚡ Máximo rendimiento al evitar sobrecarga de red
  • 📱 Portabilidad completa con la aplicación
  • 🔄 Configuración cero/simple
  • 💾 Ideal para dispositivos con recursos limitados

Modelos Soportados

  • Relacionales: SQLite, H2
  • Clave-Valor: Berkeley DB, LevelDB
  • Documentales: UnQLite

Casos de Uso Típicos

  • 📱 Aplicaciones móviles
  • 🖥️ Software de escritorio
  • 🎮 Videojuegos
  • 📟 Dispositivos IoT/embebidos

Ejemplos Populares

  • SQLite
  • H2 Database
  • Berkeley DB
  • LevelDB
Ejemplo: Una app móvil guarda datos locales del usuario usando SQLite.
Nuevas Tendencias     ➡️

🚀 Nuevas Tendencias

Incluyen tecnologías emergentes como bases de datos en la nube, grafos (Neo4j), tiempo real, blockchain, o multivalor.

Nuevas Tendencias en Bases de Datos

Panorama Actual

Evolución de sistemas de gestión de datos impulsada por big data, cloud computing e inteligencia artificial.

Tendencias Emergentes

  • Bases de datos multimodelo: Combinan varios paradigmas en un solo sistema
  • Bases de datos serverless: Escalabilidad automática en la nube
  • Bases de datos de series temporales: Optimizadas para datos cronológicos
  • Bases de datos gráficas: Enfoque en relaciones complejas

Tecnologías Disruptivas

  • 🔄 Edge Databases: Procesamiento en el borde de la red
  • 🔗 Blockchain Databases: Datos inmutables y distribuidos
  • 🧠 AI-Native Databases: Integración nativa con modelos de ML
  • ☁️ Cloud-Native Databases: Diseñadas para entornos cloud

Innovaciones en Almacenamiento

  • 💾 Persistent Memory Databases
  • 🚀 In-Memory Databases avanzadas
  • 🧩 Fragmentación inteligente automática
  • 🔍 Motor de búsqueda integrado

Ejemplos Representativos

  • FaunaDB (serverless)
  • TimescaleDB (series temporales)
  • Neo4j (gráficas)
  • ArangoDB (multimodelo)

Futuro Inmediato

  • 🤖 Mayor automatización en gestión
  • 🌐 Soporte mejorado para datos geoespaciales
  • 🔐 Seguridad y privacidad integradas
  • ⚡ Procesamiento en tiempo real
Ejemplo: Bases de datos de grafos permiten analizar relaciones sociales o de productos conectados.
Bases de Datos Temporales     ➡️
contenidos

Comparación de Tipos de Bases de Datos

Tipo Modelo de Datos Escalabilidad Consistencia Casos de Uso
Relacional Tablas con relaciones Vertical Fuerte Sistemas transaccionales, ERP, CRM
Distribuida Variado (generalmente relacional) Horizontal Eventual o fuerte Sistemas globales, alta disponibilidad
Orientada a Objetos Objetos con herencia Vertical Fuerte Aplicaciones complejas OOP, CAD
Gráfica Nodos y relaciones Horizontal Fuerte Redes sociales, recomendaciones
NoSQL Documentos, clave-valor, columnas Horizontal Eventual Big data, aplicaciones web, IoT

Resumen de Sistemas Gestores

Sistema Tipo Licencia Escalabilidad Casos de Uso
MySQL Relacional GPL/Comercial Vertical Aplicaciones web, CMS, eCommerce
PostgreSQL Relacional-Objeto PostgreSQL Vertical/Horizontal Aplicaciones complejas, GIS, análisis
MongoDB NoSQL (Documentos) SSPL/Comercial Horizontal Aplicaciones web escalables, big data
SQL Server Relacional Comercial Vertical Entornos empresariales, BI, .NET
Oracle Relacional Comercial Vertical Grandes empresas, sistemas críticos
Firebase NoSQL (Tiempo real) Freemium Horizontal Aplicaciones móviles, web en tiempo real


↑ Inicio del Curso