Está en la página 1de 35

Bases de Datos 1

Facultad de Informática
Universidad Nacional de La Plata
Álgebra Relacional (AR)

•Operaciones Elementales

•Selección (σcondición )
•Proyección ( Πlista )
•Producto Cartesiano ( X )
•Unión ( ∪ )
•Diferencia ( - )

2
AR- Operaciones elementales – Selección (σ)

•Operación unaria que dada una condición, selecciona


elementos de una relación. Produce un subconjunto
“horizontal” de la relación dada. La condición puede
ser una expresión booleana en la que se usan los
conectores and, or y el not.

σ edad >= 30 ( Ingenieros )

3
AR- Operaciones elementales – Proyección (Π)

•Operación unaria dada una lista de atributos produce


un corte “vertical” de la relación, quedándose sólo con
los atributos allí mencionados. Los atributos de la lista
se toman de izquierda a derecha.

Π nombre, edad (Ingenieros)


Nombre Edad
José 34
Rosa 37
María 25
4
AR- Operaciones elementales – Producto Cartesiano (X)

•Operación binaria

•El producto cartesiano de dos relaciones A y B, “A xB”,


es una relación que incluye todas las tuplas posibles
que se obtienen concatenando cada tupla de A con
cada una de las tuplas de B

•La concatenación de una tupla a=(a1, …, am) y una


tupla b=(bm+1, …, bm+n) es una tupla t=(a1,…, am,
bm+1, …, bm+n)

5
AR- Operaciones elementales – Producto Cartesiano (X) -Ejemplo

Ingenieros X Proyectos

6
AR- Operaciones elementales – Unión ( ∪)
•Operación binaria que dadas dos relaciones A y B,
agrega a la relación A los elementos (no repetidos) de
la relación B
•Es necesario que las relaciones involucradas en la
operación sean compatibles
• Relaciones con igual aridad (igual número de atributos)
• El dominio del i-ésimo atributo de ambas relaciones debe ser el
mismo (∀∀ i)

Ingenieros ∪ Jefes

7
AR- Operaciones elementales – Diferencia o Resta ( -)

•Operación binaria que dadas dos relaciones A y B, y al


realizar la operación (A-B), retorna los elementos que
pertenecen a A y no pertenecen a B

Ingenieros - Jefes

8
AR- Operaciones

Operaciones elementales

Selección
Proyección
Producto Cartesiano
Unión
Diferencia o Resta

•Operaciones adicionales (pueden definirse en función


de las elementales)

• Intersección
• Producto o Reunión
• Producto Natural o Reunión Natural
• División

9
AR- Operaciones adicionales – Intersección (∩)

•Operación binaria

•Genera una nueva relación con aquellas tuplas que


están en ambas relaciones (pertenecen a ambas
relaciones al mismo tiempo)

• Es necesario que las relaciones involucradas en la


operación sean compatibles
• Relaciones con igual aridad (igual número de atributos)
• El dominio del i-ésimo atributo de ambas relaciones debe ser el
mismo (∀∀ i)

• r ∩ s es equivalente a r –( r – s )

10
AR- Operaciones adicionales – Intersección (∩) –Ejemplo-

Ingenieros Jefes
E# Nombre Edad E# Nombre Edad
320 José 34 320 José 34
322 Rosa 37 421 Jorge 48
323 María 25

Ingenieros ∩ Jefes

E# Nombre Edad
320 José 34

11
AR- Operaciones adicionales – Producto o Reunión (|X|condición)

•Operación binaria

•Genera una nueva relación con las tuplas resultantes


de aplicar una operación de selección con la
condición indicada sobre el resultado de un producto
cartesiano

•La condición se indica como una expresión booleana


de términos (se pueden usar conectores lógicos entre
las condiciones)

• r |X|condición s es equivalente a σcondición ( r X s )

12
AR- Operaciones adicionales – Producto o Reunión (|X|condición) -Ejemplo

13
AR- Operaciones adicionales – Producto Natural o Reunión Natural (|X|)

•Operación binaria

•Genera una nueva relación con las tuplas resultantes


de aplicar una operación de selección donde la
condición se asume por la igualdad de los atributos
con igual nombre sobre el resultado de un producto
cartesiano

•No se escribe explícitamente la condición y se asume


que se compara únicamente por igual

• r |X|s es equivalente a σr.at1=s.atr1 ^…^r.atn=s.atrn (r X s)

14
AR- Operaciones adicionales– Producto Natural (|X|) -Ejemplo

R1 R2
E# Nombre D# D# Descripcion
320 José D1 D1 Central
322 Rosa D3 D3 I+D
325 María D3 D4 Ventas
327 José D5

R1 |X| R2
E# Nombre D# Descripcion
320 José D1 Central
322 Rosa D3 I+D
325 María D3 I+D

15
AR- Operaciones adicionales – División ( / ) (%)

•Operación binaria (llamemos a las relaciones como R y


S, donde R es el dividendo y S el divisor)

•Los atributos del divisor S deben ser un subconjunto de


los atributos de la relación R con igual dominio

•La relación resultante de la división, llamémosla T,


posee tuplas t tal que:
• Los valores de t deben aparecer en R en combinación con
todas las tuplas de S

•r%s es equivalente a:
• ΠR-S r - Π R-S ((Π R-S ( r )x s) –r)

donde R-S significa los atributos de la relación r menos los atributos


de la relación s
16
AR- Operaciones – División ( / ) (%) -Ejemplo

R1 R2 R1 / R2
E# Proyecto Proyecto E#
320 RX338A RX338A 320
320 PY254Z PY254Z 323
323 RX338A
323 PY254Z
323 NC168T
324 NC168T
324 KT556B

17
AR- Operaciones

Operaciones fundamentales

Selección
Proyección
Producto Cartesiano
Unión
Diferencia o Resta

Operaciones adicionales (pueden definirse en función


de las elementales)

Intersección
Producto o Reunión
Producto Natural o Reunión Natural
División

18
AR operaciones

•Frecuenta (bebedor, bar)


•Sirve (bar, cerveza)
•Gusta (bebedor, cerveza)
•Encontrar:
• Bares que sirven una cerveza que le gusta al bebedor “x”
• Bebedores que frecuentan al menos un bar que sirve
cervezas que le gustan
• Bebedores que frecuentan solo bares que sirven alguna
cerveza que les gusta
• Bebedores que no frecuentan ningún bar que sirve cervezas
que les gustan
• Bebedores que gustan de todas las cervezas que sirve el bar
“x”

19
•Frecuenta (bebedor, bar)
•Sirve (bar, cerveza)
•Gusta (bebedor, cerveza)
• Bares que sirven una cerveza que le gusta al bebedor “x”

Π bar ( σ bebedor=“x” Gusta |X| Sirve)

20
•Frecuenta (bebedor, bar)
•Sirve (bar, cerveza)
•Gusta (bebedor, cerveza)
• Bebedores que frecuentan al menos un bar que sirve
cervezas que les gustan

Πbebedor ( Gusta |X| Frecuenta |X| Sirve)

21
•Frecuenta (bebedor, bar)
•Sirve (bar, cerveza)
•Gusta (bebedor, cerveza)
• Bebedores que frecuentan solo bares que sirven alguna cerveza que
les gusta

ΠBebedor Frecuenta - Π Bebedor (Frecuenta - Π Bebedor,bar (Sirve |X| Gusta) )

Bares donde sirven cervezas que le gustan

Bebedores que van a bares donde sirven cervezas que no les gustan

Bebedores que sólo van a bares que sirven alguna cerveza que les gusta

22
•Frecuenta (bebedor, bar)
•Sirve (bar, cerveza)
•Gusta (bebedor, cerveza)
• Bebedores que no frecuentan ningún bar que sirve cervezas
que les gustan

Π Bebedor Frecuenta - Πbebedor ( Gusta |X| Frecuenta |X| Sirve)

Bebedores que frecuentan al menos un bar que sirve


cervezas que le gustan

Bebedores que no frecuentan ningún bar que sirve cervezas que les gustan

23
•Frecuenta (bebedor, bar)
•Sirve (bar, cerveza)
•Gusta (bebedor, cerveza)
• Bebedores a los que les gustan todas las cervezas del bar “x”

Gusta % Π cerveza ( σ bar=“x” Sirve)

Cervezas que sirve el bar “x”

Bebedores a los que les gustan todas las cervezas del bar “X”

24
AR –Ejercicio Empleados- Ejercicio a)

Lugar_trabajo (empleado, departamento)


Curso_departamento (departamento, curso)
Curso_realizado (empleado, curso)

a) Quiénes son los empleados que han hecho todos los cursos,
independientemente de qué departamento los exija?

Curso_realizado % Π curso ( Curso_departamento )

25
AR –Ejercicio Empleados- Ejercicio b)
Lugar_trabajo (empleado, departamento)
Curso_departamento (departamento, curso)
Curso_realizado (empleado, curso)
Qué empleados hicieron todos los cursos requeridos por su
depertamento

Los cursos que tienen que hacer los empleados:


A = Π empleado,curso ( Lugar_trabajo |X| Curso_departamento )

Los empleados y los cursos que no hicieron:

B = ( A ) - ( Curso_realizado )

Los empleados que hicieron todos los cursos exigidos por su departamento:

Π empleado ( Lugar_trabajo ) - Π empleado (B)

26
AR – Ejercicio Mundiales

• Dadas las siguientes tablas


• Mundial (año, pais)
• Cancha (nombre_cancha, ciudad, capacidad, año)
• Partido (fecha, año, equipo1, equipo2, cancha, goles_eq1,
goles_eq2)

Resolver las siguientes consultas en AR:

a) Qué equipos jugaron en el mundial 90 en todas las


canchas habilitadas para ese mundial?

b) Qué equipos jugaron (para cualquiera de los


mundiales) en todas las canchas habilitadas para el
mundial correspondiente ?
27
AR –Ejercicio Mundiales-Resolución del ejercicio a

Obtengo todos los equipos que jugaron partidos con la cancha en la que jugaron
y el año

A= ( Π eq1,cancha ( σ año=90 ( Partido )) ∪ Π eq2,cancha ( σ año=90 ( Partido ) ))

Obtengo todas las canchas correspondientes al mundial del año 90

B= Π nombre_cancha ( σ año=90 ( Cancha )

Equipos jugaron en el mundial 90 en todas las canchas habilitadas para ese


mundial
A%B

28
AR –Ejercicio Mundiales-Resolución del ejercicio a –datos

• Supongamos tener el siguiente


conjunto de datos luego de la
consulta cargada en A

equipo cancha año cancha


E1 C1 90 C1
E2 C2 90 C2
E2 C1 90 C3
E2 C3 90 C4
E2 C4 90
E1 C2 90
• Resultado de la división
E3 C2 98
E2 C1 94 equipo año
E2 90

29
AR – Ejercicio -Resolución del ejercicio b

• PORQUE NO FUNCIONA LA DIVISIÓN ( generalmente es lo primero que se


intenta hacer para resolver esta consulta, aquí mostramos porque no es una
solución válida)

• Supongamos tener el siguiente


conjunto de datos luego de la • Supongamos tener el siguiente
consulta cargada en A conjunto de datos luego de
obtener para cada cancha en
equipo cancha año que año se jugó
E1 C1 90
cancha año
E2 C2 90
C1 90
E2 C1 90
C2 90
E2 C3 90
C3 90
E2 C4 90
C4 90
E1 C2 90
C2 98
E3 C2 98
C1 94
E2 C1 94

30
Ejemplo mostrando porque no funciona la división para la
resolución del ejercicio b-
equipo cancha año
cancha año
E1 C1 90
C1 90
E2 C2 90
C2 90
E2 C1 90
C3 90
E2 C3 90
C4 90
E2 C4 90
C2 98
E1 C2 90
C1 94
E3 C2 98
(divisor)
E2 C1 94

Para cada equipo, busca aquellos que jugaron en todas las canchas para todos los años en todos
los mundiales

Toma los valores asociados a E1 y los compara con los valores del divisor

equipo cancha año


E1 al menos no jugo en la cancha
E1 C1 90 3 (C3) del mundial 90 => no la
E1 C2 90 considero para el resultado

31
Ejemplo mostrando porque no funciona la división para la
resolución del ejercicio b-
equipo cancha año
cancha año
E1 C1 90
C1 90
E2 C2 90
C2 90
E2 C1 90
C3 90
E2 C3 90
C4 90
E2 C4 90
C2 98
E1 C2 90
C1 94
E3 C2 98
(divisor)
E2 C1 94

Para cada equipo, busca aquellos que jugaron en todas las canchas para todos los años en todos
los mundiales

Ahora, toma los valores asociados a E2 y los compara con los valores del divisor
equipo cancha año
E2 al menos no jugo en la cancha
E2 C2 90 2 (C2) del mundial 98 => no la
considero para el resultado
E2 C1 90

E2 C3 90 Sin embargo E2 jugo en


E2 C4 90 todas las canchas
habilitadas para el mundial
E2 C1 94
del año 90!!
32
Resolución del ejercicio b usando resta
• A: para cada equipo en que cancha podría haber jugado en cada año
A= Π ( Cancha |X| Partido ) ∪ Π ( Cancha |X| Partido )
eq1,Cancha.nombre_cancha, Partido.año = eq2,Cancha.nombre_cancha, Cancha.año =
Partido.año Cancha.año Partido.año Partido.año

• B: Para cada equipo en que cancha jugó


B= Π ( Partido ) ∪ Π ( Partido )
eq1, año, cancha eq2, año, cancha
• C: Para cada equipo en que cancha no jugo en cada año
C=A-B
• D: Todos los equipos de todos los mundiales, con su respectivo año
D = ( Π ( Partido ) ∪ Π ( Partido )
eq1,año eq2,año
• E: Equipos jugaron (para cualquiera de los mundiales) en todas las canchas
habilitadas para el mundial correspondiente
D-Π ( C )

eq1,año

33
Las resta con datos de ejemplo…
•A: para cada equipo en que cancha podría haber jugado en cada año equipo can año

•C: Para cada equipo en que cancha no jugo en cada año


cha •D: Todos los equipos de

•B: Para cada equipo en que cancha jugó


E1 C1 90 todos los mundiales, con
equipo can año su respectivo año
equipo can año
cha
E1 C2 90 cha
equipo año
E1 C3 90 E1 C1 90 E1 C3 90
E1 C4 90 E2 C2 90 E1 90
E1 C4 90
E2 C1 90 E2 90
E1 C1 94 E1 C1 94
E2 C3 90 E3 98
E1 C2 98 E1 C2 98
E2 C4 90 E2 94
E2 C1 90 E2 C2 98
E1 C2 90
E2 C2 90 E3 C1 90
E3 C2 98
E2 C3 90 E3 C2 90
E2 C1 94
E2 C4 90 E3 C3 90 •E: Equipos jugaron (para
cualquiera de los mundiales)
E2 C1 94 E3 C4 90 en todas las canchas
habilitadas para el mundial
E2 C2 98 E3 C1 94 correspondiente
E3 C1 90 D-Π ( C )
eq1,año
E3 C2 90
E3 C3 90 equipo año

E3 C4 90 E2 90

E3 C1 94 E3 98
E2 94
E3 C2 98
34
AR –Ejercicio Empleados-

Lugar_trabajo (empleado, departamento)


Curso_departamento (departamento, curso)
Curso-realizado (empleado, curso)

Donde:
Lugar_trabajo indica qué empleados trabajan en cada departamento
Curso_departamento son los cursos que cada departamento le exige a sus
empleados
Curso_realizado son los cursos que ya hizo cada empleado

Resolver usando AR, las siguientes consultas:

a) Quiénes son los empleados que han hecho todos los cursos,
independientemente de qué departamento los exija?
b) Quiénes son los empleados que ya han realizado todos los cursos
exigidos por sus departamentos?

35

También podría gustarte