Está en la página 1de 45

ÁLGEBRA RELACIONAL

Bases de datos I
 DEFINICIÓN
 DATASET
 OPERADORES
 OPERADORES UNITARIOS
 PROYECCIÓN (p)
 SELECCIÓN (s)

CONTENIDO  RENOMBRADO (r)

 OPERADORES BINARIOS (CONJUNTOS)


 UNIÓN (∪)
 INTERSECCIÓN (∩)
 RESTA (-)
 PRODUCTO CARTESIANO (x)

 OPERADORES BINARIOS (ESPECIALES)


 Reunión o Join (⨝,⟕⟖⟗⋉
, , , ,⋊,▷)
 División (÷)

 EXTENDIDOS
 Ordenamientos
Conjunto de operadores
Permite operar con el que toman relaciones como
Modelo Relacional sus operandos y regresan
una relación como resultado

DEFINICIÓN Propuesta por Codd Es un lenguaje puro

Se usa para la traducción de


una consulta SQL y para
optimización de consultas
 Colección de datos tabulada.
 Al ser tabulada se debe poder identificar plenamente cada tabla
 Recordar la notación del modelo relacional.

# MANAGER_ID MANAGER_NAME AGE


MANAGER
100 Steven King 30

DATASET 103 Alexander Hunold 22


108 Nancy Greenberg 35

# EMP_ID EMP_NAME AGE


EMPLOYEE
101Diana Lorentz 64

103Alexander Hunold 22

104David Austin 27
# MANAGER_ID MANAGER_NAME AGE MANAGERS = {
MANAGERS MANAGER_ID, MANAGER_NAME, AGE
100 Steven King 30
103 Alexander Hunold 22
100, 'Steven King',30
108 Nancy Greenberg 35
103,'Alexander Hunold',22
108,'Nancy Greenberg',35
}

EMPLOYEES = {
EMP_ID, EMP_NAME, AGE
# EMP_ID EMP_NAME AGE
101,'Diana Lorentz',64
101Diana Lorentz 64 103,'Alexander Hunold',22
EMPLOYEES
103Alexander Hunold 22
104,'David Austin',27
}
104David Austin 27

https://dbis-uibk.github.io/relax/landing
• Proyección (p)
Operadores • Selección (s)
unitarios • Renombrado (r)

Operadores • Unión (∪)


• Intersección (∩)
binarios • Resta (-)
(Conjuntos) • Producto cartesiano (x)
OPERADORE
S Operadores
binarios
• Reunión o Join (⨝,⟕,⟖,⟗,⋉,⋊,▷)
• División (÷)
(Especiales)

• Agrupamientos
Extendidos • Ordenamientos
Toma como argumento una
relación R y una lista de
atributos

Se utiliza para extraer atributos


(columnas) de una relación R
PROYECCIÓN El resultado es una nueva
relación R1 cuyo esquema
corresponde a la lista de
p ListaAtributos (R) atributos proyectados
En R1 se eliminan las
tuplas duplicadas

Se puede extraer más de una columna


a la vez
R
P()OYIN p
EC
C
Ó
so tub i r tA a t s iL
# EMP_ID EMP_NAME AGE
101Diana Lorentz 64

 Dada la relación EMPLOYEES expresar la operación de AR 103Alexander Hunold 22


para las siguientes relaciones: 104David Austin 27

# EMP_ID
Una relación que liste • ) 101
todos los identificadores
del empleado: 103

104

Una relación que muestre •) EMP_NAME AGE

el nombre y edad del Diana Lorentz 64


empleado: Alexander Hunold 22

David Austin 27

Una relación que muestre • )EMPLOYEE # EMP_ID EMP_NAME


el identificador y el 101Diana Lorentz
nombre de todos los
empleados: 103Alexander Hunold
El argumento es una
relación R y una
condición

SELECCIÓN
Produce una relación R1
El resultado es una nueva
que contiene todas las
relación cuyo esquema es
tuplas de R que cumplen
idéntico al esquema de R
una condición específica

scondición(R)
La condición se construye
mediante operadores de
comparación (=,<,> etc.)
y booleanos (AND, OR
etc.)
R s
)( S
E
L
E
C
ÓC
I
N
nó i c i dnoc

# EMP_ID EMP_NAME AGE


101Diana Lorentz 64

 Dada la relación EMPLOYEES expresar la operación de AR 103Alexander Hunold 22


para las siguientes relaciones: 104David Austin 27

Una relación que liste los • ) # EMP_ID EMP_NAME AGE

empleados menores de 30 103Alexander Hunold 22


años 104David Austin 27

Una relación que liste


los empleados cuyo ID
es impar 𝜎 𝑒𝑚𝑝 %2!=0 (𝐸𝑀𝑃𝐿𝑂𝑌𝐸𝐸𝑆)
❑𝑖𝑑
Una relación que muestre EMPLOYEE
• π EMP_ID, EMP_NAME σ
el identificador y el EMPLOYEES.AGE > 50
nombre de todos los
empleados mayores de 50 EMPLOYEES
Produce una
relación R1 que
RENOMBRADO El argumento es una
relación R y un
mantiene la
COLUMNAS conjunto de parejas
estructura de R con
las columnas
r COL1ALIAS1,COL2  ALIAS2,
columnaAlias
correspondientes
renombradas
…,COLN  ALIASN (R)
Produce una
El argumento es relación R1 que
RENOMBRADO una relación R y mantiene la
RELACIONES un alias para la estructura de R
tabla pero con el
nombre del alias
rALIAS(R)
RENOMBRADO # EMP_ID EMP_NAME AGE

rCOL1ALIAS1, COL2  ALIAS 2, …,COLN  ALIASN


(R)
101Diana Lorentz 64

103Alexander Hunold 22
rALIAS(R)
104David Austin 27
 Dada la relación EMPLOYEES expresar la operación de AR
para las siguientes relaciones:

• ρ empleados (σ AGE < 25


Una relación con nombre
empleados que liste los
(EMPLOYEES))
empleados menores de 25
años

• ρ EMP_ID→ID,EMP_NAME→NOMBRE (ρ EMP (π
Una relación que muestre el EMP_ID, EMP_NAME (σ AGE > 50 (EMPLOYEES))))
identificador y el nombre de
todos los empleados mayores EMPLOYEE
de 50, cuyo nombre que
tenga las siguiente estructura
EMP(ID, NOMBRE)
Toma como
argumentos dos
Retorna una relación relaciones R1 y R2
R3 con el mismo con esquemas
esquema de R1 y R2 idénticos
que contiene todas la
tuplas de R1 y todas
las de R2.

Retorna una relación


R3 con el mismo
esquema de R1 y R2
que contiene todas la
tuplas de R1 y todas

UNIÓN
las de R2.

R1 È R2
UNÓ
INR1 ÈR2

 Dada la relaciones EMPLOYEES y MANAGERS expresar la


operación de AR para las siguientes relaciones: EMPLOYEES
# MANAGER_ID MANAGER_NAME AGE
MANAGERS # EMP_ID EMP_NAME AGE
101 Diana Lorentz 64 100 Steven King 30
103 Alexander Hunold 22 103 Alexander Hunold 22
104 David Austin 27 108 Nancy Greenberg 35

Una relación que liste todos los registros de las dos • MANAGERS∪EMPLOYEES
relaciones de gerentes y empleados

• (σ AGE%2 != 0 (EMPLOYEES ∪ MANAGERS))


Una relación que liste los registros de las relaciones de
gerentes y empleados cuya edad sea impar

• ρ MAYORES (π MANAGER_ID, MANAGER_NAME (σ AGE>50 MANAGERS) ∪ π EMP_ID,


Una relación que muestre el identificador y el nombre EMP_NAME (σ AGE>50 EMPLOYEES))
de todos los empleados y gerentes mayores de 50. El • mayo = π EMP_ID,EMP_NAME (σ AGE > 50 (EMPLOYEES ∪ MANAGERS))
nombre de la relación debe ser MAYORES • ρ mayores (mayo)
Retorna una relación
R3 con el mismo
Toma como argumentos
INTERSECCI dos relaciones R1 y R2
esquema de R1 y R2
que contiene todas las
ÓN con esquemas
idénticos
tuplas que aparecen
tanto en R1 como en
R2

R1  R2
N
ITERSECCÓ
INR1 R2

 Dada la relaciones EMPLOYEES y MANAGERS expresar la


operación de AR para las siguientes relaciones: EMPLOYEES
# MANAGER_ID MANAGER_NAME AGE
MANAGERS # EMP_ID EMP_NAME AGE
101 Diana Lorentz 64 100 Steven King 30
103 Alexander Hunold 22 103 Alexander Hunold 22
104 David Austin 27 108 Nancy Greenberg 35

• EMPLOYEES ∩ MANAGERS
Una relación que liste
todos los registros de
los empleados que
además son gerentes
RESTA
Toma como argumentos
dos relaciones R1 y R2 con
Retorna una relación R3 con el
esquemas idénticos
mismo esquema de R1 y R2 que
contiene todas las tuplas que
aparecen en R1 pero no en R2
R1 - R2
RESTAR1 -R2

 Dada la relaciones EMPLOYEES y MANAGERS expresar la


operación de AR para las siguientes relaciones: MANAGERS
# MANAGER_ID MANAGER_NAME AGE
# EMP_ID EMP_NAME AGE
101 Diana Lorentz 64 100 Steven King 30
EMPLOYEES 103 Alexander Hunold 22 103 Alexander Hunold 22
104 David Austin 27 108 Nancy Greenberg 35

Una relación que liste todos los • EMPLOYEES - MANAGERS


registros de los empleados que
además no son gerentes

Una relación que liste todos


identificadores de los registros de • MANAGERS -EMPLOYEES
los gerentes que además no son
empleados
Da como resultado una
relación R3 cuyo esquema
Toma como argumentos dos
consta tanto de los atributos
relaciones R1 y R2
de R1 como de los atributos
de R2

PRODUCTO Los esquemas de R1 y R2


deben ser disjuntos, es decir Se debe usar un alias

CARTESIANO los esquemas de R1 y R2 no


pueden tener nombres de
(mediante el operador r) si
los esquemas no son
atributos en común ¿por disjuntos
qué?

R1 X R2
R3 contiene todas las tuplas
resultantes de la
combinacion de cada tupla
de R1 con cada una de las
tuplas de R2
PRODUCTO
CARTESA
INOR1 C R2

 Dada la relaciones EMPLOYEES y MANAGERS expresar la


operación de AR para las siguientes relaciones: EMPLOYEES
# MANAGER_ID MANAGER_NAME AGE
MANAGERS # EMP_ID EMP_NAME AGE
101 Diana Lorentz 64 100 Steven King 30
103 Alexander Hunold 22 103 Alexander Hunold 22
104 David Austin 27 108 Nancy Greenberg 35

Una relación que liste las combinaciones • σ MANAGERS.MANAGER_ID%2=1 ∧


empleado-gerente donde el identificador
del gerente sea impar y el identificador del EMPLOYEES.EMP_ID%2=0
empleado sea par (MANAGERS ⨯ EMPLOYEES)

Una relación que liste las combinaciones • σ EMP_ID = MANAGER_ID


empleado-gerente donde el identificador
del gerente sea el mismo que el del (EMPLOYEES ⨯ MANAGERS)
empleado
Unión

Resta La intersección ya
que puede ser

PROPIEDADES
expresada mediante
la diferencia
Producto cartesiano Intersección

NO CONMUTATIVAS NI CONMUTATIVAS Y
NO PRIMITIVA
ASOCIATIVAS ASOCIATIVAS
 Crear una relación que muestre todos los atributos del empleado y el
gerente y una columna adicional que contenga un secuencial que enumere
las tuplas mostradas.
 Crear una relación que contenga los nombres de los empleados y gerentes
cuyos nombres tengas 14 caracteres o menos.
 Crear una relación con nombre MAYUS que contenga los nombre de
empleados y gerentes en mayúsculas.

EJERCICIOS  Crear una relación con el esquema EMP(id, nombre, salario). Que muestre
los empleados que no son gerentes y donde la columna salario debe ser un
Tener en cuenta la documentación presentada número aleatorio entero.
en:
 Crear una relación con el esquema EMP(id, nombre, fecha). Que muestre
https://dbis-uibk.github.io/relax/help#relalg-
los empleados que también son gerentes, la columna nombre debe estar
valueexpr
totalmente en minúscula y la fecha mostrada debe ser la actual.
 Crear una relación con el esquema EMP(nombre_gen, nombre_emp). La
cual contenga la combinación de los empleados y gerentes donde el nombre
del gerente aparezca en mayúsculas y el del empleado en minúscula. Y este
sujeta a la condición de que el identificador del gerente debe ser múltiplo de
10 o que la edad del empleado sumada con su identificador sea impar.
1. π secuencia←rownum(),MANAGER_ID,MANAGER_NAME,AGE (MANAGERS ∪ EMPLOYEES)
2. σ length(EMP_NAME)<=14 (EMPLOYEES ∪ MANAGERS)
3. nombres=π EMP_NAME (EMPLOYEES ∪ MANAGERS)
nombreMayus=π nombre←upper(EMP_NAME) nombres
ρ MAYUS (nombreMayus)
4. resta=EMPLOYEES-MANAGERS
Rsalario=π EMP_ID,EMP_NAME, salario←round(rand()*100000) (resta)
ρ EMP (ρ id←EMP_ID, nombre←EMP_NAME Rsalario)
5. siGenrentes = EMPLOYEES ∩ MANAGERS
relacion = π EMP_ID, nombre←lcase(EMP_NAME), fecha←now() siGenrentes
ρ EMP (ρ EMP_ID→id relacion)
6. combinacion = EMPLOYEES ⨯ MANAGERS
condicionada=σ MANAGER_ID%10=0 ∨ (EMPLOYEES.AGE+EMP_ID)%2=1 (combinacion)
nombres =π MANAGER_NAME,EMP_NAME (condicionada)
nombresCase=π nombre_gen←upper(MANAGER_NAME),nombre_emp←lower(EMP_NAME) nombres
ρ EMP nombresCase
OPERADORES
BINARIOS ESPECIALES
Y EXTENDIDOS
group: ejm2
EMPLOYEES
EMPLOYEES={
EMPLOYEE_ID NAME DEPARTMENT_ID EMPLOYEE_ID,NAME,DEPARTMENT_ID
200 Jennifer Whalen 90
101 Neena Kochhar 60
200,'Jennifer Whalen', 90
102 Lex De Haan 50
101,'Neena Kochhar', 60
114 Den Raphaely 110
102,'Lex De Haan', 50
122 Payam Kaufling 110
114,'Den Raphaely', 110
176 Jonathon Taylor 90
122,'Payam Kaufling', 110
201 Michael Hartstein
176,'Jonathon Taylor', 90
201,'Michael Hartstein', null
}

 DEPARTMENTS DEPARTMENTS={
DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID DEPARTMENT_ID,DEPARTMENT_NAME, MANAGER_ID
90 Executive 200
90,'Executive',200
110 Accounting 122
110,'Accounting',122
60 IT 101 60,'IT',101
50 Shipping 114 50,'Shipping',114
80 Sales 80,'Sales',null
}
Toma como argumentos dos relaciones R1 y R2 con esquemas
diferentes

Sea R1(A,B) y R2(B,C) el resultado es una relación R3 con esquema


R3(A,B,C)

Cada tupla de R1 se combina con cada tupla de R2 SIEMPRE Y


CUANDO tengan el mismo valor del atributo en común (B)
NATURAL JOIN
El atributo en común B debe tener el mismo nombre para que sea una reunión
R1 ⨝ R2 natural

El atributo en común B puede ser compuesto


Toma como argumentos dos relaciones R1 y R2 con
esquemas diferentes y una condición determinante para
la reunión

Sea R1(A,B) y R2(C,D) el resultado es una relación


R3 con esquema R3(A,B,C,D)

INNER JOIN
Cada tupla de R1 se combina con cada tupla de R2
SIEMPRE Y CUANDO se cumpla la condición
R1 ⨝CONDICION R2 parametrizada

Es equivalente a la expresión
scondición(R1 x R2)
INNER JOIN
R1 ⨝ CONDICION R2
NIOJ A L
R
U
TN
A
21R⨝

 Dada la relaciones EMPLOYEES y DEPARTMENTS expresar la operación de AR para las siguientes relaciones:
EMPLOYEES
EMPLOYEE_ID NAME DEPARTMENT_ID  DEPARTMENTS
200 Jennifer Whalen 90
DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID
101 Neena Kochhar 60
102 Lex De Haan 50 90 Executive 200
114 Den Raphaely 110 110 Accounting 122
122 Payam Kaufling 110
176 Jonathon Taylor 90 60 IT 101
201 Michael Hartstein 50 Shipping 114
80 Sales
Una relación que liste el nombre del empleado, • π NAME, EMPLOYEE_ID, DEPARTMENT_NAME (EMPLOYEES ⨝ DEPARTMENTS)
• π NAME, EMPLOYEE_ID, DEPARTMENT_NAME (EMPLOYEES ⨝
además del identificador y el nombre del (EMPLOYEES.DEPARTMENT_ID=DEPARTMENTS.DEPARTMENT_ID) DEPARTMENTS)
departamento al que pertenece. • π NAME, EMPLOYEE_ID, DEPARTMENT_NAME σ DEPARTMENTS.DEPARTMENT_ID =
EMPLOYEES.DEPARTMENT_ID (EMPLOYEES ⨯ DEPARTMENTS)

• π DEPARTMENT_NAME, NAME (σ (EMPLOYEES.EMPLOYEE_ID =


Una relación que liste los nombres de los DEPARTMENTS.MANAGER_ID) (EMPLOYEES ⨯ DEPARTMENTS))
• π DEPARTMENT_NAME, NAME ( EMPLOYEES ⨝ (EMPLOYEES.EMPLOYEE_ID =
departamentos y el nombre de su gerente DEPARTMENTS.MANAGER_ID) (DEPARTMENTS))

• π NAME (EMPLOYEES ⨝ (EMPLOYEES.EMPLOYEE_ID = DEPARTMENTS.MANAGER_ID ∧


Una relación que muestre el nombre de los EMPLOYEES.DEPARTMENT_ID != DEPARTMENTS.DEPARTMENT_ID) ( DEPARTMENTS))
empleados que son gerentes de un departamento • π NAME σ (EMPLOYEE_ID = MANAGER_ID) ∧ (EMPLOYEES.DEPARTMENT_ID !=
diferente al que pertenecen DEPARTMENTS.DEPARTMENT_ID) (EMPLOYEES ⨯ DEPARTMENTS)
LEFT OUTER JOIN La relación resultante
Adicionalmente la
relación resultante R3
R3 tendrá cada tupla de traerá las tuplas de R1
Toma como argumentos
R1 combinada con cada (relación de la
R1 ⟕R2 dos relaciones R1 y R2
con esquemas
tupla de R2 aplicando izquierda) que no
un NATURAL JOIN en hacen parte del
diferentes.
los casos donde no hay NATURAL o del
Opcionalmente una
R1 ⟕CONDICION R2 condición.
condición y un INNER
JOIN en los casos
INNER JOIN y para los
campos
donde la hay. correspondientes a R2
asignara el valor NULL
RIGHT OUTER JOIN La relación resultante
Adicionalmente la
relación resultante R3
R3 tendrá cada tupla de
Toma como argumentos traerá las tuplas de R2
R1 combinada con cada
R1 ⟖R2 dos relaciones R1 y R2
con esquemas
tupla de R2 aplicando
(relación de la
derecha) que no hacen
un NATURAL JOIN en
diferentes. parte del NATURAL o
los casos donde no hay
Opcionalmente una del INNER JOIN y para
R1 ⟖CONDICION R2 condición.
condición y un INNER
JOIN en los casos
los campos
correspondientes a R1
donde la hay.
asignara el valor NULL
FULL OUTER JOIN La relación resultante
Adicionalmente la
relación resultante R3
R3 tendrá cada tupla de
Toma como argumentos traerá las tuplas de R1
R1 combinada con cada
R1 ⟗R2 dos relaciones R1 y R2
con esquemas
tupla de R2 aplicando
Y R2 que no hacen
parte del NATURAL o
un NATURAL JOIN en
diferentes. del INNER JOIN y para
los casos donde no hay
Opcionalmente una los campos
R1 ⟗CONDICION R2 condición.
condición y un INNER
JOIN en los casos
correspondientes de la
relación opuesta
donde la hay.
asignara el valor NULL
Toma como argumentos dos
relaciones R1 y R2 con
esquemas diferentes.
Opcionalmente una condición.

ANTI JOIN

R1 ▷ R2

R1 ▷ CONDICION R2 La relación resultante R3 tendrá


cada tupla de R1 que no hacen
parte del NATURAL JOIN
(Cuando no hay condición) o del
INNER JOIN (Cuando hay
condición) de las dos relaciones
Toma como argumentos dos
relaciones R1 y R2 con esquemas
diferentes. Opcionalmente una
condición.

LEFT SEMI JOIN

R1 ⋉ R2
La relación resultante R3 tendrá
R1 ⋉ CONDICION R2 cada tupla de R1 (Relación de la
izquierda) que hacen parte del
NATURAL JOIN (Cuando no hay
condición) o del INNER JOIN
(Cuando hay condición) de las dos
relaciones
La relación resultante R3
tendrá cada tupla de R2
RIGHT JOIN Toma como argumentos
dos relaciones R1 y R2 con
(Relación de la derecha)
que hacen parte del
esquemas diferentes. NATURAL JOIN (Cuando
Opcionalmente una no hay condición) o del
R1 ⋊ R2 condición. INNER JOIN (Cuando hay
condición) de las dos
relaciones

R1 ⋊ CONDICION R2
 Dada la relaciones EMPLOYEES y DEPARTMENTS expresar la operación de AR para las siguientes relaciones:
EMPLOYEES
EMPLOYEE_ID NAME DEPARTMENT_ID  DEPARTMENTS
200 Jennifer Whalen 90
DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID
101 Neena Kochhar 60
102 Lex De Haan 50 90 Executive 200
114 Den Raphaely 110 110 Accounting 122
122 Payam Kaufling 110
176 Jonathon Taylor 90 60 IT 101
201 Michael Hartstein 50 Shipping 114
80 Sales
• π DEPARTMENT_NAME (DEPARTMENTS ▷ EMPLOYEES)
Una relación que liste el nombre del departamento al • π DEPARTMENT_NAME DEPARTMENTS - ( π DEPARTMENT_NAME (DEPARTMENTS
que no pertenece ningún empleado ⨝ EMPLOYEES))

• π NAME (EMPLOYEES ▷(MANAGER_ID=EMPLOYEE_ID) DEPARTMENTS)


Una relación que liste los nombres de los empleados • π NAME (σ DEPARTMENTS.DEPARTMENT_ID = null (EMPLOYEES ⟕
que no son gerentes (MANAGER_ID=EMPLOYEE_ID) DEPARTMENTS))

• EMPLOYEES⨝(EMPLOYEES.DEPARTMENT_ID= DEPARTMENTS.DEPARTMENT_ID)
Una relación que liste el nombre del empleado, el
(π DEPARTMENTS.DEPARTMENT_ID,
nombre del departamento al que pertenece y el nombre DEPARTMENTS.DEPARTMENT_NAME,gerentes.NAME (DEPARTMENTS ⨝
del gerente de ese departamento (gerentes.EMPLOYEE_ID=DEPARTMENTS.MANAGER_ID) ρ gerentes EMPLOYEES))
EMP_HISTORY={
 EMP_HISTORY EMPLOYEE_ID, DEPARTMENT_ID
EMPLOYEE_ID EMPLOYEE_ID
200, 90
200 90
200, 110
200 110 200, 60
200 60 200, 50
200 50 101, 90
101 90 200, 80
200 80 }

EMPLOYEES
 DEPARTMENTS
EMPLOYEE_ID NAME DEPARTMENT_ID DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID
200 Jennifer Whalen 90
90 Executive 200
101 Neena Kochhar 60
102 Lex De Haan 50 110 Accounting 122
114 Den Raphaely 110 60 IT 101
122 Payam Kaufling 110 50 Shipping 114
176 Jonathon Taylor 90
80 Sales
201 Michael Hartstein
Sean las relaciones R1(A,B) y R2(B).
El resultado de R1 ¸ R2 es una relación
Toma como argumentos dos relaciones R3 cuyo esquema esta compuesto por
R1 y R2 con esquemas diferentes. el atributo A, donde para todo valor de
B en R2 existe una pareja en R1 de A
con ese valor.

Empleado Departamento
DIVISIÓN Depto Descripción
1 Administración
2 Producción
R1 ÷ R2

Empleado ¸ (pDepto(Departamento))
 DEPARTMENTS  EMP_HISTORY
DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID EMPLOYEE_ID EMPLOYEE_ID
90 Executive 200 200 90
110 Accounting 122 200 110
60 IT 101 200 60
50 Shipping 114 200 50
80 Sales 101 90
200 80

EMPLOYEES

EMPLOYEE_ID NAME DEPARTMENT_ID


200 Jennifer Whalen 90
101 Neena Kochhar 60
102 Lex De Haan 50
114 Den Raphaely 110
122 Payam Kaufling 110
176 Jonathon Taylor 90
201 Michael Hartstein

 Dada la relaciones EMPLOYEES, DEPARTMENTS y EMP_HISTORY expresar la operación de AR para las siguientes
relaciones:

Una relación que liste los


atributos de los empleados que
han pertenecidos a todos los
departamentos
EMPLOYEES

EMPLOYEE_ID NAME DEPARTMENT_ID AGE


200 Jennifer Whalen 90 21
101 Neena Kochhar 60 24
102 Lex De Haan 50 53
114 Den Raphaely 110 43
122 Payam Kaufling 110 26
176 Jonathon Taylor 90 30
201 Michael Hartstein 62

EMPLOYEES={
EMPLOYEE_ID,NAME,DEPARTMENT_ID, AGE

200,'Jennifer Whalen', 90,21


101,'Neena Kochhar', 60,24
102,'Lex De Haan', 50,53
114,'Den Raphaely', 110,43
122,'Payam Kaufling', 110,26
176,'Jonathon Taylor', 90,30
201,'Michael Hartstein', null,62
}
Toma como
argumentos una
EL orden por defecto es
relación R y un ascendente
listado atributos o
ORDENAMIENTO columnas

τ COL1, COL2,…COLN R La relación resultante R2


tendrá cada tupla de R1 pero
Cada columna en el listado
puede definir si se desea en
con un orden establecido
orden ascendente (asc) o
según el listado de columnas
descendente (desc)
dado
Toma como argumentos
una relación R y un listado
atributos o columnas y
una a varias funciones de
AGRUPAMIENTO grupo

γ COL1,COL2,…COLN;FUNCIONALIAS R El resultado es una relación


Sean las funciones de grupo R2 la cual contiene el
SUM(), AVG(), MAX(), listado de atributos
MIN(), COUNT() agrupados y el resultado de
las funciones
 Dada la relaciones EMPLOYEES y DEPARTMENTS expresar la operación de AR para las siguientes relaciones:
EMPLOYEES
EMPLOYEE_ID NAME DEPARTMENT_ID  DEPARTMENTS
200 Jennifer Whalen 90
DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID
101 Neena Kochhar 60
102 Lex De Haan 50 90 Executive 200
114 Den Raphaely 110 110 Accounting 122
122 Payam Kaufling 110
176 Jonathon Taylor 90 60 IT 101
201 Michael Hartstein 50 Shipping 114
80 Sales
Una relación que liste los empleados ordenados
alfabéticamente

Una relación que liste el nombre de los departamentos junto


al numero de empleados por departamento

Una relación que liste el nombre del departamento junto al


promedio de las edades de los empleados pertenecientes a
cada departamento. Ordenar por el resultado de ese
promedio de edades.
 Crear una relación que muestre el numero de departamentos al
que ha pertenecido cada empleado incluido el departamento al
que pertenece actualmente.
 Crear una relación que muestre los datos del empleado que
tiene mayor edad.

EJERCICIOS  Crear una relación que muestre los datos de los empleados que
Tener en cuenta la documentación presentada
pertenecen al departamento con menor numero de
en: identificación.
https://dbis-uibk.github.io/relax/help#relalg-  Crear una relación que muestre los datos de los empleados que
valueexpr
pertenecen al departamento cuyo gerente es mas joven.
 Crear una relación que muestre los datos de los empleados cuya
edad esta por encima del promedio de edad de los gerentes.
 http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro14/33
_algebra_relacional.html
 https://www.uv.mx/personal/lizhernandez/files/2013/05/5.-Alge
bra-Relacional_parte-1.pdf

FUENTES  https://www.fing.edu.uy/tecnoinf/mvd/cursos/bd2/material/teo/
bd2-teorico01.pdf
 https://dbis-uibk.github.io/relax/help#relalg-valueexpr

También podría gustarte