Upload
kamui002
View
1.450
Download
3
Embed Size (px)
Citation preview
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
• 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
• 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
• 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