2. Tema: Algebra Relacional
Presentación del tema
Material: edutech5.webnode.es
Practico: Practico 4 – Algebra Relacional
Docente: Téc. R/C Alvaro Loustau
Fuente: . Elmasri, R. and Navathe, S. (1989). Fundamentals of
database systems. 1st ed. Redwood City, Calif.:
Benjamin/Cummings.
. https://eva.fing.edu.uy/course/view.php?id=330
3. Concepto General
Historia
• Se define del Algebra Relacional como lenguaje de consulta y
diseño en 1970 (Codd)
• Se define también una versión del Calculo Relacional en 1972.
Y se establece la equivalencia entre el Calculo y Algebra
Relacional
4. Concepto General
El proceso de consulta a una Base de Datos Relacional
• Toda consulta a una BDR genera como resultado una relación.
• Existen dos mecanismos Formales para especificar:
• Algebra Relacional:
Da como resultado la aplicación sucesiva de operaciones a la
relaciones de la Base.
• Calculo Relacional:
El resultado es el conjunto de constantes que hacen cierta una
determinada wff (well formed formula) de Cálculos de Predicados
5. Concepto General
Hay 8 operadores básicos en el Algebra Relacional:
• Operadores Unarios: Selección y Proyección
• Operadores Binarios: Unión, Intersección, Diferencia, Producto
Cartesiano, P-Reunión y División.
Otra Clasificación:
• Operadores Conjuntistas: Unión, Diferencia, Intersección y Producto
• Operadores Racionales: Selección, Proyección, P-Reunión y División
6. Concepto General
Notación a seguir:
• Dada R[A1..An], Ai,Aj{A1...An} llamaremos propiedad atómica P(Ai,Aj)
a toda expresión de la forma Ai,Aj con igual a =, ,,... (obviamente
Ai o Aj pueden sustituirse por una constante).
• Notaremos por P(A1..An) a toda propiedad lógica asociada al conjunto
de atributos {A1..An }, que sea combinación mediante ,, de
propiedades atómicas incluyendo constantes y nombres de atributos
pertenecientes a {A1..An }
7. Operador Proyección
Definición:
• Sea R[A1..An], un subconjunto de sus atributos {Ai...Aj} y r una
instancia de R, el operador “proyección sobre {Ai...Aj} aplicado a r ” y
que notaremos por {Ai...Aj} (r) obtiene tuplas de r eliminando de la
tabla aquellos atributos no pertenecientes a {Ai...Aj} y eliminando
posteriormente tuplas redundantes:
A1,A2,...,An (R) = { t[A1,A2,...,An] : t ∈ R }
En otras palabras selecciona Columnas completas
8. Operador Proyección
Ejemplo:
Dada - r (Código, Nombre, Ciudad, Status)
Ciudad Status
Granada 20
Jaen 15
Cadíz 25
Sevilla 30
Cordoba 10
ciudad,status(r)=
Ciudad
Granada
Jaen
Cadíz
Sevilla
Cordoba
ciudad(r)=
9. Operador Selección
Definición:
• Sea R[A1..An], y P una propiedad asociada a {A1...An} y r una instancia
de R, el operador “p-selección aplicado a r” y que notaremos por P(r)
obtiene aquellas tuplas de r para las que p es cierta:
Condición(R) = { t∈R : condición(t) es cierto}
En otras palabras selecciona Filas Completas
10. Operador Selección
Ejemplo:
Si P = Status > 25 Entonces tenemos lo siguiente
r=
Coidgo Nombre Ciudad Status
81 Juan Lopez Granada 20
82 Jose Sanchez Jaen 15
83 Antonio Perez Cadíz 25
84 Jose Lopez Sevilla 30
85 Julia Sanchez Cordoba 28
P (r)=
Coidgo Nombre Ciudad Status
84 Jose Lopez Sevilla 30
85 Julia Sanchez Cordoba 28
11. Composición de Operaciones
Definición:
• El resultado de cada operación es una nueva relación. Se puede aplicar
operadores a los resultados de aplicaciones previas.
Ejemplo:
A ( P(R) )
P (A (R) )
P1 (P2(R) )
12. Composición de Operaciones
Ejemplo Practico:
• Obtener el nombre de las ciudades con Estatus mayor a 25
Nombre( Estatus > 25 (R) )
Nombre
Jose Lopez
Julia Sanchez
Coidgo Nombre Ciudad Status
81 Juan Lopez Granada 20
82 Jose Sanchez Jaen 15
83 Antonio Perez Cadíz 25
84 Jose Lopez Sevilla 30
85 Julia Sanchez Cordoba 28
13. Operador Producto Cartesiano
Definición:
• Sean R[A1..An], y S[B1..Bm], dos relaciones cualesquiera y dos
instancias r y s de las misma, el producto cartesiano de ambas instancias
es el conjunto de tuplas resultante de hacer el producto cartesiano
considerando ambas instancias como conjuntos de tuplas.
R X A = { (a,b) : a ∈ A ^ b ∈ B}
14. Operador Producto Cartesiano
Ejemplo: Supongamos R[A,B] y S[D], y sean r y s dos instancias de las
mismas
A B
a1 b1
a2 b2
a3 b3
a4 b4
D
d1
d2
d3
A B D
a1 b1 d1
a1 b1 d2
a1 b1 d3
a2 b2 d1
a2 b2 d2
a2 b2 d3
a3 b3 d1
a3 b3 d2
a3 b3 d3
a4 b4 d1
a4 b4 d2
a4 b4 d3
X =
15. Operador Unión
Definición:
• Sean R y S dos relaciones con igual esquema (o compatible).
(R ∪ S)
• Da como resultado otra relación cuyo esquema es igual al de R (y S), y
tiene como conjunto de tuplas a la unión de las de R y las de S.
• Ambas relaciones deben tener el mismo numero de atributos
• El dominio del atributo i-ésimo de cada relación debe coincidir.
16. Operador Unión
Ejemplo:
Se quiere el nombre de las personas que tengan un Estatus superior a 25
o que vivan en la ciudad de Jaen:
Nombre ( Estatus > 25 (R) ∪ Ciudad = “Jaen” (R) )
Nombre
Jose Sanchez
Antonio Perez
Jose Lopez
Julia Sanchez
17. Operador Diferencia
Definición:
• Sean R y S dos relaciones con igual esquema (o compatible).
(R - S)
• Da como resultado otra relación cuyo esquema es igual al de R (y S), y
tiene como conjunto de tuplas a la diferencia de las de R y las de S.
• Ambas relaciones deben tener el mismo numero de atributos
• El dominio del atributo i-ésimo de cada relación debe coincidir.
18. Operador Diferencia
Ejemplo:
Sean R[A1..An], y S[B1..Bm], dos relaciones tales que {A1..An} {B1...
Bm}, sean r y s instancias de R y S definimos: r - s = t
A B
a1 b1
a2 b2
a3 b3
a4 b4
A B
a1 b1
a2 b2
a5 b5
A B
a3 b3
a4 b4
R S T
- =
19. Operador Intersección
Definición:
• Sean R y S dos relaciones con igual esquema (o compatible).
(R ∩ S)
• Da como resultado otra relación cuyo esquema es igual al de R (y S), y
tiene como conjunto de tuplas a la intersección de las de R y las de S.
• La Intersección se puede crear a partir de la diferencia:
r1 ∩ r2 = r1 – (r1 – r2)
• Ambas relaciones deben tener el mismo numero de atributos
• El dominio del atributo i-ésimo de cada relación debe coincidir.
20. Operador Intersección
Ejemplo:
Sean R[A1..An], y S[B1..Bm], dos relaciones tales que {A1..An} {B1...
Bm}, sean r y s instancias de R y S definimos: r ∩ s = t
A B
a1 b1
a2 b2
a3 b3
a4 b4
A B
a1 b1
a2 b2
a5 b5
A B
a1 b1
a2 b2
R S T
∩ =
21. Operador Join
Definición Join Natural:
• Hace un producto cartesiano de sus dos argumentos y realiza una selección
forzando la igualdad de atributos que aparecen en ambas relaciones.
• Elimina tuplas repetidas.
(R S)
Definición Join General:
• Una forma más general de hacer Join es especificando una propiedad de
reunión.
• Se hace entonces, un producto cartesiano de las dos relaciones y
se realiza una selección particular de los atributos de la propiedad.
23. Operador Join
Ejemplo:
• En una institución educativa, tiene una base de datos donde almacenan la
información de los estudiantes del centro y de las asignaturas de los
diferentes cursos, además de otros tipos de datos.
• Con el fin de realizar una investigación, se desea conocer de que escuela
provienen todos los estudiantes que cursan Sistemas de Bases de Datos I del
Bachillerato de Informática.
• Estudiantes (Id_Est, Nombre, Apellido, Dirección, Escuela_Origen)
• Asignaturas(Nom_Asig, Id_Est, Cant_Est, Hora_Inicio, Hora_fin)
24. Operador Join
Ejemplo:
• Conocidas las tablas Estudiantes y Asignaturas, la operación necesaria
quedaría de la siguiente manera:
E.Escuela_Origen( A.Nom_Asig =“Sistemas….”(Estudiantes E.Id_Est = A.Id_Est Asignaturas))