El modelo relacional#
El modelo relacional para bases de datos toma su nombre del concepto matemático de relación. En matemáticas, específicamente en teoría de conjuntos, una relación es un conjunto de tuplas (i.e. listas ordenadas de elementos). En el contexto de las bases de datos, una relación se representa generalmente como una tabla, donde cada fila o registro es una tupla, y cada columna es un atributo de la relación, como se ilustra en la Fig. 4. El relacional es un modelo lógico, en el que una base de datos es un conjunto de relaciones.

Fig. 4 Relación instructor
(profesor) representada en una tabla [SKS19].#
El modelo relacional fue introducido por Edgar Frank Codd en 1970 en su artículo “A Relational Model of Data for Large Shared Data Banks” []. Codd propuso este modelo como una forma más intuitiva y flexible de organizar y consultar datos en comparación con los modelos de bases de datos previamente existentes, como los modelos jerárquico y de red.
Las bases de datos relacionales, y los SABD que las implementan, utilizan el modelo relacional como base teórica y han dominado la industria de bases de datos durante décadas debido a su eficiencia, flexibilidad y capacidad de soportar transacciones complejas.
Estructura de datos#
La relación (tabla) es la estructura principal del modelo relacional. Como se mencionó, cada tabla contiene un conjunto de tuplas (filas, registros) y cada tupla es una lista ordenada de atributos (columnas, campos). Al igual que en los conjuntos, las tuplas de una relación no están ordenadas y no se repiten.
El conjunto de valores que puede tener un atributo es su dominio. Algunos ejemplos de dominios son el conjunto de los números reales, el conjunto de los números enteros o un conjunto finito de hileras de texto (Hombre
, Mujer
; H
, M
; Casado
, Soltero
; Sí
, No
). Usualmente, los valores que componen un dominio son atómicos (indivisibles). El valor nulo
(o null
, en inglés) es un miembro de cualquier dominio. El manejo de valores nulos puede causar problemas en operaciones de manejo de datos.
El esquema de una relación es su estructura lógica (i.e. la lista de sus atributos). Por ejemplo, el esquema de la relación instructor
es:
instructor(ID, name, dept_name, salary)
Integridad de datos#
La integridad en el modelo relacional de bases de datos se refiere a un conjunto de reglas y restricciones que garantizan la precisión y la consistencia de los datos en una base de datos relacional. Estas reglas ayudan a asegurar que la información almacenada en la base de datos sea confiable y que cualquier operación (inserción, actualización, borrado) no conduzca a un estado inválido de la base de datos.
La integridad en el modelo relacional se centra principalmente la integridad de relación, la integridad referencial y la integridad de dominio.
Integridad de relación#
Asegura que cada tupla en una relación pueda ser identificada de manera única por su llave primaria (en inglés, Primary Key o PK). La PK está compuesta por uno o varios atributos que no se repiten en las tuplas de la relación. En el esquema de una relación, la llave primaria se denota mediante el subrayado de los atributos que componen la llave. Por ejemplo:
instructor(ID, name, dept_name, salary)
Integridad referencial#
Se implementa a través de llaves foráneas. Una llave foránea (en inglés, Foreign Key o FK) establece una relación entre dos tablas. Una llave foránea en una tabla debe coincidir con la llave primaria de otra tabla, garantizando que no se creen registros “huérfanos” o que se borren registros que aún están siendo referenciados. Por ejemplo, en la tabla instructor
, el atributo dept_name
es una llave foránea a otra tabla llamada department
, en la cual es su llave primaria.
Integridad de dominio#
Garantiza que todos los valores de una columna se encuentren dentro de un dominio específico o conjunto de valores aceptables. Por ejemplo, una columna que almacena dia_semana
podría restringirse para que solo acepte los valores lunes
, martes
, …, domingo
.
Diagramas de esquema#
El esquema de una base de datos, junto con sus llaves primarias y foráneas puede representarse mediante un diagrama de esquema, como el que se muestra en la Fig. 5, para la base de datos university
. Cada relación aparece como una caja, con el nombre en azul en la parte superior y los atributos listados dentro de la caja.

Fig. 5 Diagrama del esquema de la base de datos university
[SKS19].#
La siguiente es la lista de esquemas de relaciones que se muestran en el diagrama:
department(dept_name, building, budget)
instructor(ID, name, dept_name, salary)
student(ID, name, dept_name, tot_cred)
advisor(s_id, i_id)
course(course_id, title, dept_name, credits)
prereq(course_id, prereq_id)
section(course_id, sec_id, semester, year, building, room_number, time_slot_id)
classroom(building, room_number, capacity)
timeslot(time_slot_id, day, start_time, end_time)
teaches(ID, course_id, sec_id, semester, year)
takes(ID, course_id, sec_id, semester, year, grade)
Los atributos de las llaves primarias se muestran subrayados. Las restricciones de clave foránea aparecen como flechas desde los atributos de llave foránea de la relación referenciadora hasta la llave primaria de la relación referenciada. De acuerdo con la notación utilizada en [SKS19], se utiliza una flecha de dos puntas, en lugar de una flecha de una sola punta, para indicar una restricción de integridad referencial que no es una restricción de llave foránea. Muchas herramientas de administración de bases de datos proporcionan herramientas de diseño con interfaces gráficas para crear diagramas de esquema (ej. pgModeler, MySQL Workbench).
Más adelante, se explicará un tipo diferente de diagrama, llamado entidad-relación. A pesar de que pueden parecer similares, los diagramas de esquema y los diagramas entidad-relación son diferentes y no deben confundirse entre sí [SKS19].
Manipulación de datos#
Los datos se manipulan mediante lenguajes. En este curso, se estudia en detalle el lenguaje SQL, el más utilizado. Existen otros lenguajes, como el álgebra relacional.
Álgebra relacional#
Es un lenguaje con un conjunto de operaciones que reciben una o dos relaciones como entrada y producen una nueva relación como salida.
Las operaciones básicas son seis:
Selección: σ
Proyección: ∏
Unión: ∪
Diferencia: –
Producto cartesiano: x
Renombrabiento: ρ
Para más detalles sobre álgebra relacional, puede consultar Database System Concepts (Chapter 2).
Ejercicios#
Estructure la base de datos de estadísticas policiales del OIJ, que tiene una sola tabla en su estado original, en varias tablas. Para cada una, identifique:
Nombre
Llave primaria
Llaves foráneas