OPE 2025 TFA INF. Tema 73. El modelo relacional. Definiciones y conceptos básicos. Arquitectura. Diseño. Normalización. Manipulación: álgebra y cálculo relacional. Modelo entidad–relación. El lenguaje SQL. Normas y estándares para la interoperabilidad entre gestores de bases de datos relacionales. Principales SGBD comerciales. SGBD de código abierto.

OPE 2025. TFA INFORMÁTICA

El modelo relacional es el paradigma dominante en la gestión de bases de datos y se basa en la organización de datos en tablas (relaciones) con filas (tuplas) y columnas (atributos). Propuesto por Edgar F. Codd en 1970, este modelo establece un marco formal para la manipulación y almacenamiento de datos, facilitando la integridad, la normalización y la eficiencia en la gestión de la información.

Este tema cubre los conceptos básicos del modelo relacional, su arquitectura, los principios de diseño y normalización, las operaciones de álgebra y cálculo relacional, la representación mediante el modelo entidad-relación, el lenguaje SQL, los estándares de interoperabilidad entre sistemas de bases de datos y una visión de los principales SGBD comerciales y de código abierto.


1. Definiciones y Conceptos Básicos

El modelo relacional estructura los datos en tablas donde cada registro es una tupla y cada columna un atributo. Se utilizan claves primarias y foráneas para establecer relaciones entre entidades.

1.1 Elementos principales del modelo relacional

  • Relación (tabla): Conjunto de datos estructurados.
  • Tupla (fila): Representa una instancia de la relación.
  • Atributo (columna): Representa una propiedad de la relación.
  • Clave primaria: Identifica de forma única cada tupla.
  • Clave foránea: Relaciona una tabla con otra.
  • Esquema relacional: Define la estructura de las relaciones.

2. Arquitectura del Modelo Relacional

El modelo relacional sigue la arquitectura en tres niveles del estándar ANSI-SPARC:

  1. Nivel externo: Define cómo los usuarios visualizan los datos.
  2. Nivel conceptual: Representa la estructura lógica de la base de datos.
  3. Nivel interno: Define cómo se almacenan los datos físicamente.

Esta arquitectura proporciona independencia lógica y física entre las aplicaciones y los datos.


3. Diseño de Bases de Datos Relacionales

El diseño de bases de datos relacionales se basa en tres fases:

  1. Modelo Conceptual: Se representa con el modelo entidad-relación (E-R).
  2. Modelo Lógico: Se transforma en tablas relacionales.
  3. Modelo Físico: Implementación en un SGBD.

3.1 Modelo Entidad-Relación (E-R)

  • Entidades: Representan objetos del mundo real.
  • Atributos: Propiedades de una entidad.
  • Relaciones: Asociaciones entre entidades.

4. Normalización de Bases de Datos

La normalización reduce la redundancia y mejora la integridad mediante la aplicación de formas normales (FN).

4.1 Principales formas normales

  • 1FN: Eliminación de valores repetidos en columnas.
  • 2FN: Dependencia total de la clave primaria.
  • 3FN: Eliminación de dependencias transitivas.
  • BCNF: Mejora la 3FN eliminando anomalías más complejas.

5. Manipulación de Datos: Álgebra y Cálculo Relacional

5.1 Álgebra Relacional

Es un lenguaje formal que define operaciones sobre relaciones:

  • Selección (σ): Filtra registros.
  • Proyección (π): Selecciona atributos.
  • Unión (∪): Combina datos de dos relaciones.
  • Intersección (∩): Encuentra registros comunes.
  • Diferencia (-): Registros de una tabla que no están en otra.
  • Join: Combina registros de múltiples tablas.

5.2 Cálculo Relacional

Utiliza expresiones lógicas para definir consultas mediante condiciones.


6. Lenguaje SQL (Structured Query Language)

SQL es el estándar para la manipulación de bases de datos relacionales.

6.1 Principales comandos SQL

  • DDL (Data Definition Language): CREATE TABLE, ALTER TABLE, DROP TABLE.
  • DML (Data Manipulation Language): SELECT, INSERT, UPDATE, DELETE.
  • DCL (Data Control Language): GRANT, REVOKE.
  • TCL (Transaction Control Language): COMMIT, ROLLBACK.

7. Normas y Estándares para la Interoperabilidad entre SGBD

Para asegurar compatibilidad entre distintos SGBD, existen estándares como:

  • SQL ANSI/ISO: Definición unificada del lenguaje SQL.
  • ODBC (Open Database Connectivity): Permite conexión entre diferentes bases de datos.
  • JDBC (Java Database Connectivity): API de Java para bases de datos relacionales.

8. Principales SGBD Comerciales y de Código Abierto

8.1 SGBD Comerciales

  • Oracle Database: Potente y escalable.
  • Microsoft SQL Server: Integrado con el ecosistema Microsoft.
  • IBM Db2: Alta optimización para entornos empresariales.

8.2 SGBD de Código Abierto

  • MySQL: Ampliamente utilizado en entornos web.
  • PostgreSQL: Robusto y con gran capacidad de extensión.
  • MariaDB: Derivado de MySQL con mejoras en rendimiento.

 

 

Cuestionario Tipo Test – Tema 73: El Modelo Relacional

1. ¿Quién es el creador del modelo relacional de bases de datos?

a) Larry Ellison
b) Edgar F. Codd
c) Dennis Ritchie
d) Linus Torvalds

Respuesta correcta: b) Edgar F. Codd
🔎 Explicación:

  • (a) Larry Ellison: Incorrecto, es el fundador de Oracle Corporation, pero no el creador del modelo relacional.
  • (b) Edgar F. Codd: Correcto, fue el matemático británico que propuso el modelo relacional en 1970.
  • (c) Dennis Ritchie: Incorrecto, fue el creador del lenguaje C y del sistema operativo UNIX.
  • (d) Linus Torvalds: Incorrecto, es el creador del kernel de Linux.

2. ¿Cuál de los siguientes NO es un elemento del modelo relacional?

a) Tupla
b) Relación
c) Archivo
d) Atributo

Respuesta correcta: c) Archivo
🔎 Explicación:

  • (a) Tupla: Incorrecto, ya que una tupla representa una fila en una tabla relacional.
  • (b) Relación: Incorrecto, porque una relación es el nombre formal de una tabla.
  • (c) Archivo: Correcto, porque los archivos son estructuras de almacenamiento físico, mientras que el modelo relacional trabaja con datos estructurados en tablas.
  • (d) Atributo: Incorrecto, porque un atributo es una columna dentro de una relación.

3. En el modelo relacional, ¿cómo se representa la relación entre dos tablas?

a) Mediante claves foráneas
b) Mediante claves primarias repetidas
c) Mediante índices
d) Mediante funciones de agregación

Respuesta correcta: a) Mediante claves foráneas
🔎 Explicación:

  • (a) Claves foráneas: Correcto, ya que una clave foránea en una tabla referencia una clave primaria de otra tabla, permitiendo establecer relaciones.
  • (b) Claves primarias repetidas: Incorrecto, ya que una clave primaria debe ser única en cada tupla.
  • (c) Índices: Incorrecto, porque los índices se usan para mejorar el rendimiento de las consultas, no para establecer relaciones.
  • (d) Funciones de agregación: Incorrecto, ya que estas se utilizan para calcular valores sobre conjuntos de datos, no para definir relaciones.

4. ¿Cuál de las siguientes características pertenece al modelo relacional?

a) Datos organizados en archivos de texto
b) Uso de claves primarias y foráneas
c) Estructura de red y jerarquía de datos
d) Uso exclusivo de datos no estructurados

Respuesta correcta: b) Uso de claves primarias y foráneas
🔎 Explicación:

  • (a) Datos organizados en archivos de texto: Incorrecto, porque el modelo relacional almacena los datos en tablas, no en archivos de texto.
  • (b) Uso de claves primarias y foráneas: Correcto, ya que estas claves son fundamentales para garantizar la integridad y establecer relaciones entre tablas.
  • (c) Estructura de red y jerarquía de datos: Incorrecto, porque estas son características de los modelos de bases de datos jerárquico y de red, no del modelo relacional.
  • (d) Uso exclusivo de datos no estructurados: Incorrecto, ya que el modelo relacional trabaja con datos estructurados organizados en tablas.

5. ¿Cuál de los siguientes comandos SQL pertenece a la categoría DML (Data Manipulation Language)?

a) CREATE TABLE
b) DELETE
c) GRANT
d) COMMIT

Respuesta correcta: b) DELETE
🔎 Explicación:

  • (a) CREATE TABLE: Incorrecto, porque pertenece al DDL (Data Definition Language).
  • (b) DELETE: Correcto, porque es un comando de manipulación de datos utilizado para eliminar registros de una tabla.
  • (c) GRANT: Incorrecto, ya que pertenece a DCL (Data Control Language), utilizado para administrar permisos.
  • (d) COMMIT: Incorrecto, ya que pertenece a TCL (Transaction Control Language), utilizado para confirmar transacciones.

6. ¿Cuál de las siguientes formas normales elimina las dependencias transitivas en una tabla?

a) 1FN
b) 2FN
c) 3FN
d) BCNF

Respuesta correcta: c) 3FN
🔎 Explicación:

  • (a) 1FN: Incorrecto, porque solo elimina la duplicación de datos en columnas.
  • (b) 2FN: Incorrecto, porque se enfoca en eliminar dependencias parciales de la clave primaria.
  • (c) 3FN: Correcto, ya que elimina las dependencias transitivas, es decir, cuando un atributo no clave depende de otro atributo no clave.
  • (d) BCNF: Incorrecto, aunque es una mejora de la 3FN, su enfoque es más estricto en cuanto a claves candidatas.

7. ¿Qué operación del álgebra relacional se usa para seleccionar filas específicas de una tabla?

a) Proyección (π)
b) Selección (σ)
c) Unión (∪)
d) Diferencia (-)

Respuesta correcta: b) Selección (σ)
🔎 Explicación:

  • (a) Proyección (π): Incorrecto, ya que selecciona columnas, no filas.
  • (b) Selección (σ): Correcto, porque permite filtrar filas en una relación con base en una condición.
  • (c) Unión (∪): Incorrecto, porque se usa para combinar los resultados de dos relaciones con esquemas compatibles.
  • (d) Diferencia (-): Incorrecto, porque encuentra los registros que están en una tabla pero no en otra.

 

 

8. ¿Cuál es el objetivo principal de la normalización en bases de datos?

a) Mejorar el rendimiento de las consultas
b) Reducir la redundancia y mejorar la integridad
c) Aumentar la velocidad de los índices
d) Hacer que la base de datos sea más compleja

Respuesta correcta: b) Reducir la redundancia y mejorar la integridad
🔎 Explicación:

  • (a) Mejorar el rendimiento de las consultas: Incorrecto, ya que la normalización puede incluso aumentar la cantidad de joins necesarios en consultas complejas.
  • (b) Reducir la redundancia y mejorar la integridad: Correcto, el objetivo principal de la normalización es eliminar la redundancia y asegurar la consistencia de los datos.
  • (c) Aumentar la velocidad de los índices: Incorrecto, la normalización no está directamente relacionada con la velocidad de los índices.
  • (d) Hacer que la base de datos sea más compleja: Incorrecto, la normalización busca optimizar la estructura de los datos, no hacerla más compleja.

9. ¿Cuál es el comando SQL utilizado para modificar datos en una tabla?

a) ALTER
b) UPDATE
c) DELETE
d) SELECT

Respuesta correcta: b) UPDATE
🔎 Explicación:

  • (a) ALTER: Incorrecto, se usa para modificar la estructura de una tabla, no los datos almacenados en ella.
  • (b) UPDATE: Correcto, se usa para modificar registros existentes en una tabla.
  • (c) DELETE: Incorrecto, se usa para eliminar registros de una tabla.
  • (d) SELECT: Incorrecto, se usa para consultar datos, no para modificarlos.

10. ¿Qué significa la sigla SGBD?

a) Sistema de Gestión de Bases de Datos
b) Sistema General de Bases de Datos
c) Software para Grandes Bases de Datos
d) Sistema Global de Bases de Datos

Respuesta correcta: a) Sistema de Gestión de Bases de Datos
🔎 Explicación:

  • (a) Sistema de Gestión de Bases de Datos: Correcto, es el software que permite almacenar, manipular y administrar bases de datos.
  • (b) Sistema General de Bases de Datos: Incorrecto, no es una terminología reconocida en informática.
  • (c) Software para Grandes Bases de Datos: Incorrecto, aunque los SGBD pueden manejar grandes volúmenes de datos, su función no se limita a ello.
  • (d) Sistema Global de Bases de Datos: Incorrecto, no es una definición formalmente utilizada en el ámbito de bases de datos.

11. ¿Qué tipo de clave garantiza la unicidad de cada registro en una tabla?

a) Clave primaria
b) Clave foránea
c) Clave candidata
d) Clave compuesta

Respuesta correcta: a) Clave primaria
🔎 Explicación:

  • (a) Clave primaria: Correcto, se usa para identificar de manera única cada registro en una tabla.
  • (b) Clave foránea: Incorrecto, ya que solo establece relaciones entre tablas, pero no garantiza unicidad.
  • (c) Clave candidata: Incorrecto, ya que es un posible candidato a clave primaria, pero no siempre se usa.
  • (d) Clave compuesta: Incorrecto, una clave compuesta es una clave primaria que utiliza múltiples columnas, pero no es el único tipo de clave primaria.

12. ¿Qué significa el comando SQL SELECT * FROM clientes;?

a) Elimina todos los registros de la tabla clientes
b) Muestra todos los registros de la tabla clientes
c) Muestra solo los primeros registros de la tabla clientes
d) Crea una nueva tabla llamada clientes

Respuesta correcta: b) Muestra todos los registros de la tabla clientes
🔎 Explicación:

  • (a) Elimina todos los registros de la tabla clientes: Incorrecto, para eliminar registros se usa DELETE.
  • (b) Muestra todos los registros de la tabla clientes: Correcto, el comando SELECT * devuelve todos los registros y columnas de la tabla clientes.
  • (c) Muestra solo los primeros registros de la tabla clientes: Incorrecto, para eso se usaría LIMIT en SQL.
  • (d) Crea una nueva tabla llamada clientes: Incorrecto, para eso se usa CREATE TABLE.

13. ¿Qué tipo de bases de datos sigue el modelo relacional?

a) NoSQL
b) Jerárquico
c) Basado en grafos
d) Relacional

Respuesta correcta: d) Relacional
🔎 Explicación:

  • (a) NoSQL: Incorrecto, ya que NoSQL engloba otros modelos como clave-valor, documentos y grafos.
  • (b) Jerárquico: Incorrecto, este modelo organiza los datos en forma de árbol y no usa tablas.
  • (c) Basado en grafos: Incorrecto, ya que este modelo usa nodos y relaciones, no tablas.
  • (d) Relacional: Correcto, el modelo relacional usa tablas para almacenar datos.

14. ¿Qué estándar de SQL permite la interoperabilidad entre diferentes SGBD?

a) ANSI SQL
b) ODBC
c) JDBC
d) JSON SQL

Respuesta correcta: a) ANSI SQL
🔎 Explicación:

  • (a) ANSI SQL: Correcto, es el estándar de SQL reconocido a nivel internacional.
  • (b) ODBC: Incorrecto, es un protocolo de conexión, no un estándar de SQL.
  • (c) JDBC: Incorrecto, es una API de Java para interactuar con bases de datos.
  • (d) JSON SQL: Incorrecto, no existe un estándar de SQL con este nombre.

15. ¿Cuál es un SGBD de código abierto?

a) Oracle
b) Microsoft SQL Server
c) MySQL
d) IBM Db2

Respuesta correcta: c) MySQL
🔎 Explicación:

  • (a) Oracle: Incorrecto, es un SGBD comercial.
  • (b) Microsoft SQL Server: Incorrecto, es propietario y de pago.
  • (c) MySQL: Correcto, es un SGBD de código abierto.
  • (d) IBM Db2: Incorrecto, es un SGBD comercial.

 

16. ¿Qué tipo de relación se establece cuando una clave foránea en una tabla referencia una clave primaria en la misma tabla?

a) Relación uno a muchos
b) Relación muchos a muchos
c) Relación recursiva (uno a uno o uno a muchos)
d) Relación externa

Respuesta correcta: c) Relación recursiva (uno a uno o uno a muchos)
🔎 Explicación:

  • (a) Relación uno a muchos: Incorrecto, este tipo de relación se da cuando una clave foránea referencia una clave primaria en otra tabla, no en la misma.
  • (b) Relación muchos a muchos: Incorrecto, requiere una tabla intermedia y dos claves foráneas.
  • (c) Relación recursiva (uno a uno o uno a muchos): Correcto, ocurre cuando una clave foránea referencia la clave primaria de la misma tabla, como en una estructura jerárquica (ejemplo: empleados y sus supervisores).
  • (d) Relación externa: Incorrecto, no es un concepto específico en el modelo relacional.

17. ¿Cuál de los siguientes es un tipo de restricción de integridad en bases de datos relacionales?

a) Integridad referencial
b) Integridad física
c) Integridad de hardware
d) Integridad gráfica

Respuesta correcta: a) Integridad referencial
🔎 Explicación:

  • (a) Integridad referencial: Correcto, garantiza que una clave foránea siempre haga referencia a una clave primaria válida en otra tabla.
  • (b) Integridad física: Incorrecto, no es un término específico en bases de datos relacionales.
  • (c) Integridad de hardware: Incorrecto, está relacionado con el mantenimiento de equipos, no con bases de datos.
  • (d) Integridad gráfica: Incorrecto, no existe en el contexto de bases de datos.

18. ¿Qué comando SQL se usa para eliminar todos los registros de una tabla sin borrar su estructura?

a) DROP TABLE
b) DELETE
c) TRUNCATE
d) ALTER TABLE

Respuesta correcta: c) TRUNCATE
🔎 Explicación:

  • (a) DROP TABLE: Incorrecto, elimina tanto los registros como la estructura de la tabla.
  • (b) DELETE: Incorrecto, borra los registros pero de forma más lenta y registrando la operación en el log de transacciones.
  • (c) TRUNCATE: Correcto, elimina todos los registros de una tabla de manera eficiente sin afectar su estructura.
  • (d) ALTER TABLE: Incorrecto, se usa para modificar la estructura de la tabla, no para eliminar datos.

19. En una transacción en SQL, ¿qué comando revierte todos los cambios realizados antes de un COMMIT?

a) ROLLBACK
b) DELETE
c) UPDATE
d) SAVEPOINT

Respuesta correcta: a) ROLLBACK
🔎 Explicación:

  • (a) ROLLBACK: Correcto, revierte todos los cambios realizados en la transacción hasta el último COMMIT.
  • (b) DELETE: Incorrecto, solo elimina registros pero no revierte transacciones completas.
  • (c) UPDATE: Incorrecto, solo modifica registros sin revertir transacciones.
  • (d) SAVEPOINT: Incorrecto, crea un punto de control dentro de una transacción, pero no revierte automáticamente los cambios.

20. ¿Cuál es la principal ventaja de utilizar índices en una base de datos relacional?

a) Reducen el uso de almacenamiento en disco
b) Aceleran las consultas sobre grandes volúmenes de datos
c) Evitan la duplicación de registros en una tabla
d) Eliminan la necesidad de claves primarias

Respuesta correcta: b) Aceleran las consultas sobre grandes volúmenes de datos
🔎 Explicación:

  • (a) Reducen el uso de almacenamiento en disco: Incorrecto, los índices ocupan espacio adicional en disco.
  • (b) Aceleran las consultas sobre grandes volúmenes de datos: Correcto, permiten localizar rápidamente registros sin necesidad de recorrer toda la tabla.
  • (c) Evitan la duplicación de registros en una tabla: Incorrecto, las claves primarias y restricciones UNIQUE cumplen esa función, no los índices.
  • (d) Eliminan la necesidad de claves primarias: Incorrecto, los índices optimizan el acceso a los datos pero no reemplazan las claves primarias.

 


Mapa Conceptual – Tema 73: El Modelo Relacional

1. Modelo Relacional

  • Basado en tablas (relaciones)
  • Propuesto por Edgar F. Codd en 1970
  • Organiza datos en filas (tuplas) y columnas (atributos)
  • Utiliza claves primarias y foráneas para establecer relaciones

1.1 Elementos del Modelo Relacional

  • Relación: Tabla donde se almacenan los datos
  • Tupla: Cada fila de la tabla
  • Atributo: Cada columna de la tabla
  • Clave primaria: Identifica de manera única cada tupla
  • Clave foránea: Relaciona una tabla con otra
  • Esquema relacional: Definición de las relaciones y restricciones

2. Arquitectura del Modelo Relacional

  • Basado en la arquitectura ANSI-SPARC (tres niveles)
    1. Nivel externo: Vista del usuario
    2. Nivel conceptual: Estructura lógica de la base de datos
    3. Nivel interno: Forma en que los datos se almacenan físicamente

3. Diseño de Bases de Datos Relacionales

  • Fases del diseño:
    • Modelo Conceptual: Representado mediante el Modelo Entidad-Relación (E-R)
    • Modelo Lógico: Conversión del modelo E-R en un esquema relacional
    • Modelo Físico: Implementación en un SGBD

3.1 Modelo Entidad-Relación (E-R)

  • Entidad: Representa objetos del mundo real
  • Atributos: Propiedades de una entidad
  • Relaciones: Asociaciones entre entidades

4. Normalización en Bases de Datos

  • Objetivo: Reducir redundancia y mejorar integridad
  • Formas Normales (FN):
    • 1FN: Eliminar valores repetidos en columnas
    • 2FN: Cada atributo depende completamente de la clave primaria
    • 3FN: Eliminación de dependencias transitivas
    • BCNF: Mejora de la 3FN eliminando anomalías más complejas

5. Manipulación de Datos

5.1 Álgebra Relacional (operaciones fundamentales)

  • Selección (σ): Filtra filas según condiciones
  • Proyección (π): Selecciona columnas específicas
  • Unión (∪): Combina resultados de dos tablas
  • Intersección (∩): Encuentra registros comunes
  • Diferencia (-): Encuentra registros de una tabla que no están en otra
  • Join: Relaciona datos entre tablas basadas en condiciones

5.2 Cálculo Relacional

  • Basado en lógica de primer orden
  • Expresiones con variables y condiciones para recuperar datos

6. Lenguaje SQL

  • Estándar para manipulación de bases de datos relacionales
  • Comandos principales:
    • DDL (Data Definition Language): CREATE, ALTER, DROP
    • DML (Data Manipulation Language): SELECT, INSERT, UPDATE, DELETE
    • DCL (Data Control Language): GRANT, REVOKE
    • TCL (Transaction Control Language): COMMIT, ROLLBACK

7. Normas y Estándares para la Interoperabilidad entre SGBD

  • ANSI SQL: Lenguaje estándar de bases de datos
  • ODBC (Open Database Connectivity): Conexión entre distintas bases de datos
  • JDBC (Java Database Connectivity): API de Java para bases de datos

8. Sistemas de Gestión de Bases de Datos (SGBD)

8.1 SGBD Comerciales

  • Oracle Database: Alto rendimiento y escalabilidad
  • Microsoft SQL Server: Integrado con el ecosistema Microsoft
  • IBM Db2: Potente para entornos empresariales

8.2 SGBD de Código Abierto

  • MySQL: Popular en aplicaciones web
  • PostgreSQL: Robusto y extensible
  • MariaDB: Derivado de MySQL con mejoras de rendimiento

9. Seguridad e Integridad en Bases de Datos

  • Integridad de entidad: Garantiza la unicidad de las claves primarias
  • Integridad referencial: Asegura que las claves foráneas apunten a claves primarias existentes
  • Control de acceso: Uso de roles y permisos mediante DCL (GRANT, REVOKE)
  • Transacciones y ACID: Garantiza la confiabilidad de los datos
    • Atomicidad: Una transacción se ejecuta completamente o no se ejecuta
    • Consistencia: Los datos deben cumplir con todas las reglas de la base de datos
    • Aislamiento: Las transacciones deben ejecutarse sin interferencias
    • Durabilidad: Los cambios confirmados son permanentes

Resumen del Mapa Conceptual

📌 El modelo relacional organiza datos en tablas con relaciones basadas en claves primarias y foráneas.
📌 El diseño de bases de datos sigue una estructura de modelo entidad-relación y requiere normalización para evitar redundancias.
📌 SQL es el lenguaje estándar para la manipulación de bases de datos, permitiendo consultas y modificaciones eficientes.
📌 Los SGBD comerciales y de código abierto ofrecen diversas opciones para gestionar bases de datos según las necesidades del usuario.
📌 La integridad y la seguridad son fundamentales para garantizar la consistencia y protección de los datos almacenados.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *