9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... ·...

33
Algebra Relacional Gestión y Modelación de Datos

Transcript of 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... ·...

Page 1: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Algebra Relacional

Gestión y Modelación de Datos

Page 2: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Algebra Relacional •  Lenguaje de consulta

•  Procedimental (énfasis en el “como”)

•  Consta de: –  Operandos: relaciones –  Operadores: aplicados sobre relaciones

•  Cerrada: el resultado es también una relación

•  Las operaciones se pueden componer

Page 3: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Algebra Relacional

•  Operaciones Fundamentales: – Selección, Proyección, Unión, Diferencia,

Producto Cartesiano, Renombramiento

•  Operaciones qe se definen en términos de las fundamentales: –  Intersección, Join Natural, División,

Asignación

Page 4: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Selección (σ)

•  Selecciona las tuplas que satisfacen un predicado (condición)

σcondición (relación)

Ejemplo: σcod_dpto = 1001(departamento)

cod_dpto nom_dpto ced_jefe cod_sucursal 1001 GERENCIA GENERAL 100101 2501

Page 5: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Selección (σ)

R2 = σc (R1)

•  R2 contiene todas las tuplas de R1 que satisfacen c

•  Los esquemas de R1 y R2 son iguales

σc (r) = { t | t pertenece a r y c(t)}

Page 6: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Selección (σ)

•  La condición esta formada por un término, o varios términos unidos con operadores and (∧), or (∨)

•  Los términos son de la forma: atributo op atributo

atributo op constante Donde op puede ser: =, ≠, <, >, ≤, ≥

Page 7: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Selección (σ) •  Es conmutativa σc1 (σc2 (σc3 (R))) = σc3 (σc2 (σc1 (R)))

•  Una secuencia se puede reemplazar por conjunción de condiciones σc1 (σc2 (σc3 (R))) = σc1∧c2∧c3 (R)

Ej. R es: empleado, c1 es: salario > 1000000 c2 es: cod_dpto = 1001 c3 es: ced_jefe = 200101

Page 8: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Proyección (π)

•  Permite seleccionar ciertas columnas •  Se eliminan las filas duplicadas (las

relaciones son conjuntos)

πatt1, att2, …attk (relación)

Page 9: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Proyección (π)

Ejemplo: πnom_dpto, ced_jefe (departamento)

nom_dpto ced_jefe

GERENCIA GENERAL 100101

GERENCIA FINANCIERA 100301

DIRECCION DE VENTAS 100201

DIRECCION DE MERCADEO

REGIONAL INTERNACIONAL 200101

REGIONAL EEUU 300101

REGIONAL ESPAÑA

REGIONAL ESPAÑA 2

Page 10: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Proyección (π)

R2 = πL (R1)

•  L es una lista de atributos: att1, att2,… attk

•  R2 contiene todas los atributos att1, att2,… attk de las tuplas de R1

•  R2 no tiene tuplas duplicadas

Page 11: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Proyección (π)

•  NO es conmutativa

•  πL1 (πL2 (R1)) = πL1 (R1) cuando los atributos de L1 estan incluidos en L2

•  Proyección extendida: la lista de atributos puede contener expresiones

πA+B C(R1)

Page 12: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Composición de Operaciones

Ejemplo: πnom_dpto, ced_jefe (σcod_dpto = 1001(departamento))

nom_dpto ced_jefe GERENCIA GENERAL 100101

Page 13: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Ejercicio

•  Con base en el esquema de la base de datos de empleados, escriba en algebra relacional las siguientes consultas: – Nombres, apellidos y fecha de ingreso de los

empleados del departamento 4001 – Nombre y fecha de ingreso de los

empleados con salario mayor a 1.000.000 – Nombres, apellidos, y valor de la prima de

cada empleado (la prima es medio salario)

Page 14: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Producto Cartesiano (×) •  Permite combinar la información de dos

relaciones R1 × R2

Ejemplo: país x región

R3 = R1 × R2 •  Cada tupla t1 de R1 se combina

(concatena) con una tupla t2 de R2 •  El esquema de R3 se forma con los atributos

de R1 y R2 •  Si A es un atributo de R1 y también de R2,

usar R1.A o R2.A

Page 15: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Producto Cartesiano (×) Departamento

DID Nombre Ciudad d1 dpto1 Cali d2 dpto2 Bta d3 dpto3 Cali d4 dpto4

Empleado EID Nombres Apellidos Sueldo Departamento e1 emp1 ap1 10 d1

e2 emp2 ap2 20 d2

e3 emp3 ap3 10

e4 emp4 ap4 50 d2

e5 emp5 ap5 d3

e6 emp6 ap6 30

DID Nombre Ciudad EID Nombres Apellidos Sueldo Departamento d1 dpto1 Cali e1 emp1 ap1 10 d1

d1 dpto1 Cali e2 emp2 ap2 20 d2

d1 dpto1 Cali e6 emp6 ap6 30

d2 dpto2 Bta E1 emp1 ap1 10 d1

d2 dpto2 Bta e6 emp6 ap6 30

d4 dpto4 e6 emp6 ap6 30

Departamento x Empleado

Page 16: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Renombramiento (ρ)

•  Permite renombrar atributos y relaciones •  Para nombrar el resultado de un

producto cartesiano de una relación consigo misma (R1 x R1) ρs(a1,a2,..,ak)(E) ρs(E) ρ(a1,a2,..,ak)(E)

•  Asigna el nombre S a la relación resultante de la expresión E, y los nombres a1, a2, … , ak a sus atributos

Page 17: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Renombramiento (ρ)

Ejemplo: σ empleado.ced_jefe= jefe.cedula (empleado x

ρ jefe (empleado))

σ ced_jefe = cedula_jefe (empleado x ρ jefe(cedula_jefe,nom_jefe,ape_jefe) (π cedula,

nombres, apellidos(empleado))

Page 18: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Unión (u)

•  Retorna la unión de los conjuntos de tuplas de dos relaciones

R1 u R2

•  R1 y R2 deben ser compatibles: – Tener la misma aridad – Dominios compatibles en las columnas

correspondientes •  Las tuplas duplicadas se eliminan

Page 19: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Unión (u)

Ejemplo: πnom_region(region) u πnom_pais(pais)

Page 20: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Diferencia (-)

•  Retorna la diferencia de los conjuntos de tuplas de dos relaciones (tuplas que están en la primera relación pero no en la segunda)

R1 - R2

•  Las relaciones deben ser compatibles

Page 21: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Diferencia (-)

Ejemplo:

σsalario < 2000000 (empleado) – σsalario < 1000000 (empleado)

Page 22: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Ejercicios

•  Escriba una expresión en algebra relacional para las siguientes consultas: –  Nombres de los empleados de la sucursal

ubicada en la ciudad de bogotá –  Las cedulas de los empleados que NO son jefes

de otros empleados –  Los nombres de los empleados que ingresaron a

la compañía en la misma fecha que ‘Pedro’ ‘Perez Restrepo’

–  Los nombres de los jefes de departamento y de los jefes de otros empleados

–  El salario más alto (el máximo) de los empleados –  Un full outer join entre empleado y

departamento

Page 23: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Definición Formal del Algebra Relacional

Page 24: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Definición Formal del Algebra Relacional

Las expresiones fundamentales del Algebra Relacional son: – Una relación de la base de datos – Una relación constante: listar tuplas entre

llaves {(101, Centro), (102,Sur), (103, Este)}

Page 25: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Definición Formal del Algebra Relacional

Precedencia de los operadores (de más alta a más baja): 1.  [ σ, π, ρ] 2.  [ ×, [x] ] 3.  ∩ 4.  [ u, - ]

Page 26: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Arboles de Expresión

•  Hojas son operandos •  Nodos internos son

operadores

πdepartamento.nom_dpto, empleado.nombres, empleado.apellidos (σ departamento.cod_dpto = empleado.cod_dpto (departamento × empleado))

π departamento.nom_dpto,

empleado.nombres, empleado.apellidos

σ departamento.cod_dpto =

empleado.cod_dpto

×

departamento empleado

Page 27: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Otras operaciones

•  No añaden potencia al algebra: se pueden definir en términos de las operaciones fundamentales

•  Facilitan la escritura de consultas habituales

Page 28: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Otras operaciones

•  Intersección (∩) r ∩ s = r – (r – s)

•  Join Natural ( [x] ): join con una condición de igualdad entre los atributos que aparecen en ambos esquemas

sucursal [x] país = σsucursal.cod_pais = pais.cod_pais (sucursal x país)

Page 29: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Otras operaciones

•  Theta-Join ([x]c): combina la selección (con condición c) y el producto cartesiano

r [x]c s = σc (r x s)

empleado [x]empleado.cod_dpto =

departamento.cod_dpto departamento = σempleado.cod_dpto = departamento.cod_dpto

(empleado x departamento)

Page 30: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Otras operaciones

•  División (÷): – Consultas que incluyen la

expresión “para todo” r ÷ s = πr – s(r) – πr – s((πr – s(r) × s) –

πr – s,s (r))

Si r(a1,a2,..am,b1,b2,…,bn) y s(b1,b2,…,bn) πr – s(r) tiene el esquema:

(a1,a2,..am)

Page 31: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Otras operaciones r ÷ s

r ÷ s = { t | t ε πr-s(r) ∧ para todo u ε s ( tu ε r ) }

tu es la concatenación de las tuplas t y u

Page 32: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Otras Operaciones

•  Asignación – Crea nombres de relaciones temporales

Ejemplo: R3 R1 x R2

R4 σc (R3)

Page 33: 9 Algebra Relacional - Javeriana Calicic.javerianacali.edu.co/wiki/lib/exe/fetch.php?media=... · 2011-09-19 · Ejercicios • Escriba una expresión en algebra relacional para las

Ejercicios (Fundamentals of Database Systems, Elmasri y Navathe)

Estudiante Profesor

a) ?

b) ?

c) ?

d) ?