Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bases de datos I
DEFINICIÓN
DATASET
OPERADORES
OPERADORES UNITARIOS
PROYECCIÓN (p)
SELECCIÓN (s)
EXTENDIDOS
Ordenamientos
Conjunto de operadores
Permite operar con el que toman relaciones como
Modelo Relacional sus operandos y regresan
una relación como resultado
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)
• Agrupamientos
Extendidos • Ordenamientos
Toma como argumento una
relación R y una lista de
atributos
# EMP_ID
Una relación que liste • ) 101
todos los identificadores
del empleado: 103
104
David Austin 27
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
103Alexander Hunold 22
rALIAS(R)
104David Austin 27
Dada la relación EMPLOYEES expresar la operación de AR
para las siguientes relaciones:
• ρ 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.
UNIÓN
las de R2.
R1 È R2
UNÓ
INR1 ÈR2
Una relación que liste todos los registros de las dos • MANAGERS∪EMPLOYEES
relaciones de gerentes y empleados
R1 R2
N
ITERSECCÓ
INR1 R2
• 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
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
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
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)
ANTI JOIN
R1 ▷ R2
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))
• 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
Dada la relaciones EMPLOYEES, DEPARTMENTS y EMP_HISTORY expresar la operación de AR para las siguientes
relaciones:
EMPLOYEES={
EMPLOYEE_ID,NAME,DEPARTMENT_ID, AGE
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