Tema 5 Algebra Relacional

  Asignatura de Bases de Datos Tema 5

  Algebra Relacional Pedro Pablo Alarcón Cavero Departamento de O.E.I.

  Escuela Universitaria de Informática Universidad Politécnica de Madrid

  1 Álgebra Relacional n Introducción n

  Lenguajes de acceso en BDR n Álgebra Relacional

  

Lenguaje procedimental (se indica qué y cómo obtenerlo)

n n Cálculo Relacional

  Lenguaje no procedimental (se indica qué pero no cómo obtenerlo) n

  Dos tipos n

  Orientado a Tuplas n

  Orientado a Dominios n

  

Álgebra y Cálculo Relacional son equivalentes en poder

n expresivo n Lenguajes de Usuario n SQL (Structured Query Language), basado en álgebra relacional n QBE (Query By Example), basado en cálculo relacional Bases de Datos

  2 2002 © P.P. Alarcón

   Álgebra Relacional n Definición n Conjunto cerrado de operaciones n Actúan sobre relaciones n Producen relaciones como resultados

n Pueden combinarse para construir expresiones más complejas

n n

  Operadores Básicos Operadores Derivados n Unión n Intersección n Diferencia n Join n Producto Cartesiano n División n Selección n Asociación n Proyección

  No añaden nada nuevo n

  Son operacionalmente completos, n

  Se forman combinando los operadores básicos permiten expresar cualquier consulta a n una BDR Son útiles en determinadas consultas Bases de Datos n

  3 2002 © P.P. Alarcón

   Unión R S n ∪ ∪

  

La unión de dos relaciones R y S, es otra relación que

n

contiene las tuplas que están en R, o en S, o en ambas,

eliminándose las tuplas duplicadas R y S deben ser unión-compatible, es decir, definidas n sobre el mismo conjunto de atributos

  I ngenieros ∪ ∪ Jefes I ngenieros Jefes E# Nombre Edad E# Nombre Edad E# Nombre Edad

  320 José 34 320 José 34 320 José 34 322 Rosa 37 421 Jorge 48 322 Rosa 37

  • 323 María 25 María 25 Bases de Datos

  421 Jorge 48

  4 2002 © P.P. Alarcón

  • María 25

  R x S n

  I ngenieros X Proyectos E# Nombre D# Proyecto Tiempo

  • Rosa D3 PY254Z 32

  320 José D1 D1 Central 320 José D1 D3 I+D 322 Rosa D3 D1 Central

  Proyectos I ngenieros X Departamentos E# Nombre D# DD Descrip

  RX338A 21 PY254Z 32

  Departamentos Proyecto Tiempo

  D1 Central D3 I+D

  I ngenieros D# Descrip

  320 José D1 322 Rosa D3

  E# Nombre D#

  Define una relación que es la concatenación de cada una de las filas de la relación R con cada una de las filas de la relación S

  • Rosa D3 D3 I+D

  2002 © P.P. Alarcón Bases de Datos

  6 Producto Cartesiano n

  421 Jorge 48

  Jefes - I ngenieros E# Nombre Edad

  322 Rosa 37

  I ngenieros Jefes I ngenieros - Jefes E# Nombre Edad

  320 José 34 421 Jorge 48

  E# Nombre Edad

  320 José 34 322 Rosa 37 323 María 25

  R y S deben ser unión-compatible E# Nombre Edad

  5 Diferencia n R - S n La diferencia de dos relaciones R y S, es otra relación

que contiene las tuplas que están en la relación R, pero

no están en S n

  2002 © P.P. Alarcón Bases de Datos

  320 José D1 RX338A 21 320 José D1 PY254Z 32 322 Rosa D3 RX338A 21

  José Rosa María

  8 Proyección n

  Nombre

  ππ Nombre (I ngenieros)

  José 34 Rosa 37 María 25 José 29

  

( I ngenieros)

Nombre Edad

  I ngenieros ππ Nombre,Edad

  320 José 34 322 Rosa 37

  E# Nombre Edad

  Es un operador unario n Define una relación que contiene un subconjunto vertical de R con los valores de los atributos especificados, eliminando filas duplicadas en el resultado

  Π Π col1, . . . , coln (R) n

  E# Nombre Edad 2002 © P.P. Alarcón Bases de Datos

  2002 © P.P. Alarcón Bases de Datos

  σ σ edad> = 45 (I ngenieros)

  322 Rosa 37

  E# Nombre Edad

  I ngenieros σ σ edad> = 35 (I ngenieros)

  320 José 34 322 Rosa 37 323 María 25

  E# Nombre Edad

  Define una relación con los mimos atributos que R y que contiene solo aquellas filas de R que satisfacen la condición especificada (predicado)

  Es un operador unario n

  σ σ predicado (R) n

  7 Selección n

  • María 25
  • José 29
  • – X

   R2

  Π C

  R1 ÷

  320 323

  R1 E#

  320 RX338A 320 PY254Z

  R2 E# Proyecto

  RX338A PY254Z

  2 Proyecto

  1

  1 ) – R); X = X

  ((S X X

  Π C

  2 =

  X

  (R);

  1 =

  2002 © P.P. Alarcón Bases de Datos

  X

  ⊂ conjunto de atributos de R n Equivalencia con operadores básicos

  ÷ ÷ S n Define una relación sobre el conjunto de atributos C, incluido en la

relación R, y que contiene el conjunto de valores de C, que en las

tuplas de R están combinadas con cada una de las tuplas de S n Condiciones n grado(R) > grado (S) n conjunto atributos de S

  10 División o Cociente n R

  2002 © P.P. Alarcón Bases de Datos

  320 José 34

  I ngenieros Jefes I ngenieros ∩ ∩ Jefes E# Nombre Edad

  320 José 34 421 Jorge 48

  E# Nombre Edad

  320 José 34 322 Rosa 37 323 María 25

  E# Nombre Edad

  Equivalencia con operadores básicos R S = R – (R – S)

  ∩ ∩ S n Define una relación que contiene el conjunto de todas las filas que están tanto en la relación R como en S n R y S deben ser unión-compatible n

  9 Intersección n R

  • RX338A 323 NC168T
  • PY254Z
  • PY254Z 324 NC168T

   Join n Unión Natural (Natural Join) n ó

  R S R * S n

  El resultado es una relación con los atributos de ambas relaciones y se obtiene combinando las tuplas de ambas relaciones que tengan el mismo valor en los atributos comunes n

  Normalmente la operación de join se realiza entre los atributos

comunes de dos tablas que corresponden a la clave primaria

de una tabla y la clave foránea correspondiente de la otra tabla n

  Método n Se realiza el producto cartesiano R x S

n Se seleccionan aquellas filas del producto cartesiano para las

que los atributos comunes tengan el mismo valor n Se elimina del resultado una ocurrencia (columna) de cada uno de los atributos comunes n

  Equivalencia con operadores básicos R S = (R S)

  F σ F Χ Bases de Datos

  11 2002 © P.P. Alarcón

  Join n Outer Join n Es una variante del Join en la que se intenta mantener toda la información de los operandos, incluso para aquellas filas que no participan en el Join n

  Se “rellenan con nulos” las tuplas que no tienen correspondencia en el Join n

  Tres variantes n

  Left n se tienen en cuenta todas las filas del primer operando n

  Right n se tienen en cuenta todas las filas del segundo operando n

  Full n se tienen en cuenta todas las filas de ambos operandos Bases de Datos

  12 2002 © P.P. Alarcón

   Join R1 * R2

  

LEFT

E# Nombre D# Descrip

R1 R2

  320 José D1 Central 322 Rosa D3 I+D

  E# Nombre D# D# Descrip

  • María D3 I+D D1 Central 320 José D1
  • José D5 null 322 Rosa D3

  D3 I+D María D3 •

  D4 Ventas R1 * R2

RI GHT

  E# Nombre D# Descrip

  • José D5

  José D1 Central • 322 Rosa D3 I+D María D3 I+D •

  R1 * R2 null null D4 Ventas

  E# Nombre D# Descrip R1 * R2

  

FULL

E# Nombre D# Descrip

  320 José D1 Central 322 Rosa D3 I+D 320 José D1 Central 322 Rosa D3 I+D

  • María D3 I+D

  María D3 I+D • José D5 null • Bases de Datos null null D4 Ventas

  13 2002 © P.P. Alarcón

   Asociación n Asociación o Theta Join ( -Join)

  

θ

n ó

  R S R * S F F n

  

Define una relación que contiene las tuplas que satisfacen el

predicado F en el producto cartesiano de R y S n

  

El predicado F es de la forma R.a θ S.b donde θ representa

i i un operador de comparación (<, , >, , =, ) n

  El predicado no tiene por que definirse sobre atributos comunes n

  Equivalencia con operadores básicos R S = (R S)

  F σ F Χ n

  Equijoin n Si el predicado F contiene únicamente el operador de igualdad Bases de Datos

  14 2002 © P.P. Alarcón

  Ejemplos Asignaturas Notas

  CodA NombreA Precio Nmat CodA Conv Nota

   1 Program. 15000 0338 1 Feb 02 8

   2 Dibujo 20000 0254 2 Feb 02 5

   3 Inglés 18000 0168 2 Feb 02 3 Alumnos

  0338 2 Feb 02 5 Nmat Nombre Apellidos Domicilio Telefono 0338 3 Jun 02 7

  0338 Ana Pérez Gómez C / Julio nº 96 1112233 0254 1 Jun 02 6 0254 Rosa López López C/ Verano s/n 1113344 0168 1 Jun 02 9 0168 Juan García García C/ Playa nº 1 1114455 Bases de Datos 0168 3 Jun 02 5

  15 2002 © P.P. Alarcón

  Ejemplo 1 n Obtener los apellidos y teléfono de los alumnos de nombre Rosa

  ( (Alumnos)) π σ apellidos, telefono nombre=‘Rosa’

  Apellidos Telefono López López 1113344 n Obtener las notas obtenidas en la asignatura de Inglés

  ( (Alumnos*Notas*Asignaturas))

  π σ nombre, apellidos, nota nombreA=‘Ingles’

  Nombre Apellidos Nota Ana Pérez Gómez 7 Juan García García 5 Bases de Datos

  16 2002 © P.P. Alarcón

  2002 © P.P. Alarcón Bases de Datos

  σ nombreA=‘Ingles’

   (Notas)) 0338 0168 Nmat

  ( σ nota<5

  π Nmat

  σ nota>=5 (Notas)) -

  Nmat (

  Obtener los alumnos que no han suspendido ninguna asignatura π

   (Asignaturas) * Alumnos) n

  ( σ nombreA=‘’Dibujo’

  π Nmat

   (Asignaturas) * Alumnos)

  Nmat (

  17 Ejemplo 1 n Obtener los alumnos que figuren matriculados en todas las asignaturas

  Obtener los alumnos que figuren matriculados en las asignaturas de Inglés y Dibujo π

  18 Ejemplo 1 n

  2002 © P.P. Alarcón Bases de Datos

   0338 Nmat

  (Asignaturas))) Ana Pérez Gómez Nombre Apellidos

  ÷÷ π codA

  Nmat,codA (Notas)

  (Alumnos * ( π

  (Asignaturas) Ó π nombre, apellidos ,

  (Notas) ÷÷ π codA

  π Nmat,codA

   0338 0254 Nmat