Álgebra Relacional

Tips

Símbolos Unicode

Para copiar y pegar en un Textbox en Draw.io (usar ctrl+shift+V)

Operaciones fundamentales

Todas las operaciones sobre tablas devuelven una tabla nueva

Selección σ

Ejemplo:

R1 🠘 σ(Alumnos)
     legajo=3192

R2 🠘 σ(Planes)
     codDpto='ISI' ∧ añoPlan>=1985 ∧ añoPlan<=1995

Proyección π

R1 🠘 π(Alumnos)
	  legajo, apellido_nombre

R2 🠘        π       (σ(Alumnos)   )
	 apellidoNombre  legajo>35000
	 direccion

(obtener nombre completo y dirección de los Alumnos con legajo >35000)

Producto cartesiano ×

Unión

Diferencia

Unión

Producto Natural |×| !

Producto cartesiano al que se aplicó selección de los atributos con igual dominio y se realizó proyección, quitando columnas repetidas

Example

Planteo: Se quiere una lista con los datos de todos los alumnos inscriptos en carreras de planes del año 2008, indicando denominación del plan de estudio
π legajo, nombreCompleto, dirección, tel, denomPlan(σ año = 2008(AlumnosPlanes) Planes Alumnos)

Join X̲̅

Subconjunto del producto cartesiano al que se le aplicó la condición

Join Natural X̲̅ᴺ

Equi-join al que se le elimina uno de cada uno de los registros repetidos

División %

Sea R1R%S

Ejemplo: Listar los alumnos que rindieron las mismas materias que rindió el alumno de legajo 37556

  • Compara que los atributos en amarillo sean iguales, y si lo son, de ese registro retorna las columnas restantes (fuera del subconjunto del divisor) Pasted image 20240608011658.png
  • S <- π codDpto, añoPlan, codMaterialegajo = 37556 (AlumnosExamenes))
  • R <- π legajo, codDpto, añoPlan, codMateria (AlumnosExamnes)
  • R % S
  • Tenemos que sacar fechaExamen y nota porque en S están seleccionados los exámenes (con sus fechas y notas) los exámenes del alumno, que van a discrepar con los exámenes de los otros, y esto no es relevante al caso de uso