Algebra Relacional para ingenieria de siste,as

ariasni2001 9 views 44 slides Sep 08, 2025
Slide 1
Slide 1 of 44
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44

About This Presentation

algebra relacional para bases de datos relacionales


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)

6  edad  25 (ADMINISTRADOR):  código < 5 (PRODUCTOR): código nombre edad 1 Jorge Campos 33 2 Enrique Muñoz 25 código nombre edad 2 Enrique Muñoz 25

7  nombre=“Jorge Campos” ʌ edad=25 (ADMINISTRADOR):  nombre=“Jorge Campos” ˅ edad=25 (ADMINISTRADOR): código nombre edad 1 Jorge Campos 33 2 Enrique Muñoz 25 código nombre edad

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

EJEMPLO No. 1 ( Composición ) 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

Tabla: “Cuenta” Tabla: “Cuenta” sal  saldo (cuenta) -  cuenta.saldo (  cuenta.saldo < d.sal (cuenta x  d(sal) (  saldo (cuenta) )))  cuenta.saldo (cuenta) -  cuenta.saldo (  cuenta.saldo < d.sal (cuenta x  d(sal) (  saldo (cuenta)) )) Tabla: “d” “Buscar el máximo saldo de cuenta del banco”

Tabla: “Cuenta” Tabla: “d” sal número- cuenta nombre- sucursal saldo sal C- 101 Centro 500 500 C- 101 Centro 500 400 C- 101 Centro 500 900 C- 102 Navacerrada 400 500 C- 102 Navacerrada 400 400 C- 102 Navacerrada 400 900 C- 201 Galapagar 900 500 C- 201 Galapagar 900 400 C- 201 Galapagar 900 900  saldo (cuenta)-  cuenta.saldo (  cuenta.saldo < d.sal (cuenta x  d(sal) (  saldo (cuenta)))) saldo 500 400  saldo (cuenta)-  cuenta.saldo (  cuenta.saldo < d.sal ( cuenta x  d(sal) (  saldo (cuenta)) ))  saldo (cuenta)-  cuenta.saldo (  cuenta.saldo < d.sal (cuenta x  d(sal) (  saldo (cuenta))) ) Tabla: “Cuenta” Tabla: “CuentaXd” Tabla: “CuentaXd” número- cuenta nombre-sucursal saldo sal  cuenta.saldo > d.sal C- 101 Centro 500 900 TRUE TRUE C- 102 Navacerrada 400 500 C- 102 Navacerrada 400 900 TRUE

 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
Tags