algebra relacional para bases de datos relacionales
Size: 951.99 KB
Language: es
Added: Sep 08, 2025
Slides: 44 pages
Slide Content
Algebra Relacional
A lgebra Relacional Es un lenguaje formal que permite consultar bases de datos relacionales Conjunto de operadores que toman relaciones como operandos y retornan una relación como resultado Propiedad de cierre El resultado de un operador puede ser el operando de otro. Es un lenguaje que no es usado directamente por los desarrolladores: usado para la traducción y optimización de consultas SQL
Operación Notación Descripción Selección σ condición (Relación) Selecciona las tuplas que cumplen una condición específica. Proyección π atributos (Relación) Devuelve una nueva relación con solo las columnas seleccionadas. Unión Relación1 ∪ Relación2 Combina las tuplas de dos relaciones con el mismo esquema. Intersección Relación1 ∩ Relación2 Devuelve las tuplas que están en ambas relaciones. Diferencia Relación1 − Relación2 Devuelve las tuplas que están en la primera relación pero no en la segunda. 2025-2 Ing. Armando Ricardo Medina Nieto. Esp.(C) - Bases de datos 1 4
Operación Notación Descripción Producto cartesiano Relación1 × Relación2 Combina cada tupla de la primera relación con cada tupla de la segunda. Renombrar ρ nuevoNombre (Relación) Cambia el nombre de una relación o de sus atributos. Join natural Relación1 ⨝ Relación2 Une dos relaciones en función de un atributo común de forma implícita. Join equi Relación1 ⨝ condición Relación2 Une dos relaciones en función de una condición, normalmente una igualdad. 2025-2 Ing. Armando Ricardo Medina Nieto. Esp.(C) - Bases de datos 1 5
Álgebra Relacional Ocho operadores clasificados en dos grupos: Tradicionales de la teoría de conjuntos: Unión , Intersección , Diferencia y Producto Cartesiano Especializados: Restricción (o Selección), Proyección , Reunión ( join ) y División Operadores adicionales: Renombrado , Agrupamiento, Derivación (o Extensión) No traducir join como unión
Álgebra Relacional código nombre edad 1 Jorge Campos 33 2 Enrique Muñoz 25 3 Esteban Paz 21 código nombre edad 2 Enrique Muñoz 25 8 Jorge Arias 30 10 Juan Martínez 19 Sean las relaciones: ADMINISTRADOR PRODUCTOR
Álgebra Relacional: Selección Restricción o Selección ( ): Genera una relación que contiene todas las tuplas de una relación que satisfacen una condición dada La condición se construye mediante operadores de comparación (=, <, , etc.) y booleanos (AND, OR, etc.) Condición (R)
8 Álgebra Relacional: Proyección Proyección ( ): Extrae atributos (columnas) de una relación El resultado es una relación ( se eliminan tuplas repetidas ) Lista atributos (R)
código, edad (ADMINISTRADOR) código, nombre (PRODUCTOR) código edad 1 33 2 25 3 21 código nombre 2 Enrique Muñoz 8 Jorge Arias 10 Juan Martínez
Sea una relación JUGADOR: Sea: país (JUGADOR) Sea: nom, país (JUGADOR) JUGADOR cod nom país 3 Xiu China 8 Juan Perú 2 Juan Perú país China Perú Note que se eliminan tuplas repetidas nom país Xiu China Juan Perú
Composición de Operaciones relacionales Tabla: “Sucursal” Tabla: “Cliente” Tabla: “impositor” Tabla: “préstamo” Encontrar los nombres de los clientes que viven en la ciudad Peguerinos
Composición de Operaciones relacionales Tabla: “Sucursal” Tabla: “Cliente” Tabla: “impositor” Tabla: “préstamo” Encontrar los nombres de los clientes que viven en la ciudad Peguerinos
Álgebra Relacional: Producto Cartesiano Producto Cartesiano: R 1 X R 2 Retorna una relación que contiene todas las tuplas resultantes de la combinación de cada tupla de R 1 con cada tupla de R 2 La cabecera de la relación resultante es la unión de las cabeceras de R 1 y R 2 Para hacer el producto cartesiano, las cabeceras de R 1 y R 2 no pueden tener nombres de atributos iguales Si las cabeceras tienen nombres de atributos iguales se debe usar un alias mediante el operador de renombrado r (más adelante se explica este operador)
código nombre edad 1 Jorge Campos 33 2 Enrique Muñoz 25 3 Esteban Paz 21 código nombre edad 2 Enrique Muñoz 25 8 Jorge Arias 30 10 Juan Martínez 19 ADMINISTRADOR PRODUCTOR Sean las relaciones:
Álgebra Relacional: Renombramiento ADMINISTRADOR X PRO(cod,nom) ( código,nombre (PRODUCTOR)) Renombrado temporal de los atributos Renombrado temporal de la relación Operador de renombrado código nombre edad cod nom 1 Jorge Campos 33 2 Enrique Muñoz 1 Jorge Campos 33 8 Jorge Arias 1 Jorge Campos 33 10 Juan Martínez 2 Enrique Muñoz 25 2 Enrique Muñoz 2 Enrique Muñoz 25 8 Jorge Arias 2 Enrique Muñoz 25 10 Juan Martínez 3 Esteban Paz 21 2 Enrique Muñoz 3 Esteban Paz 21 8 Jorge Arias 3 Esteban Paz 21 10 Juan Martínez
Álgebra Relacional: Diferencia/Resta Diferencia: R 1 R 2 Retorna una relación que contiene todas las tuplas que aparecen en R 1 pero no en R 2 (tuplas idénticas) Las relaciones deben tener cabecera idéntica para que sean compatibles para la diferencia
saldo (cuenta)- cuenta.saldo ( cuenta.saldo < d.sal (cuenta x d(sal) ( saldo (cuenta)))) saldo 500 400 saldo 500 400 900 - = saldo 900 “Buscar el máximo saldo de cuenta del banco”
“Consultar los nombres de todos los clientes que viven en la misma calle y en la misma ciudad que Gómez” EJEMPLO No. 2 ( Composición )
cliente.calle-cliente = dir_gomez.calle ʌ cliente.ciudad-cliente=dir_gomez.ciudad ( cliente x dir_gomez(calle, ciudad) ( calle-cliente, ciudad-cliente ( nombre-cliente = “Gómez” (cliente))) cliente.nombre-cliente ( cliente.calle-cliente = dir_gomez.calle ʌ cliente.ciudad-cliente=dir_gomez.ciudad ( cliente x dir_gomez(calle, ciudad) ( calle-cliente, ciudad-cliente ( nombre-cliente = “Gómez” (cliente)))) “Consultar los nombres de todos los clientes que viven en la misma calle y en la misma ciudad que Gómez”
Álgebra Relacional: UNION Unión: R 1 R 2 Retorna una relación que contiene todas la tuplas de R 1 y de R 2 ( se eliminan tuplas repetidas ) Las relaciones deben tener cabecera idéntica para que sean compatibles para la unión
Consideremos ….. ADMINISTRADOR PRODUCTOR: PRODUCTOR ADMINISTRADOR: código nombre edad 1 Jorge Campos 33 3 Esteban Paz 21 código nombre edad 8 Jorge Arias 30 10 Juan Martínez 19
ADMINISTRADOR PRODUCTOR: código nombre ed a d Jorge Campos Enrique M Esteb 8 Solo aparece una vez
Álgebra Relacional: Intersección Intersección: R 1 R 2 Retorna una relación que contiene todas las tuplas que aparecen tanto en R 1 como en R 2 Las relaciones deben tener cabecera idéntica para que sean compatibles para la intersección
ADMINISTRADOR PRODUCTOR: código nombre edad 2 Enrique Muñoz 25
Álgebra Relacional: Reunión (JOIN) Reunión ( join ): Tiene varias modalidades: Reunión natural ( natural join ): R 1 ⋈ R 2 Sea R 1 (A,B) y R 2 (B,C). El resultado de R 1 ⋈ R 2 es una relación con cabecera (A,B,C) donde cada tupla de R 1 se combina con cada tupla de R 2 siempre y cuando tengan el mismo valor en el atributo en común (B). A, B y C pueden ser atributos compuestos. No traducirla al español como unión
Álgebra Relacional código 1 Jorge Campos 3 2 Enrique Muñoz 3 Esteban Paz 8 Jorge 10 EMPLEADO n o m bre ed a d dep 2 Pro 3 D E P A R T AME N T O depto descripción 1 Administ Atributo de join Nota : En este ejemplo, el campo depto en EMPLEADO no es CF (Llave Foránea) con respecto a la relación DEPARTAMENTO
Álgebra Relacional EMPLEADO ⋈ DEPARTAMENTO: código nombre edad depto descripción 1 J o r g e Ca m po s 33 1 Administración 2 En r i qu e M uño z 25 1 Administración 3 E s t e b an Paz 21 1 Administración 8 J o r g e A r i as 30 2 Producción 10 J u an M ar t í n ez 19 2 Producción
k ey k ey k e y
Álgebra Relacional Reunión Theta ( theta join ): R 1 Condición R 2 Equivale a: Condición (R 1 X R 2 ) El operador de comparación usado en la condición no es el “ = “ de la reunión natural sino alguno de los siguientes: “ > “, “ < “, “ >= “, “ <= “, “ ≠ “
Álgebra Relacional EMPLEADO depto > dep DEPT(dep,desc) ( depto, descripción (DEPARTAMENTO) ) código nombre edad depto dep desc 8 Jorge Arias 30 2 1 Administración 10 Juan Martínez 19 2 1 Administración 12 Anselmo Rodas 28 6 1 Administración 12 Anselmo Rodas 28 6 2 Producción 12 Anselmo Rodas 28 6 3 Ventas 12 Anselmo Rodas 28 6 4 Finanzas (EMPLEADO X EMPLEADO.depto > DEPT.dep DEPT(dep,desc) ( depto,descripción (DEPARTAMENTO) ) =
Álgebra Relacional: División División: R 1 R 2 Sean las relaciones R1( A , B ) y R2( B ). El resultado de R 1 R 2 es una relación con el atributo A Un valor a A hace parte del resultado de la división si a está en R 1 combinado con cada valor B que aparece en R 2 A y B pueden ser atributos compuestos
Álgebra Relacional cod-artista nom-género 45 Soul 45 Pop 45 Dance 8 Soul 8 Pop 23 Dance ARTISTAYGENERO G É N E RO nom-género Soul Pop Dance
Álgebra Relacional ARTISTAYGENERO GÉNERO cod-artista 45 Ya que en este caso solo el artista 45 está combinado con todos los géneros que aparecen en la relación GÉNERO
Álgebra Relacional Operadores adicionales: Asignación : VbleRelacion ← Relación : Renombra atributos y el nombre de la relación: NUEVONOMBRERELACIÓN(atributos renombrados) ( (atributos) (R)) Nota: El renombrado no es definitivo , este solo tiene efecto durante la expresión del álgebra relacional.
40 Álgebra Relacional: Agrupamiento Ģ : Operador de agrupamiento. Funciones de grupo: SUM(), AVG(), MAX(), MIN(), COUNT() Lista atributos de agrupamiento Ģ Lista valores agregados (R) Ej. Sea: EMP código nombre edad depto 1 Jorge Campos 33 1 2 Enrique Muñoz 25 1 3 Esteban Paz 21 1 8 Jorge Arias 30 2 10 Juan Martínez 19 2 12 Anselmo Rodas 28 6 ¿Qué hace la siguiente consulta? depto Ģ COUNT(código) AS conteo (EMP) Renombrado del valor agregado Valor agregado: función de grupo aplicada a un atributo, cada uno con su renombrado
cod género país salario 1 m China 100 2 m UK 200 4 m China 100 3 f China 300 8 f China 100 9 m UK 50 23 f China 100 país, género Ģ SUM (salario) AS total , COUNT(cod) AS cuantos (TRABAJADOR) TR A B A JA D OR país género total cuantos China m 200 2 UK m 250 2 China f 500 3
Álgebra Relacional: Derivación Derivación: EXTEND R ADD Lista cálculos AS Lista atributos EMP código nombre sal b o n 1 Jorge Campos 3 2 Enrique Muñoz 3 Esteban Paz 8 Jorge 10 Eje m plo: E X T E ND EMP AD D sal+bono A S tot s al
Álgebra Relacional Se genera una relación como la original pero con un atributo totsal adicional: código nombre sal bono totsal 1 Jorge Campos 33 1 34 2 Enrique Muñoz 25 1 26 3 Esteban Paz 21 1 22 8 Jorge Arias 30 2 32 10 Juan Martínez 19 2 21 12 Anselmo Rodas 28 6 34 ¿Qué hace la siguiente consulta? E j : E X TE N D EMP AD D 1 A S nu m , ‘Hola’ A S m ensa j e La relación original permanece intacta