base de datos: algebra relacional

79
Servicios Web - Introducción Diseño de bases de datos – Algebra relacional B a s e s d e D a t o s Algebra relacional Agosto 2014

Upload: kamui002

Post on 14-Jul-2015

1.450 views

Category:

Technology


3 download

TRANSCRIPT

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

Bases de Datos

Algebra relacional

Agosto 2014

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

Algebra relacional

• Operaciones realizadas sobre las relaciones (tablas).

• Cierre relacional: Tanto los operandos como el resultado, sontablas.– El resultado de una operación puede ser operando de otra operación.

2

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

Tipos de operaciones

• Según se expresan (o no) en términos de otras operaciones.– Operaciones primitivas.

• Operaciones a partir de las cuales se pueden definir otras.

• Ej: Unión, diferencia, producto cartesiano, selección y proyección.

– Operaciones no primitivas.

• No son estrictamente necesarias (se pueden expresar en términos de lasprimitivas).

• Facilitan.

• Ej: Intersección y combinación.

3

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Según el número de tablas que tienen como operandos:– Operaciones binarias.

• Tienen dos tablas como operandos.

– Operaciones unarias.

• Tienen una sola tabla como operando.

• Selección y proyección.

4

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Según si se parecen a la teoría de conjuntos:– Operaciones conjuntistas.

• Unión, intersección, diferencia, producto cartesiano.

– Operaciones específicamente relacionales.

• Selección, proyección y combinación.

5

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• El nombre del resultado de una operación se puede expresar:

– Como los operandos junto con su operador: EMPLEADOS_ADM ∪EMPLEADOS_PROD

– Usando un alias (operación redenominar).

• R:=Expresión

• Ej: Empleados := EMPLEADOS_ADM ∪ EMPLEADOS_PROD

• Redenominar también se puede aplicar sobre atributos ysobre el esquema de una relación.

6

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Si S(B1, B2, ..., Bn) y se quiere redenominar por R(A1, A2, ..., An):

R(A1, A2, ..., An) := S(B1, B2, ..., Bn).

7

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

Operaciones conjuntistas

• Unión.– A partir de dos tablas obtiene una nueva con las tuplas que estén en

alguna de esas tablas.

– Unión entre T y S: T ∪ S.

8

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

Operaciones conjuntistas

• Unión.– A partir de dos tablas obtiene una nueva con las tuplas que estén en

alguna de esas tablas.

– Unión entre T y S: T ∪ S.

– Sólo tiene sentido unir tablas con tuplas semejantes.

– Dos tablas T y S son compatibles si:• Tienen el mismo grado.

• Si para cada atributo Ai de T hay un atributo correspondiente Aj en S, coincidiendoAi y Aj con un mismo dominio.

9

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

10

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Esquema y extensión resultantes de una unión:– Esquema: Al unir T con S, el esquema resultante tiene los atributos de

T.

– Extensión: Conjunto de tuplas que pertenecen a la extensión T y S.

• No repetición de tuplas.

11

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• R := EMPLEADOS_ADM ∪ EMPLEADOS_PROD

12

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

13

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Intersección– A partir de dos tablas obtiene una nueva formada con las tuplas que

pertenecen a ambas.

– Entre T y S se indica como T ∩ S.

– Ej: EMPLEADOS_ADM ∩ EMPLEADOS_PROD.

– Es necesario que las tablas sean compatibles.

14

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Esquema y extensión:– Los atributos del esquema T ∩ S coinciden con los atributos de T.

– La extensión de T ∩ S es el conjunto de tuplas que pertenecen a laextensión de T y S.

15

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• R := EMPLEADOS_ADM ∩ EMPLEADOS_PROD.

16

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• R := EMPLEADOS_ADM ∩ EMPLEADOS_PROD.

17

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Diferencia.– A partir de dos tablas, se obtiene una nueva donde las tuplas de la

primera no están en la segunda.

– Entre T y S se indica como T – S.

– Ej: EMPLEADOS_ADM – EMPLEADOS_PROD.

– Aplica a tuplas similares entre tablas compatibles.

18

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Esquema y extensión:– Los atributos del esquema resultante de T – S, coinciden con los

atributos de T.

– La extensión resultante de T – S son las tuplas que pertenecen a T peroque no están en S.

19

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• R := EMPLEADOS_ADM – EMPLEADOS_PROD.

20

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• R := EMPLEADOS_ADM – EMPLEADOS_PROD.

21

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Producto cartesiano.– A partir de dos tablas se obtiene una nueva conformada por las tuplas

que resultan de concatenar las tuplas de la primera con la segunda.

– Siendo dos tablas T y S, sus esquemas no tienen un nombre deatributo común, su producto cartesiano se indica como T × S.

• Atributos con mismo nombre: redenominar.

– La nueva tabla contiene todas las concatenaciones posibles de tuplasentre las dos tablas T y S.

22

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Esquema y extensión:– Los atributos del esquema de T × S, son todos los atributos de T y

todos los de S.• Redenominar, si es necesario.

– La extensión de T × S son todas las tuplas <v1, v2, ..., vn, w1, w2, ..., wm>para las que <v1, v2, ..., vn> pertenecen a la extensión de T y < w1, w2,..., wm> pertenecen a la extensión de S.

23

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej: Producto cartesiano entre DESPACHOS y EDIFICIOS_EMP.

• Redenominar:– EDIFICIOS(nombreedificio, supmediadesp) := EDICIOS_EMP(edificio,

supmediadesp)

R :=EDIFICIOS ×DESPACHOS.

24

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• R :=EDIFICIOS ×DESPACHOS.

25

EDIFICIOS

nombreedificio supmediadesp

Marina 15

Diagonal 10

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

26

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• El producto cartesiano rara vez se utiliza de forma explícita, noes muy común para consultas habituales.

• Pero: a partir de esta operación primitiva, se define la decombinación.

27

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

Operaciones sobre relaciones

• Selección

• Proyección

• Combinación

28

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Selección:– Operación para elegir un subconjunto de tuplas dentro de una tabla,

que cumplan una serie de condiciones específicas.

– Es una operación unaria.

– La selección sobre una tabla T bajo una condición C se expresa comoT(C).

29

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej: seleccionar todos los despachos del edificio Marina quetengan más de 12 m2.– Selección a DESPACHOS.

– Condición edificio = “ Marina “ y superficie > 12.

DESPACHOS(edificio= “ Marina “ y superficie> 12).

30

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• La condición sigue la forma:– Ai θ v ó Ai θ Aj.

– donde Ai y Aj son atributos (bajo un mismo dominio),

– v es un valor especificado (del dominio de ese atributo) y

– θ es un operador de comparación (=,!=, <,<=,>,>=).

• Las cláusulas de una condición se unen con “ y “ (∧) u “ o “ (∨).

31

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Esquema y extensión:– Los atributos del esquema para T(C) coinciden con los atributos del

esquema de T.

– La extensión de T(C) es el conjunto de tuplas de la extensión de T quecumplen la condición C.

32

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• R := DESPACHOS(edificio = “Marina” y superficie >12)

33

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• R := DESPACHOS(edificio = “Marina” y superficie >12)

34

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Proyección– Operación para elegir un subconjunto de atributos de una tabla.

– La nueva tabla contará con tuplas cuyos atributos serán losseleccionados.

– Es una operación unaria.

– La proyección de una tabla T sobre sus atributos {Ai, Aj, ..., Ak} seindica como T[Ai, Aj, ..., Ak].

35

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej: Proyección sobre EMPLEADOS_ADM enfocado a losatributos nombre y apellido.

• EMPLEADOS_ADM[nombre, apellido]

36

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Esquema y extensión:– Los atributos del esquema resultante de T[Ai, Aj, ..., Ak] son los

atributos {Ai, Aj, ..., Ak}

– La extensión resultante de T[Ai, Aj, ..., Ak] es el conjunto de tuplas de laforma <t.Ai, t.Aj, ..., t.Ak> donde se cumple que t es una tupla de laextensión de T y t.Ap indica el valor para el atributo Ap de la tupla t.

37

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej: R:= EMPLEADOS_ADM[nombre, apellido]

38

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej: R:= EMPLEADOS_ADM[nombre, apellido]

39

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Combinación:– A partir de dos tablas se obtiene una nueva formada con las tuplas

que resultan de concatenar tuplas de la primera con la segunda tabla,cumpliendo una condición de combinación específica.

– Es una operación binaria.

– Sean las tablas T y S, cuyos esquemas no tienen nombres de atributoen común y siendo C una condición de combinación, la combinaciónde T y S bajo la condición C se indica como T[C]S.

40

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej: Combinar los datos de los empleados y el despacho dondetrabajan.– Tablas: EMPLEADOS_ADM y DESPACHOS.

– Condición de combinación: combinar los datos de un empleado conun despacho si el edificiodesp y numdesp del empleado es igual aledificio y número del despacho.

EMPLEADOS_ADM[edificiodesp=edificio, numerodesp= numero]DESPACHOS

41

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• La condición C de T[C]S se conforma por una o máscomparaciones de la forma:

Ai θ Aj

• donde:– Ai es un atributo de T,

– Aj es un atributo de S,

– θ es un operador de comparación.

– Ai y Aj tienen el mismo dominio.

42

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Esquema y extensión:– Los atributos de T[C]S son todos los atributos de T y todos los de S.

– La extensión de T[C]S es el conjunto de tuplas que pertenecen a laextensión del plano cartesiano T × S que satisfacen todascomparaciones de las condiciones de combinación C.

43

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej: Encontrar los datos de los despachos con una superficiemayor o igual a la superficie media (supmediadesp) de losdespachos del edificio donde se ubican.

– Redenominar:

EDIFICIOS(nombreeedficio,supmediadesp):=EDIFICIOS_EMP(edificio, supmediadesp)

R:=EDIFICIOS[nombreedificio=edificio,supmediadesp ≤superficie] DESPACHOS

44

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

R:=EDIFICIOS[nombreedificio=edificio,supmediadesp ≤superficie] DESPACHOS

45

EDIFICIOS

nombreedificio supmediadesp

Marina 15

Diagonal 10

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

R:=EDIFICIOS[nombreedificio=edificio,supmediadesp ≤superficie] DESPACHOS

46

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

R:=EMPLEADOS_ADM[edificiodesp=edificio,númerodesp=número]DESPACHOS

47

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

R:=EMPLEADOS_ADM[edificiodesp=edificio,númerodesp=número]DESPACHOS

48

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Combinación natural:– Combinación entre dos tablas T y S, representada como T *S.

– Consiste en una combinación donde todas las operaciones decomparación son de igualdad (“=“), a la que se le eliminan losatributos superfluos.• La condición de combinación de igualdad «iguala» las parejas de atributos comunes

entre T y S.

– Se aplica a combinaciones con nombres de atributos comunes.

– Se puede aplicar redenominación, para hacer coincidir los nombres deatributos que interesan.

49

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej: R := EDIFICIOS_EMP * DESPACHOS

• Se considera la condición edificio = edificio.– Nombres de atributos comunes.

50

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej: R := EDIFICIOS_EMP * DESPACHOS

51

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej: Obtener los datos de los empleados administrativos juntocon los datos del despacho donde trabajan.– Sin repetir valores de atributos superfluos.

52

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

– Redenominar:

D(edificiodesp,númerodesp,superficie):=DESPACHOS(edificio,número,superficie)

– Combinación natural:

R := EMPLEADOS_ADM *D

53

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

Otra nomenclatura

• Selección: σ<condicion>(<tabla>)

• Ej:

σSalario>3000(EMPLEADO)

σND=4 and Salario>3000(EMPLEADO)

σnot (ND=4 and Salario >3000)(EMPLEADO)

54

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Proyección: Π<lista_atributos>(<relacion>)

• Ej:

Πnombre, dirección(FABRICA)

Πdesc(PRODUCTO)

55

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Combinación (join):

(<relacion>) |><| <condición> (<relacion>)

– Es equivalente a: σ condición(R x S)

56

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

Secuencia de operaciones de algebra relacional

• Generalmente es preciso realizar varias operaciones.

– Utilizar una sola expresión que incluya todas las operaciones,agrupando por paréntesis.

– Dividir la expresión en etapas, donde cada etapa realice una solaoperación y la tabla resultante es usada en las etapas siguientes.

57

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej: Obtener el nombre y apellido de los empleados(administrativos y de producción).– 1. Unir EMPLEADOS_ADM y EMPLEADOS_PROD.

– 2. Proyección sobre atributos nombre y apellido.

58

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej: Obtener el nombre y apellido de los empleados(administrativos y de producción).– 1. Unir EMPLEADOS_ADM y EMPLEADOS_PROD.

– 2. Proyección sobre atributos nombre y apellido.

• Usando una sola expresión:– R := (EMPLEADOS_ADM ∪ EMPLEADOS_PROD) [nombre, apellido]

• Mediante etapas:– EMPS := EMPLEADOS_ADM ∪ EMPLEADOS_PROD

– R := EMPS[nombre, apellido]

59

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

Ejercicios

• 1. Obtener el nombre del edificio y el número de losdespachos situados en edificios en los que la superficie mediade estos despachos es mayor que 12.

60

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• 1. Obtener el nombre del edificio y el número de losdespachos situados en edificios en los que la superficie mediade estos despachos es mayor que 12.

• A:= EDIFICIOS_EMP(supmediadesp> 12)

• B := DESPACHOS *A

• R := B[edificio, número]

61

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• 2. Obtener el nombre y apellido de todos los empleados(administrativos y de producción) que están asignados aldespacho 120 del edificio Marina.

62

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• 2. Obtener el nombre y apellido de todos los empleados(administrativos y de producción) que están asignados aldespacho 120 del edificio Marina.

• A:= EMPLEADOS_ADM ∪ EMPLEADOS_PROD

• B:= A(edificiodesp= «Marina» y númerodesp= 120)

• R:= B[nombre, apellido]

63

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• 3. Consultar el nombre del edificio y el número de losdespachos que ningún empleado de administración tieneasignado.

64

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• 3. Consultar el nombre del edificio y el número de losdespachos que ningún empleado de administración tieneasignado.

• A:= DESPACHOS [edificio, número]

• B:= EMPLEADOS_ADM[edificiodesp, númerodesp]

• R:= A – B

65

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Obtener el DNI, el nombre y el apellido de todos losempleados de administración que tienen despacho, junto conla superficie de su despacho.

66

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Obtener el DNI, el nombre y el apellido de todos losempleados de administración que tienen despacho, junto conla superficie de su despacho.

• A[DNI,nombre,apellido,edificio,número] :=EMPLEADOS_ADM[DNI, nombre, apellido, edificiodesp, númerodesp]

• B := A *DESPACHOS

• R := B[DNI, nombre, apellido, superficie]

67

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Combinación externa.– Cuando se efectúa una combinación puede haber casos en que existan

tuplas con valor nulo en la condición de combinación, por lo que noserían tomadas en cuenta.

– También puede haber tuplas en algunas de las tablas, que no tenganun elemento con el cual cumplir la condición de combinación ytampoco serían tomadas en cuenta.

– Si se requiere conservar las tuplas de alguna de las dos tablas quecaigan en estas situaciones, se puede recurrir a la combinaciónexterna.

68

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• La combinación externa entre T y S es una variación de lacombinación que conserva todas las tuplas de T, de S o deambas.– Combinación externa izquierda. Entre T y S, denotada como T[C]IS,

conserva todas las tuplas de T.

– Combinación externa derecha. Entre T y S, denotada como T[C]DS,conserva todas las tuplas de S.

– Combinación externa plena. Entre T y S, denotada como T[C]PS,conserva todas las tuplas de T y de S.

69

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

– Combinación natural externa izquierda. Entre T y S, denotada comoT*IS, conserva todas las tuplas de T.

– Combinación natural externa derecha. Entre T y S, denotada comoT*DS, conserva todas las tuplas de S.

– Combinación natural externa plena. Entre T y S, denotada como T*PS,conserva todas las tuplas de T y de S.

• **Las tuplas en R que no satisfacen la condición decombinación, tienen valor nulo para los atributos de la tablacon la que no tienen correspondencia.

70

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej. Combinación natural externa derecha.

D(edificiodesp, númerodesp, superficie) :=

DESPACHOS (edificio, número, superficie)

R := EMPLADOS_PROD *DD

71

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej. Combinación natural externa derecha.

D(edificiodesp, númerodesp, superficie) :=

DESPACHOS (edificio, número, superficie)

R := EMPLADOS_PROD *DD

72

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej. Combinación natural externa izquierda.

D(edificiodesp, númerodesp, superficie) :=

DESPACHOS (edificio, número, superficie)

R := EMPLADOS_PROD *ID

73

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej. Combinación natural externa izquierda.

D(edificiodesp, númerodesp, superficie) :=

DESPACHOS (edificio, número, superficie)

R := EMPLADOS_PROD *ID

74

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej. Combinación natural externa plena.

D(edificiodesp, númerodesp, superficie) :=

DESPACHOS (edificio, número, superficie)

R := EMPLADOS_PROD *PD

75

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Ej. Combinación natural externa plena.

D(edificiodesp, númerodesp, superficie) :=

DESPACHOS (edificio, número, superficie)

R := EMPLADOS_PROD *PD

76

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

Ejercicio

• Alumno(cve_alumno, nombre_alumno, semestre, carrera)

• Materia(cve,creditos,m_carrera,semestre, nombre_mat)

• Lista(cve_materia,num_grupo,cve_alum,calif,oportunidad)

• Grupo(cve_mat,num_gpo,salon,horario,cve_prof)

• Profesor(cve_profesor,nombre_prof,grado)

• ¿Nombre del alumno con su horario?

• ¿Profesores que dan clase?

• ¿Nombre del alumno y las carreras de las materias que no sonde su carrera?

77

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

• Π ((σ(Alumno)|><|Lista)|><|Grupo)

• Π (Profesor|><|Grupo)

• Π ((Alumno|><|Lista)|><|Materia)

78

nombre_alumno,

horario

cve_alumno=cve_alum cve_materia=cve_mat and

num_grupo=num_gpo

nombre_prof cve_profesor=cve_prof

nombre_alumno

m_carrera

cve_alumno=cve_alum carrera!=m_carrera and

cve_materia=cve

Servicios Web - IntroducciónDiseño de bases de datos – Algebra relacional

Referencias

• Chris J. Date, An introduction to database system, Addison Wesley.

• Costal Costa D., El modelo relacional y el álgebra relacional, UOC, GNUFree Document License, 2007.

• Marqués Mercedes, Bases de datos, Universitat Jaume I, ISBN: 978-84-693-0146-3, Licencia Creative Commons, 2011.

79