Base de datos: Algebra relacional

  • Published on
    14-Jul-2015

  • View
    1.429

  • Download
    3

Transcript

Presentacin de PowerPointBases de DatosAlgebra relacionalAgosto 2014Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalAlgebra relacionalOperaciones realizadas sobre las relaciones (tablas).Cierre relacional: Tanto los operandos como el resultado, son tablas.El resultado de una operacin puede ser operando de otra operacin.2Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalTipos de operacionesSegn se expresan (o no) en trminos de otras operaciones.Operaciones primitivas.Operaciones a partir de las cuales se pueden definir otras. Ej: Unin, diferencia, producto cartesiano, seleccin y proyeccin.Operaciones no primitivas.No son estrictamente necesarias (se pueden expresar en trminos de las primitivas).Facilitan.Ej: Interseccin y combinacin.3Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalSegn el nmero de tablas que tienen como operandos:Operaciones binarias.Tienen dos tablas como operandos.Operaciones unarias.Tienen una sola tabla como operando.Seleccin y proyeccin.4Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalSegn si se parecen a la teora de conjuntos:Operaciones conjuntistas.Unin, interseccin, diferencia, producto cartesiano.Operaciones especficamente relacionales.Seleccin, proyeccin y combinacin.5Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEl nombre del resultado de una operacin se puede expresar:Como los operandos junto con su operador: EMPLEADOS_ADM EMPLEADOS_PRODUsando un alias (operacin redenominar).R:=ExpresinEj: Empleados := EMPLEADOS_ADM EMPLEADOS_PRODRedenominar tambin se puede aplicar sobre atributos y sobre el esquema de una relacin.6Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalSi S(B1, B2, ..., Bn) y se quiere redenominar por R(A1, A2, ..., An):R(A1, A2, ..., An) := S(B1, B2, ..., Bn).7Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalOperaciones conjuntistasUnin. A partir de dos tablas obtiene una nueva con las tuplas que estn en alguna de esas tablas.Unin entre T y S: T S.8Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalOperaciones conjuntistasUnin. A partir de dos tablas obtiene una nueva con las tuplas que estn en alguna de esas tablas.Unin entre T y S: T S.Slo 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, coincidiendo Ai y Aj con un mismo dominio. 9Servicios Web - IntroduccinDiseo de bases de datos Algebra relacional10Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEsquema y extensin resultantes de una unin:Esquema: Al unir T con S, el esquema resultante tiene los atributos de T.Extensin: Conjunto de tuplas que pertenecen a la extensin T y S.No repeticin de tuplas.11Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalR := EMPLEADOS_ADM EMPLEADOS_PROD12Servicios Web - IntroduccinDiseo de bases de datos Algebra relacional13Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalInterseccinA 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.14Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEsquema y extensin:Los atributos del esquema T S coinciden con los atributos de T.La extensin de T S es el conjunto de tuplas que pertenecen a la extensin de T y S.15Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalR := EMPLEADOS_ADM EMPLEADOS_PROD.16Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalR := EMPLEADOS_ADM EMPLEADOS_PROD.17Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalDiferencia.A partir de dos tablas, se obtiene una nueva donde las tuplas de la primera no estn en la segunda.Entre T y S se indica como T S.Ej: EMPLEADOS_ADM EMPLEADOS_PROD.Aplica a tuplas similares entre tablas compatibles.18Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEsquema y extensin:Los atributos del esquema resultante de T S, coinciden con los atributos de T.La extensin resultante de T S son las tuplas que pertenecen a T pero que no estn en S.19Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalR := EMPLEADOS_ADM EMPLEADOS_PROD.20Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalR := EMPLEADOS_ADM EMPLEADOS_PROD.21Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalProducto 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 de atributo comn, su producto cartesiano se indica como T S.Atributos con mismo nombre: redenominar.La nueva tabla contiene todas las concatenaciones posibles de tuplas entre las dos tablas T y S.22Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEsquema y extensin:Los atributos del esquema de T S, son todos los atributos de T y todos los de S.Redenominar, si es necesario.La extensin de T S son todas las tuplas para las que pertenecen a la extensin de T y < w1, w2, ..., wm> pertenecen a la extensin de S.23Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj: Producto cartesiano entre DESPACHOS y EDIFICIOS_EMP.Redenominar:EDIFICIOS(nombreedificio, supmediadesp) := EDICIOS_EMP(edificio, supmediadesp)R :=EDIFICIOS DESPACHOS.24Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalR :=EDIFICIOS DESPACHOS.25EDIFICIOSnombreedificiosupmediadespMarina15Diagonal10Servicios Web - IntroduccinDiseo de bases de datos Algebra relacional26Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEl producto cartesiano rara vez se utiliza de forma explcita, no es muy comn para consultas habituales.Pero: a partir de esta operacin primitiva, se define la de combinacin.27Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalOperaciones sobre relacionesSeleccinProyeccinCombinacin28Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalSeleccin:Operacin para elegir un subconjunto de tuplas dentro de una tabla, que cumplan una serie de condiciones especficas.Es una operacin unaria.La seleccin sobre una tabla T bajo una condicin C se expresa como T(C).29Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj: seleccionar todos los despachos del edificio Marina que tengan ms de 12 m2.Seleccin a DESPACHOS.Condicin edificio = Marina y superficie > 12.DESPACHOS(edificio= Marina y superficie> 12).30Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalLa condicin 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 comparacin (=,!=, =).Las clusulas de una condicin se unen con y () u o ().31Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEsquema y extensin:Los atributos del esquema para T(C) coinciden con los atributos del esquema de T.La extensin de T(C) es el conjunto de tuplas de la extensin de T que cumplen la condicin C.32Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalR := DESPACHOS(edificio = Marina y superficie >12)33Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalR := DESPACHOS(edificio = Marina y superficie >12)34Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalProyeccinOperacin para elegir un subconjunto de atributos de una tabla.La nueva tabla contar con tuplas cuyos atributos sern los seleccionados.Es una operacin unaria.La proyeccin de una tabla T sobre sus atributos {Ai, Aj, ..., Ak} se indica como T[Ai, Aj, ..., Ak]. 35Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj: Proyeccin sobre EMPLEADOS_ADM enfocado a los atributos nombre y apellido.EMPLEADOS_ADM[nombre, apellido]36Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEsquema y extensin:Los atributos del esquema resultante de T[Ai, Aj, ..., Ak] son los atributos {Ai, Aj, ..., Ak}La extensin resultante de T[Ai, Aj, ..., Ak] es el conjunto de tuplas de la forma donde se cumple que t es una tupla de la extensin de T y t.Ap indica el valor para el atributo Ap de la tupla t.37Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj: R:= EMPLEADOS_ADM[nombre, apellido]38Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj: R:= EMPLEADOS_ADM[nombre, apellido]39Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalCombinacin: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 condicin de combinacin especfica.Es una operacin binaria.Sean las tablas T y S, cuyos esquemas no tienen nombres de atributo en comn y siendo C una condicin de combinacin, la combinacin de T y S bajo la condicin C se indica como T[C]S.40Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj: Combinar los datos de los empleados y el despacho donde trabajan.Tablas: EMPLEADOS_ADM y DESPACHOS.Condicin de combinacin: combinar los datos de un empleado con un despacho si el edificiodesp y numdesp del empleado es igual al edificio y nmero del despacho.EMPLEADOS_ADM[edificiodesp=edificio, numerodesp= numero]DESPACHOS41Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalLa condicin C de T[C]S se conforma por una o ms comparaciones de la forma:Ai Ajdonde: Ai es un atributo de T, Aj es un atributo de S, es un operador de comparacin. Ai y Aj tienen el mismo dominio.42Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEsquema y extensin:Los atributos de T[C]S son todos los atributos de T y todos los de S.La extensin de T[C]S es el conjunto de tuplas que pertenecen a la extensin del plano cartesiano T S que satisfacen todas comparaciones de las condiciones de combinacin C.43Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj: Encontrar los datos de los despachos con una superficie mayor o igual a la superficie media (supmediadesp) de los despachos del edificio donde se ubican.Redenominar:EDIFICIOS(nombreeedficio,supmediadesp):=EDIFICIOS_EMP(edificio, supmediadesp) R:=EDIFICIOS[nombreedificio=edificio,supmediadesp superficie] DESPACHOS44Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalR:=EDIFICIOS[nombreedificio=edificio,supmediadesp superficie] DESPACHOS45EDIFICIOSnombreedificiosupmediadespMarina15Diagonal10Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalR:=EDIFICIOS[nombreedificio=edificio,supmediadesp superficie] DESPACHOS46Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalR:=EMPLEADOS_ADM[edificiodesp=edificio,nmerodesp=nmero]DESPACHOS47Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalR:=EMPLEADOS_ADM[edificiodesp=edificio,nmerodesp=nmero]DESPACHOS48Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalCombinacin natural:Combinacin entre dos tablas T y S, representada como T *S.Consiste en una combinacin donde todas las operaciones de comparacin son de igualdad (=), a la que se le eliminan los atributos superfluos. La condicin de combinacin de igualdad iguala las parejas de atributos comunes entre T y S.Se aplica a combinaciones con nombres de atributos comunes.Se puede aplicar redenominacin, para hacer coincidir los nombres de atributos que interesan.49Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj: R := EDIFICIOS_EMP * DESPACHOSSe considera la condicin edificio = edificio.Nombres de atributos comunes.50Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj: R := EDIFICIOS_EMP * DESPACHOS51Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj: Obtener los datos de los empleados administrativos junto con los datos del despacho donde trabajan.Sin repetir valores de atributos superfluos.52Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalRedenominar: D(edificiodesp,nmerodesp,superficie):=DESPACHOS(edificio,nmero,superficie)Combinacin natural:R := EMPLEADOS_ADM *D53Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalOtra nomenclaturaSeleccin: ()Ej:Salario>3000(EMPLEADO)ND=4 and Salario>3000(EMPLEADO)not (ND=4 and Salario >3000)(EMPLEADO)54Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalProyeccin: ()Ej:nombre, direccin(FABRICA)desc(PRODUCTO)55Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalCombinacin (join):() |> 12)B := DESPACHOS *AR := B[edificio, nmero]61Servicios Web - IntroduccinDiseo de bases de datos Algebra relacional2. Obtener el nombre y apellido de todos los empleados (administrativos y de produccin) que estn asignados al despacho 120 del edificio Marina.62Servicios Web - IntroduccinDiseo de bases de datos Algebra relacional2. Obtener el nombre y apellido de todos los empleados (administrativos y de produccin) que estn asignados al despacho 120 del edificio Marina.A:= EMPLEADOS_ADM EMPLEADOS_PRODB:= A(edificiodesp= Marina y nmerodesp= 120)R:= B[nombre, apellido]63Servicios Web - IntroduccinDiseo de bases de datos Algebra relacional3. Consultar el nombre del edificio y el nmero de los despachos que ningn empleado de administracin tiene asignado.64Servicios Web - IntroduccinDiseo de bases de datos Algebra relacional3. Consultar el nombre del edificio y el nmero de los despachos que ningn empleado de administracin tiene asignado.A:= DESPACHOS [edificio, nmero]B:= EMPLEADOS_ADM[edificiodesp, nmerodesp]R:= A B65Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalObtener el DNI, el nombre y el apellido de todos los empleados de administracin que tienen despacho, junto con la superficie de su despacho.66Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalObtener el DNI, el nombre y el apellido de todos los empleados de administracin que tienen despacho, junto con la superficie de su despacho.A[DNI,nombre,apellido,edificio,nmero] :=EMPLEADOS_ADM[DNI, nombre, apellido, edificiodesp, nmerodesp]B := A *DESPACHOSR := B[DNI, nombre, apellido, superficie]67Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalCombinacin externa.Cuando se efecta una combinacin puede haber casos en que existan tuplas con valor nulo en la condicin de combinacin, por lo que no seran tomadas en cuenta.Tambin puede haber tuplas en algunas de las tablas, que no tengan un elemento con el cual cumplir la condicin de combinacin y tampoco seran tomadas en cuenta.Si se requiere conservar las tuplas de alguna de las dos tablas que caigan en estas situaciones, se puede recurrir a la combinacin externa.68Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalLa combinacin externa entre T y S es una variacin de la combinacin que conserva todas las tuplas de T, de S o de ambas.Combinacin externa izquierda. Entre T y S, denotada como T[C]IS, conserva todas las tuplas de T.Combinacin externa derecha. Entre T y S, denotada como T[C]DS, conserva todas las tuplas de S.Combinacin externa plena. Entre T y S, denotada como T[C]PS, conserva todas las tuplas de T y de S.69Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalCombinacin natural externa izquierda. Entre T y S, denotada como T*IS, conserva todas las tuplas de T.Combinacin natural externa derecha. Entre T y S, denotada como T*DS, conserva todas las tuplas de S.Combinacin 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 condicin de combinacin, tienen valor nulo para los atributos de la tabla con la que no tienen correspondencia.70Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj. Combinacin natural externa derecha.D(edificiodesp, nmerodesp, superficie) := DESPACHOS (edificio, nmero, superficie)R := EMPLADOS_PROD *DD71Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj. Combinacin natural externa derecha.D(edificiodesp, nmerodesp, superficie) := DESPACHOS (edificio, nmero, superficie)R := EMPLADOS_PROD *DD72Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj. Combinacin natural externa izquierda.D(edificiodesp, nmerodesp, superficie) := DESPACHOS (edificio, nmero, superficie)R := EMPLADOS_PROD *ID73Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj. Combinacin natural externa izquierda.D(edificiodesp, nmerodesp, superficie) := DESPACHOS (edificio, nmero, superficie)R := EMPLADOS_PROD *ID74Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj. Combinacin natural externa plena.D(edificiodesp, nmerodesp, superficie) := DESPACHOS (edificio, nmero, superficie)R := EMPLADOS_PROD *PD75Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEj. Combinacin natural externa plena.D(edificiodesp, nmerodesp, superficie) := DESPACHOS (edificio, nmero, superficie)R := EMPLADOS_PROD *PD76Servicios Web - IntroduccinDiseo de bases de datos Algebra relacionalEjercicioAlumno(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 son de su carrera?77Servicios Web - IntroduccinDiseo de bases de datos Algebra relacional (((Alumno)|>