Your SlideShare is downloading. ×

Bases de Datos Cap:IV

3,492

Published on

Álgebra relacional y …

Álgebra relacional y
Cálculo relacional
Transparencias
Ponente: Juan Carlos Morocho

Published in: Education, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
3,492
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
278
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • utpl
  • utpl
  • Transcript

    • 1. ESCUELA : NOMBRES: BASE DE DATOS I CICLO Ciencias de la Computación Ing. Juan Carlos Morocho OCTUBRE 2009 – FEBRERO 2010 BIMESTRE: I BIMESTRE
    • 2. Capítulo 4 Álgebra relacional y Cálculo relacional Transparencias
    • 3. Capítulo 4 - Objetivos
      • El significado del término «completud relacional».
      • Cómo construir consultas en álgebra relacional.
      • Cómo construir consultas en el cálculo relacional de tuplas.
      • Cómo construir consultas en el cálculo relacional de dominios.
      • Las categorías de lenguajes de manipulación de datos relacionales (DML, Data Manipulation Language ).
    • 4. Introducción
      • El álgebra relacional y el cálculo relacional son lenguajes formales asociados al modelo relacional.
      • De manera informal el álgebra relacional es un lenguaje procedimental (de alto nivel) y el cálculo relacional un lenguaje no procedimental.
      • Sin embargo, formalmente, ambos lenguajes son equivalentes entre sí.
    • 5. Álgebra relacional
      • Las operaciones de álgebra relacional se aplican a una o más relaciones para definir otra relación sin modificar las relaciones originales.
      • Tanto los operandos como los resultados son relaciones de manera que la salida de una operación puede utilizarse como entrada de otra.
    • 6. Álgebra relacional
      • Existen cinco operaciones básicas en al álgebra relacional: selección, proyección, producto cartesiano, unión y diferencia de conjuntos.
      • Estas permiten realizar la mayoría de las operaciones de extracción de datos que nos interesan.
      • También existen la combinación, intersección y la división, que pueden expresarse en términos de las cinco operaciones básicas.
    • 7. Operaciones de álgebra relacional Selección Proyección Producto cartesiano Diferencia de conjuntos Intersección Unión
    • 8. Operaciones de álgebra relacional Combinación natural Semicombinación Combinación externa izquierda División (área sombreada) Ejemplo de división
    • 9. Selección (o Restricción)
      •  predicate (R)
        • La operación de selección se aplica a una única relación R y define otra relación que contiene únicamente aquellas tuplas de R que satisfacen la condición ( predicado ) especificada.
    • 10. Ejemplo - Selección (o Restricción)
      • Enumerar todos los miembros del personal cuyo salario sea superior a 10.000 euros.
        •  salary > 10000 (Staff)
    • 11. Proyección
      •  col1, . . . , coln (R)
        • Se aplica a una única relación R y define otra relación que contiene un subconjunto vertical de R, extrayendo los valores de los atributos especificados y eliminando los duplicados.
      © Pearson Education Limited 1995, 2005
    • 12. Ejemplo - Proyección
      • Generar una lista de salarios para todo el personal, mostrando solamente los detalles referidos a los atributos staffNo , fName , lName , y salary .
        •  staffNo, fName, lName, salary (Staff)
    • 13. Unión
      • R  S
        • La unión de dos relaciones R y S define una relación que contiene todas las tuplas de R, de S o tanto de R como de S, eliminándose las tuplas duplicadas.
        • R y S tienen que ser compatibles con respecto a la unión.
    • 14. Ejemplo - Unión
      • Enumerar todas las ciudades en las que exista una sucursal, o un inmueble en alquiler.
        •  city (Branch)   city (PropertyForRent)
    • 15. Diferencia de conjuntos
      • R – S
        • Define una relación compuesta por las tuplas que encuentran en la relación R pero no en S.
        • R y S deben ser compatibles con respecto a la unión.
    • 16. Ejemplo – Diferencia de conjuntos
      • Enumerar todas las ciudades en las que exista una sucursal pero no haya inmuebles en alquiler.
        •  city (Branch) –  city (PropertyForRent)
    • 17. Intersección
      • R  S
        • Define una relación compuesta por el conjunto de todas las tuplas que existen tanto en R como en S.
        • R y S deben ser compatibles con respecto a la unión.
      • Expresándolo con operaciones básicas:
        • R  S = R – (R – S)
    • 18. Ejemplo - Intersección
      • Enumerar todas las ciudades en las que exista tanto una sucursal como al menos un inmueble en alquiler.
        •  city (Branch)   city (PropertyForRent)
    • 19. Producto cartesiano
      • R X S
        • Define una relación que es la concatenación de cada tupla de la relación R con cada tupla de la relación S.
      © Pearson Education Limited 1995, 2005
    • 20. Ejemplo – Producto cartesiano
      • Enumerar los nombres y comentarios de todos los clientes que hayan visto un inmueble en alquiler.
        • (  clientNo, fName, lName (Client)) X (  clientNo, propertyNo, comment (Viewing))
    • 21. Operaciones de combinación
      • La combinación es una derivada del producto cartesiano.
      • Equivalente a realizar una operación de selección utilizando el predicado de combinación como fórmula se selección sobre el producto cartesiano de las dos relaciones que funcionan como operando.
    • 22. Operaciones de combinación
      • Existen varias formas de operación de combinación
        • Combinación theta
        • Equicombinación (un tipo particular de combinación theta)
        • Combinación natural
        • Combinación externa
        • Semicombinación
    • 23. Combinación Theta (  -combinación)
      • R F S
        • Defina una relación que contiene tuplas del producto cartesiano que satisfacen el predicado F.
        • El predicado tiene la forma R.a i  S.b i donde  puede ser uno de los operadores de comparación (<,  , >,  , =,  ).
    • 24. Combinación Theta (  -combinación)
      • Puede ser reescrita en términos de las operaciones básicas de selección y producto cartesiano.
          • R F S =  F (R  S)
    • 25. Ejemplo - Equicombinación
      • Enumerar los nombres y comentarios de todos los clientes que hayan visitado un inmueble en alquiler.
        • (  clientNo, fName, lName (Client)) Client.clientNo = Viewing.clientNo (  clientNo, propertyNo, comment (Viewing))
    • 26. Combinación natural
      • R S
        • La combinación natural entre las dos relaciones R y S sobre todos los atributos comunes. De los resultados se elimina una de las dos apariciones de cada atributo común.
    • 27. Ejemplo – Combinación natural
      • Enumerar los nombres y comentarios de todos los clientes que hayan visitado un inmueble en alquiler.
        • (  clientNo, fName, lName (Client))
        • (  clientNo, propertyNo, comment (Viewing))
    • 28. Combinación externa
      • Se emplea para incluir en la relación resultante las tuplas que no tengan valores correspondientes en los atributos comunes de S.
      • R S
        • La combinación externa izquierda (natural) es aquella combinación que también incluye en el resultado las tuplas de R que no tienen valores correspondientes en los atributos comunes de S.
    • 29. Ejemplo – Combinación externa izquierda
      • Generar un informe de estado sobre las visitas de los inmuebles.
        •  propertyNo, street, city (PropertyForRent)
        • Viewing
    • 30. Semicombinación
      • R F S
        • Define una relación que contiene las tuplas de R que participan en la combinación de R con S.
      © Pearson Education Limited 1995, 2005
    • 31. Ejemplo - Semicombinación
      • Enumerar los detalles completos de todos los empleados que trabajen en la sucursal de Glasgow.
        • Staff Staff.branchNo=Branch.branchNo (  city=‘Glasgow’ (Branch))
      © Pearson Education Limited 1995, 2005
    • 32. División
      • R  S
        • Define una relación sobre los atributos C que está compuesta por el conjunto de tuplas de R que se corresponden con la combinación de todas las tuplas de S.
      © Pearson Education Limited 1995, 2005
    • 33. Ejemplo - División
      • Identificar todos los clientes que hayan visto todos los inmuebles con tres habitaciones.
        • (  clientNo, propertyNo (Viewing)) 
        • (  propertyNo (  rooms = 3 (PropertyForRent)))
    • 34. Cálculo relacional
      • Las consultas de cálculo relacional especifican qué hay que extraer, en lugar de cómo extraerlo.
      • En la lógica de primer orden o cálculo de predicados, un predicado es una función booleana con argumentos.
      • Cuando asignamos valores a los argumentos la función nos proporciona una expresión, denominada proposición , que puede ser verdadera o falsa.
    • 35. Cálculo relacional
      • Si el predicado contiene una variable (Ej. ‘ x es miembro del personal’), tiene que existir un rango asociado para x .
      • Cuando sustituimos algunos de los valores de este rango por x, la proposición puede ser verdadera; para otros valores puede ser falsa.
      • Aplicado a las bases de datos se puede encontrar en dos formas: tuplas y dominios .
    • 36. Cálculo relacional de tuplas
      • Lo que nos interesa es localizar las tuplas para las que un cierto predicado sea verdadero. Es un cálculo basado en el uso de variables de tuplas .
      • Una variable de tuplas es una variable que «toma sus valores» en una determinada relación: Ej. una variable cuyos únicos valores permitidos son las tuplas de la relación.
      • Especificar el rango de una variable de tupla S de forma que el rango sea la relación Staff :
        • Staff(S)
      • Para extraer el conjunto de todas las tuplas S tales que F(S) sea verdadera:
        • {S | F(S)}
    • 37. Cálculo relacional de tuplas - Ejemplo
      • Para obtener los detalles de todos los empleados que ganen más de 10.000 euros:
        • {S | Staff(S)  S.salary > 10000}
      • Para extraer un atributo concreto, como salary , escribiríamos:
        • {S.salary | Staff(S)  S.salary > 10000}
    • 38. Cálculo relacional de tuplas
      • Podemos usar dos cuantificadores para decir a cuántas instancias se aplica el predicado:
        • Cuantificador existencial Э («existe»)
        • Cuantificador universal ˅ («para todo»)
      • Las variables de tupla cualificadas mediante ˅ or Э se denominan variables legadas , mientras que si no están cualificadas se denominan variables libres .
    • 39. Cálculo relacional de tuplas
      • El cuantificador existencial se utiliza en fórmulas que deben ser ciertas para al menos una instancia, como en:
        • Staff(S)  ( Э B)(Branch(B) 
        • (B.branchNo = S.branchNo)  B.city = ‘London’)
      • Significa «Existe una tupla de Branch que tiene el mismo valor de branchNo que el valor de branchNo correspondiente a la tupla actual de Staff, S , y cuya ciudad correspondiente es Londres».
    • 40. Cálculo relacional de tuplas
      • El cuantificador universal se utiliza en enunciados que deben ser ciertos para todas las instancias, como en:
        • (&quot;B) (B.city  ‘Paris’)
      • Significa «No existe ninguna sucursal en París».
      • También podemos usar ~( Э B) (B.city = ‘Paris’) que significa «no existe ninguna sucursal situada en París».
    • 41. Ejemplo – Cálculo relacional de tuplas
      • Enumerar los nombres de todos los gerentes que ganen más de 25.000 euros.
        • {S.fName, S.lName | Staff(S) 
        • S.position = ‘Manager’  S.salary > 25000}
    • 42. Cálculo relacional de dominios
      • Utiliza variables que toman sus valores de dominios de atributos, en lugar de tomarlos de tuplas de alguna relación.
      • Si F( d 1 , d 2 , . . . , d n ) representa una fórmula compuesta de átomos y d 1 , d 2 , . . . , d n representa variables de dominio, entonces:
        • { d 1 , d 2 , . . . , d n | F( d 1 , d 2 , . . . , d n )}
        • Es una expresión en el cálculo relacional de dominios.
    • 43. Ejemplo – Cálculo relacional de dominios
      • Hallar los nombres de todos los gerentes que ganen más de 25.000 euros.
        • {fN, lN | ( Э sN, posn, sex, DOB, sal, bN)
        • (Staff (sN, fN, lN, posn, sex, DOB, sal, bN) 
        • posn = ‘Manager’  sal > 25000)}
      © Pearson Education Limited 1995, 2005
    • 44. Ejemplo – Cálculo relacional de dominios
      • Enumerar los empleados que gestionan inmuebles en alquiler en Glasgow.
        • {sN, fN, lN, posn, sex, DOB, sal, bN |
        • ( Э sN1,cty)(Staff(sN,fN,lN,posn,sex,DOB,sal,bN) 
        • PropertyForRent(pN, st, cty, pc, typ, rms,
        • rnt, oN, sN1, bN1) 
        • (sN=sN1)  cty=‘Glasgow’)}
    • 45. Cálculo relacional de dominios
      • Cuando se restringe el cálculo relacional de dominios a expresiones seguras es equivalente al cálculo relacional de tuplas restringido también a expresiones segura, y ambos son a su vez equivalentes al álgebra relacional.
      • Esto quiere decir que toda expresión relacional tiene una expresión equivalente en el cálculo relacional y vice versa .
    • 46. Otros lenguajes
      • Los lenguajes orientados a transformación son lenguajes no procedimentales que utilizan relaciones para transformar los datos de entrada en las salidas requeridas (Ej. SQL).
      • Los lenguajes gráficos proporcionan al usuario una imagen o ilustración de la estructura de la relación. El usuario rellena un ejemplo de lo que desea y el sistema devuelve los datos requeridos en dicho formato (Ej. QBE, Query-By-Example ).
    • 47. Otros lenguajes
      • Los lenguajes de cuarta generación (4GL, Fourth Generation Languages , permiten crear una aplicación personalizada completa utilizando un conjunto limitado de comandos en un entorno amigable y frecuentemente basado en menús.
      • Algunos sistemas aceptan algún tipo de lenguaje natural , que suele ser una versión restringida del inglés, lo que a veces se denomina lenguajes de quinta generación (5GL, Fifth Generation Languages ). Estos desarrollos se encuentran todavía en una etapa temprana.
    • 48.  

    ×