## Bloque 2 Tema 5. Sistemas gestores de bases de datos. El modelo relacional. Sistemas gestores de bases de datos orientados a objetos. Bases de datos NoSQL.

En este tema se estudian los sistemas de gestión de bases de datos: qué son, cómo funcionan y cuáles son los modelos más importantes. Es un tema con mucha terminología técnica, preguntas de definición y diferencias entre tipos de bases de datos.

---

## 1. Sistemas gestores de bases de datos

Un sistema gestor de bases de datos, abreviado como SGBD, es el software encargado de gestionar, definir y mantener bases de datos. Permite crear, consultar, modificar y eliminar datos de forma estructurada y segura.

Es fundamental distinguir entre base de datos y sistema gestor de bases de datos. La base de datos es el conjunto de datos organizados. El sistema gestor de bases de datos es el software que permite trabajar con esa base de datos. Los dos son cosas distintas aunque a menudo se confunden.

Los componentes principales de un sistema gestor de bases de datos son cinco: el motor de base de datos, que es el núcleo que procesa las consultas; el diccionario de datos, que almacena metadatos, es decir, información sobre los propios datos; los lenguajes de definición, manipulación y control de datos; el gestor de almacenamiento, que controla cómo se guardan los datos en disco; y el gestor de transacciones, que garantiza la integridad de las operaciones.

En resumen: el SGBD es el software para gestionar bases de datos. No es la base de datos en sí.

---

## 2. El modelo relacional y los SGBD relacionales

El modelo relacional es el modelo de datos más extendido. En él, los datos se organizan en tablas, también llamadas relaciones. Cada tabla tiene filas, que se llaman registros o tuplas, y columnas, que se llaman campos o atributos.

La clave primaria es el campo o conjunto de campos que identifica de forma única a cada fila de una tabla. La clave foránea es el campo de una tabla que hace referencia a la clave primaria de otra tabla, estableciendo así la relación entre ambas.

El lenguaje estándar para trabajar con bases de datos relacionales es SQL, cuyas siglas significan Structured Query Language, es decir, lenguaje de consulta estructurado.

Los sistemas gestores de bases de datos relacionales más conocidos y que suelen aparecer en el examen son Oracle, MySQL, PostgreSQL y Microsoft SQL Server.

En resumen: el modelo relacional usa tablas con filas y columnas. La clave primaria identifica, la clave foránea relaciona. SQL es el lenguaje estándar.

---

## 3. Sistemas gestores de bases de datos orientados a objetos

Los sistemas gestores de bases de datos orientados a objetos, abreviados como SGBDOO, almacenan los datos en forma de objetos, igual que en la programación orientada a objetos.

Sus conceptos clave son los mismos que en la programación orientada a objetos: los objetos encapsulan datos y comportamiento; la herencia permite que un objeto comparta características de otro; y los métodos son las operaciones que puede realizar un objeto.

La ventaja principal de este modelo es que permite representar datos complejos de forma más natural, especialmente cuando los datos tienen relaciones jerárquicas. Su desventaja es que tienen mucha menor implantación en el mundo real respecto a los modelos relacionales.

En resumen: los SGBDOO almacenan objetos en lugar de tablas. Usan encapsulación, herencia y métodos. Tienen poca implantación práctica.

---

## 4. Bases de datos NoSQL

Las bases de datos NoSQL son bases de datos no relacionales, diseñadas para gestionar grandes volúmenes de datos, velocidad de acceso y estructuras flexibles que no encajan bien en tablas.

La denominación NoSQL es confusa y merece una aclaración: NoSQL no significa "sin SQL", sino "no solo SQL". Muchas bases de datos NoSQL permiten consultas de tipo SQL, pero no se basan exclusivamente en el modelo relacional.

Sus características principales son tres: escalabilidad horizontal, lo que significa que pueden crecer añadiendo más servidores en lugar de mejorar el existente; esquema flexible, lo que significa que los datos no necesitan ajustarse a una estructura fija de tabla; y alto rendimiento para operaciones de lectura y escritura masiva.

Las bases de datos NoSQL se clasifican en cuatro tipos según cómo organizan los datos. Las de clave-valor almacenan pares de clave y valor, como un diccionario. Las documentales almacenan documentos, generalmente en formato JSON. Las de familia de columnas organizan los datos en columnas agrupadas. Y las de grafos almacenan datos como nodos y aristas de un grafo.

Los ejemplos más habituales que aparecen en el examen son MongoDB, que es documental; Cassandra, que es de familia de columnas; Redis, que es clave-valor; y Neo4j, que es de grafos.

En resumen: NoSQL no es "sin SQL" sino "no solo SQL". Sus tipos son clave-valor, documental, columnas y grafos. Se usan para grandes volúmenes y estructuras flexibles.

---

## Miniresumen final del tema

Un sistema gestor de bases de datos es el software que gestiona bases de datos, y no debe confundirse con la base de datos en sí. El modelo relacional organiza los datos en tablas con filas y columnas, usa claves primarias y foráneas, y el lenguaje estándar es SQL. Los sistemas relacionales más conocidos son Oracle, MySQL, PostgreSQL y SQL Server. Los sistemas orientados a objetos almacenan objetos con encapsulación, herencia y métodos, pero tienen poca implantación. Las bases de datos NoSQL, que significa no solo SQL, son no relacionales, con esquema flexible y alta escalabilidad horizontal. Sus tipos son clave-valor, documental, columnas y grafos, con ejemplos como MongoDB, Cassandra, Redis y Neo4j.
