La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

LENGUAJES DE BASES DE DATOS: CÁLCULO RELACIONAL

Presentaciones similares


Presentación del tema: "LENGUAJES DE BASES DE DATOS: CÁLCULO RELACIONAL"— Transcripción de la presentación:

1 LENGUAJES DE BASES DE DATOS: CÁLCULO RELACIONAL
Francisco Moreno 23/02/2019 Curso Bases de Datos

2 Cálculo Relacional Es otro lenguaje de consulta para BD relacionales
Sirve para consultar información a partir de las relaciones Es un lenguaje que generalmente no se implementa directamente aunque existen prototipos (WinRDBI)* Se basa en el cálculo de predicados de primer orden, donde una relación se expresa mediante un predicado Es cerrado relacionalmente *Ver Nota: tiene una sintaxis diferente a la vista en el curso. 23/02/2019 Curso Bases de Datos

3 Cálculo Relacional El álgebra relacional es “secuencial”, “procedimental” El cálculo relacional no es procedimental. Intenta capturar el lenguaje natural: Dice qué se quiere obtener pero no cómo Existen dos variantes: de tuplas y de dominios Se presentará el cálculo relacional de tuplas. 23/02/2019 Curso Bases de Datos

4 Cálculo Relacional de Tuplas
Concepto esencial: Tupla La forma general de una consulta* es: {t | P(t)} significa: “el conjunto de tuplas t, tal que el predicado P es verdadero (se cumple) para t”. t se denomina variable de tuplas *Los libros suelen usar diferentes notaciones 23/02/2019 Curso Bases de Datos

5 Elementos del predicado
t Î R: la tupla t pertenece a la relación R t[a]: representa el valor del atributo a en la tupla t Condiciones de comparación entre atributos o entre un atributo y una constante Ejemplos: t1[a] ≠ t1[b] , t1[c]  8, t1[a] = t2[b] 23/02/2019 Curso Bases de Datos

6 Elementos del predicado
Cuantificadores: Existencial ($) y Universal ("). El resultado de su evaluación es falso o verdadero Cuantificador Existencial $ t Î R (Q(t)): Su resultado es verdadero si existe al menos una tupla t en la relación R que satisface el predicado Q. 23/02/2019 Curso Bases de Datos

7 Elementos del predicado
Ejemplos: $ t Î R (t[b] = 11): Es verdadero si existe al menos una tupla en R cuyo atributo b valga 11 $ t Î R (t[a] < 3 Ù t[b] = 8): Es verdadero si existe al menos una tupla en R, cuyo atributo a sea menor que 3 y cuyo atributo b valga 8 23/02/2019 Curso Bases de Datos

8 Elementos del predicado
Cuantificador Universal: " t Î R (Q(t)): Su resultado es verdadero si todas las tuplas t de R satisfacen el predicado Q Ejemplo: " t Î R (t[a] = 8): Es verdadero si todas las tuplas t de R valen 8 en el atributo a 23/02/2019 Curso Bases de Datos

9 Elementos del predicado
Condiciones compuestas: Son combinaciones de los elementos anteriores, mediante los operadores: Ù (and), Ú (or), Ø (not) Ejemplos: (t1 Î R Ù t1[a] = 8) (t1 Î R Ù " t2 Î S (t2[b] > t1[c]) 23/02/2019 Curso Bases de Datos

10 Elementos del predicado
El cuantificador universal " se puede expresar en términos del cuantificador existencial $ así: " t Î R (Q(t)) ≡ Ø $ t Î R (ØQ(t)) Un ejemplo en lenguaje natural: Todos los clientes tienen código ≡ No existe un cliente que no tenga código 23/02/2019 Curso Bases de Datos

11 Elementos del predicado
La variable asociada con un cuantificador solo tiene existencia (validez) dentro del predicado correspondiente, es decir: $ t Î R (Q(t)) La variable t solo tiene validez dentro del predicado Q. Por lo tanto, el predicado: t1 Î R Ù " t2 Î S (t2[b] > t1[c]) Ù t2[b]=10 Es inválido ya que t2 no existe por fuera del cuantificador ". Note que t1 sí puede aparecer dentro del cuantificador. Se dice que t1 es una variable libre y t2 es una variable ligada. 23/02/2019 Curso Bases de Datos

12 Cálculo Relacional de Tuplas
Sean las relaciones: EST ced nom edad 10 Pedra 14 20 Olgo 29 50 Ana 30 PROF ced nom edad 45 Adam 14 26 Lisa 29 50 Ana 30 34 Cristina 32 23/02/2019 Curso Bases de Datos

13 Cálculo Relacional de Tuplas
Ejemplos: Imprimir la información de todos los estudiantes Igual que a) pero solo aquellos estudiantes mayores de 25 años Igual que a) pero solo imprimir las cédulas Imprimir solo las cédulas de los estudiantes mayores de 25 años Igual que a) pero solo imprimir las cédulas y los nombres 23/02/2019 Curso Bases de Datos

14 Cálculo Relacional de Tuplas
a) {t | t Î EST} b) {t | t Î EST Ù t[edad] > 25} c) {t | $ s Î EST (t[ced] = s[ced])} En esta notación es un error: {t[ced] | t Î EST} d) {t | $ s Î EST (t[ced] = s[ced] Ù s[edad] > 25)} e) {t | $ s Î EST (t[ced] = s[ced] Ù t[nom] = s[nom])} Nótese que para proyectar solo algunos atributos de una relación se debe usar el cuantificador existencial: Consultas c), d) y e). 23/02/2019 Curso Bases de Datos

15 Cálculo Relacional de Tuplas
f) Imprimir las cédulas de los estudiantes que también son profesores g) Imprimir las cédulas de todos los estudiantes y todos los profesores h) Imprimir las cédulas de los estudiantes que no son profesores 23/02/2019 Curso Bases de Datos

16 Cálculo Relacional de Tuplas
f) {t | $ s Î EST (t[ced] = s[ced]) Ù $ w Î PROF (t[ced] = w[ced])} g) {t | $ s Î EST (t[ced] = s[ced]) Ú h) {t | $ s Î EST (t[ced] = s[ced]) Ù Ø $ w Î PROF (t[ced] = w[ced])} 23/02/2019 Curso Bases de Datos

17 Cálculo Relacional de Tuplas
Supóngase las relaciones A (a,b,c) y B (d,e,f) su producto cartesiano en cálculo es: i) {t | $ r Î A ($ s Î B ( t[a] = r[a] Ù t[b] = r[b] Ù t[c] = r[c] Ù t[d] = s[d] Ù t[e] = s[e] Ù t[f] = s[f] ) } Y el renombrado se puede lograr así: j) {t | $ e Î EST (t[ced AS cédula] = e[ced]} 23/02/2019 Curso Bases de Datos

18 Cálculo Relacional de Tuplas
Con los elementos presentados se pueden lograr los equivalentes a las operaciones del álgebra: restricción, proyeccion (ver c)), unión (ver g)), intersección (ver f)), diferencia (ver h)), producto (ver i)), renombrado (ver j)) La reunión (join) y la división se pueden derivar a partir de las otras operaciones No se presentará para el cálculo un operador de agregación análogo al Ģ del álgebra 23/02/2019 Curso Bases de Datos

19 Cálculo Relacional de Tuplas
Por lo tanto, cualquier consulta* expresada mediante álgebra relacional se puede escribir también en cálculo relacional de tuplas Ambos lenguajes tienen la misma potencia expresiva * Excepto ciertas consultas realizadas con el operador de agregación Ģ, ya que no se presentó la extensión de agregados para el cálculo. 23/02/2019 Curso Bases de Datos


Descargar ppt "LENGUAJES DE BASES DE DATOS: CÁLCULO RELACIONAL"

Presentaciones similares


Anuncios Google