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:
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
1969 - IMS (IBM) primer SGBD jerárquico
1970 - Modelo relacional de Codd
1979 - Oracle primera BD relacional comercial
1990s - MySQL, PostgreSQL
2000s - MongoDB, Cassandra
Principales funciones que ofrece un SGBD moderno:
+ Independencia lógica/física
+ Reducción de redundancia
+ Acceso concurrente controlado
+ Consultas complejas eficientes
+ Backup y recuperación
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 |
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)
Extensión del jerárquico que permite múltiples padres:
Estudiante ────┐
├── Curso
Profesor ──────┘
Ventaja: Mayor flexibilidad en relaciones
Datos organizados en tablas con relaciones matemáticas:
┌────────────┐ ┌───────────────┐
│ CLIENTES │ │ PEDIDOS │
├────────────┤ ├───────────────┤
│ id (PK) │──┐ │ id (PK) │
│ nombre │ └───>│ cliente_id(FK)│
└────────────┘ │ fecha │
└───────────────┘
Ventaja: Sencillez conceptual y potencia
Incorpora características OO al modelo relacional:
CREATE TYPE direccion AS (
calle VARCHAR(100),
ciudad VARCHAR(50)
);
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
Caso: Para un sistema de biblioteca, identificar qué modelo sería más adecuado considerando:
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
Es un sistema que organiza los datos en tablas relacionadas. Cada tabla representa una entidad y puede relacionarse con otras mediante claves.
Es una estructura que almacena datos en filas y columnas. Cada tabla representa una entidad.
ID | Nombre | |
---|---|---|
1 | Ana | ana@mail.com |
2 | Luis | luis@mail.com |
Identifica de forma única cada registro. No puede repetirse ni estar vacía.
Ejemplo: ID de usuario
Es un campo que conecta una tabla con la clave primaria de otra tabla.
Tipos de relación:
Lenguaje para interactuar con bases de datos.
Ejemplo:
Instrucción para recuperar datos.
Ejemplo:
Proceso que evita duplicación dividiendo los datos en tablas más pequeñas y relacionadas.
Ejemplo:
Conjunto de operaciones que se ejecutan como una unidad. Siguen el principio ACID:
Estructura que acelera búsquedas, pero puede ocupar más espacio.
Es una tabla virtual basada en una consulta SQL. No almacena datos físicamente.
Ejemplo:
Se logra mediante claves, restricciones y reglas de negocio.
Respaldo: Copia de seguridad
Restauración: Recuperación desde copia
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:
abuelo(X,Y) :- padre(X,Z), padre(Z,Y).
tienePermiso(U,R) :- esAdmin(U).
esAdmin(laura).
Almacenan y consultan información relacionada con el tiempo, incluyendo validez histórica.
Sistemas que almacenan datos con información temporal, donde el tiempo es un aspecto explícito de los datos.
Especializadas en almacenar, consultar y analizar datos espaciales (coordenadas, mapas).
Sistemas especializados para almacenar, consultar y analizar datos espaciales/geográficos con atributos asociados.
Especializadas en almacenar, consultar y analizar datos espaciales (coordenadas, mapas).
Sistemas especializados para almacenar, consultar y analizar datos espaciales/geográficos con atributos asociados.
Reparten datos entre múltiples nodos o servidores, manteniendo coherencia mediante replicación o fragmentación.
Sistema donde los datos se almacenan en múltiples nodos interconectados, pero se manejan como una única base de datos lógica.
Optimizadas para consultas complejas y análisis multidimensional de grandes volúmenes de datos.
Sistemas especializados para procesamiento analítico en línea (OLAP), diseñados para consultas complejas y análisis multidimensional de datos.
Almacenan datos por columnas en lugar de filas, ideal para lecturas analíticas masivas (ej: Cassandra, ClickHouse).
Sistemas que almacenan datos por columnas en lugar de filas, optimizados para consultas analíticas y procesamiento de grandes volúmenes de datos.
Basadas en documentos tipo JSON, permiten almacenar datos semiestructurados. Ejemplo: MongoDB.
Sistemas NoSQL diseñados para almacenar, recuperar y gestionar datos semiestructurados en formato de documentos (JSON, BSON, XML).
Especializadas en almacenar, validar y consultar datos estructurados en XML.
Sistemas especializados para almacenar, consultar y procesar datos en formato XML, preservando su estructura jerárquica y semántica.
Integradas en aplicaciones. No requieren servidor. Ejemplo: SQLite.
Sistemas de bases de datos integrados directamente en aplicaciones sin necesidad de un servidor separado, funcionando como parte integral del software.
Incluyen tecnologías emergentes como bases de datos en la nube, grafos (Neo4j), tiempo real, blockchain, o multivalor.
Evolución de sistemas de gestión de datos impulsada por big data, cloud computing e inteligencia artificial.
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 |
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 |