Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/tutosrive/db-relacionales-2026-1/llms.txt

Use this file to discover all available pages before exploring further.

El dataset S-P-J (Suppliers–Parts–Jobs) es uno de los ejemplos canónicos de la teoría relacional, introducido por C. J. Date en su texto clásico An Introduction to Database Systems. Modela una cadena de suministro simplificada donde proveedores (S) surten piezas (P) a proyectos de construcción (J), y la relación ternaria SPJ registra cada suministro con su cantidad. Su estructura sencilla pero expresiva lo convierte en el punto de partida ideal para practicar selección, proyección, join y producto cartesiano en RelaX.

Herramienta

RelaX — Relational Algebra Calculator

Calculadora interactiva de álgebra relacional con soporte para definir grupos de relaciones propios.

Dataset: TallerProveedores

Relaciones del dataset

RelaciónSignificadoAtributos clave
SProveedores (Suppliers)s (ID), noms (nombre), estado, ciudad
PPiezas (Parts)p (ID), nomp (nombre), color, peso, ciudad
JProyectos (Jobs)j (ID), nomj (nombre), ciudad
SPJSuministross, p, j (FK a cada relación), cant (cantidad)
La relación SPJ es la pieza central: cada fila indica que el proveedor s suministró cant unidades de la pieza p al proyecto j.

Cargar el dataset en RelaX

1

Abrir el Group Editor

En RelaX, selecciona “Group Editor” en la barra de navegación superior.
2

Pegar la definición completa

Elimina el contenido de ejemplo y pega el bloque siguiente en su totalidad.
3

Activar el grupo

Pulsa “use this group”. Las relaciones S, P, J y SPJ quedarán disponibles para consultas.
group: TallerProveedores
description: Base de datos para ejercicios de álgebra relacional (S, P, J, SPJ)

S = {
s:string, noms:string, estado:number, ciudad:string

"S1", "Smith", 20, "Londres"
"S2", "Jones", 10, "París"
"S3", "Blake", 30, "París"
"S4", "Clark", 20, "Londres"
"S5", "Adams", 30, "Atenas"
}

P = {
p:string, nomp:string, color:string, peso:number, ciudad:string

"P1", "Mesa", "rojo", 12, "Londres"
"P2", "Silla", "blanca", 17, "París"
"P3", "Armario", "gris", 17, "Roma"
"P4", "Archivador", "rojo", 14, "Londres"
"P5", "Puerta", "blanca", 12, "París"
"P6", "Lámpara", "amarilla", 19, "Londres"
}

J = {
j:string, nomj:string, ciudad:string

"J1", "Edificio 1", "París"
"J2", "Edificio 2", "Roma"
"J3", "Edificio 3", "Atenas"
"J4", "Edificio 4", "Atenas"
"J5", "Edificio 5", "Londres"
"J6", "Edificio 6", "Madrid"
"J7", "Edificio 7", "Londres"
}

SPJ = {
s:string, p:string, j:string, cant:number

"S1", "P1", "J1", 200
"S1", "P1", "J4", 200
"S1", "P1", "J5", 700
"S2", "P3", "J1", 400
"S2", "P3", "J2", 200
"S2", "P3", "J3", 200
"S2", "P3", "J4", 500
"S2", "P3", "J5", 600
"S1", "P3", "J6", 400
"S2", "P3", "J7", 800
"S2", "P5", "J2", 100
"S3", "P3", "J1", 200
"S3", "P4", "J2", 500
"S4", "P6", "J3", 300
"S4", "P6", "J7", 300
"S1", "P3", "J7", 70
"S1", "P3", "J5", 50
"S1", "P3", "J4", 40
"S1", "P3", "J3", 30
"S1", "P3", "J2", 20
}

Ejercicios

En RelaX, los joins con condición explícita se escriben como R ⨝ R.atributo=S.atributo S. Cuando dos relaciones tienen un atributo con el mismo nombre, el join natural (⨝ sin condición) los une automáticamente por ese atributo. Si los nombres difieren o hay ambigüedad, especifica siempre la condición completa: S ⨝ S.s=SPJ.s SPJ.
Los primeros ejercicios trabajan sobre una sola relación: aplica σ para filtrar filas y π para elegir columnas.
Enunciado: Lista todos los proveedores cuya ciudad sea Londres.
σ ciudad='Londres' (S)
Resultado esperado: S1 (Smith), S4 (Clark) — ambos con ciudad = Londres.
Enunciado: Obtén únicamente los nombres de las piezas que tienen color rojo.
π nomp (σ color='rojo' (P))
Paso a paso:
  1. σ color='rojo' (P) → filtra: Mesa (P1), Archivador (P4).
  2. π nomp (...) → extrae solo el nombre de la pieza.
Resultado esperado: Mesa, Archivador.
Enunciado: Lista todos los proyectos ubicados en Atenas.
σ ciudad='Atenas' (J)
Resultado esperado: J3 (Edificio 3), J4 (Edificio 4).

Resumen de operadores usados

OperadorSímboloEjemplo en este taller
Selecciónσσ ciudad='Londres' (S)
Proyecciónππ nomp (P)
Join con condición⨝ condS ⨝ S.s=SPJ.s SPJ
Join naturalS ⨝ SPJ (une por s)
Producto cartesiano×π ciudad (S) × π ciudad (P)

Build docs developers (and LLMs) love