Está en la página 1de 36

INTRODUCCION AL ALGEBRA RELACIONAL

Grupo 1:

Sebastian Cardenas

Armando Fonseca

Dilan Zurita
Operaciones en Operaciones unarias: cuando en la
operación está implicada una única
relaciones relación. Las operaciones representativas
de este tipo son la selección (σ) y la
proyección (π). Otro operador binario menos
extendido es el operador de renombrado
(ρ).

Operaciones binarias: cuando en la relación


están implicadas dos relaciones. Las
operaciones binarias son las relacionadas
con la teoría de conjuntos (unión (∪),
intersección (∩), la diferencia (-) y el
producto cartesiano (X)).
Otra alternativa de clasificación podría ser en
base a si el operador se corresponde o no a los
de la teoría de conjuntos, teniendo a su vez:

Operaciones Conjuntistas, es decir, los


relacionados a la teoría de conjuntos, entre los
que se encuentran unión (∪), intersección (∩),
diferencia (-) y el producto cartesiano (X).

Operaciones Específicamente Relacionales,


entre los que tenemos las operaciones de
selección (σ) y la proyección (π).

También existen otras formas de clasificación


menos usuales como la de operaciones
primitivas, operaciones derivadas, entre otras.
Proyección Esta operación unaria permite tomar un
conjunto de atributos (columnas) de una
relación (tabla).

Ejemplo: Sintaxis: 𝜋atributos(relación)


Realizar un listado con los nombres y apellidos de
Para especificar varios atributos los separamos
los alumnos, junto con su número de teléfono.
por el operador coma: “,” .
𝜋Nombre_Al,Apellido1_Al,Apellido2_Al,Telefono_Al(Alumnos
)+
Ejemplo proyección
Selección Esta operación consiste en seleccionar las
tuplas (filas) de una relación (tabla) que
satisfagan una determinada condición o
Ejemplo: condiciones
Devolver los profesores que tengan como uno de sus
apellidos “Fonseca” y sean de la especialidad de Sintaxis: 𝞼condición (relación)
Programación.
En la condición podemos emplear los operadores
𝞼Especialidad_P=”Sistemas”∧ relacionales:

(Apellido1_P=”Fonseca”∨ - <, >, >=, <=, =,<>

Apellido2_P=”Fonseca”)
(Profesores)
y los conectores lógicos:

- and(∧)
- or(∨)
- not(¬)
Ejemplo selección
Asignación A veces, cuando en una consulta aparece
varias veces la misma relación puede crearse
cierta ambigüedad, lo cual es conveniente
evitar y solucionar.

La forma de solucionar este problema es


asignando un renombramiento, lo cual se haría
mediante el operador “renombrar” (p).

La expresión que se utilizaría sería <<px(R)>>


devolviendo la relación <<R>>, con el nombre
<<X>>. Así se evita la ambigüedad.
Ejemplo Asignación Selección de los profesores que llevan el
nombre de Juan, evitando que exista
ambigüedad, renombrando profesores en
profesores 2.

πprofesores.nombre_prof
(σprofesores2.nombre_prof =
profesores.nombre_prof(profesores x

ρprofesores2(πnombre_prof(σnombre_prof
= “Juan” (profesores)))).
División
Sean R y S dos relaciones con esquemas relacionales:

R.A1,…,R.An,R.B1,… , R.Bm

S.B1,…, S.Bm respectivamente.

La operación división genera como resultado otra


relación cuyo esquema es:

Q.A1,…, Q.An

Y su contenido son las tuplas tomadas a partir de las


de r(R) tales que su valor está asociado en r(R) con
todos los valores que están en s(S)

Sintaxis: relacion1/relacion2
Concepto de
División de manera
más visual
Producto cartesiano Esta operación binaria (sobre dos relaciones)
obtiene una nueva relación,que contiene
elementos combinados de ambas relaciones.El
número de tuplas de la nueva relación es igual
a nxm, siendo n y m las tuplas de las
relaciones originales.

Sintaxis: realacion1Xrelacion2
Ejemplo de
producto cartesiano
Nota:

En el caso de que solo deseamos mostrar las asignaturas


impartidas por el profesor Rusvel Carrión, tendríamos que
combinar los siguientes operadores:
𝞼Nombre_P= “Rusvel Carrión”(Asignaturas X Profesores)
Siendo el resultado de la consulta:
Operaciones Join Se obtiene a partir de dos relaciones, una
nueva relación formada por todas las tuplas
qué resultan de concatenar (producto
cartesiano) tuplas de la primera relación con
tuplas de la segunda relación qué cumplen una
condición de combinación específica.

Sintaxis:

relación1 |X|condición de combinación relación2

(relación1 * relación2)condiciones de combinación


Ejemplo de
operaciones Join
Operadores
Los operadores extendidos son aquellos operadores
que pueden derivarse de operadores básicos. Hay

extendidos principalmente tres tipos de operadores extendidos en


álgebra relacional:

Unión

Intersección

Dividir

Las relaciones utilizadas para entender los


operadores extendidos son ESTUDIANTE,
ESTUDIANTE_DEPORTE, TODOS_DEPORTE y
EMPLEADO que se muestran en la Tabla 1, Tabla 2,
Tabla 3 y Tabla 4 respectivamente.
Combinación de RESULTADO:

operadores
Intersección (∩): la intersección en dos
relaciones R1 y R2 sólo se puede calcular si R1 y
R2 son compatibles con la unión (estas dos
relaciones deben tener el mismo número de
atributos y los atributos correspondientes en
dos relaciones tienen el mismo dominio). El
operador de intersección cuando se aplica en
dos relaciones como R1∩R2 dará una relación
con tuplas que están en R1 y R2. Sintaxis:

ESTUDIANTE ∩ EMPLEADO = ESTUDIANTE +


EMPLEADO - (ESTUDIANTE U EMPLEADO)
Unión condicional (⋈ c ) : La combinación
condicional se utiliza cuando desea unir
dos o más relaciones en función de algunas
condiciones. Ejemplo: seleccione
estudiantes cuyo ROLL_NO sea mayor que
EMP_NO de empleados.

En términos de operadores básicos


(producto cruzado y selección):

(ESTUDIANTE.ROLL_NO>EMPLEADO.EMP
_NO)(ESTUDIANTE×EMPLEADO)
Equijoin (⋈): Equijoin es un caso especial de
unión condicional donde solo se cumple la
condición de igualdad entre un par de atributos.
Como los valores de dos atributos serán iguales
en el resultado de la combinación, solo
aparecerá un atributo en el resultado.

En términos de operadores básicos (producto


cruzado, selección y proyección):

∏(ESTUDIANTE.ROLL_NO,
ESTUDIANTE.NAME, ESTUDIANTE.ADDRESS,
ESTUDIANTE.PHONE, ESTUDIANTE.AGE
EMPLEADO.NAME, EMPLEADO.ADDRESS,
EMPLEADO.PHONE, EMPLEADO>AGE)(σ
(ESTUDIANTE.ROLL_NO=EMPLEADO.EMP_NO
) (ESTUDIANTE×EMPLEADO))
Unión natural (⋈): Es un caso especial de
equijoin en el que la condición de igualdad se
aplica a todos los atributos que tienen el mismo
nombre en las relaciones R y S (relaciones en las
que se aplica la operación de combinación). Al
aplicar la unión natural a dos relaciones, no es
necesario escribir la condición de igualdad de
forma explícita. Natural Join también devolverá
los atributos similares solo una vez, ya que su
valor será el mismo en la relación resultante.

En términos de operadores básicos (producto


cruzado, selección y proyección):

∏(ESTUDIANTE.ROLL_NO,
ESTUDIANTE.NAME, ESTUDIANTE.ADDRESS,
ESTUDIANTE.PHONE, ESTUDIANTE.AGE
ESTUDIANTE_SPORTS.SPORTS)(σ
(ESTUDIANTE.ROLL_NO=ESTUDIANTE_SPOR
TS.ROLL_NO)
(ESTUDIANTE×ESTUDIANTE_SPORTS))
La combinación natural es una combinación
interna predeterminada porque las tuplas que
no cumplen las condiciones de combinación no
aparecen en el conjunto de resultados. p.ej; La
tupla que tiene ROLL_NO 3 en ESTUDIANTE no
coincide con ninguna tupla en Seleccione estudiantes cuyo ROLL_NO sea mayor
ESTUDIANTE_SPORTS, por lo que no forma que EMP_NO de empleados y detalles de otros
parte del conjunto de resultados. Empleados y también de otros Estudiantes.
Unión externa completa (⟗): al aplicar la
combinación en dos relaciones R y S, algunas ESTUDIANTE⟗ESTUDIANTE.ROLL_NO>EMPLEAD
tuplas de R o S no aparecen en el conjunto de O.EMP_NOEMPLEADO.
resultados que no satisfacen las condiciones de
combinación. Pero Full Outer Joins proporciona
todas las tuplas de S y todas las tuplas de R en el
conjunto de resultados. Las tuplas de S que no
satisfacen la condición de unión tendrán valores
como NULL para los atributos de R y viceversa.
● Las solicitudes de borrado se expresan

Operaciones de básicamente igual qué las consultas. Sin


embargo, en lugar de mostrar las tuplas al
modificación usuario, se eliminan de la BD las tuplas
seleccionadas.
● Sólo se pueden borrar tuplas enteras; no se
pueden borrar valores de atributos
concretos
Borrado Sintaxis

r←r–E

● r es una relación
● E es una consulta de algebra relacional

Borrar todos los clientes de Mieres

clientes ← clientes – σ ciudad = “Mieres” (clientes)


Operaciones de Para insertar datos en una relación, podemos:

modificación
● Especificar una tupla para insertar
● Escribir una consulta cuyo resultado sea un
conjunto de tuplas para insertar

Sintaxis

Inserción r←rUE

● r es una relación
● E es una consulta de algebra relacional

La inserción de una tupla simple se expresa tomando E


cómo una relación constante que contiene una tupla.

clientes← clientes ∪ {(101,“Pepe”,”Lea”,”Oviedo”)}


Operaciones de Un mecanismo para cambiar un valor en una tupla sin
cambiar todos los valores de la tupla
modificación Sintaxis

r ← ∏F1, F2, …, Fi, (r)

Actualización ● Cada F, es o el i-ésimo atributo de r, si el i-ésimo


atributo no está actualizado, o si el atributo
tiene que ser actualizado

● Fi es una expresión que contiene solo
constantes y los atributos de r, que da el nuevo
valor para el atributo

Productos ← ∏ ID_pro,nombre,existencias,precio* 1.1 (σprecio>10


(Productos))
Cálculo relacional Se basa en construir expresiones en las cuales
se pueden indicar una o más variables de
de tuplas tuplas. Cada variable se asocia a un valor con
una relación de un base de datos, lo qué
implica qué pueda tomar el valor de cualquier
tupla individual de la relación
Sintaxis:
{ t | P(t) }
● t: es una variable libre
● P: es una fórmula o predicado en la qué
aparecen variables libres y variables tupla
El resultado es el conjunto de tuplas t qué
verifican el predicado P(t). Para referirse a un
atributo A de una relación t se usa t[A].
Formas
Una fórmula se compone de átomos, toman
una de las siguientes forma:

● s∊r
● s[atributo] operación r[atributo]
● s[atributo] operación constante
Teniendo qué:
● r, s son relaciones
● Las operaciones pueden ser >, >=, <,
<=, =,≠
Reglas Una fórmula debe seguir las siguientes reglas:

● Un átomo es una fórmula

● Si P es una fórmula, también lo es ㄱP y (P)

● Si P1 y P2 son fórmulas también lo son:


➔P1 ⋀P2
➔P1 V P2
➔P1 ⇒ P2

● Si P(s) es una fórmula, entonces:


➔∃s ∊ r (P(s))
➔∀s ∊ r (P(s))
Tipo Selección:

Devolver los profesores qué tengan cómo uno de


Ejemplos Cálculo sus apellidos “Pérez” y sean de la especialidad de

relacional de tuplas “Historia”

{t/t ∊ Profesores ⋀ t[Especialidad_P] = ”Historia” ⋀


(t[Apellido1_P] = ”Pérez” V t[Apellido2_P] =
”Pérez”)}

Tipo Proyección:

Realizar un listado con los nombres y apellidos de


alumnos, junto con su numero de telefono

{t/∃s ∊ Alumnos ⋀ t[Nombre_Al] = s[Nombre_Al]


⋀t[Apellido1_Al] = s[Apellido1_Al] ⋀ t[Apellido2_Al]
⋀ t[Telefono_Al] = s[Telefono_Al]}
Cálculo relacional Al igual qué el cálculo relacional de tuplas es un
lenguaje no procedimental, pero en esta se
de dominios emplea variables de dominios, las cuales toman
sus valores en el dominio de un atributo, en
lugar de variables de tupla.
Sintaxis:
{<X1, ..., Xn> | P(X1, ..., Xn)}
● X1, ..., Xn son variables de dominio
● P(X1, ..., Xn) es una fórmula
Permite expresar las consultas mediante
fórmulas, donde las variables se interpretan
cómo variables sobre el dominio del atributo de
una relación.
Las variables se encuentran asociados a los
dominios, indicándose cómo una relación.
Formas
Una fórmula que está compuesta de átomos,
toman una de las siguientes forma:

● <X1, ..., Xn> ∊ r, siendo r una relación


de n atributos
● x operación y
● x operación constante
Teniendo qué:
● x, y son variables de dominio
● Las operaciones pueden ser >, >=, <,
<=, =,≠
Reglas Una fórmula debe seguir las siguientes reglas:

● Un átomo es una fórmula

● Si P es una fórmula, también lo es ㄱP y (P)

● Si P1 y P2 son fórmulas también lo son:


➔P1 ⋀ P2,
➔P1 V P2
➔P1 ⇒ P2

● Si P(x) es una fórmula, siendo x una


variable de dominio también lo es:
➔∃x (P(x))
➔∀x (P(x))
Tipo Selección:

Ejemplos Cálculo
Devolver los profesores qué tengan cómo uno de
sus apellidos “Pérez” y sean de la especialidad de
relacional de “Historia”

dominios {<p, q, r, s, t. u, v, w, x> / <p, q, r, s ,t, u, v, w, x> ∊


Profesores ⋀ v=”Historia” ⋀ r=”Pérez” V s=”Pérez”}

Tipo Proyección:

Realizar un listado con los nombres y apellidos de


alumnos, junto con su numero de telefono

{<q, r, s, t. u> / ∃p,t,v,w (<p, q, r, s ,t, u, v, w, x> ∊


Alumnos)}
Bibliografía ● Martínez López, F. J. & Gallegos Ruiz,
A. (2017). Programación de bases de
datos relacionales.. RA-MA Editorial.
https://elibro.net/es/ereader/espe/10652
5

● Jiménez Capel, M. Y. (2015). Bases de


datos relacionales y modelado de datos
(UF1471).. IC Editorial.
https://elibro.net/es/ereader/espe/44139

También podría gustarte