Tema 8 Álgebra Relacional - Blog educativoRelacional Parte 1 1 Álgebra Relacional •Es un...
Transcript of Tema 8 Álgebra Relacional - Blog educativoRelacional Parte 1 1 Álgebra Relacional •Es un...
1
Lic. Claudia Román F.
Tema 8 Álgebra
Relacional
Parte 1
1
Álgebra Relacional
• Es un lenguaje formal que permiteconsultar bases de datos relacionales.
• Conjunto de operadores que tomanrelaciones como operandos y retornan unarelación como resultado.
• Es un lenguaje que no es usadodirectamente por los desarrolladores:usado para la traducción y optimización deconsultas SQL.
• Propuesta por E. F. Codd2
2
Álgebra Relacional
• Ocho operadores clasificados en dosgrupos:
– Tradicionales de la teoría de conjuntos:Unión, Intersección, Diferencia y ProductoCartesiano.
– Especializados: Restricción (o Selección),Proyección, Reunión (join) y División.
• Operadores adicionales: Renombrado,Agrupamiento, Derivación (o Extensión), etc.
3
Álgebra Relacional
4
código nombre edad
1 Jorge Campos 33
2 Enrique Muñoz 25
3 Esteban Paz 21
código nombre edad
2 Enrique Muñoz 25
8 Jorge Arias 30
10 Juan Martínez 19
ADMINISTRADOR
PRODUCTOR
Ejemplo. Sean las relaciones:
3
Álgebra Relacional
• Restricción o Selección (s):
– Genera una relación quecontiene todas las tuplas deuna relación que satisfacenuna condición dada
– La condición se construyemediante operadores decomparación (=, <, , >, etc.)y booleanos (AND, OR, etc.)
5
sCondición(R)
Álgebra Relacional
• sedad 25(ADMINISTRADOR):
• scódigo < 5(PRODUCTOR):
6
código nombre edad
1 Jorge Campos 33
2 Enrique Muñoz 25
código nombre edad
2 Enrique Muñoz 25
4
Álgebra Relacional:
• Proyección (p):
– Extrae atributos(columnas) de unarelación
– El resultado es unarelación (se eliminantuplas repetidas)
7
pLista atributos(R)
Álgebra Relacional
• pcódigo, edad(ADMINISTRADOR)
• pcódigo, nombre(PRODUCTOR)
8
código edad
1 33
2 25
3 21
código nombre
2 Enrique Muñoz
8 Jorge Arias
10 Juan Martínez
5
Álgebra Relacional
9
Ejemplo. Sea una relación JUGADOR:
Sea: ppaís(JUGADOR)
Sea: pnom, país(JUGADOR)
JUGADOR
cod nom país
3 Xiu China
8 Juan Perú
2 Juan Perú
país
China
Perú
Note que se eliminan tuplas repetidas
nom país
Xiu China
Juan Perú
Álgebra Relacional
• Producto Cartesiano: R1 X R2
–Retorna una relación que contiene todaslas tuplas resultantes de la combinación decada tupla de R1 con cada tupla de R2
– La cabecera de la relación resultante es launión de las cabeceras de R1 y R2
–Para hacer el producto cartesiano, lascabeceras de R1 y R2 no pueden tenernombres de atributos iguales
10
6
Álgebra Relacional
ADMINISTRADOR X rPRO(cod,nom,ed) (pcódigo,nombre,edad(PRODUCTOR))
11
código nombre edad cod nom ed
1 Jorge Campos 33 2 Enrique Muñoz 25
1 Jorge Campos 33 8 Jorge Arias 30
1 Jorge Campos 33 10 Juan Martínez 19
2 Enrique Muñoz 25 2 Enrique Muñoz 25
2 Enrique Muñoz 25 8 Jorge Arias 30
2 Enrique Muñoz 25 10 Juan Martínez 19
3 Esteban Paz 21 2 Enrique Muñoz 25
3 Esteban Paz 21 8 Jorge Arias 30
3 Esteban Paz 21 10 Juan Martínez 19
Renombrado temporal
de los atributos
Renombrado temporal
de la relación
Operador de renombrado
Álgebra Relacional• Unión: R1 R2
– Retorna una relación quecontiene todas la tuplasde R1 y de R2 (se eliminantuplas repetidas)
– Las relaciones debentener cabecera idénticapara que seancompatibles para la unión
12
7
Álgebra Relacional
• ADMINISTRADOR PRODUCTOR:
13
código nombre edad
1 Jorge Campos 33
2 Enrique Muñoz 25
3 Esteban Paz 21
8 Jorge Arias 30
10 Juan Martínez 19Solo aparece
una vez
Álgebra Relacional
• Intersección: R1 R2
– Retorna una relación quecontiene todas las tuplasque aparecen tanto en R1
como en R2
– Las relaciones debentener cabecera idénticapara que seancompatibles para laintersección
14
8
Álgebra Relacional
• ADMINISTRADOR PRODUCTOR:
15
código nombre edad
2 Enrique Muñoz 25
Álgebra Relacional
• Diferencia: R1- R2
– Retorna una relación quecontiene todas las tuplasque aparecen en R1 perono en R2 (tuplasidénticas)
– Las relaciones debentener cabecera idénticapara que seancompatibles para ladiferencia 16
9
Álgebra Relacional
• ADMINISTRADOR - PRODUCTOR:
• PRODUCTOR - ADMINISTRADOR:
17
código nombre edad
1 Jorge Campos 33
3 Esteban Paz 21
código nombre edad
8 Jorge Arias 30
10 Juan Martínez 19
• La unión, intersección y productocartesiano son conmutativas y asociativas
• La diferencia no es conmutativa niasociativa
• La intersección no es un operador primitivoya que se puede expresar mediante ladiferencia
18
10
Álgebra Relacional
• Reunión (join): Tiene varias modalidades:
–Reunión natural (natural join): R1 ⋈ R2
Sea R1(A,B) y R2 (B,C). El resultado de R1 ⋈ R2
es una relación con cabecera (A,B,C) dondecada tupla de R1 se combina con cada tuplade R2 siempre y cuando tengan el mismovalor en el atributo en común (B).
A, B y C pueden ser atributos compuestos.
19
Álgebra Relacional
20
código nombre edad depto
1 Jorge Campos 33 1
2 Enrique Muñoz 25 1
3 Esteban Paz 21 1
8 Jorge Arias 30 2
10 Juan Martínez 19 2
12 Anselmo Rodas 28 6
depto descripción
1 Administración
2 Producción
3 Ventas
4 Finanzas
EMPLEADO
DEPARTAMENTO
Atributo de
join
11
Álgebra Relacional
• EMPLEADO ⋈ DEPARTAMENTO:
21
código nombre edad depto descripción
1 Jorge Campos 33 1 Administración
2 Enrique Muñoz 25 1 Administración
3 Esteban Paz 21 1 Administración
8 Jorge Arias 30 2 Producción
10 Juan Martínez 19 2 Producción
Álgebra Relacional
• División: R1 R2
Sean las relaciones R1(A,B) y R2(B). El resultadode R1 R2 es una relación con el atributo A
• Un valor a A hace parte del resultado de ladivisión si a está en R1 combinado con cadavalor B que aparece en R2
• A y B pueden ser atributos compuestos
22
12
Álgebra Relacional
23
codartista nomgénero
45 Soul
45 Pop
45 Dance
8 Soul
8 Pop
23 Dance
ARTISTAYGENERO GÉNERO
nomgénero
Soul
Pop
Dance
Álgebra Relacional
• ARTISTAYGENERO GÉNERO
24
codartista
45
Ya que en este caso solo el artista 45 está
combinado con todos los géneros que
aparecen en la relación GÉNERO