Álgebra relacional -  · lenguajes de consulta base de datos relacional placa marca mbo34l ......

59
1 Álgebra Relacional Universidad de los Andes Demián Gutierrez Mayo 2010

Upload: trannhan

Post on 20-Sep-2018

234 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

1

Álgebra Relacional

Universidad de los AndesDemián Gutierrez

Mayo 2010

Page 2: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

2

Lenguajes de Consulta

Base de DatosRelacional

placa marcaMBO34LLDA75KADA89ALBF78GXSA67D

FordToyota

FiatToyotaFord

UsuarioAplicación

Otros...

Consulta

Resultado

Una consulta es básicamente una pregunta sobre un

hecho en particular que

puede o no existir en la BD

El resultado de una consulta es una colección de registros de la BD

(Una Relación)

Todos los autos marca Ford... (Lenguaje de consulta)

placa marcaMBO34LXSA67D

FordFord

La consulta se realiza sobre las

relaciones de la BD

Page 3: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

3

Tipos de Lenguajes de Consulta

Son lenguajes que utilizan los usuarios para

solicitar información a la BD

Hay de dos tiposProcedimentales

No-procedimentales

Lenguajes purosCálculo relacional de tuplas (N/P)

Cálculo relacional de dominios (N/P)

Álgebra relacional (P)

Estas son las bases de los lenguajes de

consulta comerciales

Page 4: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

4

Tipos de Lenguajes de Consulta

Lenguajes comercialesSEQUEL

QBE (N/P)

SQL (P + N/P)

OQL (P + N/P) (Y todos los [Object Oriented]QL)

...entre otros

El estándar “de facto” usado hoy en día en la industria es el SQL, aunque con la incursión de los SGBDOO, ORMs y tecnologías similares el

OQL y sus distintas alternativas y variantes son también bastante utilizados

Page 5: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

5

Cálculo Relacional de Tuplas

Es un lenguaje de consulta formal que permite expresar las consultas a partir de fórmulas

bien formadas, donde las variables son interpretadas como variantes sobre las tuplas

de las tablas. Fue presentado por Codd en 1972 y se deduce del Cálculo de Predicados

Una consulta en CRT es una expresión de tipo:

{t,e,x | C(t,e,x)}

Donde t,e,x son variables de tuplas y C(t,e,x) es

una expresión condicional donde intervienen t,e,x

Page 6: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

6

Cálculo Relacional de Tuplas

Átomos:

Las variables están asociadas a las tuplas de las tablas y se

denota como relación(variable). Ej: Modelo(M).

Los valores constantes están asociados a los valores de los

dominios de los atributos y las funciones generadoras de los

mismos se denotan como variable.atributo. Ej: M.marca

Los predicados utilizados se construyen con los operadores de

comparación {<, ≤ , >, ≥ , =, ≠ } y constantes.

Ejm: M.marca ≠ ‘fiat’.

A modo informativo

Page 7: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

7

Cálculo Relacional de Tuplas

Una fórmula bien formada se define como:

Todo átomo es una fórmula bien formada F.

Si F1 y F2 son fórmulas bien formadas, entonces F1 and

F2, F1 or F2, not F1 o not F2 son fórmula bien formada.

F1 es una fórmula bien formada (Cuantificador

existencial, se lee, existe un...).

∀ F1 es una fórmula bien formada (Cuantificador

universal, se lee, para todo ...).

A modo informativo

Page 8: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

8

Cálculo Relacional de Tuplas

Ejemplo 1: Obtener la fecha de nacimiento y la

dirección del empleado (o empleados) cuyo

nombre es 'Pedro Pérez':

Empleado(Cédula, Nombre, Apellido FechaN, Dirección)

{e.FechaN, e.Dirección | Empleado(e) and

e.Nombre = 'Pedro' and e.Apellido = 'Pérez'}

Page 9: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

9

Cálculo Relacional de Tuplas

Ejemplo 2: Obtener el nombre y la dirección de

todos los empleados que trabajan para el

departamento 'Investigación')

Empleado(Cédula, Nombre, Apellido FechaN, Dirección, NumDpto)

Dpto(NumDpto, NomDpto)

{e.Nombre, e.Dirección | Empleado(e) and (d)

(Dpto(d) and e.NumDpto = d.NumDpto and

d.NomDpto = 'Investigación')}

Page 10: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

10

Cálculo Relacional de Tuplas

Es un lenguaje de consulta formal que permite expresar las consultas a partir de

fórmulas bien formadas, donde cada variable se interpreta como variante sobre el dominio del atributo de una

relación.Es similar al Cálculo Relacional de

Tuplas y también se deduce del cálculo de predicados

Page 11: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

11

Cálculo Relacional de Dominios

Las variables están asociadas a los dominios de los

atributos y se denota como

relación(att1: variable1, att2: variable2, ... )

Ejm: ModeloCarro(modelo: m, marca: c)

los predicados utilizados se construyen igual que

para el cálculo relacional de tuplas

Page 12: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

12

Cálculo Relacional de Tuplas

Ejemplo 1: Obtener el nombre y el color de

cada producto en almacén:

Producto(nroPro, nombrePro, cantidad, color)

{N, C | Producto(nombrePro: N, color: C,

cantidad > 0)}

El resultado, a diferencia del CRT son variables

Page 13: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

13

Cálculo Relacional de Tuplas

Ejemplo 2: Obtener los clientes que han comprado al

menos un producto de color verde:

Producto(nroPro, nombrePro, cantidad, color)

Venta(nroVen, fechaVen, nombreCliente, nroProVen, cantidadVen)

{ V, P | NP Venta(nombreCliente: V, nroProVen:

NP) and Producto(nroPro: NP, nombrePro: P, color =

‘verde’) }

Se produce producto por medio de la variable NP

Page 14: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

14

Álgebra Relacional

Es un conjunto de operaciones que describen paso a paso (procedimental) la forma de

transformar una serie de relaciones en otras para así obtener una respuesta a una consulta

R2 = Operación1 (R1)

R3 = Operación2 (R2)

R5 = Operación2 (R3, R4)...

Una operación de AR toma una serie de relaciones de entrada y genera una relación

de salida

Page 15: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

15

Álgebra Relacional (Operaciones)

ProductoCartesiano

R x Q

Selecciónσa,b(R)

Proyección∏a,b(R)

ReuniónNatural

R |x|a,b Q

UniónR ∪ Q

IntersecciónR ∩ Q

DiferenciaR - Q

DivisiónR Q

ReuniónExternaR Q

UniónExterna

Otras...

FuncionesAgregadas

OperaciónAsignación

Conjunto completo de operaciones del álgebra relacional

Page 16: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

16

Proyección

Carro placa marca modelo colorMBO34L Ka verdeLDA75K blancoADA89A siena grisLBF78G blancoXSA67D Ka rojo

FordToyota corollaXL

FiatToyota corollaXLFord

R placa marcaMBO34LLDA75KADA89ALBF78GXSA67D

FordToyota

FiatToyotaFord

Q marca modelo colorKa verde

siena grisblanco

Ka rojo

FordFiat

Toyota corollaXLFord

∏placa, marca(Carro)

∏marca,modelo,color(Carro)

Se eliminan todas salvo una de las tuplas repetidas

(Ej, <Toyota, corollaXL, blanco>)

Page 17: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

17

Proyección

∏rombos(R)R R'

Todas las tuplas, pero no completas, sólo se seleccionan algunas columnas...

Se eliminan todas las tuplas

duplicadas

Page 18: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

18

Producto Cartesiano

R placa marcaADA89ALBF78GXSA67D

FiatToyotaFord

Q marca modelo colorsiena gris

blancoKa rojo

FiatToyota corollaXLFord

Carro placa modelo colorADA89A siena grisADA89A blancoADA89A Ka rojoLBF78G siena grisLBF78G blancoLBF78G Ka rojoXSA67D siena grisXSA67D blancoXSA67D Ka rojo

marcaR marcaQFiat FiatFiat Toyota corollaXLFiat Ford

Toyota FiatToyota Toyota corollaXLToyota FordFord FiatFord Toyota corollaXLFord Ford

Carro = R x Q

No es relevante para el producto

cartesiano, pero es notable, que en algunas tuplas

marcaR = marcaQ

Page 19: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

19

Producto Cartesiano

R'=R x Q

R'

R

Q

Cada tupla de uno de los conjuntos se combina con todas las tuplas del otro conjunto

Page 20: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

20

Selección

R = σmarca=Ford Λ color=rojo(Carro)

Carro placa marca colorMBO34L Ford verdeLDA75K Toyota blancoADA89A Fiat grisLBF78G Toyota blancoXSA67D Ford rojo

R placa marca colorMBO34L verdeXSA67D rojo

FordFord

R placa marca colorXSA67D rojoFord

Carro placa marca colorMBO34L Ford verdeLDA75K Toyota blancoADA89A Fiat grisLBF78G Toyota blancoXSA67D Ford rojo

R = σmarca=Ford(Carro)

Page 21: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

21

Selección

σrombo=negro(R)

R

R'

Se seleccionan sólo las tuplas que cumplen una condición dada

Page 22: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

22

Producto / Reunión Natural

R placa marcaMBO34L FordLDA75K ToyotaADA89A FiatLBF78G ToyotaXSA67D Ford

Q marca modelo colorFord Ka verde

Toyota corollaXL blancoFiat siena gris

Toyota corollaXL blancoFord Ka rojo

Carro placa marca modelo colorMBO34L Ford Ka verdeMBO34L Ford Ka rojoLDA75K Toyota corollaXL blancoADA89A Fiat siena grisLBF78G Toyota corollaXL blancoXSA67D Ford Ka verdeXSA67D Ford Ka rojo

Carro=R|x|marcaQ

Sin embargo aquí se perdió

información(Descomposición

con pérdida)

Carro = σ(R.marca=Q.marca)(R x Q)

o bien:

Carro = R |x| Q

Page 23: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

23

R'=R círculo Q

R'

R

Q

Producto / Reunión Natural

Producto cartesiano con condición de igualdad, se combinan solo las tuplas con

valores iguales en ciertos atributos

Page 24: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

24

Unión

R = E P

E Cédula Nombre9.644.667 Pedro Pérez10.133.21211.332.334 Luis Colina12.562.88420.126.112

Gabriel Mendoza

Andrés RojasGilberto Zapata

P Cédula Nombre8.347.2239.644.667 Pedro Pérez10.133.21211.332.334 Luis Colina12.123.231

Hector Redondo

Gabriel Mendoza

Diego Dávila

R Cédula Nombre8.347.2239.644.667 Pedro Pérez10.133.21211.332.334 Luis Colina12.123.23112.562.88420.126.112

Hector Redondo

Gabriel Mendoza

Diego DávilaAndrés Rojas

Gilberto Zapata

Se realiza una operación de unión de conjuntos. Se

eliminan las tuplas repetidas

Las relaciones usadas como

operandos deben ser compatibles

entre si

Page 25: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

25

Unión

Todas las tuplas de ambas relaciones (que deben ser compatibles)

R'=R ∪ Q

R'

QR

Se eliminan todas las tuplas

duplicadas

Page 26: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

26

Intersección

R = E P

E Cédula Nombre9.644.667 Pedro Pérez10.133.21211.332.334 Luis Colina12.562.88420.126.112

Gabriel Mendoza

Andrés RojasGilberto Zapata

P Cédula Nombre8.347.2239.644.667 Pedro Pérez10.133.21211.332.334 Luis Colina12.123.231

Hector Redondo

Gabriel Mendoza

Diego Dávila

R Cédula Nombre9.644.667 Pedro Pérez10.133.21211.332.334 Luis Colina

Gabriel Mendoza

Las relaciones usadas como

operandos deben ser compatibles

entre si

Page 27: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

27

Intersección

Sólo las tuplas comunes a ambas relaciones (que deben ser compatibles)

R'=R ∩ Q

R'

QR

Page 28: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

28

Diferencia

R = E - P

E Cédula Nombre9.644.667 Pedro Pérez10.133.21211.332.334 Luis Colina12.562.88420.126.112

Gabriel Mendoza

Andrés RojasGilberto Zapata

P Cédula Nombre8.347.2239.644.667 Pedro Pérez10.133.21211.332.334 Luis Colina12.123.231

Hector Redondo

Gabriel Mendoza

Diego Dávila

R Cédula Nombre12.562.88420.126.112

Andrés RojasGilberto Zapata

¿Cómo sería P – E?

Las relaciones usadas como

operandos deben ser compatibles

entre si

Page 29: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

29

Diferencia

Tuplas que aparecen en la primera relación pero no en la segunda

R'=R - Q

R'

R

Q

¿Cómo sería Q – R?

Page 30: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

30

División

Supongamos que tenemos dos relaciones A(x, y) y B(y) donde el

dominio de y en A y B, es el mismo.

El operador división A B retorna todos los distintos valores de x tales que para todo valor y en B existe una tupla <x,

y> en A

Page 31: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

31

División

R=EM M'

M Materia SemestreBD 8IS 8LC 9SO 9

M' MateriaLCSOM'=∏materia(σsemestre=9(M))

EM Cédula Materia9.644.667 BD9.644.667 IS10.133.212 LC10.133.212 BD10.133.212 SO11.332.334 LC11.332.334 SO12.562.884 LC12.562.884 BD

R=EM M'

R Cédula10.133.21211.332.334

Luego...

Page 32: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

32

División

Tuplas de la primera que contienen a todas o alguna de las tuplas de la segunda

R'=R Q

R'

R

Q

Page 33: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

33

Producto / Reunión Externa

R = Prof cédula=ced_jefeDpto

Profesor Cédula6.274.445 017.422.114 018.347.223 029.644.667 0211.332.334 Luis Colina12.123.231 03

NombreP CodigoDptoJosé MendezJuán Zapata

Hector RedondoPedro Pérez

Diego Dávila

Código01 Computación 6.274.44502 Investigación03 Control 12.123.231

Dpto NombreD CédJefe

R Cédula Código6.274.445 01 01 Computación 6.274.44512.123.231 03 03 Control 12.123.231

NombreP CódigoDpto NombreD CédJefeJosé MendezDiego Dávila

¿Dónde están los demás profesores?¿Dónde está el departamento de Investigación?

Reunión Natural

Page 34: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

34

Producto / Reunión Externa

R = Prof cédula=ced_jefeDpto

R Cédula Código6.274.445 01 01 Computación 6.274.4457.422.114 01 NULO NULO NULO8.347.223 02 NULO NULO NULO9.644.667 02 NULO NULO NULO11.332.334 Luis Colina NULO NULO NULO12.123.231 03 03 Control 12.123.231

NombreP CódigoDpto NombreD CédJefeJosé MendezJuán Zapata

Hector RedondoPedro Pérez

Diego Dávila

Reunión Izquierda

Profesor Cédula6.274.445 017.422.114 018.347.223 029.644.667 0211.332.334 Luis Colina NULO12.123.231 03

NombreP CodigoDptoJosé MendezJuán Zapata

Hector RedondoPedro Pérez

Diego Dávila

Código01 Computación 6.274.44502 Investigación NULO03 Control 12.123.231

Dpto NombreD CédJefe

Page 35: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

35

Producto / Reunión Externa

R = Dpto cédula=ced_jefeProf

R Código Cédula01 Computación 6.274.445 6.274.445 01

NULO NULO NULO 7.422.114 01NULO NULO NULO 8.347.223 02NULO NULO NULO 9.644.667 02NULO NULO NULO 11.332.334 Luis Colina

03 Control 12.123.231 12.123.231 03

NombreD CédJefe NombreP CódigoDptoJosé MendezJuán Zapata

Hector RedondoPedro Pérez

Diego Dávila

Reunión Derecha

¿Es la misma relación resultante que la de la transparencia anterior?

Profesor Cédula6.274.445 017.422.114 018.347.223 029.644.667 0211.332.334 Luis Colina NULO12.123.231 03

NombreP CodigoDptoJosé MendezJuán Zapata

Hector RedondoPedro Pérez

Diego Dávila

Código01 Computación 6.274.44502 Investigación NULO03 Control 12.123.231

Dpto NombreD CédJefe

Page 36: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

36

Producto / Reunión Externa

R = Dpto cédula=ced_jefeProf

Profesor Cédula6.274.445 017.422.114 018.347.223 029.644.667 0211.332.334 Luis Colina NULO12.123.231 03

NombreP CodigoDptoJosé MendezJuán Zapata

Hector RedondoPedro Pérez

Diego Dávila

Código01 Computación 6.274.44502 Investigación NULO03 Control 12.123.231

Dpto NombreD CédJefe

R Código Cédula01 Computación 6.274.445 6.274.445 0102 Investigación NULO NULO NULO NULO03 Control 12.123.231 12.123.231 03

NombreD CédJefe NombreP CódigoDptoJosé Mendez

Diego Dávila

Page 37: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

37

Producto / Reunión Externa

R = Prof cédula=ced_jefeDpto

Profesor Cédula6.274.445 017.422.114 018.347.223 029.644.667 0211.332.334 Luis Colina NULO12.123.231 03

NombreP CodigoDptoJosé MendezJuán Zapata

Hector RedondoPedro Pérez

Diego Dávila

Código01 Computación 6.274.44502 Investigación NULO03 Control 12.123.231

Dpto NombreD CédJefe

R Cédula Código6.274.445 01 01 Computación 6.274.445

NULO NULO NULO 02 Investigación NULO12.123.231 03 03 Control 12.123.231

NombreP CódigoDpto NombreD CédJefeJosé Mendez

Diego Dávila

Page 38: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

38

Producto / Reunión Externa

R = σnombreP=NULO (Dpto cédula=ced_jefeProf)

Profesor Cédula6.274.445 017.422.114 018.347.223 029.644.667 0211.332.334 Luis Colina NULO12.123.231 03

NombreP CodigoDptoJosé MendezJuán Zapata

Hector RedondoPedro Pérez

Diego Dávila

Código01 Computación 6.274.44502 Investigación NULO03 Control 12.123.231

Dpto NombreD CédJefe

R Código Cédula02 Investigación NULO NULO NULO NULO

NombreD CédJefe NombreP CódigoDpto

¿Cuáles son los departamentos sin Jefe de Departamento?

Page 39: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

39

Producto / Reunión Externa

R = Dpto cédula=ced_jefeProf

R Código Cédula01 Computación 6.274.445 6.274.445 01

NULO NULO NULO 7.422.114 01NULO NULO NULO 8.347.223 02NULO NULO NULO 9.644.667 02NULO NULO NULO 11.332.334 Luis Colina

02 Investigación NULO NULO NULO NULO03 Control 12.123.231 12.123.231 03

NombreD CédJefe NombreP CódigoDptoJosé MendezJuán Zapata

Hector RedondoPedro Pérez

Diego Dávila

Reunión Abierta

Profesor Cédula6.274.445 017.422.114 018.347.223 029.644.667 0211.332.334 Luis Colina NULO12.123.231 03

NombreP CodigoDptoJosé MendezJuán Zapata

Hector RedondoPedro Pérez

Diego Dávila

Código01 Computación 6.274.44502 Investigación NULO03 Control 12.123.231

Dpto NombreD CédJefe

Page 40: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

40

Reunión Externa

Si algunas tuplas de la izquierda no tienen pareja en la derecha, entonces se rellena con

valores nulos

R'=R círculo Q

null

R'

R

Q

En este caso se está haciendo una reunión externa izquierda (), pero se puede hacer también una reunión externa derecha () y una reunión

externa completa ()

Page 41: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

41

Agrupación (y Funciones Agregadas)

R = nacionalidad ℱavg(edad), count(P)

P Nombre Nacionalidad EdadPedro Venezuela 45

Venezuela 20Luis Argentina 33

Colombia 20Miguel Argentina 23

Luis 34Colombia 15

Gabriel

Andrés

PeruGilberto

R Nacionalidad AVG(Edad)Venezuela 32,5 2Argentina 28 2Colombia 17,5 2

34 1

Count

Peru

Se agrupan los datos usando algún tipo de

criterio y luego se calculan funciones sobre

los datos agrupados

Posibles funciones de agregación: avg, sum, max, min,

count, entre otras

Page 42: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

42

Agrupación (y Funciones Agregadas)

R = círculo ℱcount(R)

R

1 2

1

R'

Se agrupan las tuplas en base al valor de cierto atributo y luego se pueden calcular

funciones sobre atributos de las tuplas agrupadas

Page 43: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

43

Ejemplos de Álgebra Relacional

Esquema de Ejemplo:

EmpleadoApellido Dirección Sexo Salario NDNombreP Inic Ced FechaN CedSuper

DepartamentoNombreD NúmeroD CedGte FechaInicGte

Lugares_DeptosNumeroD LugarD

ProyectoNombreP NúmeroP LugarP ND

Trabaja_EnCed NúmP Horas

DependienteSexo ParentescoCédEmp NombreDep FechaN

Page 44: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

44

Ejemplos de Álgebra Relacional

Esquema de Ejemplo:

Page 45: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

45

Ejemplos de Álgebra Relacional

TODO: Preguntas!!!

Page 46: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

46

TODO: Falta:

Ejercicios de Álgebra Relacional

Page 47: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

47

Lenguaje de Consultas QBE

Presentado por Zloff en el año 1977 y

comercializado desde 1980 por IBM.

Es un lenguaje de manipulación de datos

gráfico.

La idea de su construcción es la formulación

de la consulta mediante un ejemplo de la

posible respuesta.

Está basado en el Cálculo Relacional de

Dominios.

Page 48: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

48

Lenguaje de Consultas QBE

Producto cantidad colornroPro nombrePro

Producto nroPro nombrePro cantidad colorU. _np _c

_np _c+100‘rojo’

Las consultas se realizan invocando los esquemas de

las tablas objeto de la consulta, las cuales serán

desplegadas en forma gráfica en la pantalla. Una vez

obtenidas, se posiciona el ratón en la o las columnas

deseadas y se indica la operación a realizar.

Page 49: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

49

Lenguaje de Consultas QBE

Las variables se indican con el símbolo de subrayado

como prefijo, ejemplo: _s, _3, _d5, o se subrayan,

ejemplo: s, 3, d5.

Las constantes se colocan directamente en la

columna deseada precedidas por el operador de

comparación deseado, si no es =.

Toda variable desplegable está cuantificada

implícitamente por el cuantificador existencial

Todas las operaciones deben tener como sufijo un

punto (Ver tabla siguiente)

Page 50: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

50

Lenguaje de Consultas QBE

Operación QBEDesplegar o seleccionar P.Cuantificador universal ALL.Contar CNT.Promedio AVG.Suma SUM.Calcular el valor mínimo MIN.Calcular el valor máximo MAX.Agrupar tuplas G.Ordenar en orden ascendente AO.Ordenar en orden descendente DO.Negación lógica ¬Disyunción lógica ORConjunción lógica AND

Condiciones adicionales se expresan en una ventana aparte, en algunos SGBD. Las funciones cnt, avg, sum, min y max deben aplicarse a variables precedidas con ALL. Si no se desean eliminar las tuplas dobles en una proyección, se coloca P.ALL._v

Page 51: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

51

Lenguaje de Consultas QBE

Producto(nroPro, nombrePro, cantidad, color)

Venta(nroVen, fechaVen, nombreCliente,nroProVen, cantidadVen)

Compra(nroCom, fechaCom, nombreProveedor,nroProCom, cantidadComp)

Esquema de Ejemplo:

Page 52: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

52

Procesamiento de Consultas(Lo Básico)

AnálisisLéxico

(separar entokens)

Optimizadorde

Consultas

Procesamientode la

Consulta en laBD

AnálisisSintáctico

y Validación

SELECT nombre, cedula FROM persona WHERE cedula='12.343.223'

UPDATE departamento SET nombre='Control' WHERE codigo=1

Page 53: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

53

Procesamiento de Consultas(Lo Básico)

Conmutatividad de σσc1(σc2(R)) = σc2(σc1(R))

Cascada de ∏ (se ignoran todas menos la última)∏lista1(∏lista2(∏lista3(R))) = ∏lista1

Cascada de σσc1 and c2 and c3(R) = σc1(σc2(σc3(R)))

Conmutación de σ con ∏∏lista(σc1(R)) = σc1(∏lista(R))

Conmutatividad de |x| o R1cR2 = R2cR1

Page 54: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

54

Procesamiento de Consultas(Lo Básico)

∏apellido, nombrePR(σnumeroPR=numPR AND cedulaEMP=cedula AND

nombrePR='Acuario' AND horas < 20(Empleado|x| Trabaja_En |x|Proyecto))

Proyecto (numeroPR, nombrePR, descripcion)

Empleado (cedula, nombre, apellido, fecha_nac)

Trabaja_En (cedulaEMP, numPR, horas, categoria)

Page 55: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

55

Optimización de Consultas

X

Empleado Trabaja_En Proyecto

X

σ numeroPR=numPR ANDcedulaEMP=cedula ANDnombrePR='Acuario' AND

horas < 20

∏apellido, nombrePR

Page 56: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

56

Optimización de Consultas

X

Empleado Trabaja_En Proyecto

X

σnumeroPR=numPR

cedulaEMP=cedula

nombrePR='Acuario'

horas < 20σ

σ

σ

apellido, nombrePR

Page 57: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

57

Optimización de Consultas

X

Empleado Trabaja_En Proyecto

X

numeroPR=numPR

cedulaEMP=cedula

nombrePR='Acuario'horas < 20σ

σ

σ

σ

apellido, nombrePR

Page 58: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

58

Optimización de Consultas

X

Empleado Trabaja_En Proyecto

X

numeroPR=numPR

cedulaEMP=cedula

nombrePR='Acuario'horas < 20σ

σ

σ

σ

∏numeroPR,nombrePR

apellido, nombrePR

∏cedulaEMP,

numPR, horas

∏cedulaEMP,nombrePR

∏cedula,apellido

Page 59: Álgebra Relacional -  · Lenguajes de Consulta Base de Datos Relacional placa marca MBO34L ... Álgebra relacional (P) Estas son las bases de los ... para el cálculo relacional

59

Gracias

¡Gracias!